@citron-systems/citron-ui 1.24.0 → 1.25.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.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{useState as ta,useRef as Br,useEffect as ea,useCallback as je}from"react";import{Loader2 as ra,Mic as Zi,Paperclip as Qi,Send as Ji,Sparkles as oa}from"lucide-react";import{clsx as _i}from"clsx";import{twMerge as ji}from"tailwind-merge";function o(...t){return ji(_i(t))}import{useLayoutEffect as $i}from"react";function Ue(t,e,r){let a=r?.maxLines??10,i=r?.disabled??!1;$i(()=>{let n=t.current;if(!n||i)return;let s=window.getComputedStyle(n),l=parseFloat(s.lineHeight)||20,c=parseFloat(s.paddingTop)+parseFloat(s.paddingBottom),d=l+c,m=l*a+c;n.style.height="auto";let p=n.scrollHeight,b=Math.min(Math.max(p,d),m);n.style.height=`${b}px`,n.style.overflowY=p>m?"auto":"hidden"},[e,a,i])}import{FileText as qi,X as Yi}from"lucide-react";import{jsx as te,jsxs as Xi}from"react/jsx-runtime";function _e({attachments:t,onRemove:e,className:r}){return t.length===0?null:te("div",{className:o("flex flex-wrap gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-3)] pb-[var(--inkblot-spacing-1)] pt-[var(--inkblot-spacing-3)]",r),children:t.map((a,i)=>Xi("div",{className:"group relative flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]",children:[a.kind==="image"&&a.previewUrl?te("img",{src:a.previewUrl,alt:a.file.name,className:"h-8 w-8 rounded-[var(--inkblot-radius-sm)] object-cover"}):te(qi,{size:16,className:"shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),te("span",{className:"max-w-[8rem] truncate text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:a.file.name}),te("button",{type:"button",onClick:()=>e(i),className:"flex h-4 w-4 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-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]","aria-label":`Remove ${a.file.name}`,children:te(Yi,{size:10})})]},`${a.file.name}-${i}-${a.file.size}`))})}import{jsx as V,jsxs as Kt}from"react/jsx-runtime";function ee({messages:t=[],onSend:e,isProcessing:r=!1,placeholder:a="Ask Citron Intelligence...",emptyStateMessage:i="Ask anything \u2014 deals, contacts, forecasts...",onVoiceClick:n,className:s}){let[l,c]=ta(""),[d,m]=ta([]),p=Br(null),b=Br(null),v=Br(null);Ue(v,l),ea(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[t]),ea(()=>()=>{d.forEach(N=>{N.previewUrl&&URL.revokeObjectURL(N.previewUrl)})},[]);let f=je(()=>{let N=l.trim();if(!(!N&&d.length===0)&&!r){try{e?.({text:N,files:d.map(x=>x.file)})}catch{}c(""),m(x=>(x.forEach(k=>{k.previewUrl&&URL.revokeObjectURL(k.previewUrl)}),[])),requestAnimationFrame(()=>{v.current?.focus()})}},[l,d,r,e]),C=je(N=>{N.key==="Enter"&&!N.shiftKey&&(N.preventDefault(),f())},[f]),y=je(N=>{let x=N.target.files;if(!x||x.length===0)return;let k=Array.from(x).map(g=>{let u=g.type.startsWith("image/");return{file:g,kind:u?"image":"file",previewUrl:u?URL.createObjectURL(g):void 0}});m(g=>[...g,...k]),N.target.value=""},[]),T=je(N=>{m(x=>{let k=x[N];return k?.previewUrl&&URL.revokeObjectURL(k.previewUrl),x.filter((g,u)=>u!==N)})},[]);return Kt("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-primary)]",s),children:[t.length===0?V("div",{className:"flex flex-1 items-center justify-center",children:Kt("div",{className:"text-center",children:[V(oa,{className:"mx-auto mb-[var(--inkblot-spacing-2)] h-5 w-5 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),V("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):V("div",{ref:p,className:"flex-1 overflow-y-auto",children:Kt("div",{className:"mx-auto flex max-w-4xl flex-col gap-[var(--inkblot-spacing-4)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-6)]",children:[t.map(N=>N.role==="user"?V("div",{className:"flex justify-end",children:V("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-inverse)]",children:N.renderedContent??N.content})},N.id):Kt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[V(oa,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),V("div",{className:"max-w-[90%] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)]",children:N.renderedContent??N.content})]},N.id)),r&&Kt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[V(ra,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 animate-spin text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),V("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Thinking..."})]})]})}),V("div",{className:"shrink-0 bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",children:V("div",{className:"mx-auto max-w-4xl",children:Kt("div",{className:o("flex flex-col overflow-hidden rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]"),children:[V("input",{ref:b,type:"file",multiple:!0,onChange:y,className:"sr-only","aria-hidden":!0}),V(_e,{attachments:d,onRemove:T}),V("textarea",{ref:v,value:l,onChange:N=>c(N.target.value),onKeyDown:C,placeholder:a,rows:1,className:o("min-h-[2.25rem] w-full resize-none border-0 bg-transparent px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-0")}),Kt("div",{className:"flex items-center justify-end gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-2)] pb-[var(--inkblot-spacing-3)] pt-[var(--inkblot-spacing-1)]",children:[V("button",{type:"button",onClick:()=>b.current?.click(),disabled:r,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] 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":"Attach files",children:V(Qi,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),V("button",{type:"button",onClick:()=>n?.(),disabled:r,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] 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":"Voice input",children:V(Zi,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),V("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center",children:r?V("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:V(ra,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):V("button",{type:"button",onClick:f,className:o("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[#e2d5c0] text-white transition-[background,box-shadow] duration-[var(--inkblot-duration-fast)]","hover:bg-[#d4c4ad]","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":"Send",children:V(Ji,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})]})})})]})}import{useEffect as ts,useCallback as es}from"react";import{X as rs}from"lucide-react";import{Fragment as aa,jsx as kt,jsxs as re}from"react/jsx-runtime";function os({open:t,onOpenChange:e,title:r="Assistant",subtitle:a,className:i,...n}){let s=es(()=>e?.(!1),[e]);ts(()=>{if(!t)return;let c=d=>{d.key==="Escape"&&s()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,s]);let l=re("header",{className:o("flex shrink-0 flex-col gap-3 border-b border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-4 py-3 sm:flex-row sm:items-center sm:justify-between sm:gap-3 md:px-6 md:py-4 lg:px-8"),children:[re("div",{className:"min-w-0",children:[kt("h1",{className:o("truncate text-base font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]","sm:text-lg"),children:r}),a?kt("p",{className:"mt-0.5 text-[10px] leading-snug text-[var(--inkblot-semantic-color-text-tertiary)]",children:a}):null]}),kt("div",{className:"flex min-w-0 flex-wrap items-center justify-start gap-2 sm:justify-end",children:kt("button",{type:"button",onClick:s,className:o("flex h-8 w-8 shrink-0 items-center justify-center rounded-lg","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-secondary)]","transition-[background-color,color,border-color] duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]","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":"Close",children:kt(rs,{className:"h-4 w-4",strokeWidth:2,"aria-hidden":!0})})})]});return re(aa,{children:[kt("aside",{role:"complementary","aria-label":r,className:o("hidden md:flex","shrink-0 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)]","transition-[width] duration-300 ease-[var(--inkblot-easing-default)]",t?"w-96":"w-0 border-l-0",i),children:t&&re(aa,{children:[l,kt(ee,{...n,className:"min-h-0 flex-1"})]})}),re("div",{className:o("fixed inset-0 z-50 md:hidden",t?"pointer-events-auto":"pointer-events-none"),children:[kt("button",{type:"button","aria-label":"Close panel",onClick:s,className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70 transition-opacity duration-300",t?"opacity-100":"opacity-0")}),re("div",{role:"dialog","aria-modal":"true","aria-label":r,className:o("absolute inset-y-0 right-0 flex w-full max-w-sm flex-col border-l border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-lg)] transition-transform duration-300 ease-[var(--inkblot-easing-default)]",t?"translate-x-0":"translate-x-full"),children:[l,kt(ee,{...n,className:"min-h-0 flex-1"})]})]})]})}import{jsx as ns}from"react/jsx-runtime";function as({className:t,...e}){return ns(ee,{...e,className:o("mx-auto w-full max-w-5xl",t)})}import{useState as zr,useRef as he,useEffect as Or}from"react";import{ChevronDown as is,Loader2 as ss,Mic as ls,Paperclip as cs,Send as ds,Sparkles as na}from"lucide-react";import{jsx as H,jsxs as Tt}from"react/jsx-runtime";function ms({messages:t=[],onSend:e,onComposeSubmit:r,isProcessing:a=!1,placeholder:i="Ask Citron Intelligence...",agents:n,activeAgent:s,onAgentChange:l,onFilesAttach:c,onVoiceClick:d,emptyStateMessage:m="Ask anything \u2014 deals, contacts, forecasts...",className:p}){let[b,v]=zr(""),[f,C]=zr(!1),[y,T]=zr([]),N=he(null),x=he(null),k=he(null),g=he(null);Ue(k,b,{disabled:a});let u=a;Or(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)},[t]),Or(()=>{if(!f)return;let S=K=>{g.current&&!g.current.contains(K.target)&&C(!1)};return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[f]);let h=he(y);h.current=y,Or(()=>()=>{h.current.forEach(S=>{S.previewUrl&&URL.revokeObjectURL(S.previewUrl)})},[]);let P=()=>{T(S=>(S.forEach(K=>{K.previewUrl&&URL.revokeObjectURL(K.previewUrl)}),[]))},M=S=>{T(K=>{let w=K[S];return w?.previewUrl&&URL.revokeObjectURL(w.previewUrl),K.filter((U,_)=>_!==S)})},D=(S,K)=>{try{r?r({text:S,files:K}):e?e({text:S,files:K}):K.length>0&&c?.(K)}catch{}P(),v(""),requestAnimationFrame(()=>{k.current?.focus()})},E=()=>{if(a)return;let S=b.trim(),K=y.map(w=>w.file);!S&&K.length===0||D(S,K)},F=S=>{S.key==="Enter"&&!S.shiftKey&&(S.preventDefault(),E())},L=S=>{let K=S.target.files;if(!K?.length||u){S.target.value="";return}let w=Array.from(K).map(U=>{let _=U.type.startsWith("image/");return{file:U,kind:_?"image":"file",previewUrl:_?URL.createObjectURL(U):void 0}});T(U=>[...U,...w]),S.target.value=""},B=n?.find(S=>S.id===s),A=b.trim(),W=y.length>0,X=!a&&(!!A||W),gt="bg-[#F9F9F7]";return Tt("div",{className:o("flex h-full flex-col",gt,p),children:[t.length===0?H("div",{className:"flex min-h-0 flex-1 items-center justify-center px-[var(--inkblot-spacing-4)]",children:H("p",{className:"text-center [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:m})}):H("div",{className:"flex min-h-0 flex-1 flex-col px-[var(--inkblot-spacing-4)] pt-[var(--inkblot-spacing-4)]",children:H("div",{className:o("flex min-h-0 flex-1 flex-col overflow-hidden rounded-3xl","border border-[var(--inkblot-semantic-color-border-default)] bg-white shadow-[var(--inkblot-shadow-sm)]"),children:H("div",{ref:N,className:"min-h-0 flex-1 overflow-y-auto",children:H("div",{className:"mx-auto flex max-w-3xl flex-col gap-[var(--inkblot-spacing-4)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-6)]",children:t.map(S=>S.role==="user"?H("div",{className:"flex justify-end",children:H("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-inverse)]",children:S.renderedContent??S.content})},S.id):Tt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[H(na,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),H("div",{className:"max-w-[90%] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)]",children:S.renderedContent??S.content})]},S.id))})})})}),H("div",{className:o("shrink-0 px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",gt),children:H("div",{className:"mx-auto flex w-full max-w-3xl flex-col gap-[var(--inkblot-spacing-2)]",children:Tt("div",{className:o("flex flex-col overflow-hidden rounded-3xl border border-[var(--inkblot-semantic-color-border-default)] bg-white shadow-[var(--inkblot-shadow-sm)]",a&&"pointer-events-none"),"aria-busy":a,children:[H("input",{ref:x,type:"file",multiple:!0,onChange:L,className:"sr-only","aria-hidden":!0}),H(_e,{attachments:y,onRemove:M}),H("textarea",{ref:k,value:b,onChange:S=>v(S.target.value),onKeyDown:F,placeholder:i,rows:1,disabled:a,className:o("min-h-[2.25rem] w-full resize-none border-0 bg-transparent px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-default)] 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-50")}),Tt("div",{className:o("flex items-center gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-2)] pb-[var(--inkblot-spacing-2)] pt-[var(--inkblot-spacing-1)]",n&&n.length>0?"justify-between":"justify-end"),children:[n&&n.length>0&&Tt("div",{ref:g,className:"relative min-w-0",children:[Tt("button",{type:"button",onClick:()=>C(S=>!S),className:o("flex max-w-full items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]"),children:[H(na,{size:14,strokeWidth:1.7,"aria-hidden":!0}),H("span",{className:"truncate",children:B?.label??"Select agent"}),H(is,{size:14,strokeWidth:1.7,className:o("shrink-0 transition-transform duration-[var(--inkblot-duration-fast)]",f&&"rotate-180"),"aria-hidden":!0})]}),f&&H("div",{className:"absolute bottom-full left-0 z-10 mb-[var(--inkblot-spacing-1)] min-w-[12rem] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-1)] shadow-[var(--inkblot-shadow-sm)]",children:n.map(S=>Tt("button",{type:"button",onClick:()=>{l?.(S.id),C(!1)},className:o("flex w-full flex-col gap-0.5 rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)] text-left transition-colors duration-[var(--inkblot-duration-fast)]",S.id===s?"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),children:[H("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:S.label}),S.description&&H("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:S.description})]},S.id))})]}),Tt("div",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-2)]",children:[H("button",{type:"button",onClick:()=>x.current?.click(),disabled:u,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[#F2F2EF] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:bg-[#E8E8E4] 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-white","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Attach files",children:H(cs,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),H("button",{type:"button",onClick:()=>d?.(),disabled:a,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[#F2F2EF] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:bg-[#E8E8E4] 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-white","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Voice input",children:H(ls,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),H("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center",children:a?H("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:H(ss,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):H("button",{type:"button",onClick:E,disabled:!X,className:o("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[#E8DCC4] text-white transition-[background,box-shadow] duration-[var(--inkblot-duration-fast)]","hover:bg-[#dccaa8]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-white","disabled:pointer-events-none disabled:opacity-40"),"aria-label":"Send",children:H(ds,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})]})]})})})]})}import{Send as ps,Calendar as bs}from"lucide-react";import{jsx as $e,jsxs as vs}from"react/jsx-runtime";var us={primary:["bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]"],secondary:["bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","border border-[var(--inkblot-semantic-color-border-default)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","active:bg-[var(--inkblot-semantic-color-background-tertiary)]"]};function Fr({buttons:t,className:e}){return $e("div",{className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",e),children:t.map(r=>vs("button",{type:"button",onClick:()=>{r.onClick?.()},disabled:r.disabled,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",us[r.variant]),children:[r.icon??null,r.label]},r.id))})}function qe({onSendNow:t,onSchedule:e,onSaveDraft:r,className:a}){return $e(Fr,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:$e(ps,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:$e(bs,{className:"h-4 w-4"}),onClick:e},{id:"draft",label:"Save Draft",variant:"secondary",onClick:r}],className:a})}import{forwardRef as fs}from"react";import{Loader2 as gs,Sparkles as ks}from"lucide-react";import{jsx as oe,jsxs as Vr}from"react/jsx-runtime";var Ne=fs(({label:t,loading:e=!1,onWriteWithAI:r,disabled:a,className:i,...n},s)=>{let l=a||e;return Vr("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-2)]",i),children:[Vr("div",{className:"flex items-center justify-between",children:[t?oe("label",{htmlFor:n.id,className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}):oe("span",{}),r?Vr("button",{type:"button",onClick:r,disabled:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),children:[e?oe(gs,{className:"h-4 w-4 shrink-0 animate-spin"}):oe(ks,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),e?"Generating...":"Write with AI"]}):null]}),oe("div",{className:"relative",children:oe("textarea",{ref:s,disabled:l,className:o("min-h-[12rem] w-full rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),...n})})]})});Ne.displayName="AIComposeInput";import{forwardRef as ys}from"react";import{jsx as hs}from"react/jsx-runtime";var xs={primary:"border border-transparent bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)] shadow-[var(--inkblot-shadow-sm)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]",secondary:"border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)] active:bg-[var(--inkblot-semantic-color-background-tertiary)]"},we=ys(({className:t,variant:e="primary",disabled:r,...a},i)=>hs("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-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-medium)] font-semibold transition-[background,border-color,box-shadow,color] 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 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",xs[e],t),...a}));we.displayName="Button";import{useMemo as Ns,useState as ia}from"react";import{ArrowDown as ws,ArrowUp as Cs,ArrowUpDown as Ts,CheckCircle as Ps,Zap as Ss,FileText as Ms,Clock as Es}from"lucide-react";import{jsx as j,jsxs as Ut}from"react/jsx-runtime";var Is={sent:{icon:Ps,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:Ss,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:Ms,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:Es,label:"Scheduled",colorClass:"text-[var(--inkblot-semantic-color-status-info)]"}};function Ye({columns:t,rows:e,sortKey:r,sortDirection:a,defaultSortKey:i,defaultSortDirection:n="asc",onSortChange:s,sortableColumns:l,emptyTitle:c="No campaigns found",emptyDescription:d="Create a campaign or adjust filters to see results.",className:m}){let[p,b]=ia(i),[v,f]=ia(n),C=r!==void 0&&a!==void 0,y=C?r:p,T=C?a:v,N=u=>!l||l.length===0?!0:l.includes(u),x=(u,h)=>{if(h==="campaign")return u.campaignName.toLowerCase();if(h==="status")return u.status;if(h==="opens")return Number.parseFloat(u.opens.replace("%","").trim())||0;if(h==="clicks")return Number.parseFloat(u.clicks.replace("%","").trim())||0;if(h==="date")return new Date(u.date).getTime()||0;let P=u[h];return typeof P=="number"?P:String(P??"").toLowerCase()},k=Ns(()=>y?[...e].sort((h,P)=>{let M=x(h,y),D=x(P,y);return M<D?T==="asc"?-1:1:M>D?T==="asc"?1:-1:0}):e,[T,y,e]),g=u=>{let h=y===u&&T==="asc"?"desc":"asc";C||(b(u),f(h)),s?.(u,h)};return j("div",{className:o("overflow-x-auto rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-primary)]",m),children:Ut("table",{className:"w-full min-w-[600px] border-collapse",children:[j("thead",{children:j("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(u=>j("th",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left","uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:N(u.key)?Ut("button",{type:"button",onClick:()=>g(u.key),className:"inline-flex items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-sm)] transition-colors duration-[var(--inkblot-duration-fast)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:[u.label,y!==u.key?j(Ts,{className:"h-3.5 w-3.5","aria-hidden":!0}):T==="asc"?j(Cs,{className:"h-3.5 w-3.5","aria-hidden":!0}):j(ws,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):u.label},u.key))})}),j("tbody",{children:k.length===0?j("tr",{children:j("td",{colSpan:t.length,className:"px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-10)] text-center",children:Ut("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[j("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:c}),j("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:d})]})})}):k.map(u=>Ut("tr",{className:o("border-b border-[var(--inkblot-semantic-color-border-subtle)] last:border-b-0","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"),children:[j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:Ut("div",{className:"flex flex-col gap-0.5",children:[j("span",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:u.campaignName}),j("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:u.recipients})]})}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:j(Ls,{status:u.status,subtext:u.statusSubtext})}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:u.opens}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:u.clicks}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:u.date})]},u.id))})]})})}function Ls({status:t,subtext:e}){let r=Is[t],a=r.icon;return Ut("div",{className:"flex flex-col gap-0.5",children:[Ut("div",{className:o("inline-flex items-center gap-1.5","[font:var(--inkblot-semantic-typography-body-small)] font-medium",r.colorClass),children:[j(a,{className:"h-4 w-4 shrink-0"}),r.label]}),e?j("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}):null]})}import{Sparkles as Ds}from"lucide-react";import{File as As}from"lucide-react";import{jsx as Ce,jsxs as sa}from"react/jsx-runtime";function Xe({category:t,title:e,uses:r,onClick:a,className:i}){return sa("button",{type:"button",onClick:a,className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border border-[var(--inkblot-semantic-color-border-subtle)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-5)]","text-left transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",i),children:[sa("div",{className:"flex items-start justify-between gap-2",children:[Ce("span",{className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-tertiary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}),Ce("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:r})]}),Ce("h3",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}),Ce("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:Ce(As,{className:o("h-10 w-10","text-[var(--inkblot-semantic-color-text-tertiary)]")})})]})}import{jsx as Ze,jsxs as Gr}from"react/jsx-runtime";function Qe({title:t="EMAIL TEMPLATES",onGenerateWithAI:e,templates:r,onTemplateClick:a,className:i}){return Gr("section",{className:o("flex flex-col gap-[var(--inkblot-spacing-6)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-5)] shadow-[var(--inkblot-shadow-sm)]",i),children:[Gr("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] sm:flex-row sm:items-center sm:justify-between",children:[Ze("h2",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t}),e?Gr("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] w-fit items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:[Ze(Ds,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),"Generate with AI"]}):null]}),Ze("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] sm:grid-cols-2",children:r.map(n=>Ze(Xe,{category:n.category,title:n.title,uses:n.uses,onClick:()=>a?.(n)},n.id))})]})}import{ArrowUpRight as Rs,BadgeCheck as Hs,Building2 as Bs,TrendingUp as zs,UserRound as Os,Users as Fs}from"lucide-react";import{jsx as $,jsxs as Q}from"react/jsx-runtime";var Vs={Person:"border-l-[var(--inkblot-semantic-color-status-info)]",Organization:"border-l-[var(--inkblot-semantic-color-status-warning)]",Deal:"border-l-[var(--inkblot-semantic-color-status-success)]"},Gs={Person:Os,Organization:Bs,Deal:Hs},Ws={Person:"bg-[var(--inkblot-semantic-color-status-info)]/15 text-[var(--inkblot-semantic-color-status-info)]",Organization:"bg-[var(--inkblot-semantic-color-status-warning)]/15 text-[var(--inkblot-semantic-color-status-warning)]",Deal:"bg-[var(--inkblot-semantic-color-status-success)]/15 text-[var(--inkblot-semantic-color-status-success)]"},Ks=[{label:"Contacts",value:"12",icon:Fs},{label:"Open Deals",value:"3",icon:zs},{label:"Touchpoints",value:"47",icon:Rs}];function la({name:t,entityType:e,subtitle:r,statusLabel:a,metadata:i,edges:n=[],stats:s,connections:l,className:c}){let d=Gs[e];if(s!==void 0||l!==void 0){let p=s??Ks;return Q("article",{className:o("glass flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] p-[var(--inkblot-spacing-5)]",c),children:[Q("div",{className:"flex items-start justify-between",children:[Q("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[$("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10",children:$(d,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),Q("div",{children:[$("h3",{className:"text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?$("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]}),a?$("span",{className:"rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 px-2 py-0.5 font-mono text-xs text-[var(--inkblot-semantic-color-interactive-primary)]",children:a}):null]}),$("div",{className:"grid grid-cols-3 gap-[var(--inkblot-spacing-3)]",children:p.map(b=>{let v=b.icon;return Q("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-[var(--inkblot-spacing-3)]",children:[Q("div",{className:"mb-1 flex items-center gap-1.5",children:[v?$(v,{className:"h-3 w-3 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}):null,$("span",{className:"text-[10px] uppercase tracking-wider text-[var(--inkblot-semantic-color-text-tertiary)]",children:b.label})]}),$("span",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:b.value})]},b.label)})}),l?Q("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[$("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}return Q("article",{className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] border-l-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]",Vs[e],c),children:[Q("div",{className:"flex items-start justify-between gap-[var(--inkblot-spacing-3)]",children:[Q("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[$("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-secondary)]",children:$(d,{className:"h-5 w-5","aria-hidden":!0})}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[$("h3",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?$("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):$("span",{className:o("inline-flex w-fit items-center rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-body-small)] font-medium uppercase tracking-wide",Ws[e]),children:e})]})]}),a?$("span",{className:"rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 px-2 py-0.5 font-mono text-xs text-[var(--inkblot-semantic-color-interactive-primary)]",children:a}):null]}),i&&Object.keys(i).length>0?$("dl",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-2)] sm:grid-cols-2",children:Object.entries(i).map(([p,b])=>Q("div",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]",children:[$("dt",{className:"[font:var(--inkblot-semantic-typography-body-small)] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:p}),$("dd",{className:"[font:var(--inkblot-semantic-typography-body-medium)] text-[var(--inkblot-semantic-color-text-secondary)]",children:b})]},p))}):null,n.length>0?Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[$("h4",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),$("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:n.map((p,b)=>Q("li",{className:"rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:[p.type,p.target?` \u2192 ${p.target}`:""]},b))})]}):null,l?Q("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[$("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}import{forwardRef as Us}from"react";import{jsx as _s}from"react/jsx-runtime";var _t=Us(({className:t,error:e,disabled:r,...a},i)=>_s("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-lg)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-medium)] text-[var(--inkblot-semantic-color-text-primary)] shadow-[var(--inkblot-shadow-xs)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,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 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",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)] hover:bg-[var(--inkblot-semantic-color-background-primary)]",t),...a}));_t.displayName="Input";import{Component as js}from"react";import{jsx as Wr,jsxs as $s}from"react/jsx-runtime";var z=class extends js{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?$s("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:[Wr("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),Wr("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),Wr(we,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as yt,jsxs as Kr}from"react/jsx-runtime";function ca({title:t,insights:e,stats:r=[],commandValue:a="",onCommandChange:i,onCommandSubmit:n,className:s}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),n?.())};return yt(z,{className:s,children:Kr("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[yt("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?yt("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?Kr("div",{children:[yt("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),yt("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:r.map((c,d)=>Kr("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[yt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),yt("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},d))})]}):null,yt("div",{className:"mt-2",children:yt(_t,{type:"text",value:a,onChange:c=>i?.(c.target.value),onKeyDown:l,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}import{Component as qs}from"react";import{jsx as da}from"react/jsx-runtime";var Je=class extends qs{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:da("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:da("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as Xs}from"react/jsx-runtime";var Ys={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 tr({label:t,variant:e="info",className:r}){return Xs("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",Ys[e],r),children:t})}import{jsx as ae,jsxs as Qs}from"react/jsx-runtime";function Zs(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function ma({event:t,className:e}){let r=Zs(t.confidence_score),a=`${Math.round(t.confidence_score*100)}%`;return Qs("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:[ae("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),ae("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),ae("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),ae("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}),ae("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),ae(tr,{label:a,variant:r})]})}import{Clock3 as Js}from"lucide-react";import{jsx as Pt,jsxs as pa}from"react/jsx-runtime";var tl={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 el(){return Pt(Js,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}function ba({events:t,className:e}){return Pt(z,{className:e,children:Pt("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]"),children:t.map(r=>pa("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]/60 bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]",children:[Pt("div",{className:"mt-[var(--inkblot-spacing-1)] flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r.icon??Pt(el,{})}),pa("div",{className:"min-w-0 flex-1",children:[Pt("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),Pt("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?Pt("div",{className:o("mt-[var(--inkblot-spacing-2)] h-2 w-2 shrink-0 rounded-[var(--inkblot-radius-full)]",tl[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{TrendingDown as rl,TrendingUp as ol}from"lucide-react";import{jsx as St,jsxs as Te}from"react/jsx-runtime";var _r=36,Ur=2*Math.PI*_r;function er({label:t,value:e,subtext:r,trend:a,className:i}){let n=Math.min(100,Math.max(0,e)),s=Ur-n/100*Ur;return St(z,{className:i,children:Te("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]",children:[Te("div",{className:"relative",children:[Te("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[St("circle",{cx:"48",cy:"48",r:_r,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),St("circle",{cx:"48",cy:"48",r:_r,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:Ur,strokeDashoffset:s,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]"})]}),St("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:Te("span",{className:"flex items-center gap-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-heading-small)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[n,"%",a==="up"?St(ol,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0}):a==="down"?St(rl,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0}):null]})})]}),Te("div",{className:"text-center",children:[St("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?St("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}import{jsx as jt,jsxs as il}from"react/jsx-runtime";var al={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 nl({className:t}){return jt("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",t),"aria-hidden":!0,children:jt("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function ua({items:t,className:e}){return jt(z,{className:e,children:jt("ul",{className:o("flex flex-col gap-4 py-2"),children:t.map((r,a)=>il("li",{className:"flex items-center justify-between gap-4",children:[jt("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),jt("span",{className:o("flex items-center gap-1 text-sm font-medium",al[r.variant??"default"]),children:r.value!=null?r.value:jt(nl,{})})]},a))})})}import{jsx as sl}from"react/jsx-runtime";function Mt({className:t,...e}){return sl("div",{className:o("animate-shimmer rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]/40 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 Pe,jsxs as ll}from"react/jsx-runtime";function rr({className:t,...e}){return ll("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]",t),...e,children:[Pe(Mt,{className:"h-8 w-3/5"}),Pe(Mt,{className:"h-4 w-full"}),Pe(Mt,{className:"h-4 w-11/12"}),Pe(Mt,{className:"h-4 w-4/5"}),Pe(Mt,{className:"h-4 w-2/3"})]})}import{jsx as or,jsxs as va}from"react/jsx-runtime";function ar({children:t,loading:e=!1,title:r,className:a,onRetry:i}){return or(z,{className:a,onRetry:i,children:e?va("div",{className:o("flex flex-col gap-4",a),children:[r?or("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,or(rr,{})]}):va("div",{className:o("flex flex-col gap-4",a),children:[r?or("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}import{Plus as cl}from"lucide-react";import{jsx as Se,jsxs as nr}from"react/jsx-runtime";function ne({title:t,subtitle:e,icon:r,action:a,className:i}){return nr("header",{className:o("flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between","pb-[var(--inkblot-spacing-2)]",i),children:[nr("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[r?Se("div",{className:o("flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[color:var(--inkblot-semantic-color-status-warning)]"),children:r}):null,nr("div",{className:"min-w-0",children:[Se("h1",{className:o("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),e?Se("p",{className:o("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:e}):null]})]}),a?Se("div",{className:"mt-[var(--inkblot-spacing-4)] shrink-0 sm:mt-0",children:a}):null]})}function ie({label:t,onClick:e,icon:r,className:a}){return nr("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-medium)] font-semibold","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]",a),children:[r??Se(cl,{className:"h-4 w-4"}),t]})}import{Link as dl}from"react-router-dom";import{jsx as jr,jsxs as fa}from"react/jsx-runtime";function ir({resetErrorBoundary:t}){return fa("div",{role:"alert",className:o("flex min-h-[50vh] flex-col items-center justify-center gap-[var(--inkblot-spacing-6)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-8)]","bg-[var(--inkblot-semantic-color-background-primary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:[jr("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"This page is unavailable"}),fa("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[jr("button",{type:"button",onClick:t,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Retry"}),jr(dl,{to:"/",className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-interactive-primary)] underline-offset-4 hover:underline","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Go to home"})]})]})}import{ErrorBoundary as ml}from"react-error-boundary";import{useNavigate as pl}from"react-router-dom";import{jsx as bl}from"react/jsx-runtime";function ga({children:t,fallback:e}){let r=pl();return bl(ml,{FallbackComponent:e??ir,onReset:()=>{r("/")},children:t})}import{forwardRef as ul}from"react";import{Search as vl}from"lucide-react";import{jsx as $r,jsxs as ka}from"react/jsx-runtime";var Et=ul(({className:t,label:e,error:r,disabled:a,...i},n)=>ka("div",{className:"flex flex-col gap-1",children:[e?$r("label",{htmlFor:i.id,className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}):null,ka("div",{className:o("flex items-center gap-2 rounded-[var(--inkblot-radius-full)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border transition-colors duration-[var(--inkblot-duration-fast)]","focus-within:ring-2 focus-within:ring-[var(--inkblot-semantic-color-border-focus)] focus-within:ring-offset-2 focus-within:ring-offset-[var(--inkblot-semantic-color-background-primary)]",r?"border-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",a&&"opacity-[var(--inkblot-opacity-disabled)] pointer-events-none cursor-not-allowed"),children:[$r(vl,{className:o("ml-[var(--inkblot-spacing-4)] h-4 w-4 shrink-0","text-[var(--inkblot-semantic-color-text-tertiary)]")}),$r("input",{ref:n,type:"search",disabled:a,"aria-invalid":r,"aria-label":e??"Search",className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full flex-1 bg-transparent px-2 py-[var(--inkblot-spacing-2)] pr-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none","disabled:cursor-not-allowed",t),...i})]})]}));Et.displayName="SearchBar";import{jsx as fl}from"react/jsx-runtime";function ya({children:t,columns:e=4,className:r}){return fl("div",{className:o("grid gap-[var(--inkblot-spacing-4)]",{1:"grid-cols-1",2:"grid-cols-1 sm:grid-cols-2",3:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"}[e],r),children:t})}import{useCallback as gl,useMemo as kl,useState as yl}from"react";import{jsx as Me,jsxs as xl}from"react/jsx-runtime";function xa({items:t,activeItemId:e,defaultActiveItemId:r,onActiveItemChange:a,onItemClick:i,className:n}){let s=kl(()=>r!==void 0?r:t.find(b=>b.active)?.id,[r,t]),[l,c]=yl(s),d=e!==void 0,m=d?e:l,p=gl((b,v)=>{if(v.disabled){b.preventDefault();return}d||c(v.id),i?.(v.id,v),v.onClick?.(v.id),a?.(v.id,v)},[d,a,i]);return Me(z,{className:n,children:Me("nav",{className:o("flex w-16 flex-col items-center gap-[var(--inkblot-spacing-2)] border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-4)]"),"aria-label":"Navigation",children:t.map(b=>{let v=m?b.id===m:!!b.active;return xl("button",{type:"button",disabled:b.disabled,onClick:f=>p(f,b),"aria-current":v?"page":void 0,className:o("relative flex w-full flex-col items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-lg)] border border-transparent px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-2)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",v?"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-primary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),children:[v?Me("span",{className:"absolute left-[-0.5rem] top-1/2 h-6 w-1 -translate-y-1/2 rounded-r-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null,Me("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:b.icon}),b.label?Me("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium",children:b.label}):null]},b.id)})})})}import{jsx as nt,jsxs as qr}from"react/jsx-runtime";var ha={success:"text-[var(--inkblot-semantic-color-status-success)]",error:"text-[var(--inkblot-semantic-color-status-error)]",neutral:"text-[var(--inkblot-semantic-color-text-secondary)]"};function sr({items:t,className:e}){return nt("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>nt(hl,{item:r},r.label))})}function hl({item:t}){let e=t.changeVariant??"neutral",r=ha[e];return qr("div",{className:o("flex flex-col gap-1 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[nt("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),nt("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),t.change?nt("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}function Na({items:t,className:e}){return nt("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>nt(Nl,{item:r},r.label))})}function Nl({item:t}){let e=t.changeVariant??"neutral",r=ha[e],a=t.chartData??[],i=Math.max(...a,1);return qr("div",{className:o("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[nt("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),qr("div",{className:"flex items-end justify-between gap-2",children:[nt("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),a.length>0?nt("div",{className:"flex h-8 items-end gap-0.5",children:a.map((n,s)=>nt("div",{className:"w-1 min-w-[2px] rounded-sm bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-80",style:{height:`${n/i*100}%`,minHeight:4}},s))}):null]}),t.change?nt("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}import{jsx as wa,jsxs as wl}from"react/jsx-runtime";function lr({tabs:t,activeTabId:e,onTabChange:r,className:a}){return wa("nav",{role:"tablist","aria-label":"Tabs",className:o("flex gap-0 pt-[var(--inkblot-spacing-2)]",a),children:t.map(i=>{let n=i.id===e;return wl("button",{role:"tab","aria-selected":n,"aria-controls":`panel-${i.id}`,id:`tab-${i.id}`,type:"button",onClick:()=>r(i.id),className:o("relative px-[var(--inkblot-spacing-5)] py-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",n?["font-semibold text-[var(--inkblot-semantic-color-text-primary)]","bg-[var(--inkblot-semantic-color-background-secondary)]","rounded-t-[var(--inkblot-radius-lg)]"]:["text-[var(--inkblot-semantic-color-text-secondary)]","hover:text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"]),children:[i.label,n?wa("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null]},i.id)})})}import{Calendar as Cl,Check as Tl,User as Pl}from"lucide-react";import{jsx as $t,jsxs as Ee}from"react/jsx-runtime";var Sl={urgent:"bg-[var(--inkblot-semantic-color-status-error)]/20 text-[var(--inkblot-semantic-color-status-error)] border-[var(--inkblot-semantic-color-status-error)]/30",high:"bg-[var(--inkblot-semantic-color-status-warning)]/20 text-[var(--inkblot-semantic-color-status-warning)] border-[var(--inkblot-semantic-color-status-warning)]/30",medium:"bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)] border-[var(--inkblot-semantic-color-status-success)]/30",low:"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] border-[var(--inkblot-semantic-color-border-subtle)]"};function cr({id:t,title:e,company:r,priority:a,date:i,assignee:n,completed:s=!1,onToggle:l,onClick:c,className:d}){let m=Sl[a];return Ee("div",{role:"button",tabIndex:0,onClick:()=>c?.(t),onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),c?.(t))},className:o("flex items-center gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","cursor-pointer",d),children:[$t("button",{type:"button",onClick:p=>{p.stopPropagation(),l?.(t)},"aria-label":s?"Mark as incomplete":"Mark as complete","aria-pressed":s,className:o("flex h-5 w-5 shrink-0 items-center justify-center rounded-full","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",s?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-2 border-[var(--inkblot-semantic-color-border-default)] bg-transparent"),children:s?$t(Tl,{className:"h-3 w-3",strokeWidth:3}):null}),Ee("div",{className:"min-w-0 flex-1",children:[$t("p",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]",s&&"line-through text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}),$t("p",{className:o("mt-0.5 [font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]",s&&"line-through"),children:r})]}),Ee("div",{className:"flex shrink-0 flex-wrap items-center justify-end gap-[var(--inkblot-spacing-3)]",children:[$t("span",{className:o("rounded-[var(--inkblot-radius-md)] border px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium",m),children:a.charAt(0).toUpperCase()+a.slice(1)}),Ee("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[$t(Cl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),i]}),Ee("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[$t(Pl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),n]})]})]})}import{CircleDot as Ml,Clock as El,CheckCircle as Il}from"lucide-react";import{jsx as se,jsxs as Ca}from"react/jsx-runtime";var Ll={todo:Ml,in_progress:El,done:Il};function dr({sections:t,onTaskToggle:e,onTaskClick:r,className:a}){return se("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-8)]",a),children:t.map(i=>{let n=Ll[i.id],s=i.id==="done";return Ca("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[Ca("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[se(n,{className:o("h-5 w-5 shrink-0",s?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)]")}),se("h2",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:i.label}),se("span",{className:o("rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:i.count})]}),se("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:i.tasks.map(l=>se(cr,{...l,completed:s,onToggle:e,onClick:r},l.id))})]},i.id)})})}import{Mail as Ta,FileText as mr,Zap as Al,Phone as Pa,Link2 as Dl}from"lucide-react";import{jsx as ct,jsxs as Sa}from"react/jsx-runtime";function Rl(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 Hl={EMAIL_OPENED:Ta,EMAIL_SENT:Ta,INVOICE_PAID:mr,INVOICE_OVERDUE:mr,CONTRACT_SIGNED:mr,STAGE_CHANGED:Al,CALL_COMPLETED:Pa,PHONE_CALL:Pa,RELATIONSHIP_DETECTED:Dl};function Bl(t){return Hl[t]??mr}function zl(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function Ol(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function pr({events:t,onEntitySelect:e,findEntity:r,emptyMessage:a="No recent activity",className:i}){let n=e?s=>{let l=r?.(s.subject)??r?.(s.actor);l&&e(l)}:void 0;return ct(z,{children:ct("div",{className:o("space-y-2",i),children:t.length===0?ct("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:a}):t.map(s=>{let c=!!(r?.(s.subject)??r?.(s.actor))&&!!n,d=Bl(s.event_type),m=Sa("div",{className:"flex flex-1 items-center gap-3",children:[ct(d,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),ct("div",{className:`h-2 w-2 shrink-0 rounded-full ${Rl(s.confidence_score)}`,"aria-hidden":!0}),Sa("div",{className:"min-w-0 flex-1",children:[ct("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:zl(s)}),ct("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:Ol(s)})]}),ct("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.timestamp})]}),p=s.id??`${s.actor}-${s.subject}-${s.timestamp}`;return ct("div",{children:c?ct("button",{type:"button",onClick:()=>n(s),className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",children:m}):ct("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:m})},p)})})})}import{NavLink as Fl}from"react-router-dom";import{ClipboardList as Vl,Brain as Gl,BarChart3 as Wl,Network as Kl,Activity as Ul,Settings as _l,Sparkles as jl}from"lucide-react";import{jsx as qt,jsxs as ql}from"react/jsx-runtime";var $l=[{id:"home",path:"/",icon:Vl,label:"Home"},{id:"intelligence",path:"/intelligence",icon:Gl,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:Wl,label:"Pipeline"},{id:"graph",path:"/graph",icon:Kl,label:"Graph"},{id:"events",path:"/events",icon:Ul,label:"Events"},{id:"settings",path:"/settings",icon:_l,label:"Settings"}];function Ma({items:t=$l,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:a}){return qt(z,{children:ql("nav",{className:o("flex h-full flex-col gap-[var(--inkblot-spacing-4)] border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-3)]",a),children:[qt("div",{className:"flex flex-col items-center gap-2",children:qt("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]",title:r,children:e??qt(jl,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})})}),qt("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-2)]",children:t.map(i=>{let n=i.icon;return qt(Fl,{to:i.path,end:i.path==="/","aria-label":i.label,className:({isActive:s})=>`flex items-center justify-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-transparent px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-2)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] ${s?"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:border-[var(--inkblot-semantic-color-border-default)]/60 hover:bg-[var(--inkblot-semantic-color-background-primary)]"}`,children:qt(n,{size:20,"aria-hidden":!0})},i.id)})})]})})}import{useRef as Yl}from"react";import{Loader2 as Xl,Paperclip as Zl,Send as Ql,Sparkles as Jl}from"lucide-react";import{jsx as et,jsxs as Yr}from"react/jsx-runtime";function Ea({prompt:t,onPromptChange:e,onSubmit:r,onFilesAttach:a,isProcessing:i,placeholder:n="Ask anything \u2014 deals, contacts, forecasts...",subtitle:s="Citron OS v1.0 \u2014 AI-native Revenue & Operations Platform",className:l}){let c=Yl(null),d=p=>{p.key==="Enter"&&!p.shiftKey&&(p.preventDefault(),r())},m=p=>{let b=p.target.files;b&&b.length>0&&a&&a(Array.from(b)),p.target.value=""};return Yr("div",{className:o("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-4)]",l),children:[Yr("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[et("div",{className:"mt-[var(--inkblot-spacing-1)] flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)]",children:et(Jl,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),et("div",{className:"flex-1",children:Yr("div",{className:o("flex items-end gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-sm)]",i&&"pointer-events-none"),"aria-busy":i,children:[et("input",{ref:c,type:"file",multiple:!0,onChange:m,className:"sr-only","aria-hidden":!0}),et("button",{type:"button",onClick:()=>c.current?.click(),disabled:i,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)] 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-secondary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Attach files",children:et(Zl,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),et("textarea",{value:t,onChange:p=>e(p.target.value),onKeyDown:d,placeholder:n,rows:1,disabled:i,className:o("min-h-[2.25rem] min-w-0 flex-1 resize-none bg-transparent py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none","disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]")}),et("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center",children:i?et("div",{className:"flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:et(Xl,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):et("button",{type:"button",onClick:r,className:o("flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)] transition-[background,box-shadow] duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","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-secondary)]"),"aria-label":"Send",children:et(Ql,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})})]}),s&&et("p",{className:"mt-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}import{jsx as le,jsxs as Xr}from"react/jsx-runtime";function Ia({events:t,title:e="Event Stream",showLive:r=!0,className:a}){return le(z,{children:Xr("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:[Xr("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[le("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:e}),r&&Xr("div",{className:"flex items-center gap-2",children:[le("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),le("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),le("div",{className:"flex-1 overflow-auto p-4",children:le(pr,{events:t})})]})})}import{jsx as rt,jsxs as Yt}from"react/jsx-runtime";var tc=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],ec=[{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 La({loading:t,kpiCards:e=tc,aiInsights:r=ec,title:a="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:n}){return Yt("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",n),children:[Yt("div",{children:[rt("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}),rt("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]}),rt(ar,{loading:t,title:"",children:rt(z,{children:Yt("div",{className:"flex flex-col gap-4",children:[rt("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:e.map(s=>rt(er,{label:s.label,value:s.value,subtext:s.subtext,trend:s.trend},s.label))}),Yt("div",{children:[rt("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"}),rt("div",{className:"flex flex-col gap-4",children:r.map(s=>rt(z,{children:Yt("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[Yt("div",{className:"min-w-0 flex-1",children:[rt("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:s.title}),rt("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.description})]}),Yt("div",{className:"flex shrink-0 flex-col items-center",children:[rt("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:s.confidence}),rt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},s.title))})]})]})})})]})}import{jsx as Ie,jsxs as Zr}from"react/jsx-runtime";function Aa({navigation:t,eventStream:e,commandBar:r,children:a,className:i,eventStreamWidth:n="w-80"}){return Zr("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[Ie("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:t}),Ie("main",{className:"flex flex-1 flex-col overflow-hidden",children:Zr("div",{className:"flex min-h-0 flex-1",children:[Zr("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[Ie("div",{className:"flex-1 overflow-auto px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-6)]",children:a}),Ie("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r})]}),e&&Ie("aside",{className:o("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)]",n),children:e})]})})]})}import{useState as Qr}from"react";import{Check as rc,X as oc}from"lucide-react";import{jsx as ce,jsxs as br}from"react/jsx-runtime";var ac=["urgent","high","medium","low"];function ur({onConfirm:t,onCancel:e,className:r}){let[a,i]=Qr(""),[n,s]=Qr(""),[l,c]=Qr("medium");return br("form",{onSubmit:m=>{m.preventDefault();let p=a.trim();p&&(t({title:p,company:n.trim()||void 0,priority:l}),i(""),s(""),c("medium"))},className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","p-[var(--inkblot-spacing-4)]",r),children:[ce("input",{type:"text",value:a,onChange:m=>i(m.target.value),placeholder:"Task title...",autoFocus:!0,required:!0,className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),ce("input",{type:"text",value:n,onChange:m=>s(m.target.value),placeholder:"Company (optional)",className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),ce("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:ac.map(m=>ce("button",{type:"button",onClick:()=>c(m),className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","transition-colors duration-[var(--inkblot-duration-fast)]",l===m?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]/80"),children:m.charAt(0).toUpperCase()+m.slice(1)},m))}),br("div",{className:"flex justify-end gap-[var(--inkblot-spacing-2)]",children:[br("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[ce(oc,{className:"h-4 w-4"}),"Cancel"]}),br("button",{type:"submit",disabled:!a.trim(),className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-interactive-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed"),children:[ce(rc,{className:"h-4 w-4"}),"Add Task"]})]})]})}import{useState as yr,useMemo as Ra}from"react";import{ClipboardList as Nc,LayoutGrid as wc,List as Cc}from"lucide-react";import{useMemo as lc,useState as cc}from"react";import{useState as nc}from"react";import{jsx as sc}from"react/jsx-runtime";var ic={sm:"h-8 px-3 text-xs",md:"h-10 px-4 text-sm",lg:"h-11 px-5 text-sm"};function Jr({pressed:t,defaultPressed:e=!1,onPressedChange:r,size:a="md",variant:i="default",disabled:n,className:s,children:l,...c}){let[d,m]=nc(e),p=t??d;return sc("button",{type:"button","aria-pressed":p,disabled:n,onClick:()=>{if(n)return;let v=!p;t===void 0&&m(v),r?.(v)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border font-medium transition-colors 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",ic[a],i==="default"?p?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]":p?"border-[var(--inkblot-semantic-color-text-primary)] bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-transparent text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",s),...c,children:l})}import{jsx as Da,jsxs as dc}from"react/jsx-runtime";function to({type:t="single",items:e,value:r,defaultValue:a,onValueChange:i,className:n,...s}){let l=a??(t==="single"?"":[]),[c,d]=cc(l),m=r??c,p=lc(()=>{if(t==="single"){let f=typeof m=="string"?m:"";return new Set(f?[f]:[])}let v=Array.isArray(m)?m:[];return new Set(v)},[m,t]),b=v=>{if(t==="single"){let y=p.has(v)?"":v;r===void 0&&d(y),i?.(y);return}let f=Array.isArray(m)?m:[],C=f.includes(v)?f.filter(y=>y!==v):[...f,v];r===void 0&&d(C),i?.(C)};return Da("div",{className:o("inline-flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-1",n),...s,children:e.map(v=>{let f=v.icon;return dc(Jr,{pressed:p.has(v.id),onPressedChange:()=>b(v.id),disabled:v.disabled,size:"sm",children:[f?Da(f,{className:"mr-2 size-4"}):null,v.label]},v.id)})})}import{DragDropContext as gc}from"@hello-pangea/dnd";import{useCallback as kc,useMemo as yc}from"react";import{Draggable as uc}from"@hello-pangea/dnd";import{useState as mc}from"react";import{User as pc}from"lucide-react";import{jsx as vr}from"react/jsx-runtime";var bc={sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-14 w-14 text-base"};function eo({src:t,alt:e="Avatar",fallback:r,size:a="md",disabled:i=!1,className:n}){let[s,l]=mc(!1),c=!!(t&&!s);return vr("span",{"aria-disabled":i,className:o("inline-flex shrink-0 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)]",i&&"opacity-[var(--inkblot-opacity-disabled)]",bc[a],n),children:c?vr("img",{src:t,alt:e,onError:()=>l(!0),className:"h-full w-full object-cover"}):r?vr("span",{className:"font-medium uppercase",children:r.slice(0,2)}):vr(pc,{className:"h-4 w-4"})})}import{jsx as It,jsxs as ro}from"react/jsx-runtime";var vc={low:"bg-[var(--inkblot-semantic-color-status-info)]",medium:"bg-[var(--inkblot-semantic-color-status-success)]",high:"bg-[var(--inkblot-semantic-color-status-warning)]",urgent:"bg-[var(--inkblot-semantic-color-status-error)]"};function fr({task:t,index:e,className:r}){let a=t.jiraKey??`TASK-${t.id}`;return It(uc,{draggableId:t.id,index:e,children:(i,n)=>ro("div",{ref:i.innerRef,...i.draggableProps,...i.dragHandleProps,className:o("relative flex cursor-grab flex-col gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]","active:cursor-grabbing",n.isDragging&&"shadow-[var(--inkblot-shadow-lg)] ring-2 ring-[var(--inkblot-semantic-color-border-focus)]",r),children:[It("div",{className:"absolute right-[var(--inkblot-spacing-3)] top-[var(--inkblot-spacing-3)] h-8 w-1 rounded-[var(--inkblot-radius-sm)]",children:It("span",{className:o("block h-full w-full rounded-[var(--inkblot-radius-sm)]",vc[t.priority])})}),It("p",{className:o("pr-[var(--inkblot-spacing-4)] text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-body-medium)] font-semibold"),children:t.title}),It("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.company}),ro("div",{className:"flex items-end justify-between gap-[var(--inkblot-spacing-2)]",children:[ro("div",{className:"flex flex-col gap-0.5",children:[It("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}),t.date?It("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.date}):null]}),It(eo,{size:"sm",fallback:t.assignee.replace(/\s/g,"").slice(0,2).toUpperCase(),alt:t.assignee})]})]})})}import{Droppable as fc}from"@hello-pangea/dnd";import{jsx as oo,jsxs as ao}from"react/jsx-runtime";function gr({columnId:t,title:e,count:r,children:a,className:i}){return ao("div",{className:o("flex min-w-[min(100%,280px)] flex-1 flex-col rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-tertiary)]",i),children:[ao("header",{className:o("flex items-center justify-between gap-[var(--inkblot-spacing-3)] border-b border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]"),children:[oo("h2",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]","font-semibold uppercase tracking-wide"),children:e}),oo("span",{className:o("min-w-[var(--inkblot-size-touch-target-min)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-0.5 text-center","bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium"),children:r})]}),oo(fc,{droppableId:t,children:(n,s)=>ao("div",{ref:n.innerRef,...n.droppableProps,className:o("flex min-h-[200px] flex-1 flex-col gap-[var(--inkblot-spacing-3)] p-[var(--inkblot-spacing-3)]",s.isDraggingOver&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]/30"),children:[a,n.placeholder]})})]})}import{jsx as kr}from"react/jsx-runtime";var xc=[{id:"todo",title:"TO DO"},{id:"in_progress",title:"IN PROGRESS"},{id:"done",title:"DONE"}];function hc(t,e){let{destination:r,source:a,draggableId:i}=e;if(!r||a.droppableId===r.droppableId&&a.index===r.index)return t;let n=r.droppableId,s=t.find(b=>b.id===i);if(!s)return t;let l=t.filter(b=>b.id!==i),c={...s,status:n},m=[...l.filter(b=>b.status===n)];return m.splice(r.index,0,c),["todo","in_progress","done"].flatMap(b=>b===n?m:l.filter(v=>v.status===b))}function de({tasks:t,onTasksChange:e,className:r}){let a=kc(n=>{e(hc(t,n))},[t,e]),i=yc(()=>{let n={todo:[],in_progress:[],done:[]};for(let s of t)n[s.status].push(s);return n},[t]);return kr(gc,{onDragEnd:a,children:kr("div",{className:o("flex w-full flex-col gap-[var(--inkblot-spacing-4)] lg:flex-row lg:items-start lg:overflow-x-auto",r),children:xc.map(n=>{let s=i[n.id];return kr(gr,{columnId:n.id,title:n.title,count:s.length,children:s.map((l,c)=>kr(fr,{task:l,index:c},l.id))},n.id)})})})}import{jsx as bt,jsxs as Ha}from"react/jsx-runtime";function Lt(t,e,r="You",a){let n=new Date().toLocaleDateString("en-US",{month:"short",day:"numeric"})||"Today";return{id:e,title:t.title,company:t.company??"Unassigned",priority:t.priority??"medium",date:n,assignee:r,status:"todo",jiraKey:a}}function Tc(t){let e={todo:t.filter(r=>r.status==="todo"),in_progress:t.filter(r=>r.status==="in_progress"),done:t.filter(r=>r.status==="done")};return[{id:"todo",label:"TO DO",count:e.todo.length,tasks:e.todo},{id:"in_progress",label:"IN PROGRESS",count:e.in_progress.length,tasks:e.in_progress},{id:"done",label:"DONE",count:e.done.length,tasks:e.done}]}var At=[Lt({title:"Follow up with Sarah Chen on proposal",company:"Acme Corp",priority:"high"},"1","You","CRM-104"),Lt({title:"Schedule demo with engineering team",company:"TechStart Inc",priority:"medium"},"2","Alex M.","CRM-112"),Lt({title:"Prepare quarterly report slides",company:"GlobalTech",priority:"low"},"3","Sam R.","CRM-98"),Lt({title:"Review Q1 marketing budget",company:"TechStart Inc",priority:"medium"},"4","Jamie L.","CRM-120"),Lt({title:"Draft partnership agreement",company:"Enterprise Co",priority:"urgent"},"5","You","CRM-88"),Lt({title:"Send contract to legal team",company:"GlobalTech",priority:"low"},"6","Lisa K."),Lt({title:"Update CRM with new contacts",company:"Acme Corp",priority:"low"},"7","Morgan P.","CRM-130")];At[0].status="todo";At[1].status="todo";At[2].status="todo";At[3].status="in_progress";At[4].status="in_progress";At[5].status="done";At[6].status="done";function Ba({initialTasks:t=At,onTaskCreate:e,onTaskToggle:r,onTaskClick:a,onTasksReorder:i,className:n}){let[s,l]=yr(t),[c,d]=yr(!1),[m,p]=yr(""),[b,v]=yr("list"),f=Ra(()=>{if(!m.trim())return s;let u=m.toLowerCase();return s.filter(h=>h.title.toLowerCase().includes(u)||h.company.toLowerCase().includes(u)||(h.jiraKey?.toLowerCase().includes(u)??!1))},[s,m]),C=Ra(()=>Tc(f),[f]),y=s.filter(u=>u.status!=="done").length,T=s.filter(u=>u.priority==="urgent"&&u.status!=="done").length,N=`${y} pending${T>0?` \xB7 ${T} urgent`:""}`,x=u=>{let h=`task-${Date.now()}`,P=Lt(u,h);l(M=>[P,...M]),d(!1),e?.(u)},k=u=>{l(h=>h.map(P=>{if(P.id!==u)return P;let M=P.status==="done"?"todo":"done";return{...P,status:M}})),r?.(u)},g=u=>{l(u),i?.(u)};return bt("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:Ha("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[bt(ne,{title:"Tasks",subtitle:N,icon:bt(Nc,{className:"h-5 w-5"}),action:bt(ie,{label:"New Task",onClick:()=>d(u=>!u)})}),Ha("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] xl:flex-row xl:items-center xl:gap-[var(--inkblot-spacing-4)]",children:[bt(to,{type:"single",value:b,onValueChange:u=>{(u==="list"||u==="kanban")&&v(u)},items:[{id:"list",label:"List View",icon:Cc},{id:"kanban",label:"Kanban Board View",icon:wc}]}),bt("div",{className:"min-w-0 flex-1",children:bt(Et,{placeholder:b==="list"?"Search tasks (title, company, Jira key)...":"Switch to list view to search and filter tasks",value:m,onChange:u=>p(u.target.value),disabled:b==="kanban"})})]}),c?bt(ur,{onConfirm:x,onCancel:()=>d(!1)}):null,b==="list"?bt(dr,{sections:C,onTaskToggle:k,onTaskClick:a}):bt(de,{tasks:s,onTasksChange:g})]})})}import{useState as me,useMemo as no}from"react";import{Mail as Pc}from"lucide-react";import{Fragment as Ic,jsx as Z,jsxs as pe}from"react/jsx-runtime";var Sc=`Hi [Name],
1
+ import{useState as ta,useRef as Hr,useEffect as ea,useCallback as _e}from"react";import{Loader2 as ra,Mic as Zi,Paperclip as Qi,Send as Ji,Sparkles as oa}from"lucide-react";import{clsx as _i}from"clsx";import{twMerge as ji}from"tailwind-merge";function o(...t){return ji(_i(t))}import{useLayoutEffect as $i}from"react";function Jo(t,e,r){let a=r?.maxLines??10,i=r?.disabled??!1;$i(()=>{let n=t.current;if(!n||i)return;let s=window.getComputedStyle(n),l=parseFloat(s.lineHeight)||20,c=parseFloat(s.paddingTop)+parseFloat(s.paddingBottom),d=l+c,m=l*a+c;n.style.height="auto";let p=n.scrollHeight,b=Math.min(Math.max(p,d),m);n.style.height=`${b}px`,n.style.overflowY=p>m?"auto":"hidden"},[e,a,i])}import{FileText as qi,X as Yi}from"lucide-react";import{jsx as te,jsxs as Xi}from"react/jsx-runtime";function Ue({attachments:t,onRemove:e,className:r}){return t.length===0?null:te("div",{className:o("flex flex-wrap gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-3)] pb-[var(--inkblot-spacing-1)] pt-[var(--inkblot-spacing-3)]",r),children:t.map((a,i)=>Xi("div",{className:"group relative flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]",children:[a.kind==="image"&&a.previewUrl?te("img",{src:a.previewUrl,alt:a.file.name,className:"h-8 w-8 rounded-[var(--inkblot-radius-sm)] object-cover"}):te(qi,{size:16,className:"shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),te("span",{className:"max-w-[8rem] truncate text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:a.file.name}),te("button",{type:"button",onClick:()=>e(i),className:"flex h-4 w-4 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-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]","aria-label":`Remove ${a.file.name}`,children:te(Yi,{size:10})})]},`${a.file.name}-${i}-${a.file.size}`))})}import{jsx as V,jsxs as Kt}from"react/jsx-runtime";function ee({messages:t=[],onSend:e,isProcessing:r=!1,placeholder:a="Ask Citron Intelligence...",emptyStateMessage:i="Ask anything \u2014 deals, contacts, forecasts...",onVoiceClick:n,className:s}){let[l,c]=ta(""),[d,m]=ta([]),p=Hr(null),b=Hr(null),v=Hr(null);Jo(v,l),ea(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[t]),ea(()=>()=>{d.forEach(N=>{N.previewUrl&&URL.revokeObjectURL(N.previewUrl)})},[]);let f=_e(()=>{let N=l.trim();if(!(!N&&d.length===0)&&!r){try{e?.({text:N,files:d.map(x=>x.file)})}catch{}c(""),m(x=>(x.forEach(k=>{k.previewUrl&&URL.revokeObjectURL(k.previewUrl)}),[])),requestAnimationFrame(()=>{v.current?.focus()})}},[l,d,r,e]),C=_e(N=>{N.key==="Enter"&&!N.shiftKey&&(N.preventDefault(),f())},[f]),y=_e(N=>{let x=N.target.files;if(!x||x.length===0)return;let k=Array.from(x).map(g=>{let u=g.type.startsWith("image/");return{file:g,kind:u?"image":"file",previewUrl:u?URL.createObjectURL(g):void 0}});m(g=>[...g,...k]),N.target.value=""},[]),T=_e(N=>{m(x=>{let k=x[N];return k?.previewUrl&&URL.revokeObjectURL(k.previewUrl),x.filter((g,u)=>u!==N)})},[]);return Kt("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-primary)]",s),children:[t.length===0?V("div",{className:"flex flex-1 items-center justify-center",children:Kt("div",{className:"text-center",children:[V(oa,{className:"mx-auto mb-[var(--inkblot-spacing-2)] h-5 w-5 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),V("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):V("div",{ref:p,className:"flex-1 overflow-y-auto",children:Kt("div",{className:"mx-auto flex max-w-4xl flex-col gap-[var(--inkblot-spacing-4)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-6)]",children:[t.map(N=>N.role==="user"?V("div",{className:"flex justify-end",children:V("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-inverse)]",children:N.renderedContent??N.content})},N.id):Kt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[V(oa,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),V("div",{className:"max-w-[90%] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)]",children:N.renderedContent??N.content})]},N.id)),r&&Kt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[V(ra,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 animate-spin text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),V("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Thinking..."})]})]})}),V("div",{className:"shrink-0 bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",children:V("div",{className:"mx-auto max-w-4xl",children:Kt("div",{className:o("flex flex-col overflow-hidden rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]"),children:[V("input",{ref:b,type:"file",multiple:!0,onChange:y,className:"sr-only","aria-hidden":!0}),V(Ue,{attachments:d,onRemove:T}),V("textarea",{ref:v,value:l,onChange:N=>c(N.target.value),onKeyDown:C,placeholder:a,rows:1,className:o("min-h-[2.25rem] w-full resize-none border-0 bg-transparent px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-0")}),Kt("div",{className:"flex items-center justify-end gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-2)] pb-[var(--inkblot-spacing-3)] pt-[var(--inkblot-spacing-1)]",children:[V("button",{type:"button",onClick:()=>b.current?.click(),disabled:r,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] 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":"Attach files",children:V(Qi,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),V("button",{type:"button",onClick:()=>n?.(),disabled:r,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] 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":"Voice input",children:V(Zi,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),V("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center",children:r?V("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:V(ra,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):V("button",{type:"button",onClick:f,className:o("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[#e2d5c0] text-white transition-[background,box-shadow] duration-[var(--inkblot-duration-fast)]","hover:bg-[#d4c4ad]","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":"Send",children:V(Ji,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})]})})})]})}import{useEffect as ts,useCallback as es}from"react";import{X as rs}from"lucide-react";import{Fragment as aa,jsx as kt,jsxs as re}from"react/jsx-runtime";function os({open:t,onOpenChange:e,title:r="Assistant",subtitle:a,className:i,...n}){let s=es(()=>e?.(!1),[e]);ts(()=>{if(!t)return;let c=d=>{d.key==="Escape"&&s()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,s]);let l=re("header",{className:o("flex shrink-0 flex-col gap-3 border-b border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-4 py-3 sm:flex-row sm:items-center sm:justify-between sm:gap-3 md:px-6 md:py-4 lg:px-8"),children:[re("div",{className:"min-w-0",children:[kt("h1",{className:o("truncate text-base font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]","sm:text-lg"),children:r}),a?kt("p",{className:"mt-0.5 text-[10px] leading-snug text-[var(--inkblot-semantic-color-text-tertiary)]",children:a}):null]}),kt("div",{className:"flex min-w-0 flex-wrap items-center justify-start gap-2 sm:justify-end",children:kt("button",{type:"button",onClick:s,className:o("flex h-8 w-8 shrink-0 items-center justify-center rounded-lg","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-secondary)]","transition-[background-color,color,border-color] duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]","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":"Close",children:kt(rs,{className:"h-4 w-4",strokeWidth:2,"aria-hidden":!0})})})]});return re(aa,{children:[kt("aside",{role:"complementary","aria-label":r,className:o("hidden md:flex","shrink-0 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)]","transition-[width] duration-300 ease-[var(--inkblot-easing-default)]",t?"w-96":"w-0 border-l-0",i),children:t&&re(aa,{children:[l,kt(ee,{...n,className:"min-h-0 flex-1"})]})}),re("div",{className:o("fixed inset-0 z-50 md:hidden",t?"pointer-events-auto":"pointer-events-none"),children:[kt("button",{type:"button","aria-label":"Close panel",onClick:s,className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70 transition-opacity duration-300",t?"opacity-100":"opacity-0")}),re("div",{role:"dialog","aria-modal":"true","aria-label":r,className:o("absolute inset-y-0 right-0 flex w-full max-w-sm flex-col border-l border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-lg)] transition-transform duration-300 ease-[var(--inkblot-easing-default)]",t?"translate-x-0":"translate-x-full"),children:[l,kt(ee,{...n,className:"min-h-0 flex-1"})]})]})]})}import{jsx as ns}from"react/jsx-runtime";function as({className:t,...e}){return ns(ee,{...e,className:o("mx-auto w-full max-w-5xl",t)})}import{useState as Br,useRef as he,useEffect as Fr}from"react";import{ChevronDown as is,Loader2 as ss,Mic as ls,Paperclip as cs,Send as ds,Sparkles as na}from"lucide-react";import{jsx as H,jsxs as yt}from"react/jsx-runtime";function ms({messages:t=[],onSend:e,onComposeSubmit:r,isProcessing:a=!1,placeholder:i="Ask Citron Intelligence...",agents:n,activeAgent:s,onAgentChange:l,onFilesAttach:c,onVoiceClick:d,emptyStateMessage:m="Ask anything \u2014 deals, contacts, forecasts...",className:p}){let[b,v]=Br(""),[f,C]=Br(!1),[y,T]=Br([]),N=he(null),x=he(null),k=he(null),g=he(null),u=a;Fr(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)},[t]),Fr(()=>{if(!f)return;let S=K=>{g.current&&!g.current.contains(K.target)&&C(!1)};return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[f]);let h=he(y);h.current=y,Fr(()=>()=>{h.current.forEach(S=>{S.previewUrl&&URL.revokeObjectURL(S.previewUrl)})},[]);let P=()=>{T(S=>(S.forEach(K=>{K.previewUrl&&URL.revokeObjectURL(K.previewUrl)}),[]))},M=S=>{T(K=>{let w=K[S];return w?.previewUrl&&URL.revokeObjectURL(w.previewUrl),K.filter((U,_)=>_!==S)})},D=(S,K)=>{try{r?r({text:S,files:K}):e?e({text:S,files:K}):K.length>0&&c?.(K)}catch{}P(),v(""),requestAnimationFrame(()=>{k.current?.focus()})},E=()=>{if(a)return;let S=b.trim(),K=y.map(w=>w.file);!S&&K.length===0||D(S,K)},O=S=>{if(S.key==="Enter"&&S.shiftKey){S.preventDefault();return}S.key==="Enter"&&!S.shiftKey&&(S.preventDefault(),E())},L=S=>{let K=S.target.files;if(!K?.length||u){S.target.value="";return}let w=Array.from(K).map(U=>{let _=U.type.startsWith("image/");return{file:U,kind:_?"image":"file",previewUrl:_?URL.createObjectURL(U):void 0}});T(U=>[...U,...w]),S.target.value=""},B=n?.find(S=>S.id===s),A=b.trim(),W=y.length>0,X=!a&&(!!A||W),gt="bg-[#F9F9F7]";return yt("div",{className:o("flex h-full flex-col",gt,p),children:[t.length===0?H("div",{className:"flex min-h-0 flex-1 items-center justify-center px-[var(--inkblot-spacing-4)]",children:H("p",{className:"text-center [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:m})}):H("div",{className:"flex min-h-0 flex-1 flex-col px-[var(--inkblot-spacing-4)] pt-[var(--inkblot-spacing-4)]",children:H("div",{className:o("flex min-h-0 flex-1 flex-col overflow-hidden rounded-3xl","border border-[var(--inkblot-semantic-color-border-default)] bg-white shadow-[var(--inkblot-shadow-sm)]"),children:H("div",{ref:N,className:"min-h-0 flex-1 overflow-y-auto",children:H("div",{className:"mx-auto flex max-w-3xl flex-col gap-[var(--inkblot-spacing-4)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-6)]",children:t.map(S=>S.role==="user"?H("div",{className:"flex justify-end",children:H("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-inverse)]",children:S.renderedContent??S.content})},S.id):yt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[H(na,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),H("div",{className:"max-w-[90%] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)]",children:S.renderedContent??S.content})]},S.id))})})})}),H("div",{className:o("shrink-0 px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",gt),children:yt("div",{className:o("mx-auto flex w-full max-w-3xl flex-col gap-[var(--inkblot-spacing-2)]",a&&"pointer-events-none"),"aria-busy":a,children:[H("input",{ref:x,type:"file",multiple:!0,onChange:L,className:"sr-only","aria-hidden":!0}),yt("div",{className:"flex flex-col overflow-hidden rounded-3xl border border-[var(--inkblot-semantic-color-border-default)] bg-white shadow-[var(--inkblot-shadow-sm)]",children:[H(Ue,{attachments:y,onRemove:M}),H("textarea",{ref:k,value:b,onChange:S=>v(S.target.value),onKeyDown:O,placeholder:i,rows:1,disabled:a,className:o("h-10 min-h-10 max-h-10 w-full resize-none overflow-x-auto overflow-y-hidden whitespace-nowrap border-0 bg-transparent px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-default)] 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-50")})]}),yt("div",{className:o("flex items-center gap-[var(--inkblot-spacing-2)] pt-[var(--inkblot-spacing-1)]",n&&n.length>0?"justify-between":"justify-end"),children:[n&&n.length>0&&yt("div",{ref:g,className:"relative min-w-0",children:[yt("button",{type:"button",onClick:()=>C(S=>!S),className:o("flex max-w-full items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]"),children:[H(na,{size:14,strokeWidth:1.7,"aria-hidden":!0}),H("span",{className:"truncate",children:B?.label??"Select agent"}),H(is,{size:14,strokeWidth:1.7,className:o("shrink-0 transition-transform duration-[var(--inkblot-duration-fast)]",f&&"rotate-180"),"aria-hidden":!0})]}),f&&H("div",{className:"absolute bottom-full left-0 z-10 mb-[var(--inkblot-spacing-1)] min-w-[12rem] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-1)] shadow-[var(--inkblot-shadow-sm)]",children:n.map(S=>yt("button",{type:"button",onClick:()=>{l?.(S.id),C(!1)},className:o("flex w-full flex-col gap-0.5 rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)] text-left transition-colors duration-[var(--inkblot-duration-fast)]",S.id===s?"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),children:[H("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:S.label}),S.description&&H("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:S.description})]},S.id))})]}),yt("div",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-2)]",children:[H("button",{type:"button",onClick:()=>x.current?.click(),disabled:u,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[#F2F2EF] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:bg-[#E8E8E4] 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-[#F9F9F7]","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Attach files",children:H(cs,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),H("button",{type:"button",onClick:()=>d?.(),disabled:a,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[#F2F2EF] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:bg-[#E8E8E4] 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-[#F9F9F7]","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Voice input",children:H(ls,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),H("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center",children:a?H("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:H(ss,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):H("button",{type:"button",onClick:E,disabled:!X,className:o("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[#E8DCC4] text-white transition-[background,box-shadow] duration-[var(--inkblot-duration-fast)]","hover:bg-[#dccaa8]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[#F9F9F7]","disabled:pointer-events-none disabled:opacity-40"),"aria-label":"Send",children:H(ds,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})]})]})})]})}import{Send as ps,Calendar as bs}from"lucide-react";import{jsx as je,jsxs as vs}from"react/jsx-runtime";var us={primary:["bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]"],secondary:["bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","border border-[var(--inkblot-semantic-color-border-default)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","active:bg-[var(--inkblot-semantic-color-background-tertiary)]"]};function zr({buttons:t,className:e}){return je("div",{className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",e),children:t.map(r=>vs("button",{type:"button",onClick:()=>{r.onClick?.()},disabled:r.disabled,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",us[r.variant]),children:[r.icon??null,r.label]},r.id))})}function $e({onSendNow:t,onSchedule:e,onSaveDraft:r,className:a}){return je(zr,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:je(ps,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:je(bs,{className:"h-4 w-4"}),onClick:e},{id:"draft",label:"Save Draft",variant:"secondary",onClick:r}],className:a})}import{forwardRef as fs}from"react";import{Loader2 as gs,Sparkles as ks}from"lucide-react";import{jsx as oe,jsxs as Or}from"react/jsx-runtime";var Ne=fs(({label:t,loading:e=!1,onWriteWithAI:r,disabled:a,className:i,...n},s)=>{let l=a||e;return Or("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-2)]",i),children:[Or("div",{className:"flex items-center justify-between",children:[t?oe("label",{htmlFor:n.id,className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}):oe("span",{}),r?Or("button",{type:"button",onClick:r,disabled:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),children:[e?oe(gs,{className:"h-4 w-4 shrink-0 animate-spin"}):oe(ks,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),e?"Generating...":"Write with AI"]}):null]}),oe("div",{className:"relative",children:oe("textarea",{ref:s,disabled:l,className:o("min-h-[12rem] w-full rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),...n})})]})});Ne.displayName="AIComposeInput";import{forwardRef as ys}from"react";import{jsx as hs}from"react/jsx-runtime";var xs={primary:"border border-transparent bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)] shadow-[var(--inkblot-shadow-sm)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]",secondary:"border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)] active:bg-[var(--inkblot-semantic-color-background-tertiary)]"},we=ys(({className:t,variant:e="primary",disabled:r,...a},i)=>hs("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-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-medium)] font-semibold transition-[background,border-color,box-shadow,color] 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 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",xs[e],t),...a}));we.displayName="Button";import{useMemo as Ns,useState as ia}from"react";import{ArrowDown as ws,ArrowUp as Cs,ArrowUpDown as Ts,CheckCircle as Ps,Zap as Ss,FileText as Ms,Clock as Es}from"lucide-react";import{jsx as j,jsxs as Ut}from"react/jsx-runtime";var Is={sent:{icon:Ps,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:Ss,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:Ms,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:Es,label:"Scheduled",colorClass:"text-[var(--inkblot-semantic-color-status-info)]"}};function qe({columns:t,rows:e,sortKey:r,sortDirection:a,defaultSortKey:i,defaultSortDirection:n="asc",onSortChange:s,sortableColumns:l,emptyTitle:c="No campaigns found",emptyDescription:d="Create a campaign or adjust filters to see results.",className:m}){let[p,b]=ia(i),[v,f]=ia(n),C=r!==void 0&&a!==void 0,y=C?r:p,T=C?a:v,N=u=>!l||l.length===0?!0:l.includes(u),x=(u,h)=>{if(h==="campaign")return u.campaignName.toLowerCase();if(h==="status")return u.status;if(h==="opens")return Number.parseFloat(u.opens.replace("%","").trim())||0;if(h==="clicks")return Number.parseFloat(u.clicks.replace("%","").trim())||0;if(h==="date")return new Date(u.date).getTime()||0;let P=u[h];return typeof P=="number"?P:String(P??"").toLowerCase()},k=Ns(()=>y?[...e].sort((h,P)=>{let M=x(h,y),D=x(P,y);return M<D?T==="asc"?-1:1:M>D?T==="asc"?1:-1:0}):e,[T,y,e]),g=u=>{let h=y===u&&T==="asc"?"desc":"asc";C||(b(u),f(h)),s?.(u,h)};return j("div",{className:o("overflow-x-auto rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-primary)]",m),children:Ut("table",{className:"w-full min-w-[600px] border-collapse",children:[j("thead",{children:j("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(u=>j("th",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left","uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:N(u.key)?Ut("button",{type:"button",onClick:()=>g(u.key),className:"inline-flex items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-sm)] transition-colors duration-[var(--inkblot-duration-fast)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:[u.label,y!==u.key?j(Ts,{className:"h-3.5 w-3.5","aria-hidden":!0}):T==="asc"?j(Cs,{className:"h-3.5 w-3.5","aria-hidden":!0}):j(ws,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):u.label},u.key))})}),j("tbody",{children:k.length===0?j("tr",{children:j("td",{colSpan:t.length,className:"px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-10)] text-center",children:Ut("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[j("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:c}),j("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:d})]})})}):k.map(u=>Ut("tr",{className:o("border-b border-[var(--inkblot-semantic-color-border-subtle)] last:border-b-0","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"),children:[j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:Ut("div",{className:"flex flex-col gap-0.5",children:[j("span",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:u.campaignName}),j("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:u.recipients})]})}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:j(Ls,{status:u.status,subtext:u.statusSubtext})}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:u.opens}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:u.clicks}),j("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:u.date})]},u.id))})]})})}function Ls({status:t,subtext:e}){let r=Is[t],a=r.icon;return Ut("div",{className:"flex flex-col gap-0.5",children:[Ut("div",{className:o("inline-flex items-center gap-1.5","[font:var(--inkblot-semantic-typography-body-small)] font-medium",r.colorClass),children:[j(a,{className:"h-4 w-4 shrink-0"}),r.label]}),e?j("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}):null]})}import{Sparkles as Ds}from"lucide-react";import{File as As}from"lucide-react";import{jsx as Ce,jsxs as sa}from"react/jsx-runtime";function Ye({category:t,title:e,uses:r,onClick:a,className:i}){return sa("button",{type:"button",onClick:a,className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border border-[var(--inkblot-semantic-color-border-subtle)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-5)]","text-left transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",i),children:[sa("div",{className:"flex items-start justify-between gap-2",children:[Ce("span",{className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-tertiary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}),Ce("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:r})]}),Ce("h3",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}),Ce("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:Ce(As,{className:o("h-10 w-10","text-[var(--inkblot-semantic-color-text-tertiary)]")})})]})}import{jsx as Xe,jsxs as Vr}from"react/jsx-runtime";function Ze({title:t="EMAIL TEMPLATES",onGenerateWithAI:e,templates:r,onTemplateClick:a,className:i}){return Vr("section",{className:o("flex flex-col gap-[var(--inkblot-spacing-6)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-5)] shadow-[var(--inkblot-shadow-sm)]",i),children:[Vr("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] sm:flex-row sm:items-center sm:justify-between",children:[Xe("h2",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t}),e?Vr("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] w-fit items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:[Xe(Ds,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),"Generate with AI"]}):null]}),Xe("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] sm:grid-cols-2",children:r.map(n=>Xe(Ye,{category:n.category,title:n.title,uses:n.uses,onClick:()=>a?.(n)},n.id))})]})}import{ArrowUpRight as Rs,BadgeCheck as Hs,Building2 as Bs,TrendingUp as Fs,UserRound as zs,Users as Os}from"lucide-react";import{jsx as $,jsxs as Q}from"react/jsx-runtime";var Vs={Person:"border-l-[var(--inkblot-semantic-color-status-info)]",Organization:"border-l-[var(--inkblot-semantic-color-status-warning)]",Deal:"border-l-[var(--inkblot-semantic-color-status-success)]"},Gs={Person:zs,Organization:Bs,Deal:Hs},Ws={Person:"bg-[var(--inkblot-semantic-color-status-info)]/15 text-[var(--inkblot-semantic-color-status-info)]",Organization:"bg-[var(--inkblot-semantic-color-status-warning)]/15 text-[var(--inkblot-semantic-color-status-warning)]",Deal:"bg-[var(--inkblot-semantic-color-status-success)]/15 text-[var(--inkblot-semantic-color-status-success)]"},Ks=[{label:"Contacts",value:"12",icon:Os},{label:"Open Deals",value:"3",icon:Fs},{label:"Touchpoints",value:"47",icon:Rs}];function la({name:t,entityType:e,subtitle:r,statusLabel:a,metadata:i,edges:n=[],stats:s,connections:l,className:c}){let d=Gs[e];if(s!==void 0||l!==void 0){let p=s??Ks;return Q("article",{className:o("glass flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] p-[var(--inkblot-spacing-5)]",c),children:[Q("div",{className:"flex items-start justify-between",children:[Q("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[$("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10",children:$(d,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),Q("div",{children:[$("h3",{className:"text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?$("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]}),a?$("span",{className:"rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 px-2 py-0.5 font-mono text-xs text-[var(--inkblot-semantic-color-interactive-primary)]",children:a}):null]}),$("div",{className:"grid grid-cols-3 gap-[var(--inkblot-spacing-3)]",children:p.map(b=>{let v=b.icon;return Q("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-[var(--inkblot-spacing-3)]",children:[Q("div",{className:"mb-1 flex items-center gap-1.5",children:[v?$(v,{className:"h-3 w-3 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}):null,$("span",{className:"text-[10px] uppercase tracking-wider text-[var(--inkblot-semantic-color-text-tertiary)]",children:b.label})]}),$("span",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:b.value})]},b.label)})}),l?Q("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[$("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}return Q("article",{className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] border-l-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]",Vs[e],c),children:[Q("div",{className:"flex items-start justify-between gap-[var(--inkblot-spacing-3)]",children:[Q("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[$("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-secondary)]",children:$(d,{className:"h-5 w-5","aria-hidden":!0})}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[$("h3",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?$("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):$("span",{className:o("inline-flex w-fit items-center rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-body-small)] font-medium uppercase tracking-wide",Ws[e]),children:e})]})]}),a?$("span",{className:"rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 px-2 py-0.5 font-mono text-xs text-[var(--inkblot-semantic-color-interactive-primary)]",children:a}):null]}),i&&Object.keys(i).length>0?$("dl",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-2)] sm:grid-cols-2",children:Object.entries(i).map(([p,b])=>Q("div",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]",children:[$("dt",{className:"[font:var(--inkblot-semantic-typography-body-small)] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:p}),$("dd",{className:"[font:var(--inkblot-semantic-typography-body-medium)] text-[var(--inkblot-semantic-color-text-secondary)]",children:b})]},p))}):null,n.length>0?Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[$("h4",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),$("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:n.map((p,b)=>Q("li",{className:"rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:[p.type,p.target?` \u2192 ${p.target}`:""]},b))})]}):null,l?Q("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[$("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}import{forwardRef as Us}from"react";import{jsx as _s}from"react/jsx-runtime";var _t=Us(({className:t,error:e,disabled:r,...a},i)=>_s("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-lg)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-medium)] text-[var(--inkblot-semantic-color-text-primary)] shadow-[var(--inkblot-shadow-xs)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,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 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",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)] hover:bg-[var(--inkblot-semantic-color-background-primary)]",t),...a}));_t.displayName="Input";import{Component as js}from"react";import{jsx as Gr,jsxs as $s}from"react/jsx-runtime";var F=class extends js{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?$s("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:[Gr("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),Gr("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),Gr(we,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as xt,jsxs as Wr}from"react/jsx-runtime";function ca({title:t,insights:e,stats:r=[],commandValue:a="",onCommandChange:i,onCommandSubmit:n,className:s}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),n?.())};return xt(F,{className:s,children:Wr("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[xt("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?xt("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?Wr("div",{children:[xt("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),xt("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:r.map((c,d)=>Wr("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[xt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),xt("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},d))})]}):null,xt("div",{className:"mt-2",children:xt(_t,{type:"text",value:a,onChange:c=>i?.(c.target.value),onKeyDown:l,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}import{Component as qs}from"react";import{jsx as da}from"react/jsx-runtime";var Qe=class extends qs{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:da("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:da("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as Xs}from"react/jsx-runtime";var Ys={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 Je({label:t,variant:e="info",className:r}){return Xs("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",Ys[e],r),children:t})}import{jsx as ae,jsxs as Qs}from"react/jsx-runtime";function Zs(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function ma({event:t,className:e}){let r=Zs(t.confidence_score),a=`${Math.round(t.confidence_score*100)}%`;return Qs("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:[ae("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),ae("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),ae("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),ae("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}),ae("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),ae(Je,{label:a,variant:r})]})}import{Clock3 as Js}from"lucide-react";import{jsx as Pt,jsxs as pa}from"react/jsx-runtime";var tl={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 el(){return Pt(Js,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}function ba({events:t,className:e}){return Pt(F,{className:e,children:Pt("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]"),children:t.map(r=>pa("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]/60 bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]",children:[Pt("div",{className:"mt-[var(--inkblot-spacing-1)] flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r.icon??Pt(el,{})}),pa("div",{className:"min-w-0 flex-1",children:[Pt("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),Pt("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?Pt("div",{className:o("mt-[var(--inkblot-spacing-2)] h-2 w-2 shrink-0 rounded-[var(--inkblot-radius-full)]",tl[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{TrendingDown as rl,TrendingUp as ol}from"lucide-react";import{jsx as St,jsxs as Te}from"react/jsx-runtime";var Ur=36,Kr=2*Math.PI*Ur;function tr({label:t,value:e,subtext:r,trend:a,className:i}){let n=Math.min(100,Math.max(0,e)),s=Kr-n/100*Kr;return St(F,{className:i,children:Te("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]",children:[Te("div",{className:"relative",children:[Te("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[St("circle",{cx:"48",cy:"48",r:Ur,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),St("circle",{cx:"48",cy:"48",r:Ur,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:Kr,strokeDashoffset:s,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]"})]}),St("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:Te("span",{className:"flex items-center gap-[var(--inkblot-spacing-1)] [font:var(--inkblot-semantic-typography-heading-small)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[n,"%",a==="up"?St(ol,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0}):a==="down"?St(rl,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0}):null]})})]}),Te("div",{className:"text-center",children:[St("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?St("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}import{jsx as jt,jsxs as il}from"react/jsx-runtime";var al={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 nl({className:t}){return jt("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",t),"aria-hidden":!0,children:jt("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function ua({items:t,className:e}){return jt(F,{className:e,children:jt("ul",{className:o("flex flex-col gap-4 py-2"),children:t.map((r,a)=>il("li",{className:"flex items-center justify-between gap-4",children:[jt("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),jt("span",{className:o("flex items-center gap-1 text-sm font-medium",al[r.variant??"default"]),children:r.value!=null?r.value:jt(nl,{})})]},a))})})}import{jsx as sl}from"react/jsx-runtime";function Mt({className:t,...e}){return sl("div",{className:o("animate-shimmer rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]/40 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 Pe,jsxs as ll}from"react/jsx-runtime";function er({className:t,...e}){return ll("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]",t),...e,children:[Pe(Mt,{className:"h-8 w-3/5"}),Pe(Mt,{className:"h-4 w-full"}),Pe(Mt,{className:"h-4 w-11/12"}),Pe(Mt,{className:"h-4 w-4/5"}),Pe(Mt,{className:"h-4 w-2/3"})]})}import{jsx as rr,jsxs as va}from"react/jsx-runtime";function or({children:t,loading:e=!1,title:r,className:a,onRetry:i}){return rr(F,{className:a,onRetry:i,children:e?va("div",{className:o("flex flex-col gap-4",a),children:[r?rr("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,rr(er,{})]}):va("div",{className:o("flex flex-col gap-4",a),children:[r?rr("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}import{Plus as cl}from"lucide-react";import{jsx as Se,jsxs as ar}from"react/jsx-runtime";function ne({title:t,subtitle:e,icon:r,action:a,className:i}){return ar("header",{className:o("flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between","pb-[var(--inkblot-spacing-2)]",i),children:[ar("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[r?Se("div",{className:o("flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[color:var(--inkblot-semantic-color-status-warning)]"),children:r}):null,ar("div",{className:"min-w-0",children:[Se("h1",{className:o("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),e?Se("p",{className:o("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:e}):null]})]}),a?Se("div",{className:"mt-[var(--inkblot-spacing-4)] shrink-0 sm:mt-0",children:a}):null]})}function ie({label:t,onClick:e,icon:r,className:a}){return ar("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-medium)] font-semibold","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]",a),children:[r??Se(cl,{className:"h-4 w-4"}),t]})}import{Link as dl}from"react-router-dom";import{jsx as _r,jsxs as fa}from"react/jsx-runtime";function nr({resetErrorBoundary:t}){return fa("div",{role:"alert",className:o("flex min-h-[50vh] flex-col items-center justify-center gap-[var(--inkblot-spacing-6)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-8)]","bg-[var(--inkblot-semantic-color-background-primary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:[_r("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"This page is unavailable"}),fa("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[_r("button",{type:"button",onClick:t,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Retry"}),_r(dl,{to:"/",className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-interactive-primary)] underline-offset-4 hover:underline","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Go to home"})]})]})}import{ErrorBoundary as ml}from"react-error-boundary";import{useNavigate as pl}from"react-router-dom";import{jsx as bl}from"react/jsx-runtime";function ga({children:t,fallback:e}){let r=pl();return bl(ml,{FallbackComponent:e??nr,onReset:()=>{r("/")},children:t})}import{forwardRef as ul}from"react";import{Search as vl}from"lucide-react";import{jsx as jr,jsxs as ka}from"react/jsx-runtime";var Et=ul(({className:t,label:e,error:r,disabled:a,...i},n)=>ka("div",{className:"flex flex-col gap-1",children:[e?jr("label",{htmlFor:i.id,className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}):null,ka("div",{className:o("flex items-center gap-2 rounded-[var(--inkblot-radius-full)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border transition-colors duration-[var(--inkblot-duration-fast)]","focus-within:ring-2 focus-within:ring-[var(--inkblot-semantic-color-border-focus)] focus-within:ring-offset-2 focus-within:ring-offset-[var(--inkblot-semantic-color-background-primary)]",r?"border-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",a&&"opacity-[var(--inkblot-opacity-disabled)] pointer-events-none cursor-not-allowed"),children:[jr(vl,{className:o("ml-[var(--inkblot-spacing-4)] h-4 w-4 shrink-0","text-[var(--inkblot-semantic-color-text-tertiary)]")}),jr("input",{ref:n,type:"search",disabled:a,"aria-invalid":r,"aria-label":e??"Search",className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full flex-1 bg-transparent px-2 py-[var(--inkblot-spacing-2)] pr-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none","disabled:cursor-not-allowed",t),...i})]})]}));Et.displayName="SearchBar";import{jsx as fl}from"react/jsx-runtime";function ya({children:t,columns:e=4,className:r}){return fl("div",{className:o("grid gap-[var(--inkblot-spacing-4)]",{1:"grid-cols-1",2:"grid-cols-1 sm:grid-cols-2",3:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"}[e],r),children:t})}import{useCallback as gl,useMemo as kl,useState as yl}from"react";import{jsx as Me,jsxs as xl}from"react/jsx-runtime";function xa({items:t,activeItemId:e,defaultActiveItemId:r,onActiveItemChange:a,onItemClick:i,className:n}){let s=kl(()=>r!==void 0?r:t.find(b=>b.active)?.id,[r,t]),[l,c]=yl(s),d=e!==void 0,m=d?e:l,p=gl((b,v)=>{if(v.disabled){b.preventDefault();return}d||c(v.id),i?.(v.id,v),v.onClick?.(v.id),a?.(v.id,v)},[d,a,i]);return Me(F,{className:n,children:Me("nav",{className:o("flex w-16 flex-col items-center gap-[var(--inkblot-spacing-2)] border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-4)]"),"aria-label":"Navigation",children:t.map(b=>{let v=m?b.id===m:!!b.active;return xl("button",{type:"button",disabled:b.disabled,onClick:f=>p(f,b),"aria-current":v?"page":void 0,className:o("relative flex w-full flex-col items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-lg)] border border-transparent px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-2)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",v?"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-primary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),children:[v?Me("span",{className:"absolute left-[-0.5rem] top-1/2 h-6 w-1 -translate-y-1/2 rounded-r-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null,Me("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:b.icon}),b.label?Me("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium",children:b.label}):null]},b.id)})})})}import{jsx as nt,jsxs as $r}from"react/jsx-runtime";var ha={success:"text-[var(--inkblot-semantic-color-status-success)]",error:"text-[var(--inkblot-semantic-color-status-error)]",neutral:"text-[var(--inkblot-semantic-color-text-secondary)]"};function ir({items:t,className:e}){return nt("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>nt(hl,{item:r},r.label))})}function hl({item:t}){let e=t.changeVariant??"neutral",r=ha[e];return $r("div",{className:o("flex flex-col gap-1 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[nt("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),nt("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),t.change?nt("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}function Na({items:t,className:e}){return nt("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>nt(Nl,{item:r},r.label))})}function Nl({item:t}){let e=t.changeVariant??"neutral",r=ha[e],a=t.chartData??[],i=Math.max(...a,1);return $r("div",{className:o("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[nt("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),$r("div",{className:"flex items-end justify-between gap-2",children:[nt("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),a.length>0?nt("div",{className:"flex h-8 items-end gap-0.5",children:a.map((n,s)=>nt("div",{className:"w-1 min-w-[2px] rounded-sm bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-80",style:{height:`${n/i*100}%`,minHeight:4}},s))}):null]}),t.change?nt("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}import{jsx as wa,jsxs as wl}from"react/jsx-runtime";function sr({tabs:t,activeTabId:e,onTabChange:r,className:a}){return wa("nav",{role:"tablist","aria-label":"Tabs",className:o("flex gap-0 pt-[var(--inkblot-spacing-2)]",a),children:t.map(i=>{let n=i.id===e;return wl("button",{role:"tab","aria-selected":n,"aria-controls":`panel-${i.id}`,id:`tab-${i.id}`,type:"button",onClick:()=>r(i.id),className:o("relative px-[var(--inkblot-spacing-5)] py-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",n?["font-semibold text-[var(--inkblot-semantic-color-text-primary)]","bg-[var(--inkblot-semantic-color-background-secondary)]","rounded-t-[var(--inkblot-radius-lg)]"]:["text-[var(--inkblot-semantic-color-text-secondary)]","hover:text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"]),children:[i.label,n?wa("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null]},i.id)})})}import{Calendar as Cl,Check as Tl,User as Pl}from"lucide-react";import{jsx as $t,jsxs as Ee}from"react/jsx-runtime";var Sl={urgent:"bg-[var(--inkblot-semantic-color-status-error)]/20 text-[var(--inkblot-semantic-color-status-error)] border-[var(--inkblot-semantic-color-status-error)]/30",high:"bg-[var(--inkblot-semantic-color-status-warning)]/20 text-[var(--inkblot-semantic-color-status-warning)] border-[var(--inkblot-semantic-color-status-warning)]/30",medium:"bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)] border-[var(--inkblot-semantic-color-status-success)]/30",low:"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] border-[var(--inkblot-semantic-color-border-subtle)]"};function lr({id:t,title:e,company:r,priority:a,date:i,assignee:n,completed:s=!1,onToggle:l,onClick:c,className:d}){let m=Sl[a];return Ee("div",{role:"button",tabIndex:0,onClick:()=>c?.(t),onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),c?.(t))},className:o("flex items-center gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","cursor-pointer",d),children:[$t("button",{type:"button",onClick:p=>{p.stopPropagation(),l?.(t)},"aria-label":s?"Mark as incomplete":"Mark as complete","aria-pressed":s,className:o("flex h-5 w-5 shrink-0 items-center justify-center rounded-full","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",s?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-2 border-[var(--inkblot-semantic-color-border-default)] bg-transparent"),children:s?$t(Tl,{className:"h-3 w-3",strokeWidth:3}):null}),Ee("div",{className:"min-w-0 flex-1",children:[$t("p",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]",s&&"line-through text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}),$t("p",{className:o("mt-0.5 [font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]",s&&"line-through"),children:r})]}),Ee("div",{className:"flex shrink-0 flex-wrap items-center justify-end gap-[var(--inkblot-spacing-3)]",children:[$t("span",{className:o("rounded-[var(--inkblot-radius-md)] border px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium",m),children:a.charAt(0).toUpperCase()+a.slice(1)}),Ee("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[$t(Cl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),i]}),Ee("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[$t(Pl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),n]})]})]})}import{CircleDot as Ml,Clock as El,CheckCircle as Il}from"lucide-react";import{jsx as se,jsxs as Ca}from"react/jsx-runtime";var Ll={todo:Ml,in_progress:El,done:Il};function cr({sections:t,onTaskToggle:e,onTaskClick:r,className:a}){return se("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-8)]",a),children:t.map(i=>{let n=Ll[i.id],s=i.id==="done";return Ca("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[Ca("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[se(n,{className:o("h-5 w-5 shrink-0",s?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)]")}),se("h2",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:i.label}),se("span",{className:o("rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:i.count})]}),se("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:i.tasks.map(l=>se(lr,{...l,completed:s,onToggle:e,onClick:r},l.id))})]},i.id)})})}import{Mail as Ta,FileText as dr,Zap as Al,Phone as Pa,Link2 as Dl}from"lucide-react";import{jsx as ct,jsxs as Sa}from"react/jsx-runtime";function Rl(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 Hl={EMAIL_OPENED:Ta,EMAIL_SENT:Ta,INVOICE_PAID:dr,INVOICE_OVERDUE:dr,CONTRACT_SIGNED:dr,STAGE_CHANGED:Al,CALL_COMPLETED:Pa,PHONE_CALL:Pa,RELATIONSHIP_DETECTED:Dl};function Bl(t){return Hl[t]??dr}function Fl(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function zl(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function mr({events:t,onEntitySelect:e,findEntity:r,emptyMessage:a="No recent activity",className:i}){let n=e?s=>{let l=r?.(s.subject)??r?.(s.actor);l&&e(l)}:void 0;return ct(F,{children:ct("div",{className:o("space-y-2",i),children:t.length===0?ct("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:a}):t.map(s=>{let c=!!(r?.(s.subject)??r?.(s.actor))&&!!n,d=Bl(s.event_type),m=Sa("div",{className:"flex flex-1 items-center gap-3",children:[ct(d,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),ct("div",{className:`h-2 w-2 shrink-0 rounded-full ${Rl(s.confidence_score)}`,"aria-hidden":!0}),Sa("div",{className:"min-w-0 flex-1",children:[ct("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:Fl(s)}),ct("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:zl(s)})]}),ct("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.timestamp})]}),p=s.id??`${s.actor}-${s.subject}-${s.timestamp}`;return ct("div",{children:c?ct("button",{type:"button",onClick:()=>n(s),className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",children:m}):ct("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:m})},p)})})})}import{NavLink as Ol}from"react-router-dom";import{ClipboardList as Vl,Brain as Gl,BarChart3 as Wl,Network as Kl,Activity as Ul,Settings as _l,Sparkles as jl}from"lucide-react";import{jsx as qt,jsxs as ql}from"react/jsx-runtime";var $l=[{id:"home",path:"/",icon:Vl,label:"Home"},{id:"intelligence",path:"/intelligence",icon:Gl,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:Wl,label:"Pipeline"},{id:"graph",path:"/graph",icon:Kl,label:"Graph"},{id:"events",path:"/events",icon:Ul,label:"Events"},{id:"settings",path:"/settings",icon:_l,label:"Settings"}];function Ma({items:t=$l,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:a}){return qt(F,{children:ql("nav",{className:o("flex h-full flex-col gap-[var(--inkblot-spacing-4)] border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-3)]",a),children:[qt("div",{className:"flex flex-col items-center gap-2",children:qt("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]",title:r,children:e??qt(jl,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})})}),qt("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-2)]",children:t.map(i=>{let n=i.icon;return qt(Ol,{to:i.path,end:i.path==="/","aria-label":i.label,className:({isActive:s})=>`flex items-center justify-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-transparent px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-2)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] ${s?"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:border-[var(--inkblot-semantic-color-border-default)]/60 hover:bg-[var(--inkblot-semantic-color-background-primary)]"}`,children:qt(n,{size:20,"aria-hidden":!0})},i.id)})})]})})}import{useRef as Yl}from"react";import{Loader2 as Xl,Paperclip as Zl,Send as Ql,Sparkles as Jl}from"lucide-react";import{jsx as et,jsxs as qr}from"react/jsx-runtime";function Ea({prompt:t,onPromptChange:e,onSubmit:r,onFilesAttach:a,isProcessing:i,placeholder:n="Ask anything \u2014 deals, contacts, forecasts...",subtitle:s="Citron OS v1.0 \u2014 AI-native Revenue & Operations Platform",className:l}){let c=Yl(null),d=p=>{p.key==="Enter"&&!p.shiftKey&&(p.preventDefault(),r())},m=p=>{let b=p.target.files;b&&b.length>0&&a&&a(Array.from(b)),p.target.value=""};return qr("div",{className:o("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-4)]",l),children:[qr("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[et("div",{className:"mt-[var(--inkblot-spacing-1)] flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)]",children:et(Jl,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),et("div",{className:"flex-1",children:qr("div",{className:o("flex items-end gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-sm)]",i&&"pointer-events-none"),"aria-busy":i,children:[et("input",{ref:c,type:"file",multiple:!0,onChange:m,className:"sr-only","aria-hidden":!0}),et("button",{type:"button",onClick:()=>c.current?.click(),disabled:i,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)] 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-secondary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Attach files",children:et(Zl,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),et("textarea",{value:t,onChange:p=>e(p.target.value),onKeyDown:d,placeholder:n,rows:1,disabled:i,className:o("min-h-[2.25rem] min-w-0 flex-1 resize-none bg-transparent py-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none","disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]")}),et("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center",children:i?et("div",{className:"flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:et(Xl,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):et("button",{type:"button",onClick:r,className:o("flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)] transition-[background,box-shadow] duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","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-secondary)]"),"aria-label":"Send",children:et(Ql,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})})]}),s&&et("p",{className:"mt-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}import{jsx as le,jsxs as Yr}from"react/jsx-runtime";function Ia({events:t,title:e="Event Stream",showLive:r=!0,className:a}){return le(F,{children:Yr("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:[Yr("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[le("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:e}),r&&Yr("div",{className:"flex items-center gap-2",children:[le("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),le("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),le("div",{className:"flex-1 overflow-auto p-4",children:le(mr,{events:t})})]})})}import{jsx as rt,jsxs as Yt}from"react/jsx-runtime";var tc=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],ec=[{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 La({loading:t,kpiCards:e=tc,aiInsights:r=ec,title:a="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:n}){return Yt("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",n),children:[Yt("div",{children:[rt("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}),rt("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]}),rt(or,{loading:t,title:"",children:rt(F,{children:Yt("div",{className:"flex flex-col gap-4",children:[rt("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:e.map(s=>rt(tr,{label:s.label,value:s.value,subtext:s.subtext,trend:s.trend},s.label))}),Yt("div",{children:[rt("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"}),rt("div",{className:"flex flex-col gap-4",children:r.map(s=>rt(F,{children:Yt("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[Yt("div",{className:"min-w-0 flex-1",children:[rt("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:s.title}),rt("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.description})]}),Yt("div",{className:"flex shrink-0 flex-col items-center",children:[rt("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:s.confidence}),rt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},s.title))})]})]})})})]})}import{jsx as Ie,jsxs as Xr}from"react/jsx-runtime";function Aa({navigation:t,eventStream:e,commandBar:r,children:a,className:i,eventStreamWidth:n="w-80"}){return Xr("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[Ie("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:t}),Ie("main",{className:"flex flex-1 flex-col overflow-hidden",children:Xr("div",{className:"flex min-h-0 flex-1",children:[Xr("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[Ie("div",{className:"flex-1 overflow-auto px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-6)]",children:a}),Ie("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r})]}),e&&Ie("aside",{className:o("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)]",n),children:e})]})})]})}import{useState as Zr}from"react";import{Check as rc,X as oc}from"lucide-react";import{jsx as ce,jsxs as pr}from"react/jsx-runtime";var ac=["urgent","high","medium","low"];function br({onConfirm:t,onCancel:e,className:r}){let[a,i]=Zr(""),[n,s]=Zr(""),[l,c]=Zr("medium");return pr("form",{onSubmit:m=>{m.preventDefault();let p=a.trim();p&&(t({title:p,company:n.trim()||void 0,priority:l}),i(""),s(""),c("medium"))},className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","p-[var(--inkblot-spacing-4)]",r),children:[ce("input",{type:"text",value:a,onChange:m=>i(m.target.value),placeholder:"Task title...",autoFocus:!0,required:!0,className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),ce("input",{type:"text",value:n,onChange:m=>s(m.target.value),placeholder:"Company (optional)",className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),ce("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:ac.map(m=>ce("button",{type:"button",onClick:()=>c(m),className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","transition-colors duration-[var(--inkblot-duration-fast)]",l===m?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]/80"),children:m.charAt(0).toUpperCase()+m.slice(1)},m))}),pr("div",{className:"flex justify-end gap-[var(--inkblot-spacing-2)]",children:[pr("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[ce(oc,{className:"h-4 w-4"}),"Cancel"]}),pr("button",{type:"submit",disabled:!a.trim(),className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-interactive-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed"),children:[ce(rc,{className:"h-4 w-4"}),"Add Task"]})]})]})}import{useState as kr,useMemo as Ra}from"react";import{ClipboardList as Nc,LayoutGrid as wc,List as Cc}from"lucide-react";import{useMemo as lc,useState as cc}from"react";import{useState as nc}from"react";import{jsx as sc}from"react/jsx-runtime";var ic={sm:"h-8 px-3 text-xs",md:"h-10 px-4 text-sm",lg:"h-11 px-5 text-sm"};function Qr({pressed:t,defaultPressed:e=!1,onPressedChange:r,size:a="md",variant:i="default",disabled:n,className:s,children:l,...c}){let[d,m]=nc(e),p=t??d;return sc("button",{type:"button","aria-pressed":p,disabled:n,onClick:()=>{if(n)return;let v=!p;t===void 0&&m(v),r?.(v)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border font-medium transition-colors 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",ic[a],i==="default"?p?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]":p?"border-[var(--inkblot-semantic-color-text-primary)] bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-transparent text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",s),...c,children:l})}import{jsx as Da,jsxs as dc}from"react/jsx-runtime";function Jr({type:t="single",items:e,value:r,defaultValue:a,onValueChange:i,className:n,...s}){let l=a??(t==="single"?"":[]),[c,d]=cc(l),m=r??c,p=lc(()=>{if(t==="single"){let f=typeof m=="string"?m:"";return new Set(f?[f]:[])}let v=Array.isArray(m)?m:[];return new Set(v)},[m,t]),b=v=>{if(t==="single"){let y=p.has(v)?"":v;r===void 0&&d(y),i?.(y);return}let f=Array.isArray(m)?m:[],C=f.includes(v)?f.filter(y=>y!==v):[...f,v];r===void 0&&d(C),i?.(C)};return Da("div",{className:o("inline-flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-1",n),...s,children:e.map(v=>{let f=v.icon;return dc(Qr,{pressed:p.has(v.id),onPressedChange:()=>b(v.id),disabled:v.disabled,size:"sm",children:[f?Da(f,{className:"mr-2 size-4"}):null,v.label]},v.id)})})}import{DragDropContext as gc}from"@hello-pangea/dnd";import{useCallback as kc,useMemo as yc}from"react";import{Draggable as uc}from"@hello-pangea/dnd";import{useState as mc}from"react";import{User as pc}from"lucide-react";import{jsx as ur}from"react/jsx-runtime";var bc={sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-14 w-14 text-base"};function to({src:t,alt:e="Avatar",fallback:r,size:a="md",disabled:i=!1,className:n}){let[s,l]=mc(!1),c=!!(t&&!s);return ur("span",{"aria-disabled":i,className:o("inline-flex shrink-0 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)]",i&&"opacity-[var(--inkblot-opacity-disabled)]",bc[a],n),children:c?ur("img",{src:t,alt:e,onError:()=>l(!0),className:"h-full w-full object-cover"}):r?ur("span",{className:"font-medium uppercase",children:r.slice(0,2)}):ur(pc,{className:"h-4 w-4"})})}import{jsx as It,jsxs as eo}from"react/jsx-runtime";var vc={low:"bg-[var(--inkblot-semantic-color-status-info)]",medium:"bg-[var(--inkblot-semantic-color-status-success)]",high:"bg-[var(--inkblot-semantic-color-status-warning)]",urgent:"bg-[var(--inkblot-semantic-color-status-error)]"};function vr({task:t,index:e,className:r}){let a=t.jiraKey??`TASK-${t.id}`;return It(uc,{draggableId:t.id,index:e,children:(i,n)=>eo("div",{ref:i.innerRef,...i.draggableProps,...i.dragHandleProps,className:o("relative flex cursor-grab flex-col gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-sm)]","active:cursor-grabbing",n.isDragging&&"shadow-[var(--inkblot-shadow-lg)] ring-2 ring-[var(--inkblot-semantic-color-border-focus)]",r),children:[It("div",{className:"absolute right-[var(--inkblot-spacing-3)] top-[var(--inkblot-spacing-3)] h-8 w-1 rounded-[var(--inkblot-radius-sm)]",children:It("span",{className:o("block h-full w-full rounded-[var(--inkblot-radius-sm)]",vc[t.priority])})}),It("p",{className:o("pr-[var(--inkblot-spacing-4)] text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-body-medium)] font-semibold"),children:t.title}),It("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.company}),eo("div",{className:"flex items-end justify-between gap-[var(--inkblot-spacing-2)]",children:[eo("div",{className:"flex flex-col gap-0.5",children:[It("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}),t.date?It("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.date}):null]}),It(to,{size:"sm",fallback:t.assignee.replace(/\s/g,"").slice(0,2).toUpperCase(),alt:t.assignee})]})]})})}import{Droppable as fc}from"@hello-pangea/dnd";import{jsx as ro,jsxs as oo}from"react/jsx-runtime";function fr({columnId:t,title:e,count:r,children:a,className:i}){return oo("div",{className:o("flex min-w-[min(100%,280px)] flex-1 flex-col rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-tertiary)]",i),children:[oo("header",{className:o("flex items-center justify-between gap-[var(--inkblot-spacing-3)] border-b border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]"),children:[ro("h2",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]","font-semibold uppercase tracking-wide"),children:e}),ro("span",{className:o("min-w-[var(--inkblot-size-touch-target-min)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-0.5 text-center","bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium"),children:r})]}),ro(fc,{droppableId:t,children:(n,s)=>oo("div",{ref:n.innerRef,...n.droppableProps,className:o("flex min-h-[200px] flex-1 flex-col gap-[var(--inkblot-spacing-3)] p-[var(--inkblot-spacing-3)]",s.isDraggingOver&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]/30"),children:[a,n.placeholder]})})]})}import{jsx as gr}from"react/jsx-runtime";var xc=[{id:"todo",title:"TO DO"},{id:"in_progress",title:"IN PROGRESS"},{id:"done",title:"DONE"}];function hc(t,e){let{destination:r,source:a,draggableId:i}=e;if(!r||a.droppableId===r.droppableId&&a.index===r.index)return t;let n=r.droppableId,s=t.find(b=>b.id===i);if(!s)return t;let l=t.filter(b=>b.id!==i),c={...s,status:n},m=[...l.filter(b=>b.status===n)];return m.splice(r.index,0,c),["todo","in_progress","done"].flatMap(b=>b===n?m:l.filter(v=>v.status===b))}function de({tasks:t,onTasksChange:e,className:r}){let a=kc(n=>{e(hc(t,n))},[t,e]),i=yc(()=>{let n={todo:[],in_progress:[],done:[]};for(let s of t)n[s.status].push(s);return n},[t]);return gr(gc,{onDragEnd:a,children:gr("div",{className:o("flex w-full flex-col gap-[var(--inkblot-spacing-4)] lg:flex-row lg:items-start lg:overflow-x-auto",r),children:xc.map(n=>{let s=i[n.id];return gr(fr,{columnId:n.id,title:n.title,count:s.length,children:s.map((l,c)=>gr(vr,{task:l,index:c},l.id))},n.id)})})})}import{jsx as bt,jsxs as Ha}from"react/jsx-runtime";function Lt(t,e,r="You",a){let n=new Date().toLocaleDateString("en-US",{month:"short",day:"numeric"})||"Today";return{id:e,title:t.title,company:t.company??"Unassigned",priority:t.priority??"medium",date:n,assignee:r,status:"todo",jiraKey:a}}function Tc(t){let e={todo:t.filter(r=>r.status==="todo"),in_progress:t.filter(r=>r.status==="in_progress"),done:t.filter(r=>r.status==="done")};return[{id:"todo",label:"TO DO",count:e.todo.length,tasks:e.todo},{id:"in_progress",label:"IN PROGRESS",count:e.in_progress.length,tasks:e.in_progress},{id:"done",label:"DONE",count:e.done.length,tasks:e.done}]}var At=[Lt({title:"Follow up with Sarah Chen on proposal",company:"Acme Corp",priority:"high"},"1","You","CRM-104"),Lt({title:"Schedule demo with engineering team",company:"TechStart Inc",priority:"medium"},"2","Alex M.","CRM-112"),Lt({title:"Prepare quarterly report slides",company:"GlobalTech",priority:"low"},"3","Sam R.","CRM-98"),Lt({title:"Review Q1 marketing budget",company:"TechStart Inc",priority:"medium"},"4","Jamie L.","CRM-120"),Lt({title:"Draft partnership agreement",company:"Enterprise Co",priority:"urgent"},"5","You","CRM-88"),Lt({title:"Send contract to legal team",company:"GlobalTech",priority:"low"},"6","Lisa K."),Lt({title:"Update CRM with new contacts",company:"Acme Corp",priority:"low"},"7","Morgan P.","CRM-130")];At[0].status="todo";At[1].status="todo";At[2].status="todo";At[3].status="in_progress";At[4].status="in_progress";At[5].status="done";At[6].status="done";function Ba({initialTasks:t=At,onTaskCreate:e,onTaskToggle:r,onTaskClick:a,onTasksReorder:i,className:n}){let[s,l]=kr(t),[c,d]=kr(!1),[m,p]=kr(""),[b,v]=kr("list"),f=Ra(()=>{if(!m.trim())return s;let u=m.toLowerCase();return s.filter(h=>h.title.toLowerCase().includes(u)||h.company.toLowerCase().includes(u)||(h.jiraKey?.toLowerCase().includes(u)??!1))},[s,m]),C=Ra(()=>Tc(f),[f]),y=s.filter(u=>u.status!=="done").length,T=s.filter(u=>u.priority==="urgent"&&u.status!=="done").length,N=`${y} pending${T>0?` \xB7 ${T} urgent`:""}`,x=u=>{let h=`task-${Date.now()}`,P=Lt(u,h);l(M=>[P,...M]),d(!1),e?.(u)},k=u=>{l(h=>h.map(P=>{if(P.id!==u)return P;let M=P.status==="done"?"todo":"done";return{...P,status:M}})),r?.(u)},g=u=>{l(u),i?.(u)};return bt("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:Ha("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[bt(ne,{title:"Tasks",subtitle:N,icon:bt(Nc,{className:"h-5 w-5"}),action:bt(ie,{label:"New Task",onClick:()=>d(u=>!u)})}),Ha("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] xl:flex-row xl:items-center xl:gap-[var(--inkblot-spacing-4)]",children:[bt(Jr,{type:"single",value:b,onValueChange:u=>{(u==="list"||u==="kanban")&&v(u)},items:[{id:"list",label:"List View",icon:Cc},{id:"kanban",label:"Kanban Board View",icon:wc}]}),bt("div",{className:"min-w-0 flex-1",children:bt(Et,{placeholder:b==="list"?"Search tasks (title, company, Jira key)...":"Switch to list view to search and filter tasks",value:m,onChange:u=>p(u.target.value),disabled:b==="kanban"})})]}),c?bt(br,{onConfirm:x,onCancel:()=>d(!1)}):null,b==="list"?bt(cr,{sections:C,onTaskToggle:k,onTaskClick:a}):bt(de,{tasks:s,onTasksChange:g})]})})}import{useState as me,useMemo as ao}from"react";import{Mail as Pc}from"lucide-react";import{Fragment as Ic,jsx as Z,jsxs as pe}from"react/jsx-runtime";var Sc=`Hi [Name],
2
2
 
3
3
  I hope this email finds you well. I wanted to reach out regarding our recent conversation about [Topic].
4
4
 
@@ -17,5 +17,5 @@ I'd love to schedule a quick call this week to walk you through these in more de
17
17
  Looking forward to hearing from you.
18
18
 
19
19
  Best regards,
20
- [Your name]`,za=[{id:"1",campaignName:"Q1 Product Launch",recipients:"2840 recipients",status:"sent",opens:"68%",clicks:"24%",date:"Feb 12, 2026"},{id:"2",campaignName:"Welcome Series",recipients:"1200 recipients",status:"active",statusSubtext:"Running",opens:"-",clicks:"-",date:"Feb 28, 2026"},{id:"3",campaignName:"Re-engagement Campaign",recipients:"890 recipients",status:"draft",opens:"-",clicks:"-",date:"Feb 5, 2026"},{id:"4",campaignName:"Holiday Promo",recipients:"4500 recipients",status:"scheduled",opens:"-",clicks:"-",date:"Mar 1, 2026"}],Oa=[{id:"1",category:"Onboarding",title:"Welcome Series",uses:"34 uses"},{id:"2",category:"Marketing",title:"Product Announcement",uses:"12 uses"},{id:"3",category:"Retention",title:"Renewal Reminder",uses:"28 uses"},{id:"4",category:"Sales",title:"Meeting Follow-up",uses:"56 uses"}],Fa=["Acme Corp - Sarah Chen","TechStart Inc - Mike Rodriguez","GlobalTech - Lisa Kim","Enterprise Co - John Smith","StartupXYZ - Emma Wilson"],Mc=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],Ec=[{label:"Total Sent",value:"12.4K",change:"This month",changeVariant:"success"},{label:"Avg. Open Rate",value:"64%",change:"+8% vs prior",changeVariant:"success"},{label:"Avg. Click Rate",value:"22%",change:"+3% vs prior",changeVariant:"success"},{label:"Active Automations",value:"7",change:"3 paused",changeVariant:"error"}];function Va({onSendNow:t,onSchedule:e,onSaveDraft:r,onNewCampaign:a,onGenerateWithAI:i,onTemplateClick:n,className:s}){let[l,c]=me("campaigns"),[d,m]=me(""),[p,b]=me(""),[v,f]=me(""),[C,y]=me(!1),[T,N]=me(""),x=no(()=>{if(!d.trim())return za;let E=d.toLowerCase();return za.filter(F=>F.campaignName.toLowerCase().includes(E)||F.recipients.toLowerCase().includes(E))},[d]),k=no(()=>{if(!d.trim())return Oa;let E=d.toLowerCase();return Oa.filter(F=>F.title.toLowerCase().includes(E)||F.category.toLowerCase().includes(E))},[d]),g=no(()=>{if(!T.trim())return Fa;let E=T.toLowerCase();return Fa.filter(F=>F.toLowerCase().includes(E))},[T]),u=async()=>{y(!0),await new Promise(E=>setTimeout(E,1500)),f(Sc),y(!1)},h=()=>{t?.()},P=()=>{e?.()},M=()=>{r?.()},D=l==="campaigns"||l==="templates";return Z("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",s),children:pe("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-8)] px-[var(--inkblot-spacing-8)] py-[var(--inkblot-spacing-8)]",children:[Z(ne,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:Z(Pc,{className:"h-5 w-5"}),action:Z(ie,{label:"New Campaign",onClick:()=>a?.()})}),Z(lr,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),D?Z(Et,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:d,onChange:E=>m(E.target.value)}):null,l==="campaigns"?pe(Ic,{children:[Z(sr,{items:Ec}),Z(Ye,{columns:Mc,rows:x})]}):l==="templates"?Z(Qe,{templates:k,onGenerateWithAI:i,onTemplateClick:n}):pe("div",{className:"flex max-w-2xl flex-col gap-[var(--inkblot-spacing-6)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-6)] shadow-[var(--inkblot-shadow-sm)]",children:[pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-6)]",children:[pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[Z("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),Z(_t,{type:"text",value:p,onChange:E=>b(E.target.value),placeholder:"Enter subject line..."})]}),Z(Ne,{label:"Body",value:v,onChange:E=>f(E.target.value),placeholder:"Compose your email or let AI generate content...",loading:C,onWriteWithAI:u}),pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[Z(Et,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:T,onChange:E=>N(E.target.value)}),g.length>0?Z("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:g.slice(0,5).map(E=>Z("li",{className:o("rounded-[var(--inkblot-radius-md)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:E},E))}):null]})]}),Z(qe,{onSendNow:h,onSchedule:P,onSaveDraft:M})]})]})})}import{createContext as Lc,useCallback as Ga,useContext as Ac,useEffect as Dc,useLayoutEffect as Rc,useMemo as Hc,useState as Wa}from"react";import{jsx as Oc}from"react/jsx-runtime";var xr="citron-ui-theme",Ua=Lc(null);function Bc(){if(typeof window>"u")return null;try{let t=window.localStorage.getItem(xr);if(t==="light"||t==="dark")return t}catch{}return null}function zc(){return typeof window>"u"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ka(t){typeof document>"u"||document.documentElement.setAttribute("data-theme",t)}function _a({children:t}){let[e,r]=Wa("light"),[a,i]=Wa(!1);Rc(()=>{if(typeof window>"u")return;let d=Bc()??zc();r(d),Ka(d),i(!0)},[]),Dc(()=>{if(a&&(Ka(e),!(typeof window>"u")))try{window.localStorage.setItem(xr,e)}catch{}},[e,a]);let n=Ga(c=>{r(c)},[]),s=Ga(()=>{r(c=>c==="light"?"dark":"light")},[]),l=Hc(()=>({theme:e,setTheme:n,toggleTheme:s}),[e,n,s]);return Oc(Ua.Provider,{value:l,children:t})}function hr(){let t=Ac(Ua);if(!t)throw new Error("useTheme must be used within a ThemeProvider");return t}import{Moon as Fc,Sun as Vc}from"lucide-react";import{jsx as ja}from"react/jsx-runtime";function Nr({className:t,type:e="button",...r}){let{theme:a,toggleTheme:i}=hr(),n=a==="dark",s=n?Vc:Fc;return ja("button",{type:e,onClick:i,"aria-label":n?"Switch to light mode":"Switch to dark mode","aria-pressed":n,className:o("group relative inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-transparent","text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)]",t),...r,children:ja(s,{className:"h-[18px] w-[18px] shrink-0",strokeWidth:2,"aria-hidden":!0})})}import{forwardRef as Gc}from"react";import{NavLink as Wc}from"react-router-dom";import{jsx as Kc}from"react/jsx-runtime";var io=Gc(({className:t,activeClassName:e,pendingClassName:r,...a},i)=>Kc(Wc,{ref:i,className:({isActive:n,isPending:s})=>o(t,n&&e,s&&r),...a}));io.displayName="NavLinkRouter";import{useState as $a,useRef as Uc,useEffect as _c}from"react";import{ChevronDown as jc,Plus as $c}from"lucide-react";import{jsx as G,jsxs as tt}from"react/jsx-runtime";var Cr=o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]"),Dt=o("[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-secondary)]"),Ya="border-[var(--inkblot-semantic-color-status-error)]";function qa({items:t,value:e,onChange:r,placeholder:a,hasError:i,onCreateNew:n,createNewLabel:s}){let[l,c]=$a(""),[d,m]=$a(!1),p=Uc(null);_c(()=>{let f=C=>{p.current&&!p.current.contains(C.target)&&m(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[]);let b=t.find(f=>f.id===e),v=t.filter(f=>f.name.toLowerCase().includes(l.toLowerCase()));return tt("div",{ref:p,className:"relative",children:[G("input",{type:"text",value:d?l:b?.name??"",onChange:f=>{c(f.target.value),d||m(!0)},onFocus:()=>{m(!0),c("")},placeholder:a,className:o(Cr,i&&!e&&Ya)}),d&&tt("div",{className:o("absolute z-50 mt-[var(--inkblot-spacing-1)] max-h-48 w-full overflow-auto","rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]"),children:[v.map(f=>G("button",{type:"button",onClick:()=>{r(f.id),m(!1),c("")},className:o("w-full px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] text-left","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",f.id===e&&"bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:f.name},f.id)),v.length===0&&!n&&G("div",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-tertiary)]"),children:"No results"}),n&&v.length===0&&tt("button",{type:"button",onClick:()=>{n(),m(!1)},className:o("flex w-full items-center gap-[var(--inkblot-spacing-2)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-interactive-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:[G($c,{className:"h-4 w-4"}),s??"Create new"]})]})]})}function wr({options:t,value:e,onChange:r,placeholder:a}){return tt("div",{className:"relative",children:[tt("select",{value:e,onChange:i=>r(i.target.value),className:o(Cr,"appearance-none pr-[var(--inkblot-spacing-8)]"),children:[G("option",{value:"",children:a}),t.map(i=>G("option",{value:i,children:i},i))]}),G(jc,{className:o("pointer-events-none absolute right-[var(--inkblot-spacing-3)] top-1/2 h-4 w-4 -translate-y-1/2","text-[var(--inkblot-semantic-color-text-tertiary)]")})]})}var qc=["Bank Transfer","Credit Card","Cash","Check"],Yc=["VAT 21%","VAT 10%","VAT 0%","Exempt"],Xc=["Standard","Proforma","Credit Note","Debit Note"],Zc=["Main Account","Secondary Account"];function so({clients:t,products:e,paymentMethods:r=qc,taxTypes:a=Yc,invoiceTypes:i=Xc,bankAccounts:n=Zc,value:s={},onChange:l,onCreateClient:c,attempted:d=!1,className:m}){let p=b=>l?.({...s,...b});return tt("div",{className:o("grid grid-cols-1 gap-[var(--inkblot-spacing-4)] md:grid-cols-2",m),children:[tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Client"}),G(qa,{items:t,value:s.clientId??"",onChange:b=>p({clientId:b}),placeholder:"Search client...",hasError:d,onCreateNew:c,createNewLabel:"+ Create new client"})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Product / Service"}),G(qa,{items:e,value:s.productId??"",onChange:b=>p({productId:b}),placeholder:"Search product...",hasError:d})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Quantity"}),G("input",{type:"number",min:1,value:s.quantity??"",onChange:b=>p({quantity:b.target.value===""?0:Number(b.target.value)}),placeholder:"1",className:o(Cr,d&&!s.quantity&&Ya)})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Payment Method"}),G(wr,{options:r,value:s.paymentMethod??"",onChange:b=>p({paymentMethod:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Tax Type"}),G(wr,{options:a,value:s.taxType??"",onChange:b=>p({taxType:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Invoice Type"}),G(wr,{options:i,value:s.invoiceType??"",onChange:b=>p({invoiceType:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Bank Account"}),G(wr,{options:n,value:s.bankAccount??"",onChange:b=>p({bankAccount:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] md:col-span-2",children:[G("label",{className:Dt,children:"Notes"}),G("textarea",{value:s.notes??"",onChange:b=>p({notes:b.target.value}),rows:3,placeholder:"Additional notes...",className:o(Cr,"resize-y")})]})]})}import{jsx as ot,jsxs as lo}from"react/jsx-runtime";function xt({label:t,value:e}){return lo("div",{className:"flex items-baseline justify-between border-b border-[var(--inkblot-semantic-color-border-default)] py-[var(--inkblot-spacing-2)]",children:[ot("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),ot("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:e||"\u2014"})]})}function co({data:t,clients:e,products:r,className:a}){let i=e.find(d=>d.id===t.clientId),n=r.find(d=>d.id===t.productId),s=t.quantity??0,l=n?.unitPrice??0,c=s*l;return lo("div",{className:o("rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-6)]",a),children:[ot("h3",{className:"mb-[var(--inkblot-spacing-4)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"Preview"}),lo("div",{className:"space-y-0",children:[ot(xt,{label:"Client",value:i?.name??""}),ot(xt,{label:"Product",value:n?.name??""}),ot(xt,{label:"Quantity",value:s?String(s):""}),l>0&&ot(xt,{label:"Unit price",value:`$${l.toFixed(2)}`}),c>0&&ot(xt,{label:"Subtotal",value:`$${c.toFixed(2)}`}),ot(xt,{label:"Payment",value:t.paymentMethod??""}),ot(xt,{label:"Tax",value:t.taxType??""}),ot(xt,{label:"Type",value:t.invoiceType??""}),ot(xt,{label:"Bank",value:t.bankAccount??""})]}),t.notes&&ot("p",{className:"mt-[var(--inkblot-spacing-4)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:t.notes})]})}import{useState as Xa}from"react";import{Loader2 as Qc}from"lucide-react";import{jsx as Le,jsxs as mo}from"react/jsx-runtime";function Jc({clients:t,products:e,onSubmit:r,onCreateClient:a,isSubmitting:i=!1,className:n,...s}){let[l,c]=Xa({}),[d,m]=Xa(!1);return mo("form",{onSubmit:b=>{b.preventDefault(),m(!0),!(!l.clientId||!l.productId||!l.quantity)&&r?.({clientId:l.clientId,productId:l.productId,quantity:l.quantity,paymentMethod:l.paymentMethod??"",taxType:l.taxType??"",invoiceType:l.invoiceType??"",bankAccount:l.bankAccount??"",notes:l.notes??""})},className:o("rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-6)]",n),children:[Le("h2",{className:"mb-[var(--inkblot-spacing-6)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"New Invoice"}),mo("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] lg:grid-cols-[1fr_20rem]",children:[Le(so,{clients:t,products:e,value:l,onChange:c,onCreateClient:a,attempted:d,...s}),Le(co,{data:l,clients:t,products:e})]}),Le("div",{className:"mt-[var(--inkblot-spacing-6)] flex justify-end",children:mo("button",{type:"submit",disabled:i,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-[var(--inkblot-spacing-2)]","rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-interactive-primary)]","px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-inverse)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed"),children:[i&&Le(Qc,{className:"h-4 w-4 animate-spin"}),"Create Invoice"]})})]})}import{useMemo as td,useState as ed}from"react";import{ChevronDown as rd}from"lucide-react";import{jsx as Tr,jsxs as Za}from"react/jsx-runtime";function od({items:t,defaultValue:e,allowMultiple:r=!1,className:a}){let i=td(()=>new Set(e??[]),[e]),[n,s]=ed(i),l=c=>{s(d=>{let m=new Set(d);return m.has(c)?(m.delete(c),m):r?(m.add(c),m):new Set([c])})};return Tr("div",{className:o("w-full overflow-hidden rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:t.map((c,d)=>{let m=n.has(c.id);return Za("div",{className:o(d!==0&&"border-t border-[var(--inkblot-semantic-color-border-default)]"),children:[Za("button",{type:"button",disabled:c.disabled,"aria-expanded":m,onClick:()=>l(c.id),className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-3)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",c.disabled?"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]":"hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-[-2px]"),children:[Tr("span",{className:"font-medium",children:c.title}),Tr(rd,{className:o("h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",m&&"rotate-180")})]}),m&&Tr("div",{className:"px-[var(--inkblot-spacing-4)] pb-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:c.content})]},c.id)})})}import{useCallback as ad,useEffect as Pr,useRef as Ae,useState as be}from"react";import{ChevronDown as nd,Loader2 as id,Search as sd,X as ld}from"lucide-react";import{jsx as at,jsxs as Rt}from"react/jsx-runtime";function cd({options:t=[],loadOptions:e,value:r,defaultValue:a,onChange:i,placeholder:n="Select an option",searchPlaceholder:s="Search...",emptyMessage:l="No results found",loadingMessage:c="Loading...",clearable:d=!1,disabled:m=!1,className:p}){let b=r!==void 0,[v,f]=be(a??null),C=b?r:v,[y,T]=be(!1),[N,x]=be(""),[k,g]=be(-1),[u,h]=be([]),[P,M]=be(!1),D=Ae(null),E=Ae(0),F=e!==void 0,L=F?u:t,B=Ae(null),A=Ae(null),W=Ae(null);Pr(()=>{if(!(!F||!y))return D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{let w=++E.current;M(!0),e(N).then(U=>{w===E.current&&(h(U),M(!1),g(-1))}).catch(()=>{w===E.current&&(h([]),M(!1))})},250),()=>{D.current&&clearTimeout(D.current)}},[N,y,F,e]);let X=F?L:L.filter(w=>w.label.toLowerCase().includes(N.toLowerCase())),gt=L.find(w=>w.value===C)??(F?t.find(w=>w.value===C):void 0),S=ad(w=>{b||f(w),i?.(w),T(!1),x(""),g(-1)},[b,i]);Pr(()=>{if(!y)return;let w=U=>{B.current&&!B.current.contains(U.target)&&(T(!1),x(""),g(-1))};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[y]),Pr(()=>{y&&W.current?.focus()},[y]),Pr(()=>{if(k<0||!A.current)return;A.current.querySelectorAll("[data-option]")[k]?.scrollIntoView({block:"nearest"})},[k]);let K=w=>{if(!y){(w.key==="Enter"||w.key===" "||w.key==="ArrowDown")&&(w.preventDefault(),T(!0));return}switch(w.key){case"ArrowDown":{w.preventDefault(),g(U=>{let _=U+1;for(;_<X.length&&X[_].disabled;)_++;return _<X.length?_:U});break}case"ArrowUp":{w.preventDefault(),g(U=>{let _=U-1;for(;_>=0&&X[_].disabled;)_--;return _>=0?_:U});break}case"Enter":{w.preventDefault(),k>=0&&k<X.length&&!X[k].disabled&&S(X[k].value);break}case"Escape":{w.preventDefault(),T(!1),x(""),g(-1);break}}};return Rt("div",{ref:B,className:o("relative w-full",p),onKeyDown:K,children:[Rt("button",{type:"button",disabled:m,"aria-expanded":y,"aria-haspopup":"listbox",onClick:()=>{m||T(w=>!w)},className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] border px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","transition-[border-color,box-shadow] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]","border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)]",m&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[at("span",{className:o("truncate text-left",!gt&&"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:gt?gt.label:n}),Rt("span",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-1)]",children:[d&&gt&&at("span",{role:"button",tabIndex:0,"aria-label":"Clear selection",onClick:w=>{w.stopPropagation(),S(null)},onKeyDown:w=>{w.key==="Enter"&&(w.stopPropagation(),S(null))},className:o("flex items-center justify-center rounded-[var(--inkblot-radius-sm)] p-[var(--inkblot-spacing-1)]","text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:at(ld,{className:"size-3.5"})}),at(nd,{"aria-hidden":!0,className:o("size-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)]",y&&"rotate-180")})]})]}),Rt("div",{className:o("absolute left-0 top-full z-50 mt-[var(--inkblot-spacing-1)] w-full overflow-hidden rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-md)]","transition-[opacity,transform] duration-[var(--inkblot-duration-normal)] ease-[var(--inkblot-easing-default)]","origin-top",y?"pointer-events-auto scale-y-100 opacity-100":"pointer-events-none scale-y-95 opacity-0"),children:[at("div",{className:"border-b border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-2)]",children:Rt("div",{className:"flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-1)]",children:[at(sd,{className:"size-3.5 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),at("input",{ref:W,type:"text",value:N,onChange:w=>{x(w.target.value),g(-1)},placeholder:s,className:"w-full bg-transparent py-[var(--inkblot-spacing-1)] text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] focus:outline-none"})]})}),at("ul",{ref:A,role:"listbox",className:"max-h-60 overflow-y-auto p-[var(--inkblot-spacing-1)]",children:P?Rt("li",{className:"flex items-center justify-center gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:[at(id,{className:"size-4 animate-spin","aria-hidden":!0}),c]}):X.length===0?at("li",{className:"px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-4)] text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:l}):X.map((w,U)=>{let _=w.value===C,Ke=U===k;return Rt("li",{role:"option","data-option":!0,"aria-selected":_,"aria-disabled":w.disabled,onClick:()=>{w.disabled||S(w.value)},onMouseEnter:()=>{w.disabled||g(U)},className:o("flex cursor-pointer items-center gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","transition-colors duration-[var(--inkblot-duration-fast)]",Ke&&!w.disabled&&"bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",_&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]",w.disabled&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[w.icon&&at("span",{className:"flex size-5 shrink-0 items-center justify-center text-[var(--inkblot-semantic-color-text-secondary)]",children:w.icon}),Rt("span",{className:"flex min-w-0 flex-1 flex-col",children:[at("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:w.label}),w.description&&at("span",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:w.description})]})]},w.value)})})]})]})}import{AlertCircle as dd,AlertTriangle as md,CheckCircle2 as pd,Info as bd}from"lucide-react";import{jsx as po,jsxs as Qa}from"react/jsx-runtime";var ud={info:"border-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-status-info)]/10 text-[var(--inkblot-semantic-color-text-primary)]",success:"border-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-text-primary)]",warning:"border-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-status-warning)]/10 text-[var(--inkblot-semantic-color-text-primary)]",error:"border-[var(--inkblot-semantic-color-status-error)] bg-[var(--inkblot-semantic-color-status-error)]/10 text-[var(--inkblot-semantic-color-text-primary)]"},vd={info:bd,success:pd,warning:md,error:dd};function fd({title:t,description:e,variant:r="info",className:a}){let i=vd[r];return Qa("div",{role:"alert",className:o("flex w-full items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",ud[r],a),children:[po(i,{className:"mt-0.5 h-4 w-4 shrink-0"}),Qa("div",{className:"flex min-w-0 flex-col gap-[var(--inkblot-spacing-1)]",children:[po("div",{className:"font-semibold",children:t}),e&&po("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})]})}import{useCallback as Ja,useEffect as gd,useId as tn,useRef as bo}from"react";import{AlertTriangle as kd}from"lucide-react";import{jsx as Xt,jsxs as Sr}from"react/jsx-runtime";function yd({open:t,title:e,description:r,confirmLabel:a="Confirm",cancelLabel:i="Cancel",destructive:n=!1,confirmDisabled:s=!1,closeOnConfirm:l=!0,initialFocusRef:c,onOpenChange:d,onConfirm:m,onCancel:p,className:b}){let v=bo(null),f=bo(null),C=bo(null),y=tn(),T=tn(),N=Ja(()=>{p?.(),d?.(!1)},[p,d]),x=Ja(()=>{m?.(),l&&d?.(!1)},[l,m,d]);return gd(()=>{if(!t)return;C.current=document.activeElement instanceof HTMLElement?document.activeElement:null,(c?.current??f.current??v.current)?.focus();let g=u=>{u.key==="Escape"&&N()};return window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g),C.current?.focus()}},[N,c,t]),t?Xt("div",{className:"fixed inset-0 z-50 grid place-items-center bg-[var(--inkblot-semantic-color-background-primary)]/70 px-[var(--inkblot-spacing-4)]",onClick:N,children:Sr("div",{role:"alertdialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":r?T:void 0,tabIndex:-1,ref:v,onClick:k=>k.stopPropagation(),className:o("w-full max-w-[520px] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-6)] text-[var(--inkblot-semantic-color-text-primary)] shadow-lg",b),children:[Sr("div",{className:"mb-[var(--inkblot-spacing-4)] flex items-start gap-[var(--inkblot-spacing-3)]",children:[Xt("div",{className:o("mt-0.5 rounded-[var(--inkblot-radius-full)] p-[var(--inkblot-spacing-2)]",n?"bg-[var(--inkblot-semantic-color-status-error)]/15 text-[var(--inkblot-semantic-color-status-error)]":"bg-[var(--inkblot-semantic-color-status-warning)]/15 text-[var(--inkblot-semantic-color-status-warning)]"),children:Xt(kd,{className:"h-5 w-5"})}),Sr("div",{className:"flex-1",children:[Xt("h2",{id:y,className:"text-lg font-semibold",children:e}),r&&Xt("p",{id:T,className:"mt-[var(--inkblot-spacing-2)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r})]})]}),Sr("div",{className:"flex flex-wrap justify-end gap-[var(--inkblot-spacing-2)]",children:[Xt("button",{type:"button",ref:f,onClick:N,className:"inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-interactive-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] font-medium text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:i}),Xt("button",{type:"button",disabled:s,onClick:x,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] font-medium text-[var(--inkblot-semantic-color-text-inverse)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",n?"bg-[var(--inkblot-semantic-color-status-error)] hover:bg-[var(--inkblot-semantic-color-status-error)]/85 active:bg-[var(--inkblot-semantic-color-status-error)]/80":"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)]"),children:a})]})]})}):null}import{useEffect as xd,useRef as hd,useState as uo}from"react";import{Check as Nd,Loader2 as wd,Sparkles as en}from"lucide-react";import{Fragment as vo,jsx as ht,jsxs as ue}from"react/jsx-runtime";var Cd=["Write a product launch announcement for a SaaS tool","Create a re-engagement email for churned users","Draft a welcome email for new customers","Write a quarterly business review summary","Create a seasonal promotion email with urgency"];function MN({value:t,defaultValue:e="",onValueChange:r,isGenerating:a,onGeneratingChange:i,generated:n,onGeneratedChange:s,generationDelayMs:l=1500,onSubmitPrompt:c,generateBlocks:d,onGenerate:m,suggestions:p=Cd,className:b}){let[v,f]=uo(e),[C,y]=uo(!1),[T,N]=uo(!1),x=hd(null),k=t!==void 0,g=k?t:v,u=a!==void 0,h=u?a:C,P=n!==void 0,M=P?n:T,D=A=>{k||f(A),r?.(A)},E=A=>{u||y(A),i?.(A)},F=A=>{P||N(A),s?.(A)};xd(()=>()=>{x.current!==null&&window.clearTimeout(x.current)},[]);let L=A=>{let W=Date.now();return[{id:`ai-${W}-1`,type:"heading",content:"Exciting News from Our Team"},{id:`ai-${W}-2`,type:"text",content:`Generated from prompt: ${A}`},{id:`ai-${W}-3`,type:"image",content:""},{id:`ai-${W}-4`,type:"text",content:"Our latest updates are designed to help you achieve more with less effort. We've built these improvements with your feedback in mind."},{id:`ai-${W}-5`,type:"button",content:"Learn More"},{id:`ai-${W}-6`,type:"divider",content:""},{id:`ai-${W}-7`,type:"text",content:`Best regards,
21
- The Team`}]},B=async()=>{let A=g.trim();if(!A||h)return;c?.(A),E(!0);let W;d?W=await Promise.resolve(d(A)):(await new Promise(X=>{window.setTimeout(()=>X(),l)}),W=L(A)),m?.(W),E(!1),F(!0),x.current=window.setTimeout(()=>F(!1),1800)};return ue("section",{className:o(b),children:[ue("div",{className:"mb-2 flex items-center gap-2",children:[ht(en,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-warning)]"}),ht("span",{className:"text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Email Generator"})]}),ue("div",{className:"space-y-3",children:[ht("textarea",{value:g,onChange:A=>D(A.target.value),rows:3,placeholder:"Describe the email you want to create...",className:"w-full resize-none rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-3 text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}),ht("div",{className:"flex flex-wrap gap-1.5",children:p.map(A=>ht("button",{type:"button",onClick:()=>D(A),className:"rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-secondary)] px-2.5 py-1 text-[10px] text-[var(--inkblot-semantic-color-text-primary)] transition-opacity duration-[var(--inkblot-duration-fast)] hover:opacity-85",children:A},A))}),ht("button",{type:"button",onClick:B,disabled:!g.trim()||h,className:"flex items-center gap-2 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-status-warning)]/10 px-4 py-2 text-xs font-medium text-[var(--inkblot-semantic-color-status-warning)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-40",children:h?ue(vo,{children:[ht(wd,{className:"h-3 w-3 animate-spin"}),"Generating..."]}):M?ue(vo,{children:[ht(Nd,{className:"h-3 w-3"}),"Applied to editor"]}):ue(vo,{children:[ht(en,{className:"h-3 w-3"}),"Generate Email"]})})]})]})}import{CheckSquare as Pd,Command as Sd,FileText as Md,Mail as Ed,MessageSquare as Id,Settings as Ld,Users as Ad}from"lucide-react";import{jsx as fo,jsxs as Td}from"react/jsx-runtime";function go({label:t,icon:e,active:r=!1,onClick:a,title:i,dataTour:n,className:s}){return Td("button",{type:"button",onClick:a,"data-tour":n,className:o("group relative flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-transparent transition-colors duration-[var(--inkblot-duration-fast)]",r?"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]",s),title:i??t,"aria-current":r?"page":void 0,"aria-label":t,children:[fo(e,{className:"h-[18px] w-[18px]","aria-hidden":!0}),r?fo("span",{className:"absolute left-0 top-1/2 h-4 w-[2px] -translate-y-1/2 rounded-r bg-[var(--inkblot-semantic-color-interactive-primary)]"}):null,fo("span",{className:"pointer-events-none absolute left-full z-50 ml-3 whitespace-nowrap rounded-[var(--inkblot-radius-sm)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-2 py-1 text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)] opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:t})]})}import{jsx as Ht,jsxs as ko}from"react/jsx-runtime";var Dd=[{id:"canvas",icon:Id,label:"Canvas",path:"/",dataTour:"nav-canvas"},{id:"invoices",icon:Md,label:"Invoices & Deals",path:"/invoices",dataTour:"nav-invoices"},{id:"contacts",icon:Ad,label:"Contacts",path:"/contacts",dataTour:"nav-contacts"},{id:"campaigns",icon:Ed,label:"Campaigns",path:"/campaigns",dataTour:"nav-campaigns"},{id:"tasks",icon:Pd,label:"Tasks",path:"/tasks",dataTour:"nav-tasks"}],Rd=[{id:"settings",icon:Ld,label:"Settings",path:"/settings",dataTour:"nav-settings"}];function rn({items:t=Dd,bottomItems:e=Rd,activePath:r="/",onNavigate:a,logo:i,showStatusDot:n=!0,showThemeToggle:s=!0,className:l}){return ko("aside",{"data-tour":"sidebar",className:o("flex h-full w-16 flex-col items-center gap-1 border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] py-4",l),children:[Ht("div",{className:"mb-6 flex h-9 w-9 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:i??Ht(Sd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}),Ht("nav",{className:"hide-scrollbar flex flex-1 flex-col gap-1 overflow-y-auto",children:t.map(c=>Ht(go,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id))}),ko("div",{className:"flex flex-col gap-1",children:[e.map(c=>Ht(go,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id)),s?ko("div",{className:"group relative flex justify-center",children:[Ht(Nr,{}),Ht("span",{className:"pointer-events-none absolute left-full z-50 ml-3 whitespace-nowrap rounded-[var(--inkblot-radius-sm)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-2 py-1 text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)] opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:"Theme"})]}):null,n?Ht("span",{"data-tour":"system-status",className:"mx-auto mt-2 h-2 w-2 animate-pulse rounded-full bg-[var(--inkblot-semantic-color-status-success)]",title:"System Online"}):null]})]})}import{CreditCard as on,FileText as Hd,GitBranch as Bd,Mail as zd,Phone as Od,Zap as Fd}from"lucide-react";import{jsx as ut,jsxs as De}from"react/jsx-runtime";var Vd=[{id:1,icon:zd,title:"Email opened",meta:"Jane Smith \xB7 Acme Corp",time:"2m ago",status:"info"},{id:2,icon:on,title:"Invoice #1042 paid",meta:"$24,500 \xB7 TechVentures",time:"8m ago",status:"success"},{id:3,icon:Fd,title:"Pipeline stage changed",meta:"Negotiation \u2192 Closing",time:"14m ago",status:"warning"},{id:4,icon:Od,title:"Call completed",meta:"12 min \xB7 Mark Johnson",time:"23m ago",status:"info"},{id:5,icon:Hd,title:"Contract signed",meta:"NDA \xB7 GlobalTech Inc",time:"1h ago",status:"success"},{id:6,icon:Bd,title:"New relationship detected",meta:"Acme \u2194 DataFlow Labs",time:"2h ago",status:"info"},{id:7,icon:on,title:"Invoice overdue",meta:"$8,200 \xB7 StartupXYZ",time:"3h ago",status:"danger"}],Gd={success:"bg-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]",danger:"bg-[var(--inkblot-semantic-color-status-error)]",info:"bg-[var(--inkblot-semantic-color-status-info)]"};function an({title:t="Event Stream",liveLabel:e="Live",events:r=Vd,onItemClick:a,className:i}){return De("section",{className:o("p-4",i),children:[De("header",{className:"mb-4 flex items-center justify-between",children:[ut("h3",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),ut("span",{className:"text-[10px] font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),ut("ul",{className:"space-y-1",children:r.map(n=>{let s=n.icon;return ut("li",{children:De("button",{type:"button",onClick:()=>a?.(n),className:"group flex w-full items-start gap-3 rounded-[var(--inkblot-radius-md)] px-2.5 py-2.5 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:[ut("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:ut(s,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)] group-hover:text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0})}),De("span",{className:"min-w-0 flex-1",children:[De("span",{className:"flex items-center gap-2",children:[ut("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",Gd[n.status])}),ut("span",{className:"truncate text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.title})]}),ut("span",{className:"mt-0.5 block truncate text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.meta})]}),ut("span",{className:"mt-0.5 shrink-0 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.time})]})},n.id)})})]})}import{createContext as Wd,useContext as Kd,useState as Ud,useCallback as nn}from"react";import{jsx as $d}from"react/jsx-runtime";var sn=Wd(null);function _d(){let t=Kd(sn);if(!t)throw new Error("useCanvas must be used within a CanvasProvider");return t}var jd=[{id:"welcome-1",type:"text",content:"Welcome to Citron OS. Use the AI chat on the right to interact with your revenue engine."},{id:"welcome-2",type:"entity"},{id:"welcome-3",type:"intelligence"}];function yo({children:t,initialBlocks:e=jd}){let[r,a]=Ud(e),i=nn(s=>{a(l=>[...l,...s])},[]),n=nn(()=>{a([])},[]);return $d(sn.Provider,{value:{blocks:r,addBlocks:i,clearBlocks:n},children:t})}import{jsx as Re,jsxs as ln}from"react/jsx-runtime";function sw({children:t,showEventFeed:e=!1,sidebarProps:r,eventFeedProps:a,canvasProviderProps:i,className:n}){let s=ln("div",{className:o("flex h-screen w-full overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[Re(rn,{...r}),ln("main",{className:"flex flex-1 overflow-hidden",children:[Re("section",{"data-tour":"canvas",className:"hide-scrollbar flex-1 overflow-y-auto",children:t}),e&&Re("aside",{"data-tour":"event-feed",className:"flex w-80 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)]",children:Re(an,{...a})})]})]});return i?Re(yo,{...i,children:s}):s}import{jsx as cn,jsxs as Yd}from"react/jsx-runtime";function qd({ratio:t=16/9,children:e,className:r}){let a=Number.isFinite(t)&&t>0?t:1.7777777777777777;return Yd("div",{className:o("relative w-full overflow-hidden",r),children:[cn("div",{style:{paddingTop:`${1/a*100}%`}}),cn("div",{className:"absolute inset-0",children:e})]})}import{jsx as Qd}from"react/jsx-runtime";var Xd={default:"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]",secondary:"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]",success:"bg-[var(--inkblot-semantic-color-status-success)]/15 text-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]/15 text-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]/15 text-[var(--inkblot-semantic-color-status-error)]",outline:"border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]"};function Zd({children:t,variant:e="default",disabled:r=!1,className:a}){return Qd("span",{"aria-disabled":r,className:o("inline-flex min-h-[calc(var(--inkblot-size-touch-target-min)-1rem)] items-center justify-center rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)] text-xs font-semibold transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",Xd[e],r&&"opacity-[var(--inkblot-opacity-disabled)]",a),children:t})}import{ChevronRight as Jd}from"lucide-react";import{jsx as He,jsxs as em}from"react/jsx-runtime";function tm({items:t,className:e}){return He("nav",{"aria-label":"Breadcrumb",className:o("w-full",e),children:He("ol",{className:"flex flex-wrap items-center gap-[var(--inkblot-spacing-2)]",children:t.map((r,a)=>{let i=r.href&&!r.disabled&&!r.current?He("a",{href:r.href,onClick:r.onClick,className:"rounded-[var(--inkblot-radius-sm)] text-sm text-[var(--inkblot-semantic-color-text-secondary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:r.label}):He("span",{"aria-current":r.current?"page":void 0,className:o("text-sm",r.current?"font-semibold text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)]",r.disabled&&"opacity-[var(--inkblot-opacity-disabled)]"),children:r.label});return em("li",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[i,a<t.length-1&&He(Jd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"})]},r.id)})})})}import{useMemo as dn,useState as rm}from"react";import{ChevronLeft as om,ChevronRight as am}from"lucide-react";import{jsx as Bt,jsxs as ho}from"react/jsx-runtime";var nm=["L","M","X","J","V","S","D"];function mn(t){return new Date(t.getFullYear(),t.getMonth(),1)}function im(t){return new Date(t.getFullYear(),t.getMonth()+1,0)}function sm(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function xo(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}function lm(t){let e=mn(t),r=im(t),a=(e.getDay()+6)%7,i=r.getDate(),n=[];for(let s=0;s<a;s+=1)n.push(null);for(let s=1;s<=i;s+=1)n.push(new Date(t.getFullYear(),t.getMonth(),s));for(;n.length%7!==0;)n.push(null);return n}function cm({value:t,onChange:e,disabledDates:r,className:a}){let i=t??new Date,[n,s]=rm(mn(i)),l=dn(()=>lm(n),[n]),c=dn(()=>new Set((r??[]).map(xo)),[r]);return ho("div",{className:o("w-[320px] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] text-[var(--inkblot-semantic-color-text-primary)]",a),children:[ho("div",{className:"mb-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[Bt("button",{type:"button",onClick:()=>s(new Date(n.getFullYear(),n.getMonth()-1,1)),className:"inline-flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-md)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Bt(om,{className:"h-4 w-4"})}),Bt("div",{className:"font-semibold",children:n.toLocaleDateString("es-ES",{month:"long",year:"numeric"})}),Bt("button",{type:"button",onClick:()=>s(new Date(n.getFullYear(),n.getMonth()+1,1)),className:"inline-flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-md)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Bt(am,{className:"h-4 w-4"})})]}),ho("div",{className:"grid grid-cols-7 gap-[var(--inkblot-spacing-1)]",children:[nm.map(d=>Bt("div",{className:"pb-[var(--inkblot-spacing-1)] text-center text-xs font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:d},d)),l.map((d,m)=>{if(!d)return Bt("div",{className:"h-9"},`empty-${m}`);let p=c.has(xo(d)),b=t?sm(d,t):!1;return Bt("button",{type:"button",disabled:p,onClick:()=>e?.(d),className:o("h-9 rounded-[var(--inkblot-radius-md)] text-sm transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",b?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",p&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:d.getDate()},xo(d))})]})]})}import{jsx as ve}from"react/jsx-runtime";function dm({className:t,interactive:e=!1,disabled:r=!1,...a}){return ve("div",{"aria-disabled":r,className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]",e&&"transition-[border-color,transform,background] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] hover:border-[var(--inkblot-semantic-color-border-strong)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] active:translate-y-px",r&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]",t),...a})}function mm({className:t,...e}){return ve("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-1)] p-[var(--inkblot-spacing-5)]",t),...e})}function pm({className:t,...e}){return ve("h3",{className:o("text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",t),...e})}function bm({className:t,...e}){return ve("p",{className:o("text-sm text-[var(--inkblot-semantic-color-text-secondary)]",t),...e})}function um({className:t,...e}){return ve("div",{className:o("px-[var(--inkblot-spacing-5)] pb-[var(--inkblot-spacing-5)]",t),...e})}function vm({className:t,...e}){return ve("div",{className:o("flex items-center justify-end gap-[var(--inkblot-spacing-2)] border-t border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-5)] py-[var(--inkblot-spacing-4)]",t),...e})}import{useState as fm}from"react";import{ChevronLeft as gm,ChevronRight as km}from"lucide-react";import{jsx as zt,jsxs as No}from"react/jsx-runtime";function ym({items:t,initialIndex:e=0,loop:r=!1,className:a}){let[i,n]=fm(Math.min(Math.max(e,0),Math.max(t.length-1,0))),s=r||i>0,l=r||i<t.length-1,c=()=>{if(t.length!==0){if(r){n(m=>(m-1+t.length)%t.length);return}n(m=>Math.max(m-1,0))}},d=()=>{if(t.length!==0){if(r){n(m=>(m+1)%t.length);return}n(m=>Math.min(m+1,t.length-1))}};return No("div",{className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)]",a),children:[zt("div",{className:"relative overflow-hidden rounded-[var(--inkblot-radius-lg)]",children:zt("div",{className:"flex transition-transform duration-[var(--inkblot-duration-normal)] ease-[var(--inkblot-easing-default)]",style:{transform:`translateX(-${i*100}%)`},children:t.map((m,p)=>zt("div",{className:"w-full shrink-0",children:m},p))})}),No("div",{className:"mt-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[zt("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.length>0?`${i+1} de ${t.length}`:"Sin elementos"}),No("div",{className:"flex gap-[var(--inkblot-spacing-2)]",children:[zt("button",{type:"button",onClick:c,disabled:!s||t.length===0,className:"inline-flex h-9 w-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",children:zt(gm,{className:"h-4 w-4"})}),zt("button",{type:"button",onClick:d,disabled:!l||t.length===0,className:"inline-flex h-9 w-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",children:zt(km,{className:"h-4 w-4"})})]})]})]})}import{jsx as Zt,jsxs as pn}from"react/jsx-runtime";function xm({data:t,title:e="Rendimiento",emptyMessage:r="No data to display.",className:a}){let i=Math.max(...t.map(n=>n.value),0);return pn("div",{className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-5)]",a),children:[Zt("h3",{className:"mb-[var(--inkblot-spacing-4)] text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:e}),t.length===0?Zt("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r}):Zt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:t.map(n=>{let s=i>0?n.value/i*100:0;return pn("div",{className:"grid grid-cols-[120px_1fr_48px] items-center gap-[var(--inkblot-spacing-3)]",children:[Zt("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:n.label}),Zt("div",{className:"h-3 overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Zt("div",{className:"h-full rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",style:{width:`${s}%`,backgroundColor:n.color??"var(--inkblot-semantic-color-interactive-primary)"}})}),Zt("span",{className:"text-right text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.value})]},n.id)})})]})}import{useState as hm}from"react";import{Check as Nm}from"lucide-react";import{jsx as Mr,jsxs as bn}from"react/jsx-runtime";function wm({checked:t,defaultChecked:e=!1,onCheckedChange:r,label:a,description:i,disabled:n=!1,error:s=!1,className:l}){let[c,d]=hm(e),m=t!==void 0,p=m?t:c,b=v=>{m||d(v),r?.(v)};return bn("label",{className:o("inline-flex items-start gap-[var(--inkblot-spacing-3)] text-[var(--inkblot-semantic-color-text-primary)]",n&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]",l),children:[Mr("button",{type:"button",role:"checkbox","aria-checked":p,disabled:n,onClick:()=>b(!p),className:o("mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] border transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2",p?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] hover:border-[var(--inkblot-semantic-color-border-strong)]",s&&!p&&"border-[var(--inkblot-semantic-color-status-error)]"),children:p&&Mr(Nm,{className:"h-4 w-4"})}),(a||i)&&bn("span",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[a&&Mr("span",{className:"text-sm font-medium",children:a}),i&&Mr("span",{className:o("text-xs text-[var(--inkblot-semantic-color-text-secondary)]",s&&!p&&"text-[var(--inkblot-semantic-color-status-error)]"),children:i})]})]})}import{jsx as Be,jsxs as wo}from"react/jsx-runtime";var Cm={success:"var(--inkblot-semantic-color-status-success)",warning:"var(--inkblot-semantic-color-status-warning)",error:"var(--inkblot-semantic-color-status-error)",info:"var(--inkblot-semantic-color-status-info)",primary:"var(--inkblot-semantic-color-interactive-primary)"};function un({label:t,value:e,tone:r="primary",color:a,inverted:i=!1,size:n=72,className:s}){let l=Math.max(0,Math.min(100,e)),c=i?100-l:l,d=5,m=(n-d)/2,p=2*Math.PI*m,b=p-c/100*p,v=a??Cm[r];return Be("div",{className:s,children:wo("div",{className:"flex flex-col items-center gap-2",children:[wo("div",{className:"relative",style:{width:n,height:n},children:[wo("svg",{width:n,height:n,className:"-rotate-90",children:[Be("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:d}),Be("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:v,strokeWidth:d,strokeDasharray:p,strokeDashoffset:b,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),Be("span",{className:"absolute inset-0 flex items-center justify-center text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:l})]}),Be("span",{className:"text-center text-[10px] leading-tight text-[var(--inkblot-semantic-color-text-tertiary)]",children:t})]})})}import{useState as Tm}from"react";import{ChevronDown as Pm}from"lucide-react";import{jsx as Co,jsxs as vn}from"react/jsx-runtime";function Sm({title:t,children:e,defaultOpen:r=!1,disabled:a=!1,className:i}){let[n,s]=Tm(r);return vn("div",{className:o("w-full rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",a&&"opacity-[var(--inkblot-opacity-disabled)]",i),children:[vn("button",{type:"button",disabled:a,"aria-expanded":n,onClick:()=>s(l=>!l),className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-3)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left text-[var(--inkblot-semantic-color-text-primary)]",!a&&"hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-[-2px]"),children:[Co("span",{className:"font-medium",children:t}),Co(Pm,{className:o("h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",n&&"rotate-180")})]}),n&&Co("div",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})}import{useMemo as Mm,useState as Em}from"react";import{Search as Im}from"lucide-react";import{jsx as Ot,jsxs as To}from"react/jsx-runtime";function Lm({items:t,placeholder:e="Search commands...",onSelect:r,className:a}){let[i,n]=Em(""),s=Mm(()=>{let l=i.trim().toLowerCase();return l?t.filter(c=>{let d=c.label.toLowerCase().includes(l),m=(c.keywords??[]).some(p=>p.toLowerCase().includes(l));return d||m}):t},[t,i]);return To("div",{className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:[To("div",{className:"flex items-center gap-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-3)]",children:[Ot(Im,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"}),Ot("input",{value:i,onChange:l=>n(l.target.value),placeholder:e,className:"h-11 w-full bg-transparent text-sm text-[var(--inkblot-semantic-color-text-primary)] outline-none placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]"})]}),Ot("div",{className:"max-h-[280px] overflow-y-auto p-[var(--inkblot-spacing-2)]",children:s.length>0?Ot("ul",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:s.map(l=>Ot("li",{children:To("button",{type:"button",disabled:l.disabled,onClick:()=>r?.(l),className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] text-left text-sm text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",l.disabled?"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]":"hover:bg-[var(--inkblot-semantic-color-background-tertiary)] active:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:[l.icon&&Ot("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:l.icon}),Ot("span",{children:l.label})]})},l.id))}):Ot("div",{className:"px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-3)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"No results found."})})]})}import{useEffect as Am,useMemo as Dm,useRef as Rm,useState as Po}from"react";import{Send as Hm,Sparkles as Er}from"lucide-react";import{jsx as R,jsxs as dt}from"react/jsx-runtime";var Bm=[{id:"1",role:"user",content:"Show me Acme Corp's profile and deal health."},{id:"2",role:"assistant",content:"Here's the entity profile and current intelligence insights for Acme Corp.",cards:["entity","intelligence"]}],So="rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]";function PC({title:t="Command Canvas",subtitle:e="AI-native interface \u2014 results appear here",readyLabel:r="System ready",placeholder:a="Ask anything \u2014 deals, contacts, forecasts...",footerText:i="Citron OS v1.0 \xB7 AI-native Revenue & Operations Platform",blocks:n,renderBlock:s,messages:l,initialMessages:c=Bm,onMessagesChange:d,inputValue:m,defaultInputValue:p="",onInputValueChange:b,autoAssistantResponse:v=!0,assistantResponseDelayMs:f=700,isResponding:C,onRespondingChange:y,onSend:T,generateAssistantMessage:N,renderCard:x,hideInput:k=!1,className:g}){let[u,h]=Po(c),[P,M]=Po(p),[D,E]=Po(!1),F=Rm(null),L=l!==void 0,B=L?l:u,A=m!==void 0,W=A?m:P,X=C!==void 0,gt=X?C:D,S=W.trim().length>0&&!gt,K=Dm(()=>I=>({content:`Analyzing "${I}". Here are the latest insights.`,cards:["entity","intelligence"]}),[]),w=I=>{L||h(I),d?.(I)},U=I=>{A||M(I),b?.(I)},_=I=>{X||E(I),y?.(I)};Am(()=>()=>{F.current!==null&&window.clearTimeout(F.current)},[]);let Ke=()=>{let I=W.trim();if(!I)return;let Jt={id:`${Date.now()}-user`,role:"user",content:I},Qo=[...B,Jt];w(Qo),U(""),T?.(I),v&&(_(!0),F.current=window.setTimeout(()=>{let Jo=(N??K)(I),Ui=[...Qo,{id:`${Date.now()}-assistant`,role:"assistant",content:Jo.content,cards:Jo.cards}];w(Ui),_(!1)},f))},Zo=n!==void 0,Ki=I=>I.type==="text"?dt("div",{className:"flex items-start gap-3",children:[R("div",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/15",children:R(Er,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),R("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:I.content})]}):I.type==="entity"?x?x("entity"):R("div",{className:So,children:"Entity card preview"}):I.type==="intelligence"?x?x("intelligence"):R("div",{className:So,children:"Intelligence card preview"}):I.type==="loading"?dt("div",{className:"flex items-center gap-3",children:[R("div",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/15",children:R(Er,{className:"h-3.5 w-3.5 animate-pulse text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),dt("div",{className:"flex gap-1",children:[R("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"0ms"}}),R("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"150ms"}}),R("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"300ms"}})]})]}):null;return dt("section",{className:o("flex h-full flex-col",g),children:[dt("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[dt("div",{children:[R("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),R("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),dt("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[R("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),r]})]}),R("div",{className:"hide-scrollbar flex-1 overflow-y-auto px-8 py-6",children:R("div",{className:"mx-auto max-w-3xl space-y-6",children:Zo?n.map(I=>R("div",{children:s?s(I):Ki(I)},I.id)):B.map(I=>I.role==="user"?R("div",{className:"flex justify-end",children:R("div",{className:"max-w-md rounded-2xl rounded-br-sm bg-[var(--inkblot-semantic-color-interactive-secondary)] px-4 py-2.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-primary)]",children:I.content})},I.id):dt("div",{className:"space-y-4",children:[dt("div",{className:"flex items-start gap-3",children:[R("div",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/15",children:R(Er,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),R("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:I.content})]}),I.cards?.length?R("div",{className:"ml-9 grid gap-4",children:I.cards.map(Jt=>x?R("div",{children:x(Jt)},Jt):R("div",{className:So,children:Jt==="entity"?"Entity card preview":"Intelligence card preview"},Jt))}):null]},I.id))})}),!k&&!Zo?R("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-4",children:dt("div",{className:"mx-auto max-w-3xl",children:[dt("div",{className:"flex items-center gap-3 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-3",children:[R(Er,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),R("input",{type:"text",value:W,onChange:I=>U(I.target.value),onKeyDown:I=>{I.key==="Enter"&&Ke()},placeholder:a,className:"flex-1 bg-transparent text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}),R("button",{type:"button",onClick:Ke,disabled:!S,className:"flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-35","aria-label":"Send",children:R(Hm,{className:"h-3.5 w-3.5"})})]}),R("p",{className:"mt-2 text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):R("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-3",children:R("p",{className:"text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})})]})}import{useEffect as zm,useRef as Om,useState as fn}from"react";import{jsx as Ir,jsxs as Mo}from"react/jsx-runtime";function Fm({trigger:t,items:e,className:r}){let[a,i]=fn(!1),[n,s]=fn({x:0,y:0}),l=Om(null);zm(()=>{if(!a)return;let d=()=>i(!1);return document.addEventListener("click",d),document.addEventListener("contextmenu",d),()=>{document.removeEventListener("click",d),document.removeEventListener("contextmenu",d)}},[a]);let c=d=>{d.preventDefault();let m=l.current?.getBoundingClientRect(),p=m?.left??0,b=m?.top??0;s({x:d.clientX-p,y:d.clientY-b}),i(!0)};return Mo("div",{ref:l,className:o("relative w-full",r),onContextMenu:c,children:[t,a&&Ir("div",{role:"menu",className:"absolute z-40 min-w-[220px] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-1)] shadow-lg",style:{left:n.x,top:n.y},children:e.map(d=>Mo("button",{type:"button",role:"menuitem",disabled:d.disabled,onClick:()=>{d.onSelect?.(),i(!1)},className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] text-sm transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",d.disabled?"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]":"hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",d.danger?"text-[var(--inkblot-semantic-color-status-error)]":"text-[var(--inkblot-semantic-color-text-primary)]"),children:[Mo("span",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[d.icon&&Ir("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.icon}),Ir("span",{children:d.label})]}),d.shortcut&&Ir("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.shortcut})]},d.id))})]})}import{createContext as Vm,forwardRef as Io,useCallback as Eo,useContext as Gm,useEffect as gn,useId as kn,useMemo as Wm,useRef as yn,useState as Km}from"react";import{createPortal as Um}from"react-dom";import{X as _m}from"lucide-react";import{jsx as it,jsxs as xn}from"react/jsx-runtime";var hn=Vm(null);function Lo(){let t=Gm(hn);if(!t)throw new Error("Dialog components must be used within Dialog");return t}function jm({open:t,defaultOpen:e=!1,onOpenChange:r,children:a}){let[i,n]=Km(e),s=t!==void 0,l=s?t:i,c=Eo(m=>{s||n(m),r?.(m)},[s,r]),d=Wm(()=>({open:l,setOpen:c}),[l,c]);return it(hn.Provider,{value:d,children:a})}var Nn=Io(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Lo();return it("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!0)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-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","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a})});Nn.displayName="DialogTrigger";var wn=Io(({className:t,children:e,showCloseButton:r=!0,initialFocusRef:a,...i},n)=>{let{open:s,setOpen:l}=Lo(),c=kn(),d=kn(),m=yn(null),p=yn(null),b=Eo(f=>{if(m.current=f,typeof n=="function"){n(f);return}n&&(n.current=f)},[n]),v=Eo(()=>{l(!1)},[l]);return gn(()=>{if(!s)return;let f=C=>{C.key==="Escape"&&v()};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f)}},[v,s]),gn(()=>{if(!s)return;p.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let f=a?.current,C=m.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(f??C??m.current)?.focus(),()=>{p.current?.focus()}},[a,s]),!s||typeof document>"u"?null:Um(xn("div",{className:o("fixed inset-0 z-50 flex items-center justify-center p-[var(--inkblot-spacing-6)]"),children:[it("button",{type:"button","aria-label":"Close dialog",className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70"),onClick:v}),xn("div",{ref:b,role:"dialog","aria-modal":"true","aria-labelledby":c,"aria-describedby":d,tabIndex:-1,className:o("relative z-10 w-full max-w-[calc(var(--inkblot-size-touch-target-min)*10)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-6)]","shadow-[var(--inkblot-shadow-lg)]",t),...i,children:[r?it(Ao,{"aria-label":"Close dialog",className:o("absolute right-[var(--inkblot-spacing-4)] top-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-md)] p-[var(--inkblot-spacing-2)]"),children:it(_m,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}):null,it("div",{id:c,className:"sr-only"}),it("div",{id:d,className:"sr-only"}),e]})]}),document.body)});wn.displayName="DialogContent";function $m({className:t,...e}){return it("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function qm({className:t,...e}){return it("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function Ym({className:t,...e}){return it("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function Xm({className:t,...e}){return it("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var Ao=Io(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Lo();return it("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!1)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-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)]","focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a})});Ao.displayName="DialogClose";import{createContext as Zm,forwardRef as Ro,useCallback as Do,useContext as Qm,useEffect as Cn,useMemo as Jm,useRef as Tn,useState as tp}from"react";import{createPortal as ep}from"react-dom";import{X as rp}from"lucide-react";import{jsx as vt,jsxs as lp}from"react/jsx-runtime";var Pn=Zm(null);function Ho(){let t=Qm(Pn);if(!t)throw new Error("Drawer components must be used within Drawer");return t}function op({children:t,open:e,defaultOpen:r=!1,onOpenChange:a,side:i="right"}){let[n,s]=tp(r),l=e!==void 0,c=l?e:n,d=Do(p=>{l||s(p),a?.(p)},[l,a]),m=Jm(()=>({open:c,setOpen:d,side:i}),[c,d,i]);return vt(Pn.Provider,{value:m,children:t})}var Sn=Ro(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Ho();return vt("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!0)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2",t),...a})});Sn.displayName="DrawerTrigger";var Mn=Ro(({className:t,children:e,initialFocusRef:r,...a},i)=>{let{open:n,setOpen:s,side:l}=Ho(),c=Tn(null),d=Tn(null),m=Do(b=>{if(c.current=b,typeof i=="function"){i(b);return}i&&(i.current=b)},[i]),p=Do(()=>{s(!1)},[s]);return Cn(()=>{if(!n)return;let b=v=>{v.key==="Escape"&&p()};return window.addEventListener("keydown",b),()=>{window.removeEventListener("keydown",b)}},[p,n]),Cn(()=>{if(!n)return;d.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let b=r?.current,v=c.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(b??v??c.current)?.focus(),()=>{d.current?.focus()}},[r,n]),!n||typeof document>"u"?null:ep(lp("div",{className:"fixed inset-0 z-50",children:[vt("button",{type:"button","aria-label":"Close drawer",className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",onClick:p}),vt("div",{ref:m,role:"dialog","aria-modal":"true",tabIndex:-1,className:o("absolute top-0 h-full w-full max-w-[calc(var(--inkblot-size-touch-target-min)*7)] border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-6)] shadow-[var(--inkblot-shadow-lg)]",l==="right"?"right-0 border-l":"left-0 border-r",t),...a,children:e})]}),document.body)});Mn.displayName="DrawerContent";function ap({className:t,...e}){return vt("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function np({className:t,...e}){return vt("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function ip({className:t,...e}){return vt("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function sp({className:t,...e}){return vt("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var En=Ro(({className:t,type:e="button",onClick:r,children:a,...i},n)=>{let{setOpen:s}=Ho();return vt("button",{ref:n,type:e,onClick:l=>{r?.(l),l.defaultPrevented||s(!1)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","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)]",t),...i,children:a??vt(rp,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})});En.displayName="DrawerClose";import{createContext as cp,forwardRef as Bo,useCallback as dp,useContext as mp,useEffect as pp,useMemo as bp,useRef as up,useState as vp}from"react";import{ChevronDown as fp}from"lucide-react";import{jsx as ze,jsxs as Rn}from"react/jsx-runtime";var In=cp(null);function zo(){let t=mp(In);if(!t)throw new Error("DropdownMenu components must be used within DropdownMenu");return t}function gp({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=vp(r),s=up(null),l=e!==void 0,c=l?e:i,d=dp(p=>{l||n(p),a?.(p)},[l,a]);pp(()=>{if(!c)return;let p=v=>{let f=v.target;f&&s.current&&!s.current.contains(f)&&d(!1)},b=v=>{v.key==="Escape"&&d(!1)};return window.addEventListener("pointerdown",p),window.addEventListener("keydown",b),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("keydown",b)}},[c,d]);let m=bp(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return ze(In.Provider,{value:m,children:ze("div",{ref:s,className:"relative inline-flex",children:t})})}var Ln=Bo(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{open:l,setOpen:c}=zo();return Rn("button",{ref:s,type:e,"aria-haspopup":"menu","aria-expanded":l,onClick:d=>{a?.(d),d.defaultPrevented||c(!l)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-text-primary)] hover: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","[font:var(--inkblot-semantic-typography-body-medium)]",t),...n,children:[i,r?ze(fp,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});Ln.displayName="DropdownMenuTrigger";var An=Bo(({className:t,...e},r)=>{let{open:a}=zo();return a?ze("div",{ref:r,role:"menu",className:o("absolute right-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-md)]",t),...e}):null});An.displayName="DropdownMenuContent";var Dn=Bo(({className:t,type:e="button",icon:r,onClick:a,children:i,...n},s)=>{let{setOpen:l}=zo();return Rn("button",{ref:s,type:e,role:"menuitem",onClick:c=>{a?.(c),c.defaultPrevented||l(!1)},className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","text-left text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]","focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-0","[font:var(--inkblot-semantic-typography-body-medium)]",t),...n,children:[r,i]})});Dn.displayName="DropdownMenuItem";function kp({className:t,...e}){return ze("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}import{useMemo as Hn,useState as yp}from"react";import{ChevronDown as xp,ChevronUp as hp,Columns as Np,GripVertical as wp,Image as On,Minus as Cp,MousePointerClick as Tp,Square as Pp,Trash2 as Sp,Type as Bn}from"lucide-react";import{jsx as O,jsxs as Nt}from"react/jsx-runtime";var zn=[{type:"heading",label:"Heading",icon:Bn},{type:"text",label:"Text",icon:Bn},{type:"image",label:"Image",icon:On},{type:"button",label:"Button",icon:Pp},{type:"divider",label:"Divider",icon:Cp},{type:"columns",label:"2 Columns",icon:Np}],Mp={heading:"Your Heading Here",text:"Write your content here. Click to edit this text block.",image:"https://placehold.co/600x200",button:"Click Me",divider:"",columns:"Column 1 | Column 2"};function cT({blocks:t,onBlocksChange:e,availableBlockTypes:r,editingId:a,onEditingIdChange:i,onAddBlock:n,onDeleteBlock:s,onMoveBlock:l,onBlockContentChange:c,readOnly:d=!1,className:m}){let[p,b]=yp(null),v=a!==void 0,f=v?a:p,C=u=>{v||b(u),i?.(u)},y=Hn(()=>!r||r.length===0?zn:zn.filter(u=>r.includes(u.type)),[r]),T=Hn(()=>t.reduce((u,h,P)=>(u[h.id]=P,u),{}),[t]),N=u=>{if(d)return;let h={id:`block-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:u,content:Mp[u]};e([...t,h]),n?.(u,h)},x=(u,h)=>{d||(e(t.map(P=>P.id===u?{...P,content:h}:P)),c?.(u,h))},k=u=>{d||(e(t.filter(h=>h.id!==u)),s?.(u))},g=(u,h)=>{if(d)return;let P=T[u],M=P+h;if(M<0||M>=t.length)return;let D=[...t],[E]=D.splice(P,1);D.splice(M,0,E),e(D),l?.(u,h)};return Nt("section",{className:o("flex gap-4",m),children:[Nt("aside",{className:"w-44 shrink-0",children:[O("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Blocks"}),O("div",{className:"mt-2 space-y-1",children:y.map(u=>Nt("button",{type:"button",onClick:()=>N(u.type),disabled:d,className:"flex w-full items-center gap-2 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-3 py-2 text-xs text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:[O(u.icon,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)]"}),u.label]},u.type))})]}),O("div",{className:"glass min-h-[400px] flex-1 rounded-[var(--inkblot-radius-lg)] p-6",children:t.length===0?Nt("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-center",children:[O(Tp,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/40"}),Nt("div",{children:[O("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Drop blocks here to build your email"}),O("p",{className:"mt-1 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]/60",children:"or use AI to generate a full layout"})]})]}):O("div",{className:"space-y-2",children:t.map((u,h)=>Nt("article",{className:"group flex items-start gap-2",children:[O("div",{className:"pt-1 text-[var(--inkblot-semantic-color-text-tertiary)]",children:O(wp,{className:"h-3.5 w-3.5"})}),Nt("div",{className:"flex-1 rounded-[var(--inkblot-radius-md)] border border-transparent p-3 transition-colors duration-[var(--inkblot-duration-fast)] group-hover:border-[var(--inkblot-semantic-color-border-default)]",children:[u.type==="heading"?O("h2",{contentEditable:!d&&f===u.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(u.id)},onBlur:P=>{x(u.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text text-xl font-bold text-[var(--inkblot-semantic-color-text-primary)] outline-none",children:u.content}):null,u.type==="text"?O("p",{contentEditable:!d&&f===u.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(u.id)},onBlur:P=>{x(u.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)] outline-none",children:u.content}):null,u.type==="image"?O("div",{className:"flex h-32 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:O(On,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/50"})}):null,u.type==="button"?O("div",{className:"flex justify-center",children:O("span",{contentEditable:!d&&f===u.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(u.id)},onBlur:P=>{x(u.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-6 py-2.5 text-sm font-medium text-[var(--inkblot-semantic-color-text-inverse)] outline-none",children:u.content})}):null,u.type==="divider"?O("hr",{className:"my-2 border-[var(--inkblot-semantic-color-border-default)]"}):null,u.type==="columns"?Nt("div",{className:"grid grid-cols-2 gap-4",children:[O("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-4 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Column 1"}),O("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-4 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Column 2"})]}):null]}),Nt("div",{className:"flex flex-col gap-1 opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:[O("button",{type:"button",onClick:()=>g(u.id,-1),disabled:d||h===0,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-30","aria-label":"Move up",children:O(hp,{className:"h-3 w-3"})}),O("button",{type:"button",onClick:()=>g(u.id,1),disabled:d||h===t.length-1,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-30","aria-label":"Move down",children:O(xp,{className:"h-3 w-3"})}),O("button",{type:"button",onClick:()=>k(u.id),disabled:d,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-status-error)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-status-error)]/10","aria-label":"Delete block",children:O(Sp,{className:"h-3 w-3"})})]})]},u.id))})})]})}import{forwardRef as Ep}from"react";import{jsx as Oe,jsxs as Fn}from"react/jsx-runtime";var Vn=Ep(({className:t,...e},r)=>Oe("form",{ref:r,className:o("grid gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-5)]",t),...e}));Vn.displayName="Form";function Ip({className:t,label:e,hint:r,error:a,children:i,requiredIndicator:n,...s}){return Fn("div",{className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:[e?Fn("p",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:[e,n?Oe("span",{className:"ml-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}):null,i,a?Oe("p",{className:"text-[var(--inkblot-semantic-color-status-error)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}):r?Oe("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:r}):null]})}function Lp({className:t,...e}){return Oe("div",{className:o("mt-[var(--inkblot-spacing-2)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}import{useEffect as Ap,useRef as Dp}from"react";import{jsx as fe,jsxs as ge}from"react/jsx-runtime";var Rp=[{id:"1",label:"Acme Corp",kind:"org",x:400,y:250,score:82},{id:"2",label:"TechVentures",kind:"org",x:220,y:140,score:65},{id:"3",label:"DataFlow Labs",kind:"org",x:600,y:160,score:45},{id:"4",label:"Jane Smith",kind:"person",x:300,y:380,score:90},{id:"5",label:"Mark Johnson",kind:"person",x:520,y:370,score:72},{id:"6",label:"GlobalTech",kind:"org",x:160,y:300,score:38},{id:"7",label:"Sarah Lee",kind:"person",x:650,y:310,score:55}],Hp=[{from:"1",to:"2",strength:.8},{from:"1",to:"3",strength:.5},{from:"1",to:"4",strength:.9},{from:"1",to:"5",strength:.7},{from:"2",to:"6",strength:.4},{from:"3",to:"7",strength:.6},{from:"4",to:"5",strength:.3},{from:"6",to:"4",strength:.5}];function Bp(t,e,r,a){return t>=70?e:t>=50?r:a}function Ft(t,e){for(let r of e){let a=t.getPropertyValue(r).trim();if(a)return a}return""}function Oo(t,e,r){if(e){t.font=e;return}t.font=r}function NT({title:t="Entity Graph",subtitle:e,nodes:r=Rp,edges:a=Hp,className:i}){let n=Dp(null);Ap(()=>{let l=n.current;if(!l)return;let c=l.getContext("2d");if(!c)return;let d=()=>{let m=l.getBoundingClientRect(),p=window.devicePixelRatio||1;l.width=m.width*p,l.height=m.height*p,c.setTransform(p,0,0,p,0,0),c.clearRect(0,0,m.width,m.height);let b=getComputedStyle(document.documentElement),v=Ft(b,["--inkblot-semantic-color-border-default","--inkblot-semantic-color-border-strong"]),f=Ft(b,["--inkblot-semantic-color-text-tertiary","--inkblot-semantic-color-text-secondary"]),C=Ft(b,["--inkblot-semantic-color-background-secondary","--inkblot-semantic-color-background-primary"]),y=Ft(b,["--inkblot-semantic-color-status-success","--inkblot-semantic-color-interactive-primary"]),T=Ft(b,["--inkblot-semantic-color-status-warning","--inkblot-semantic-color-status-info"]),N=Ft(b,["--inkblot-semantic-color-status-error","--inkblot-semantic-color-status-warning"]),x=Ft(b,["--inkblot-semantic-typography-body-small","--inkblot-semantic-typography-body-medium"]),k=Ft(b,["--inkblot-semantic-typography-body-medium","--inkblot-semantic-typography-body-small"]),g=c.font;a.forEach(u=>{let h=r.find(M=>M.id===u.from),P=r.find(M=>M.id===u.to);!h||!P||(c.beginPath(),c.moveTo(h.x,h.y),c.lineTo(P.x,P.y),c.strokeStyle=v,c.globalAlpha=Math.min(1,Math.max(0,u.strength*.45)),c.lineWidth=Math.max(1,u.strength*2),c.stroke(),c.globalAlpha=1)}),r.forEach(u=>{let h=Bp(u.score,y,T,N),P=u.kind==="org"?28:22;c.beginPath(),c.arc(u.x,u.y,P+8,0,Math.PI*2),c.fillStyle=h,c.globalAlpha=.08,c.fill(),c.globalAlpha=1,c.beginPath(),c.arc(u.x,u.y,P,0,Math.PI*2),c.fillStyle=C,c.strokeStyle=h,c.globalAlpha=.7,c.lineWidth=1.5,c.fill(),c.stroke(),c.globalAlpha=1,c.fillStyle=h,Oo(c,x,g),c.textAlign="center",c.textBaseline="middle",c.fillText(u.kind==="org"?"\u2B21":"\u25CF",u.x,u.y),c.fillStyle=f,Oo(c,k,g),c.fillText(u.label,u.x,u.y+P+16),c.fillStyle=h,c.globalAlpha=.8,Oo(c,x,g),c.fillText(String(u.score),u.x,u.y+P+28),c.globalAlpha=1})};return d(),window.addEventListener("resize",d),()=>window.removeEventListener("resize",d)},[a,r]);let s=e??`Relationship intelligence \xB7 ${r.length} nodes \xB7 ${a.length} edges`;return ge("section",{className:o("flex h-full flex-col",i),children:[ge("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[ge("div",{children:[fe("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),fe("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]}),ge("div",{className:"flex items-center gap-4 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[ge("span",{className:"flex items-center gap-1.5",children:[fe("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),"Orgs"]}),ge("span",{className:"flex items-center gap-1.5",children:[fe("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-warning)]"}),"People"]})]})]}),fe("div",{className:"relative flex-1",children:fe("canvas",{ref:n,className:"h-full w-full"})})]})}import{useCallback as zp,useEffect as Op,useMemo as Fp,useState as Fo}from"react";import{ArrowLeft as Vp,ArrowRight as Gp,Check as Wp,X as Kp}from"lucide-react";import{Fragment as Gn,jsx as st,jsxs as Vt}from"react/jsx-runtime";var Up=[{target:"[data-tour='sidebar']",title:"Navigation Sidebar",description:"Access all CRM modules from this sidebar. Each icon represents a different module.",position:"right"},{target:"[data-tour='canvas']",title:"AI Command Canvas",description:"This is your AI-powered command center where you can orchestrate tasks and workflows.",position:"bottom"},{target:"[data-tour='event-feed']",title:"Real-Time Event Feed",description:"Follow live system activity like stage updates, invoices, and communication events.",position:"left"},{target:"[data-tour='system-status']",title:"System Status",description:"This indicator confirms platform health and connectivity.",position:"right"}];function IT({steps:t=Up,open:e,defaultOpen:r=!0,onOpenChange:a,stepIndex:i,defaultStepIndex:n=0,onStepIndexChange:s,onComplete:l,className:c}){let[d,m]=Fo(r),[p,b]=Fo(n),[v,f]=Fo(null),C=e??d,y=i??p,T=t[y],N=y===t.length-1,x=M=>{e===void 0&&m(M),a?.(M)},k=M=>{let D=Math.min(Math.max(M,0),Math.max(t.length-1,0));i===void 0&&b(D),s?.(D)},g=zp(()=>{let M=document.querySelector(T.target);if(!M){f(null);return}f(M.getBoundingClientRect())},[T.target]);Op(()=>(g(),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)}),[g]);let u=()=>{if(N){x(!1),l();return}k(y+1)},h=()=>{k(y-1)},P=Fp(()=>{if(!v)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};let M=16,D=320;return T.position==="right"?{top:v.top+v.height/2,left:v.right+M,transform:"translateY(-50%)"}:T.position==="left"?{top:v.top+v.height/2,left:v.left-D-M,transform:"translateY(-50%)"}:T.position==="top"?{top:v.top-M,left:v.left+v.width/2,transform:"translate(-50%, -100%)"}:{top:v.bottom+M,left:v.left+v.width/2,transform:"translateX(-50%)"}},[T.position,v]);return C?Vt("div",{className:o("fixed inset-0 z-[200]",c),children:[v?st("div",{className:"pointer-events-none absolute rounded-[var(--inkblot-radius-lg)] border-2 border-[var(--inkblot-semantic-color-interactive-primary)]/50",style:{top:v.top-6,left:v.left-6,width:v.width+12,height:v.height+12,boxShadow:"0 0 0 9999px var(--inkblot-semantic-color-background-inverse), var(--inkblot-shadow-lg)"}}):st("div",{className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-inverse)]/70"}),Vt("div",{style:{...P,position:"absolute",width:320,zIndex:210},className:"rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-5 shadow-[var(--inkblot-shadow-lg)]",children:[Vt("div",{className:"mb-3 flex items-center justify-between",children:[Vt("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:["Step ",y+1," of ",t.length]}),st("button",{type:"button",onClick:()=>{x(!1),l()},className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","aria-label":"Close tour",children:st(Kp,{className:"h-3 w-3"})})]}),st("h3",{className:"mb-1.5 text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:T.title}),st("p",{className:"text-xs leading-relaxed text-[var(--inkblot-semantic-color-text-tertiary)]",children:T.description}),st("div",{className:"mb-3 mt-4 flex gap-1",children:t.map((M,D)=>st("span",{className:o("h-1 flex-1 rounded-full",D<=y?"bg-[var(--inkblot-semantic-color-interactive-primary)]":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},`${D}-progress`))}),Vt("div",{className:"flex items-center justify-between",children:[Vt("button",{type:"button",onClick:h,disabled:y===0,className:"flex items-center gap-1 text-xs text-[var(--inkblot-semantic-color-text-tertiary)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-0",children:[st(Vp,{className:"h-3 w-3"}),"Back"]}),st("button",{type:"button",onClick:u,className:"flex items-center gap-1.5 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-4 py-2 text-xs font-medium text-[var(--inkblot-semantic-color-text-inverse)]",children:N?Vt(Gn,{children:[st(Wp,{className:"h-3 w-3"}),"Get Started"]}):Vt(Gn,{children:["Next",st(Gp,{className:"h-3 w-3"})]})})]})]})]}):null}import{createContext as _p,forwardRef as Wn,useContext as jp,useMemo as $p,useRef as qp,useState as Yp}from"react";import{jsx as Lr}from"react/jsx-runtime";var Kn=_p(null);function Un(){let t=jp(Kn);if(!t)throw new Error("HoverCard components must be used within HoverCard");return t}function Xp({children:t,openDelay:e=120,closeDelay:r=120}){let[a,i]=Yp(!1),n=qp(null),s=$p(()=>({open:a,setOpen:i,openDelay:e,closeDelay:r,timeoutRef:n}),[a,e,r]);return Lr(Kn.Provider,{value:s,children:Lr("div",{className:"relative inline-flex",children:t})})}var _n=Wn(({className:t,onMouseEnter:e,onMouseLeave:r,onFocus:a,onBlur:i,...n},s)=>{let{setOpen:l,openDelay:c,closeDelay:d,timeoutRef:m}=Un();return Lr("div",{ref:s,tabIndex:0,onMouseEnter:p=>{e?.(p),m.current&&window.clearTimeout(m.current),m.current=window.setTimeout(()=>l(!0),c)},onMouseLeave:p=>{r?.(p),m.current&&window.clearTimeout(m.current),m.current=window.setTimeout(()=>l(!1),d)},onFocus:p=>{a?.(p),l(!0)},onBlur:p=>{i?.(p),l(!1)},className:o(t),...n})});_n.displayName="HoverCardTrigger";var jn=Wn(({className:t,onMouseEnter:e,onMouseLeave:r,...a},i)=>{let{open:n,setOpen:s,closeDelay:l,timeoutRef:c}=Un();return n?Lr("div",{ref:i,role:"dialog",onMouseEnter:d=>{e?.(d),c.current&&window.clearTimeout(c.current),s(!0)},onMouseLeave:d=>{r?.(d),c.current&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>s(!1),l)},className:o("absolute left-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-md)]",t),...a}):null});jn.displayName="HoverCardContent";import{forwardRef as Zp,useMemo as Qp,useRef as Jp,useState as tb}from"react";import{jsx as $n}from"react/jsx-runtime";var qn=Zp(({className:t,disabled:e,length:r=6,value:a,defaultValue:i="",onValueChange:n,containerProps:s,...l},c)=>{let[d,m]=tb(i.slice(0,r)),p=Jp([]),b=a!==void 0,v=b?a.slice(0,r):d,f=Qp(()=>Array.from({length:r},(k,g)=>v[g]??""),[v,r]),C=k=>{let g=k.slice(0,r);b||m(g),n?.(g)},y=k=>{let g=p.current[k];g?.focus(),g?.select()},T=(k,g)=>{let u=g.replace(/[^0-9A-Za-z]/g,"").slice(0,1),h=f.map((P,M)=>M===k?u:P);C(h.join("")),u&&k<r-1&&y(k+1)},N=(k,g)=>{if(g.key==="Backspace"&&!f[k]&&k>0){let u=f.map((h,P)=>P===k-1?"":h);C(u.join("")),y(k-1)}g.key==="ArrowLeft"&&k>0&&(g.preventDefault(),y(k-1)),g.key==="ArrowRight"&&k<r-1&&(g.preventDefault(),y(k+1))};return $n("div",{ref:c,onPaste:k=>{k.preventDefault();let g=k.clipboardData.getData("text").replace(/[^0-9A-Za-z]/g,"").slice(0,r);g&&(C(g),y(Math.min(g.length,r-1)))},className:o("flex items-center gap-[var(--inkblot-spacing-2)]",t,s?.className),...s,children:f.map((k,g)=>$n("input",{ref:u=>{p.current[g]=u},type:"text",inputMode:"numeric",maxLength:1,value:k,disabled:e,onChange:u=>T(g,u.target.value),onKeyDown:u=>N(g,u),className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]","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"),...l},`otp-slot-${g}`))})});qn.displayName="InputOtp";import{jsx as Vo,jsxs as rb}from"react/jsx-runtime";var eb=[{label:"Revenue Confidence",value:82,tone:"success"},{label:"Churn Risk",value:23,tone:"warning",inverted:!0},{label:"Momentum",value:67,tone:"primary"}];function YT({title:t="Intelligence Scores",items:e=eb,className:r}){return rb("article",{className:o("glass rounded-[var(--inkblot-radius-lg)] p-5",r),children:[Vo("h3",{className:"mb-4 text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),Vo("div",{className:"grid grid-cols-3 gap-6",children:e.map(a=>Vo(un,{label:a.label,value:a.value,tone:a.tone,color:a.color,inverted:a.inverted},a.label))})]})}import{forwardRef as ob}from"react";import{jsx as ab,jsxs as nb}from"react/jsx-runtime";var Yn=ob(({className:t,children:e,requiredIndicator:r,...a},i)=>nb("label",{ref:i,className:o("inline-flex items-center gap-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...a,children:[e,r?ab("span",{className:"text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}));Yn.displayName="Label";import{createContext as Xn,forwardRef as Fe,useContext as Zn,useMemo as Qn,useRef as ib,useState as sb}from"react";import{ChevronDown as lb}from"lucide-react";import{jsx as Gt,jsxs as si}from"react/jsx-runtime";var Jn=Xn(null);function Go(){let t=Zn(Jn);if(!t)throw new Error("Menubar components must be used within Menubar");return t}var ti=Xn(null);function ei(){let t=Zn(ti);if(!t)throw new Error("Menubar menu components must be used within MenubarMenu");return t}var ri=Fe(({className:t,...e},r)=>{let[a,i]=sb(null),n=Qn(()=>({openMenuId:a,setOpenMenuId:i}),[a]);return Gt(Jn.Provider,{value:n,children:Gt("div",{ref:r,className:o("flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)]",t),...e})})});ri.displayName="Menubar";function cb({id:t,className:e,...r}){let a=Qn(()=>({menuId:t}),[t]);return Gt(ti.Provider,{value:a,children:Gt("div",{className:o("relative inline-flex",e),...r})})}var oi=Fe(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{openMenuId:l,setOpenMenuId:c}=Go(),{menuId:d}=ei(),m=l===d;return si("button",{ref:s,type:e,"aria-haspopup":"menu","aria-expanded":m,onClick:p=>{a?.(p),p.defaultPrevented||c(m?null:d)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]",m?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",t),...n,children:[i,r?Gt(lb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});oi.displayName="MenubarTrigger";var ai=Fe(({className:t,...e},r)=>{let{openMenuId:a}=Go(),{menuId:i}=ei();return a!==i?null:Gt("div",{ref:r,role:"menu",className:o("absolute left-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-md)]",t),...e})});ai.displayName="MenubarContent";var ni=Fe(({className:t,type:e="button",icon:r,...a},i)=>si("button",{ref:i,type:e,role:"menuitem",className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","text-left text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a,children:[r,a.children]}));ni.displayName="MenubarItem";function db({className:t,...e}){return Gt("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}var ii=Fe(({className:t,...e},r)=>{let{setOpenMenuId:a}=Go(),i=ib(null);return Gt("div",{ref:n=>{i.current=n,typeof r=="function"?r(n):r&&(r.current=n)},onPointerDown:n=>{i.current?.contains(n.target)&&a(null)},className:o(t),...e})});ii.displayName="MenubarCloseZone";import{ChevronRight as li}from"lucide-react";import{jsx as Ar,jsxs as ci}from"react/jsx-runtime";function mb({items:t,className:e,onItemSelect:r}){return Ar("nav",{"aria-label":"Navigation menu",className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)]",e),children:t.map(a=>Ar(pb,{item:a,onSelect:()=>r?.(a)},a.id))})}function pb({item:t,onSelect:e,className:r,...a}){let i=o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]",t.active?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",t.disabled&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]",r);return t.href?ci("a",{href:t.href,"aria-current":t.active?"page":void 0,className:i,onClick:()=>e?.(),...a,children:[t.icon,t.label,t.active?null:Ar(li,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]}):ci("button",{type:"button","aria-current":t.active?"page":void 0,disabled:t.disabled,className:i,onClick:()=>e?.(),children:[t.icon,t.label,t.active?null:Ar(li,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]})}import{useMemo as bb,useState as di}from"react";import{ArrowLeft as ub,ArrowRight as vb,Briefcase as fb,Building2 as gb,Check as kb,Command as yb,Globe as xb,Megaphone as hb,Sparkles as Nb,Target as mi,Users as wb}from"lucide-react";import{Fragment as pi,jsx as q,jsxs as lt}from"react/jsx-runtime";var Cb=[{id:"company",question:"What's your company name?",subtitle:"We'll personalize your workspace around your brand.",icon:gb,type:"input",field:"companyName",placeholder:"e.g. Acme Corporation"},{id:"size",question:"How many employees does your company have?",subtitle:"This helps us tailor the right features for your team size.",icon:wb,type:"select",field:"companySize",options:[{value:"1-10",label:"1-10"},{value:"11-50",label:"11-50"},{value:"51-200",label:"51-200"},{value:"201-1000",label:"201-1,000"},{value:"1000+",label:"1,000+"}]},{id:"industry",question:"What industry are you in?",subtitle:"We'll pre-configure pipelines and templates for your sector.",icon:fb,type:"select",field:"industry",options:[{value:"saas",label:"SaaS / Software"},{value:"agency",label:"Agency / Consulting"},{value:"ecommerce",label:"E-Commerce"},{value:"fintech",label:"Fintech"},{value:"healthcare",label:"Healthcare"},{value:"other",label:"Other"}]},{id:"role",question:"What's your role?",subtitle:"So we can surface the most relevant modules first.",icon:mi,type:"select",field:"role",options:[{value:"founder",label:"Founder / CEO"},{value:"sales",label:"Sales Leader"},{value:"marketing",label:"Marketing"},{value:"ops",label:"Operations"},{value:"other",label:"Other"}]},{id:"goals",question:"What do you want to achieve?",subtitle:"Select all that apply. We'll prioritize these in your dashboard.",icon:mi,type:"multi-select",field:"goals",options:[{value:"pipeline",label:"Manage Sales Pipeline"},{value:"contacts",label:"Organize Contacts"},{value:"email",label:"Email Campaigns"},{value:"invoicing",label:"Invoicing"},{value:"reporting",label:"Analytics & Reporting"},{value:"automation",label:"Workflow Automation"}]},{id:"source",question:"How did you hear about us?",subtitle:"Helps us improve our outreach.",icon:hb,type:"select",field:"source",options:[{value:"google",label:"Google Search"},{value:"social",label:"Social Media"},{value:"referral",label:"Friend / Colleague"},{value:"event",label:"Conference / Event"},{value:"other",label:"Other"}]},{id:"website",question:"What's your company website?",subtitle:"Optional, we'll try to auto-import your branding.",icon:xb,type:"input",field:"website",placeholder:"e.g. https://acme.com"}];function NP({onComplete:t,steps:e=Cb,value:r,defaultValue:a,onValueChange:i,stepIndex:n,defaultStepIndex:s=0,onStepIndexChange:l,onCancel:c,showSkip:d=!0,className:m}){let[p,b]=di(s),[v,f]=di(a??{}),C=n!==void 0,y=r!==void 0,T=C?n:p,N=y?r:v,x=e[T],k=N[x.field]??(x.type==="multi-select"?[]:""),g=T===e.length-1,u=bb(()=>x.type==="multi-select"?k.length>0:x.id==="website"?!0:typeof k=="string"&&k.trim().length>0,[k,x.id,x.type]),h=L=>{let B=Math.min(Math.max(L,0),Math.max(e.length-1,0));C||b(B),l?.(B)},P=L=>{y||f(L),i?.(L)},M=()=>h(T-1),D=()=>{if(g){t(N);return}h(T+1)},E=(L,B)=>{P({...N,[L]:B})},F=(L,B)=>{let A=N[L]??[],W=A.includes(B)?A.filter(X=>X!==B):[...A,B];E(L,W)};return lt("section",{className:o("fixed inset-0 z-[100] flex items-center justify-center bg-[var(--inkblot-semantic-color-background-primary)]",m),children:[lt("div",{className:"absolute inset-0 overflow-hidden",children:[q("div",{className:"absolute left-1/4 top-1/4 h-96 w-96 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]/5 blur-[120px]"}),q("div",{className:"absolute bottom-1/4 right-1/4 h-96 w-96 rounded-full bg-[var(--inkblot-semantic-color-status-warning)]/5 blur-[120px]"})]}),lt("div",{className:"relative w-full max-w-lg px-6",children:[lt("header",{className:"mb-12 flex items-center justify-center gap-2",children:[q("span",{className:"flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:q(yb,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-inverse)]"})}),q("span",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:"Citron OS"})]}),q("div",{className:"mb-10 flex gap-1",children:e.map((L,B)=>q("span",{className:o("h-0.5 flex-1 rounded-full",B<T?"bg-[var(--inkblot-semantic-color-interactive-primary)]":B===T?"bg-[var(--inkblot-semantic-color-interactive-primary)]/60":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},L.id))}),lt("div",{className:"space-y-6",children:[lt("div",{children:[q("div",{className:"mb-4 flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-secondary)]",children:q(x.icon,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]"})}),q("h2",{className:"text-xl font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:x.question}),q("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:x.subtitle})]}),x.type==="input"?q("input",{autoFocus:!0,value:k||"",onChange:L=>E(x.field,L.target.value),placeholder:x.placeholder,onKeyDown:L=>{L.key==="Enter"&&u&&D()},className:"w-full rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-5 py-3.5 text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}):null,x.type==="select"?q("div",{className:"grid grid-cols-2 gap-2",children:x.options?.map(L=>q("button",{type:"button",onClick:()=>E(x.field,L.value),className:o("rounded-[var(--inkblot-radius-lg)] border px-4 py-3 text-left text-sm transition-colors duration-[var(--inkblot-duration-fast)]",k===L.value?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 text-[var(--inkblot-semantic-color-text-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:L.label},L.value))}):null,x.type==="multi-select"?q("div",{className:"grid grid-cols-2 gap-2",children:x.options?.map(L=>{let B=k.includes(L.value);return lt("button",{type:"button",onClick:()=>F(x.field,L.value),className:o("flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] border px-4 py-3 text-left text-sm transition-colors duration-[var(--inkblot-duration-fast)]",B?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 text-[var(--inkblot-semantic-color-text-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:[q("span",{className:o("flex h-4 w-4 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] border",B?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]":"border-[var(--inkblot-semantic-color-border-default)]"),children:B?q(kb,{className:"h-2.5 w-2.5 text-[var(--inkblot-semantic-color-text-inverse)]"}):null}),L.label]},L.value)})}):null]}),lt("footer",{className:"mt-10 flex items-center justify-between",children:[lt("button",{type:"button",onClick:M,disabled:T===0,className:"flex items-center gap-1.5 rounded-[var(--inkblot-radius-md)] px-4 py-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-0",children:[q(ub,{className:"h-3 w-3"}),"Back"]}),lt("div",{className:"flex items-center gap-3",children:[!g&&d?q("button",{type:"button",onClick:c??D,className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Skip"}):null,q("button",{type:"button",onClick:D,disabled:!u,className:"flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-5 py-2.5 text-xs font-medium text-[var(--inkblot-semantic-color-text-inverse)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-40",children:g?lt(pi,{children:[q(Nb,{className:"h-3 w-3"}),"Launch Citron OS"]}):lt(pi,{children:["Continue",q(vb,{className:"h-3 w-3"})]})})]})]})]})]})}import{ChevronLeft as Tb,ChevronRight as Pb}from"lucide-react";import{jsx as Ve,jsxs as Mb}from"react/jsx-runtime";function Sb({page:t,totalPages:e,onPageChange:r,className:a}){let i=Array.from({length:e},(n,s)=>s+1);return Mb("nav",{"aria-label":"Pagination",className:o("flex items-center gap-[var(--inkblot-spacing-2)]",a),children:[Ve("button",{type:"button","aria-label":"Previous page",disabled:t<=1,onClick:()=>r(Math.max(t-1,1)),className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none"),children:Ve(Tb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}),i.map(n=>{let s=n===t;return Ve("button",{type:"button",onClick:()=>r(n),"aria-current":s?"page":void 0,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] min-w-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]",s?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),children:n},`page-${n}`)}),Ve("button",{type:"button","aria-label":"Next page",disabled:t>=e,onClick:()=>r(Math.min(t+1,e)),className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none"),children:Ve(Pb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})]})}import{createContext as Eb,forwardRef as Wo,useCallback as Ib,useContext as Lb,useEffect as Ab,useMemo as Db,useRef as Rb,useState as Hb}from"react";import{jsx as Ge}from"react/jsx-runtime";var bi=Eb(null);function Ko(){let t=Lb(bi);if(!t)throw new Error("Popover components must be used within Popover");return t}function Bb({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=Hb(r),s=Rb(null),l=e!==void 0,c=l?e:i,d=Ib(p=>{l||n(p),a?.(p)},[l,a]);Ab(()=>{if(!c)return;let p=v=>{let f=v.target;f&&s.current&&!s.current.contains(f)&&d(!1)},b=v=>{v.key==="Escape"&&d(!1)};return window.addEventListener("pointerdown",p),window.addEventListener("keydown",b),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("keydown",b)}},[c,d]);let m=Db(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Ge(bi.Provider,{value:m,children:Ge("div",{ref:s,className:"relative inline-flex",children:t})})}var ui=Wo(({className:t,type:e="button",onClick:r,...a},i)=>{let{open:n,setOpen:s}=Ko();return Ge("button",{ref:i,type:e,"aria-haspopup":"dialog","aria-expanded":n,onClick:l=>{r?.(l),l.defaultPrevented||s(!n)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a})});ui.displayName="PopoverTrigger";var vi=Wo(({className:t,...e},r)=>{let{open:a}=Ko();return a?Ge("div",{ref:r,role:"dialog",className:o("absolute left-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-md)]",t),...e}):null});vi.displayName="PopoverContent";var fi=Wo(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Ko();return Ge("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!1)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]",t),...a})});fi.displayName="PopoverClose";import{forwardRef as zb}from"react";import{jsx as Uo,jsxs as Ob}from"react/jsx-runtime";var gi=zb(({className:t,value:e,max:r=100,showValueLabel:a=!1,...i},n)=>{let s=Math.max(0,Math.min(e/r,1)),l=`${Math.round(s*100)}%`;return Ob("div",{ref:n,className:o("grid gap-[var(--inkblot-spacing-2)]",t),...i,children:[Uo("div",{className:"h-[var(--inkblot-spacing-2)] overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:Uo("div",{className:"h-full rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)] transition-[width] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",style:{width:l}})}),a?Uo("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:l}):null]})});gi.displayName="Progress";import{forwardRef as yi,useState as Fb}from"react";import{jsx as We,jsxs as ki}from"react/jsx-runtime";var xi=yi(({className:t,options:e,value:r,defaultValue:a,onValueChange:i,name:n="radio-group",...s},l)=>{let[c,d]=Fb(a??""),m=r!==void 0,p=m?r:c,b=v=>{m||d(v),i?.(v)};return We("div",{ref:l,role:"radiogroup",className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:e.map(v=>ki("label",{className:o("flex cursor-pointer items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-background-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",v.disabled&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]"),children:[We(_o,{type:"radio",name:n,value:v.value,checked:p===v.value,disabled:v.disabled,onChange:()=>b(v.value)}),ki("span",{className:"grid gap-[var(--inkblot-spacing-1)]",children:[We("span",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:v.label}),v.description?We("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:v.description}):null]})]},v.value))})});xi.displayName="RadioGroup";var _o=yi(({className:t,...e},r)=>We("input",{ref:r,className:o("mt-[var(--inkblot-spacing-1)] h-[var(--inkblot-spacing-4)] w-[var(--inkblot-spacing-4)] border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-interactive-primary)]",t),...e}));_o.displayName="RadioGroupItem";import{useMemo as Vb,useState as Gb}from"react";import{GripVertical as Wb,GripHorizontal as Kb}from"lucide-react";import{jsx as ke,jsxs as _b}from"react/jsx-runtime";function Ub({primary:t,secondary:e,direction:r="horizontal",defaultPrimarySize:a=50,minPrimarySize:i=20,minSecondarySize:n=20,className:s}){let[l,c]=Gb(a),d=r==="horizontal",m=Vb(()=>d?{gridTemplateColumns:`${l}fr auto ${100-l}fr`}:{gridTemplateRows:`${l}fr auto ${100-l}fr`},[d,l]),p=(b,v)=>{let f=v.getBoundingClientRect(),C=d?(b.x-f.left)/f.width*100:(b.y-f.top)/f.height*100,y=100-n,T=Math.min(y,Math.max(i,C));c(T)};return _b("div",{className:o("grid h-full w-full overflow-hidden rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)]",s),style:m,children:[ke("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:t}),ke("div",{className:o(d?"w-[var(--inkblot-spacing-2)]":"h-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-border-default)]"),children:ke("button",{type:"button","aria-label":"Resize panels",className:o("flex h-full w-full items-center justify-center bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-secondary)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] active:bg-[var(--inkblot-semantic-color-background-secondary)]"),onPointerDown:b=>{let v=b.currentTarget.closest("div")?.parentElement;if(!v)return;p({x:b.clientX,y:b.clientY},v);let f=y=>{p({x:y.clientX,y:y.clientY},v)},C=()=>{window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",C)},children:d?ke(Wb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):ke(Kb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})}),ke("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:e})]})}import{forwardRef as jb}from"react";import{jsx as $b}from"react/jsx-runtime";var hi=jb(({className:t,maxHeight:e="var(--inkblot-size-touch-target-min)",...r},a)=>$b("div",{ref:a,className:o("overflow-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-3)]",t),style:{maxHeight:e,...r.style},...r}));hi.displayName="ScrollArea";import{ChevronDown as qb}from"lucide-react";import{forwardRef as Yb}from"react";import{jsx as jo,jsxs as Ni}from"react/jsx-runtime";var wi=Yb(({className:t,options:e,placeholder:r,error:a,disabled:i,...n},s)=>Ni("div",{className:"relative w-full",children:[Ni("select",{ref:s,disabled:i,"aria-invalid":a,className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full appearance-none rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-2 pr-10 text-[var(--inkblot-semantic-color-text-primary)] 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",a?"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,children:[r?jo("option",{value:"",disabled:!0,children:r}):null,e.map(l=>jo("option",{value:l.value,disabled:l.disabled,children:l.label},l.value))]}),jo(qb,{"aria-hidden":!0,className:"pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-[var(--inkblot-semantic-color-text-tertiary)]"})]}));wi.displayName="Select";import{forwardRef as Xb}from"react";import{jsx as Zb}from"react/jsx-runtime";var Ci=Xb(({className:t,orientation:e="horizontal",decorative:r=!0,...a},i)=>Zb("div",{ref:i,role:r?"none":"separator","aria-orientation":e,className:o("shrink-0 bg-[var(--inkblot-semantic-color-border-default)]",e==="horizontal"?"h-px w-full":"h-full w-px",t),...a}));Ci.displayName="Separator";import{X as Qb}from"lucide-react";import{useEffect as Jb}from"react";import{jsx as ye,jsxs as Dr}from"react/jsx-runtime";var tu={top:"inset-x-0 top-0 border-b rounded-b-[var(--inkblot-radius-lg)]",right:"inset-y-0 right-0 h-full w-full max-w-[420px] border-l",bottom:"inset-x-0 bottom-0 border-t rounded-t-[var(--inkblot-radius-lg)]",left:"inset-y-0 left-0 h-full w-full max-w-[420px] border-r"};function eu({open:t,onOpenChange:e,side:r="right",title:a,description:i,showCloseButton:n=!0,className:s,overlayClassName:l,children:c,...d}){return Jb(()=>{if(!t)return;let m=p=>{p.key==="Escape"&&e?.(!1)};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[t,e]),t?Dr("div",{className:"fixed inset-0 z-50",children:[ye("button",{type:"button","aria-label":"Close panel",onClick:()=>e?.(!1),className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",l)}),Dr("section",{role:"dialog","aria-modal":"true",className:o("absolute bg-[var(--inkblot-semantic-color-background-secondary)] p-5 text-[var(--inkblot-semantic-color-text-primary)] shadow-lg border-[var(--inkblot-semantic-color-border-default)]",tu[r],s),...d,children:[(a||i||n)&&Dr("header",{className:"mb-4 flex items-start justify-between gap-4",children:[Dr("div",{children:[a?ye("h3",{className:"text-base font-semibold",children:a}):null,i?ye("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:i}):null]}),n?ye("button",{type:"button","aria-label":"Close",onClick:()=>e?.(!1),className:"inline-flex size-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-text-secondary)] transition-colors hover:text-[var(--inkblot-semantic-color-text-primary)]",children:ye(Qb,{className:"size-4"})}):null]}),ye("div",{children:c})]})]}):null}import{PanelLeftClose as ru,PanelLeftOpen as ou}from"lucide-react";import{Fragment as nu,jsx as wt,jsxs as Rr}from"react/jsx-runtime";function au({items:t,collapsed:e=!1,onCollapsedChange:r,header:a,footer:i,className:n,...s}){return Rr("aside",{className:o("flex h-full flex-col border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 transition-[width] duration-[var(--inkblot-duration-fast)]",e?"w-[76px]":"w-[260px]",n),...s,children:[Rr("div",{className:"mb-3 flex items-center justify-between gap-2",children:[wt("div",{className:o("truncate text-sm font-semibold",e&&"sr-only"),children:a}),wt("button",{type:"button","aria-label":e?"Expandir sidebar":"Colapsar sidebar",onClick:()=>r?.(!e),className:"inline-flex size-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:e?wt(ou,{className:"size-4"}):wt(ru,{className:"size-4"})})]}),wt("nav",{className:"flex flex-1 flex-col gap-1",children:t.map(l=>{let c=l.icon;return Rr("button",{type:"button",disabled:l.disabled,onClick:l.onClick,className:o("flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-3 rounded-[var(--inkblot-radius-md)] px-3 py-2 text-sm transition-colors",l.active?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",l.disabled&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[c?wt(c,{className:"size-4 shrink-0"}):null,e?null:Rr(nu,{children:[wt("span",{className:"truncate",children:l.label}),l.badge?wt("span",{className:"ml-auto",children:l.badge}):null]})]},l.id)})}),i?wt("div",{className:o("mt-3 border-t border-[var(--inkblot-semantic-color-border-default)] pt-3",e&&"sr-only"),children:i}):null]})}import{forwardRef as iu,useMemo as su}from"react";import{jsx as Hr,jsxs as Ti}from"react/jsx-runtime";var Pi=iu(({className:t,value:e,defaultValue:r,min:a=0,max:i=100,step:n=1,disabled:s,showValue:l=!0,onValueChange:c,...d},m)=>{let p=e??r??a,b=su(()=>i<=a?0:(p-a)/(i-a)*100,[p,a,i]);return Ti("div",{className:o("w-full",t),children:[Ti("div",{className:"mb-2 flex items-center justify-between text-sm",children:[Hr("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:a}),l?Hr("span",{className:"font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:p}):null,Hr("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:i})]}),Hr("input",{ref:m,type:"range",value:e,defaultValue:r,min:a,max:i,step:n,disabled:s,onChange:v=>c?.(Number(v.target.value)),className:"h-2 w-full cursor-pointer appearance-none rounded-full bg-[var(--inkblot-semantic-color-background-tertiary)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)] [&::-webkit-slider-runnable-track]:h-2 [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-transparent [&::-webkit-slider-thumb]:mt-[-4px] [&::-webkit-slider-thumb]:size-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border [&::-webkit-slider-thumb]:border-[var(--inkblot-semantic-color-border-default)] [&::-webkit-slider-thumb]:bg-[var(--inkblot-semantic-color-background-secondary)] [&::-webkit-slider-thumb]:shadow-sm [&::-moz-range-track]:h-2 [&::-moz-range-track]:rounded-full [&::-moz-range-track]:bg-transparent [&::-moz-range-thumb]:size-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border [&::-moz-range-thumb]:border-[var(--inkblot-semantic-color-border-default)] [&::-moz-range-thumb]:bg-[var(--inkblot-semantic-color-background-secondary)]",style:{background:`linear-gradient(to right, var(--inkblot-semantic-color-interactive-primary) 0%, var(--inkblot-semantic-color-interactive-primary) ${b}%, var(--inkblot-semantic-color-background-tertiary) ${b}%, var(--inkblot-semantic-color-background-tertiary) 100%)`},...d})]})});Pi.displayName="Slider";import{useMemo as fu}from"react";import{AlertTriangle as lu,CheckCircle2 as cu,CircleX as du,Info as mu,X as pu}from"lucide-react";import{jsx as mt,jsxs as Si}from"react/jsx-runtime";var bu={info:"border-[var(--inkblot-semantic-color-status-info)]",success:"border-[var(--inkblot-semantic-color-status-success)]",warning:"border-[var(--inkblot-semantic-color-status-warning)]",error:"border-[var(--inkblot-semantic-color-status-error)]"},uu={info:mt(mu,{className:"size-4"}),success:mt(cu,{className:"size-4"}),warning:mt(lu,{className:"size-4"}),error:mt(du,{className:"size-4"})};function $o({title:t,description:e,variant:r="info",action:a,onClose:i,className:n,...s}){return mt("div",{role:"status",className:o("w-full rounded-[var(--inkblot-radius-lg)] border-l-4 border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-[var(--inkblot-semantic-color-text-primary)] shadow-sm",bu[r],n),...s,children:Si("div",{className:"flex items-start gap-3",children:[mt("span",{className:"mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]",children:uu[r]}),Si("div",{className:"min-w-0 flex-1",children:[mt("p",{className:"text-sm font-semibold",children:t}),e?mt("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e}):null,a?mt("button",{type:"button",...a,className:o("mt-2 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-2 py-1 text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",a.className),children:a.label}):null]}),i?mt("button",{type:"button","aria-label":"Close notification",onClick:i,className:"inline-flex size-8 items-center justify-center rounded-[var(--inkblot-radius-md)] text-[var(--inkblot-semantic-color-text-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:mt(pu,{className:"size-4"})}):null]})})}import{jsx as Mi}from"react/jsx-runtime";var vu={"top-left":"top-4 left-4","top-right":"top-4 right-4","bottom-left":"bottom-4 left-4","bottom-right":"bottom-4 right-4"};function qo({toasts:t,position:e="bottom-right",onDismiss:r,className:a,...i}){return Mi("div",{className:o("fixed z-50 flex w-full max-w-[360px] flex-col gap-2",vu[e],a),...i,children:t.map(n=>Mi($o,{...n,onClose:()=>r?.(n.id)},n.id))})}import{jsx as ku}from"react/jsx-runtime";function gu({toasts:t,maxVisible:e=3,position:r="bottom-right",onDismiss:a,...i}){let n=fu(()=>t.slice(0,e),[t,e]);return ku(qo,{toasts:n,position:r,onDismiss:a,...i})}import{forwardRef as yu,useState as xu}from"react";import{jsx as Ei}from"react/jsx-runtime";var Ii=yu(({checked:t,defaultChecked:e=!1,onCheckedChange:r,disabled:a,className:i,...n},s)=>{let[l,c]=xu(e),d=t??l;return Ei("button",{ref:s,type:"button",role:"switch","aria-checked":d,disabled:a,onClick:()=>{if(a)return;let p=!d;t===void 0&&c(p),r?.(p)},className:o("relative inline-flex h-7 w-12 items-center rounded-full border transition-colors 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",d?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)]",i),...n,children:Ei("span",{className:o("inline-block size-5 rounded-full bg-[var(--inkblot-semantic-color-background-secondary)] transition-transform duration-[var(--inkblot-duration-fast)]",d?"translate-x-6":"translate-x-1")})})});Ii.displayName="Switch";import{forwardRef as Wt}from"react";import{ArrowDown as hu,ArrowUp as Nu,ArrowUpDown as wu}from"lucide-react";import{jsx as J,jsxs as Fi}from"react/jsx-runtime";var Li=Wt(({className:t,...e},r)=>J("div",{className:"w-full overflow-x-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]",children:J("table",{ref:r,className:o("w-full border-collapse bg-[var(--inkblot-semantic-color-background-secondary)]",t),...e})})),Ai=Wt(({className:t,...e},r)=>J("thead",{ref:r,className:o("bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Di=Wt(({className:t,...e},r)=>J("tbody",{ref:r,className:o(t),...e})),Ri=Wt(({className:t,...e},r)=>J("tr",{ref:r,className:o("border-b border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-text-primary)] transition-colors hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Hi=Wt(({className:t,children:e,sortable:r=!1,sortDirection:a,onSort:i,sortButtonProps:n,...s},l)=>J("th",{ref:l,className:o("px-4 py-3 text-left text-sm font-semibold text-[var(--inkblot-semantic-color-text-secondary)]",t),...s,children:r?Fi("button",{type:"button",onClick:i,className:"inline-flex items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-sm)] text-inherit transition-colors duration-[var(--inkblot-duration-fast)] hover:text-[var(--inkblot-semantic-color-text-primary)]",...n,children:[e,a==="asc"?J(Nu,{className:"h-3.5 w-3.5","aria-hidden":!0}):a==="desc"?J(hu,{className:"h-3.5 w-3.5","aria-hidden":!0}):J(wu,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):e})),Bi=Wt(({className:t,...e},r)=>J("td",{ref:r,className:o("px-4 py-3 text-sm",t),...e})),zi=Wt(({className:t,...e},r)=>J("caption",{ref:r,className:o("p-3 text-left text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",t),...e})),Oi=Wt(({className:t,colSpan:e,title:r="No data available",description:a="Adjust filters or add records to populate this table.",...i},n)=>J("tr",{children:J("td",{ref:n,colSpan:e,className:o("px-4 py-10 text-center align-middle","text-[var(--inkblot-semantic-color-text-secondary)]",t),...i,children:Fi("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[J("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:r}),J("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:a})]})})}));Li.displayName="Table";Ai.displayName="TableHeader";Di.displayName="TableBody";Ri.displayName="TableRow";Hi.displayName="TableHead";Bi.displayName="TableCell";zi.displayName="TableCaption";Oi.displayName="TableEmptyState";import{useMemo as Cu,useState as Tu}from"react";import{jsx as Yo,jsxs as Su}from"react/jsx-runtime";function Pu({items:t,value:e,defaultValue:r,onValueChange:a,fullWidth:i=!1,className:n,...s}){let l=r??t.find(v=>!v.disabled)?.id??"",[c,d]=Tu(l),m=e??c,p=Cu(()=>t.find(v=>v.id===m)??t.find(v=>!v.disabled),[m,t]),b=v=>{e===void 0&&d(v),a?.(v)};return Su("div",{className:o("w-full",n),...s,children:[Yo("div",{role:"tablist",className:"inline-flex rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-1",children:t.map(v=>{let f=v.id===p?.id;return Yo("button",{type:"button",role:"tab","aria-selected":f,disabled:v.disabled,onClick:()=>b(v.id),className:o("min-h-[var(--inkblot-size-touch-target-min)] rounded-[var(--inkblot-radius-md)] px-4 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",i&&"flex-1",f?"bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]"),children:v.label},v.id)})}),Yo("div",{className:"mt-3 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4 text-[var(--inkblot-semantic-color-text-primary)]",children:p?.content})]})}import{forwardRef as Mu}from"react";import{jsx as Iu}from"react/jsx-runtime";var Eu={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},Vi=Mu(({className:t,error:e,disabled:r,resize:a="vertical",...i},n)=>Iu("textarea",{ref:n,disabled:r,"aria-invalid":e,className:o("min-h-[120px] w-full rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-3 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",Eu[a],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}));Vi.displayName="Textarea";import{useState as Lu}from"react";import{jsx as Ru,jsxs as Hu}from"react/jsx-runtime";var Au={top:"bottom-full left-1/2 mb-2 -translate-x-1/2",right:"left-full top-1/2 ml-2 -translate-y-1/2",bottom:"left-1/2 top-full mt-2 -translate-x-1/2",left:"right-full top-1/2 mr-2 -translate-y-1/2"};function Du({content:t,side:e="top",open:r,defaultOpen:a=!1,onOpenChange:i,disabled:n=!1,className:s,children:l,...c}){let[d,m]=Lu(a),p=r??d,b=v=>{r===void 0&&m(v),i?.(v)};return Hu("span",{className:o("relative inline-flex",s),onMouseEnter:()=>!n&&b(!0),onMouseLeave:()=>b(!1),onFocus:()=>!n&&b(!0),onBlur:()=>b(!1),...c,children:[l,p&&!n?Ru("span",{role:"tooltip",className:o("pointer-events-none absolute z-50 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-3 py-2 text-xs text-[var(--inkblot-semantic-color-text-primary)] shadow-sm",Au[e]),children:t}):null]})}import{Sparkles as Bu}from"lucide-react";import{jsx as Ct,jsxs as Xo}from"react/jsx-runtime";function zu({item:t,onSelect:e,onGenerateWithAI:r}){return Xo("div",{role:"button",tabIndex:0,onClick:()=>e?.(t),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),e?.(t))},className:o("group mb-[var(--inkblot-spacing-4)] break-inside-avoid rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)] shadow-[var(--inkblot-shadow-sm)]","cursor-pointer transition-shadow duration-[var(--inkblot-duration-fast)]","hover:shadow-[var(--inkblot-shadow-md)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[t.thumbnail?Ct("img",{src:t.thumbnail,alt:t.title,className:"w-full rounded-t-[var(--inkblot-radius-lg)] object-cover"}):Ct("div",{className:"flex h-32 items-center justify-center rounded-t-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Ct("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No preview"})}),Xo("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-4)]",children:[t.category&&Ct("span",{className:o("inline-flex w-fit items-center rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:t.category}),Ct("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.description&&Ct("p",{className:"line-clamp-2 text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.description}),r&&Xo("button",{type:"button",onClick:a=>{a.stopPropagation(),r(t)},className:o("mt-[var(--inkblot-spacing-1)] inline-flex w-full items-center justify-center gap-[var(--inkblot-spacing-2)]","rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-small)]","opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[Ct(Bu,{className:"h-4 w-4","aria-hidden":!0}),"Generate with AI"]})]})]})}function Ou({items:t,columns:e=3,onSelect:r,onGenerateWithAI:a,className:i}){return Ct("div",{className:o("gap-[var(--inkblot-spacing-4)]",i),style:{columns:e,columnGap:"var(--inkblot-spacing-4)"},children:t.map(n=>Ct(zu,{item:n,onSelect:r,onGenerateWithAI:a},n.id))})}import{useEffect as Fu,useCallback as Vu}from"react";import{X as Gu,AlertTriangle as Wu,ArrowUp as Ku,ArrowDown as Uu,Minus as Gi,Calendar as _u,User as ju}from"lucide-react";import{Fragment as Zu,jsx as Y,jsxs as ft}from"react/jsx-runtime";var $u={todo:{label:"To Do",color:"bg-[var(--inkblot-semantic-color-text-tertiary)]"},in_progress:{label:"In Progress",color:"bg-[var(--inkblot-semantic-color-status-info)]"},done:{label:"Done",color:"bg-[var(--inkblot-semantic-color-status-success)]"}},qu={urgent:{label:"Urgent",icon:Wu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},high:{label:"High",icon:Ku,color:"text-[var(--inkblot-semantic-color-status-warning)]"},medium:{label:"Medium",icon:Gi,color:"text-[var(--inkblot-semantic-color-status-info)]"},low:{label:"Low",icon:Uu,color:"text-[var(--inkblot-semantic-color-text-tertiary)]"}};function Yu(t){return t.completed?"done":"todo"}function xe({label:t,children:e}){return ft("div",{className:"flex items-start gap-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] border-b border-[var(--inkblot-semantic-color-border-default)]",children:[Y("span",{className:"w-28 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t}),Y("div",{className:"min-w-0 flex-1 text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})}function Xu({task:t,open:e,onOpenChange:r,extraFields:a,onStatusChange:i,onAssigneeChange:n,className:s}){let l=Vu(()=>r?.(!1),[r]);if(Fu(()=>{if(!e)return;let b=v=>{v.key==="Escape"&&l()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[e,l]),!e)return null;let c=t?Yu(t):null,d=c?$u[c]:null,m=t?qu[t.priority]:null,p=m?.icon??Gi;return ft("div",{className:"fixed inset-0 z-50 flex justify-end",children:[Y("div",{className:"absolute inset-0 bg-black/40 transition-opacity duration-[var(--inkblot-duration-fast)]",onClick:l,"aria-hidden":!0}),Y("div",{role:"dialog","aria-modal":"true","aria-label":t?.title??"Task details",className:o("relative z-10 flex h-full w-[480px] flex-col","bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-md)]",s),children:t?ft(Zu,{children:[ft("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)] border-b border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-6)]",children:[ft("div",{className:"min-w-0 flex-1",children:[Y("h2",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.jiraKey&&Y("span",{className:"mt-[var(--inkblot-spacing-1)] inline-block text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.jiraKey})]}),Y("button",{type:"button",onClick:l,"aria-label":"Close",className:o("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)]","text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:Y(Gu,{className:"h-4 w-4","aria-hidden":!0})})]}),ft("div",{className:"flex-1 overflow-y-auto p-[var(--inkblot-spacing-6)]",children:[Y(xe,{label:"Status",children:ft("button",{type:"button",onClick:()=>{if(!i||!c)return;let b=["todo","in_progress","done"],v=b[(b.indexOf(c)+1)%b.length];i(v)},className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","transition-colors duration-[var(--inkblot-duration-fast)]",i&&"cursor-pointer hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),disabled:!i,children:[Y("span",{className:o("h-2 w-2 shrink-0 rounded-full",d?.color)}),d?.label]})}),Y(xe,{label:"Priority",children:ft("span",{className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)]",m?.color),children:[Y(p,{className:"h-4 w-4","aria-hidden":!0}),m?.label]})}),Y(xe,{label:"Assignee",children:ft("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[Y(ju,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.assignee]})}),Y(xe,{label:"Due date",children:ft("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[Y(_u,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.date]})}),Y(xe,{label:"Company",children:t.company}),a?.map(b=>Y(xe,{label:b.label,children:b.value},b.label))]})]}):Y("div",{className:"flex flex-1 items-center justify-center p-[var(--inkblot-spacing-6)]",children:Y("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No task selected"})})})]})}import{Fragment as Wi,jsx as pt,jsxs as Qt}from"react/jsx-runtime";function Qu({name:t,description:e,icon:r,connected:a=!1,onConnect:i,onDisconnect:n,className:s}){return Qt("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-5)] shadow-[var(--inkblot-shadow-sm)]",s),children:[Qt("div",{className:"flex items-start gap-[var(--inkblot-spacing-4)]",children:[pt("div",{className:o("flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)]","bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)]"),children:r??pt("span",{className:"h-5 w-5 rounded-full bg-[var(--inkblot-semantic-color-border-default)]"})}),Qt("div",{className:"min-w-0 flex-1",children:[pt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t}),pt("p",{className:"mt-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})]}),pt("div",{className:"flex items-center justify-between",children:a?Qt(Wi,{children:[Qt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[pt("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),pt("span",{className:"text-[var(--inkblot-semantic-color-status-success)]",children:"Connected"})]}),n&&pt("button",{type:"button",onClick:n,className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-body-small)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:"Disconnect"})]}):Qt(Wi,{children:[Qt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[pt("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]"}),pt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Not connected"})]}),i&&pt("button",{type:"button",onClick:i,className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-small)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:"Connect"})]})})]})}var e0="var(--inkblot-semantic-color-background-primary)",r0="var(--inkblot-semantic-color-background-secondary)",o0="var(--inkblot-semantic-color-border-default)",a0="var(--inkblot-semantic-color-text-primary)",n0="var(--inkblot-semantic-color-text-secondary)",i0="var(--inkblot-semantic-color-interactive-primary)",s0="var(--inkblot-semantic-color-interactive-secondary)",l0="var(--inkblot-semantic-color-interactive-secondary-hover)";export{Ne as AIComposeInput,MN as AIEmailGenerator,od as Accordion,Fr as ActionButtons,pr as ActivityStream,cd as AdvancedDropdown,fd as Alert,yd as AlertDialog,sw as AppLayout,Ma as AppNavigationRail,rn as AppSidebar,qd as AspectRatio,os as AssistantPanel,eo as Avatar,Zd as Badge,tm as Breadcrumb,we as Button,xr as CITRON_THEME_STORAGE_KEY,cm as Calendar,Ye as CampaignTable,yo as CanvasProvider,dm as Card,um as CardContent,bm as CardDescription,vm as CardFooter,mm as CardHeader,pm as CardTitle,ym as Carousel,ms as CenteredAIChat,as as CenteredAssistantChat,xm as Chart,wm as Checkbox,un as CircularScore,Sm as Collapsible,Lm as Command,Ea as CommandBar,PC as CommandCanvas,Fm as ContextMenu,jm as Dialog,Ao as DialogClose,wn as DialogContent,Ym as DialogDescription,Xm as DialogFooter,$m as DialogHeader,qm as DialogTitle,Nn as DialogTrigger,op as Drawer,En as DrawerClose,Mn as DrawerContent,ip as DrawerDescription,sp as DrawerFooter,ap as DrawerHeader,np as DrawerTitle,Sn as DrawerTrigger,gp as DropdownMenu,An as DropdownMenuContent,Dn as DropdownMenuItem,kp as DropdownMenuSeparator,Ln as DropdownMenuTrigger,cT as EmailBlockEditor,Va as EmailCampaignsView,qe as EmailComposeActionButtons,Qe as EmailTemplatesSection,la as EntityCard,ca as EntityCommandCard,Je as ErrorBoundary,an as EventFeed,ma as EventRow,ba as EventStreamFeed,Ia as EventStreamSidebar,Vn as Form,Lp as FormActions,Ip as FormField,ee as GlobalAssistantChat,NT as GraphView,IT as GuidedTour,Xp as HoverCard,jn as HoverCardContent,_n as HoverCardTrigger,_t as Input,qn as InputOtp,Qu as IntegrationPlaceholder,YT as IntelligenceCard,La as IntelligenceLab,er as IntelligenceScoreCard,Jc as InvoiceEditorPage,so as InvoiceForm,co as InvoicePreview,Yn as Label,Aa as MainShell,ri as Menubar,ii as MenubarCloseZone,ai as MenubarContent,ni as MenubarItem,cb as MenubarMenu,db as MenubarSeparator,oi as MenubarTrigger,ua as MetricComparisonList,ar as ModuleContainer,z as ModuleErrorBoundary,rr as ModuleSkeleton,go as NavLink,io as NavLinkRouter,mb as NavigationMenu,xa as OSNavigationRail,NP as OnboardingWizard,ir as PageErrorFallback,ne as PageHeader,ie as PageHeaderActionButton,Sb as Pagination,Bb as Popover,fi as PopoverClose,vi as PopoverContent,ui as PopoverTrigger,gi as Progress,xi as RadioGroup,_o as RadioGroupItem,Ub as Resizable,ga as RouteWithErrorBoundary,hi as ScrollArea,Et as SearchBar,wi as Select,Ci as Separator,eu as Sheet,au as Sidebar,Mt as Skeleton,Pi as Slider,gu as Sonner,ya as StatCardGrid,sr as StatCards,Na as StatCardsWithChart,tr as StatusBadge,Ii as Switch,lr as TabSystem,Li as Table,Di as TableBody,zi as TableCaption,Bi as TableCell,Oi as TableEmptyState,Hi as TableHead,Ai as TableHeader,Ri as TableRow,Pu as Tabs,ur as TaskCreateForm,Xu as TaskDetailsPanel,cr as TaskItem,de as TaskKanban,de as TaskKanbanBoard,fr as TaskKanbanCard,gr as TaskKanbanColumn,dr as TaskList,Ba as TasksView,Xe as TemplateCard,Ou as TemplateMasonryGrid,Vi as Textarea,_a as ThemeProvider,Nr as ThemeSwitcherButton,$o as Toast,qo as Toaster,Jr as Toggle,to as ToggleGroup,Du as Tooltip,e0 as semanticBackgroundPrimary,r0 as semanticBackgroundSecondary,o0 as semanticBorderDefault,i0 as semanticInteractivePrimary,s0 as semanticInteractiveSecondary,l0 as semanticInteractiveSecondaryHover,a0 as semanticTextPrimary,n0 as semanticTextSecondary,_d as useCanvas,hr as useTheme};
20
+ [Your name]`,Fa=[{id:"1",campaignName:"Q1 Product Launch",recipients:"2840 recipients",status:"sent",opens:"68%",clicks:"24%",date:"Feb 12, 2026"},{id:"2",campaignName:"Welcome Series",recipients:"1200 recipients",status:"active",statusSubtext:"Running",opens:"-",clicks:"-",date:"Feb 28, 2026"},{id:"3",campaignName:"Re-engagement Campaign",recipients:"890 recipients",status:"draft",opens:"-",clicks:"-",date:"Feb 5, 2026"},{id:"4",campaignName:"Holiday Promo",recipients:"4500 recipients",status:"scheduled",opens:"-",clicks:"-",date:"Mar 1, 2026"}],za=[{id:"1",category:"Onboarding",title:"Welcome Series",uses:"34 uses"},{id:"2",category:"Marketing",title:"Product Announcement",uses:"12 uses"},{id:"3",category:"Retention",title:"Renewal Reminder",uses:"28 uses"},{id:"4",category:"Sales",title:"Meeting Follow-up",uses:"56 uses"}],Oa=["Acme Corp - Sarah Chen","TechStart Inc - Mike Rodriguez","GlobalTech - Lisa Kim","Enterprise Co - John Smith","StartupXYZ - Emma Wilson"],Mc=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],Ec=[{label:"Total Sent",value:"12.4K",change:"This month",changeVariant:"success"},{label:"Avg. Open Rate",value:"64%",change:"+8% vs prior",changeVariant:"success"},{label:"Avg. Click Rate",value:"22%",change:"+3% vs prior",changeVariant:"success"},{label:"Active Automations",value:"7",change:"3 paused",changeVariant:"error"}];function Va({onSendNow:t,onSchedule:e,onSaveDraft:r,onNewCampaign:a,onGenerateWithAI:i,onTemplateClick:n,className:s}){let[l,c]=me("campaigns"),[d,m]=me(""),[p,b]=me(""),[v,f]=me(""),[C,y]=me(!1),[T,N]=me(""),x=ao(()=>{if(!d.trim())return Fa;let E=d.toLowerCase();return Fa.filter(O=>O.campaignName.toLowerCase().includes(E)||O.recipients.toLowerCase().includes(E))},[d]),k=ao(()=>{if(!d.trim())return za;let E=d.toLowerCase();return za.filter(O=>O.title.toLowerCase().includes(E)||O.category.toLowerCase().includes(E))},[d]),g=ao(()=>{if(!T.trim())return Oa;let E=T.toLowerCase();return Oa.filter(O=>O.toLowerCase().includes(E))},[T]),u=async()=>{y(!0),await new Promise(E=>setTimeout(E,1500)),f(Sc),y(!1)},h=()=>{t?.()},P=()=>{e?.()},M=()=>{r?.()},D=l==="campaigns"||l==="templates";return Z("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",s),children:pe("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-8)] px-[var(--inkblot-spacing-8)] py-[var(--inkblot-spacing-8)]",children:[Z(ne,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:Z(Pc,{className:"h-5 w-5"}),action:Z(ie,{label:"New Campaign",onClick:()=>a?.()})}),Z(sr,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),D?Z(Et,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:d,onChange:E=>m(E.target.value)}):null,l==="campaigns"?pe(Ic,{children:[Z(ir,{items:Ec}),Z(qe,{columns:Mc,rows:x})]}):l==="templates"?Z(Ze,{templates:k,onGenerateWithAI:i,onTemplateClick:n}):pe("div",{className:"flex max-w-2xl flex-col gap-[var(--inkblot-spacing-6)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-6)] shadow-[var(--inkblot-shadow-sm)]",children:[pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-6)]",children:[pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[Z("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),Z(_t,{type:"text",value:p,onChange:E=>b(E.target.value),placeholder:"Enter subject line..."})]}),Z(Ne,{label:"Body",value:v,onChange:E=>f(E.target.value),placeholder:"Compose your email or let AI generate content...",loading:C,onWriteWithAI:u}),pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[Z(Et,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:T,onChange:E=>N(E.target.value)}),g.length>0?Z("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:g.slice(0,5).map(E=>Z("li",{className:o("rounded-[var(--inkblot-radius-md)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:E},E))}):null]})]}),Z($e,{onSendNow:h,onSchedule:P,onSaveDraft:M})]})]})})}import{createContext as Lc,useCallback as Ga,useContext as Ac,useEffect as Dc,useLayoutEffect as Rc,useMemo as Hc,useState as Wa}from"react";import{jsx as zc}from"react/jsx-runtime";var yr="citron-ui-theme",Ua=Lc(null);function Bc(){if(typeof window>"u")return null;try{let t=window.localStorage.getItem(yr);if(t==="light"||t==="dark")return t}catch{}return null}function Fc(){return typeof window>"u"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ka(t){typeof document>"u"||document.documentElement.setAttribute("data-theme",t)}function _a({children:t}){let[e,r]=Wa("light"),[a,i]=Wa(!1);Rc(()=>{if(typeof window>"u")return;let d=Bc()??Fc();r(d),Ka(d),i(!0)},[]),Dc(()=>{if(a&&(Ka(e),!(typeof window>"u")))try{window.localStorage.setItem(yr,e)}catch{}},[e,a]);let n=Ga(c=>{r(c)},[]),s=Ga(()=>{r(c=>c==="light"?"dark":"light")},[]),l=Hc(()=>({theme:e,setTheme:n,toggleTheme:s}),[e,n,s]);return zc(Ua.Provider,{value:l,children:t})}function xr(){let t=Ac(Ua);if(!t)throw new Error("useTheme must be used within a ThemeProvider");return t}import{Moon as Oc,Sun as Vc}from"lucide-react";import{jsx as ja}from"react/jsx-runtime";function hr({className:t,type:e="button",...r}){let{theme:a,toggleTheme:i}=xr(),n=a==="dark",s=n?Vc:Oc;return ja("button",{type:e,onClick:i,"aria-label":n?"Switch to light mode":"Switch to dark mode","aria-pressed":n,className:o("group relative inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-transparent","text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)]",t),...r,children:ja(s,{className:"h-[18px] w-[18px] shrink-0",strokeWidth:2,"aria-hidden":!0})})}import{forwardRef as Gc}from"react";import{NavLink as Wc}from"react-router-dom";import{jsx as Kc}from"react/jsx-runtime";var no=Gc(({className:t,activeClassName:e,pendingClassName:r,...a},i)=>Kc(Wc,{ref:i,className:({isActive:n,isPending:s})=>o(t,n&&e,s&&r),...a}));no.displayName="NavLinkRouter";import{useState as $a,useRef as Uc,useEffect as _c}from"react";import{ChevronDown as jc,Plus as $c}from"lucide-react";import{jsx as G,jsxs as tt}from"react/jsx-runtime";var wr=o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]"),Dt=o("[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-secondary)]"),Ya="border-[var(--inkblot-semantic-color-status-error)]";function qa({items:t,value:e,onChange:r,placeholder:a,hasError:i,onCreateNew:n,createNewLabel:s}){let[l,c]=$a(""),[d,m]=$a(!1),p=Uc(null);_c(()=>{let f=C=>{p.current&&!p.current.contains(C.target)&&m(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[]);let b=t.find(f=>f.id===e),v=t.filter(f=>f.name.toLowerCase().includes(l.toLowerCase()));return tt("div",{ref:p,className:"relative",children:[G("input",{type:"text",value:d?l:b?.name??"",onChange:f=>{c(f.target.value),d||m(!0)},onFocus:()=>{m(!0),c("")},placeholder:a,className:o(wr,i&&!e&&Ya)}),d&&tt("div",{className:o("absolute z-50 mt-[var(--inkblot-spacing-1)] max-h-48 w-full overflow-auto","rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]"),children:[v.map(f=>G("button",{type:"button",onClick:()=>{r(f.id),m(!1),c("")},className:o("w-full px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] text-left","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",f.id===e&&"bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:f.name},f.id)),v.length===0&&!n&&G("div",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-tertiary)]"),children:"No results"}),n&&v.length===0&&tt("button",{type:"button",onClick:()=>{n(),m(!1)},className:o("flex w-full items-center gap-[var(--inkblot-spacing-2)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-interactive-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:[G($c,{className:"h-4 w-4"}),s??"Create new"]})]})]})}function Nr({options:t,value:e,onChange:r,placeholder:a}){return tt("div",{className:"relative",children:[tt("select",{value:e,onChange:i=>r(i.target.value),className:o(wr,"appearance-none pr-[var(--inkblot-spacing-8)]"),children:[G("option",{value:"",children:a}),t.map(i=>G("option",{value:i,children:i},i))]}),G(jc,{className:o("pointer-events-none absolute right-[var(--inkblot-spacing-3)] top-1/2 h-4 w-4 -translate-y-1/2","text-[var(--inkblot-semantic-color-text-tertiary)]")})]})}var qc=["Bank Transfer","Credit Card","Cash","Check"],Yc=["VAT 21%","VAT 10%","VAT 0%","Exempt"],Xc=["Standard","Proforma","Credit Note","Debit Note"],Zc=["Main Account","Secondary Account"];function io({clients:t,products:e,paymentMethods:r=qc,taxTypes:a=Yc,invoiceTypes:i=Xc,bankAccounts:n=Zc,value:s={},onChange:l,onCreateClient:c,attempted:d=!1,className:m}){let p=b=>l?.({...s,...b});return tt("div",{className:o("grid grid-cols-1 gap-[var(--inkblot-spacing-4)] md:grid-cols-2",m),children:[tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Client"}),G(qa,{items:t,value:s.clientId??"",onChange:b=>p({clientId:b}),placeholder:"Search client...",hasError:d,onCreateNew:c,createNewLabel:"+ Create new client"})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Product / Service"}),G(qa,{items:e,value:s.productId??"",onChange:b=>p({productId:b}),placeholder:"Search product...",hasError:d})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Quantity"}),G("input",{type:"number",min:1,value:s.quantity??"",onChange:b=>p({quantity:b.target.value===""?0:Number(b.target.value)}),placeholder:"1",className:o(wr,d&&!s.quantity&&Ya)})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Payment Method"}),G(Nr,{options:r,value:s.paymentMethod??"",onChange:b=>p({paymentMethod:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Tax Type"}),G(Nr,{options:a,value:s.taxType??"",onChange:b=>p({taxType:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Invoice Type"}),G(Nr,{options:i,value:s.invoiceType??"",onChange:b=>p({invoiceType:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Bank Account"}),G(Nr,{options:n,value:s.bankAccount??"",onChange:b=>p({bankAccount:b}),placeholder:"Select..."})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] md:col-span-2",children:[G("label",{className:Dt,children:"Notes"}),G("textarea",{value:s.notes??"",onChange:b=>p({notes:b.target.value}),rows:3,placeholder:"Additional notes...",className:o(wr,"resize-y")})]})]})}import{jsx as ot,jsxs as so}from"react/jsx-runtime";function ht({label:t,value:e}){return so("div",{className:"flex items-baseline justify-between border-b border-[var(--inkblot-semantic-color-border-default)] py-[var(--inkblot-spacing-2)]",children:[ot("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),ot("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:e||"\u2014"})]})}function lo({data:t,clients:e,products:r,className:a}){let i=e.find(d=>d.id===t.clientId),n=r.find(d=>d.id===t.productId),s=t.quantity??0,l=n?.unitPrice??0,c=s*l;return so("div",{className:o("rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-6)]",a),children:[ot("h3",{className:"mb-[var(--inkblot-spacing-4)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"Preview"}),so("div",{className:"space-y-0",children:[ot(ht,{label:"Client",value:i?.name??""}),ot(ht,{label:"Product",value:n?.name??""}),ot(ht,{label:"Quantity",value:s?String(s):""}),l>0&&ot(ht,{label:"Unit price",value:`$${l.toFixed(2)}`}),c>0&&ot(ht,{label:"Subtotal",value:`$${c.toFixed(2)}`}),ot(ht,{label:"Payment",value:t.paymentMethod??""}),ot(ht,{label:"Tax",value:t.taxType??""}),ot(ht,{label:"Type",value:t.invoiceType??""}),ot(ht,{label:"Bank",value:t.bankAccount??""})]}),t.notes&&ot("p",{className:"mt-[var(--inkblot-spacing-4)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:t.notes})]})}import{useState as Xa}from"react";import{Loader2 as Qc}from"lucide-react";import{jsx as Le,jsxs as co}from"react/jsx-runtime";function Jc({clients:t,products:e,onSubmit:r,onCreateClient:a,isSubmitting:i=!1,className:n,...s}){let[l,c]=Xa({}),[d,m]=Xa(!1);return co("form",{onSubmit:b=>{b.preventDefault(),m(!0),!(!l.clientId||!l.productId||!l.quantity)&&r?.({clientId:l.clientId,productId:l.productId,quantity:l.quantity,paymentMethod:l.paymentMethod??"",taxType:l.taxType??"",invoiceType:l.invoiceType??"",bankAccount:l.bankAccount??"",notes:l.notes??""})},className:o("rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-6)]",n),children:[Le("h2",{className:"mb-[var(--inkblot-spacing-6)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"New Invoice"}),co("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] lg:grid-cols-[1fr_20rem]",children:[Le(io,{clients:t,products:e,value:l,onChange:c,onCreateClient:a,attempted:d,...s}),Le(lo,{data:l,clients:t,products:e})]}),Le("div",{className:"mt-[var(--inkblot-spacing-6)] flex justify-end",children:co("button",{type:"submit",disabled:i,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-[var(--inkblot-spacing-2)]","rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-interactive-primary)]","px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-inverse)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed"),children:[i&&Le(Qc,{className:"h-4 w-4 animate-spin"}),"Create Invoice"]})})]})}import{useMemo as td,useState as ed}from"react";import{ChevronDown as rd}from"lucide-react";import{jsx as Cr,jsxs as Za}from"react/jsx-runtime";function od({items:t,defaultValue:e,allowMultiple:r=!1,className:a}){let i=td(()=>new Set(e??[]),[e]),[n,s]=ed(i),l=c=>{s(d=>{let m=new Set(d);return m.has(c)?(m.delete(c),m):r?(m.add(c),m):new Set([c])})};return Cr("div",{className:o("w-full overflow-hidden rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:t.map((c,d)=>{let m=n.has(c.id);return Za("div",{className:o(d!==0&&"border-t border-[var(--inkblot-semantic-color-border-default)]"),children:[Za("button",{type:"button",disabled:c.disabled,"aria-expanded":m,onClick:()=>l(c.id),className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-3)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",c.disabled?"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]":"hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-[-2px]"),children:[Cr("span",{className:"font-medium",children:c.title}),Cr(rd,{className:o("h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",m&&"rotate-180")})]}),m&&Cr("div",{className:"px-[var(--inkblot-spacing-4)] pb-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:c.content})]},c.id)})})}import{useCallback as ad,useEffect as Tr,useRef as Ae,useState as be}from"react";import{ChevronDown as nd,Loader2 as id,Search as sd,X as ld}from"lucide-react";import{jsx as at,jsxs as Rt}from"react/jsx-runtime";function cd({options:t=[],loadOptions:e,value:r,defaultValue:a,onChange:i,placeholder:n="Select an option",searchPlaceholder:s="Search...",emptyMessage:l="No results found",loadingMessage:c="Loading...",clearable:d=!1,disabled:m=!1,className:p}){let b=r!==void 0,[v,f]=be(a??null),C=b?r:v,[y,T]=be(!1),[N,x]=be(""),[k,g]=be(-1),[u,h]=be([]),[P,M]=be(!1),D=Ae(null),E=Ae(0),O=e!==void 0,L=O?u:t,B=Ae(null),A=Ae(null),W=Ae(null);Tr(()=>{if(!(!O||!y))return D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{let w=++E.current;M(!0),e(N).then(U=>{w===E.current&&(h(U),M(!1),g(-1))}).catch(()=>{w===E.current&&(h([]),M(!1))})},250),()=>{D.current&&clearTimeout(D.current)}},[N,y,O,e]);let X=O?L:L.filter(w=>w.label.toLowerCase().includes(N.toLowerCase())),gt=L.find(w=>w.value===C)??(O?t.find(w=>w.value===C):void 0),S=ad(w=>{b||f(w),i?.(w),T(!1),x(""),g(-1)},[b,i]);Tr(()=>{if(!y)return;let w=U=>{B.current&&!B.current.contains(U.target)&&(T(!1),x(""),g(-1))};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[y]),Tr(()=>{y&&W.current?.focus()},[y]),Tr(()=>{if(k<0||!A.current)return;A.current.querySelectorAll("[data-option]")[k]?.scrollIntoView({block:"nearest"})},[k]);let K=w=>{if(!y){(w.key==="Enter"||w.key===" "||w.key==="ArrowDown")&&(w.preventDefault(),T(!0));return}switch(w.key){case"ArrowDown":{w.preventDefault(),g(U=>{let _=U+1;for(;_<X.length&&X[_].disabled;)_++;return _<X.length?_:U});break}case"ArrowUp":{w.preventDefault(),g(U=>{let _=U-1;for(;_>=0&&X[_].disabled;)_--;return _>=0?_:U});break}case"Enter":{w.preventDefault(),k>=0&&k<X.length&&!X[k].disabled&&S(X[k].value);break}case"Escape":{w.preventDefault(),T(!1),x(""),g(-1);break}}};return Rt("div",{ref:B,className:o("relative w-full",p),onKeyDown:K,children:[Rt("button",{type:"button",disabled:m,"aria-expanded":y,"aria-haspopup":"listbox",onClick:()=>{m||T(w=>!w)},className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] border px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","transition-[border-color,box-shadow] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]","border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--inkblot-semantic-color-background-primary)]",m&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[at("span",{className:o("truncate text-left",!gt&&"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:gt?gt.label:n}),Rt("span",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-1)]",children:[d&&gt&&at("span",{role:"button",tabIndex:0,"aria-label":"Clear selection",onClick:w=>{w.stopPropagation(),S(null)},onKeyDown:w=>{w.key==="Enter"&&(w.stopPropagation(),S(null))},className:o("flex items-center justify-center rounded-[var(--inkblot-radius-sm)] p-[var(--inkblot-spacing-1)]","text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:at(ld,{className:"size-3.5"})}),at(nd,{"aria-hidden":!0,className:o("size-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)]",y&&"rotate-180")})]})]}),Rt("div",{className:o("absolute left-0 top-full z-50 mt-[var(--inkblot-spacing-1)] w-full overflow-hidden rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-md)]","transition-[opacity,transform] duration-[var(--inkblot-duration-normal)] ease-[var(--inkblot-easing-default)]","origin-top",y?"pointer-events-auto scale-y-100 opacity-100":"pointer-events-none scale-y-95 opacity-0"),children:[at("div",{className:"border-b border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-2)]",children:Rt("div",{className:"flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-1)]",children:[at(sd,{className:"size-3.5 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),at("input",{ref:W,type:"text",value:N,onChange:w=>{x(w.target.value),g(-1)},placeholder:s,className:"w-full bg-transparent py-[var(--inkblot-spacing-1)] text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] focus:outline-none"})]})}),at("ul",{ref:A,role:"listbox",className:"max-h-60 overflow-y-auto p-[var(--inkblot-spacing-1)]",children:P?Rt("li",{className:"flex items-center justify-center gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:[at(id,{className:"size-4 animate-spin","aria-hidden":!0}),c]}):X.length===0?at("li",{className:"px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-4)] text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:l}):X.map((w,U)=>{let _=w.value===C,Ke=U===k;return Rt("li",{role:"option","data-option":!0,"aria-selected":_,"aria-disabled":w.disabled,onClick:()=>{w.disabled||S(w.value)},onMouseEnter:()=>{w.disabled||g(U)},className:o("flex cursor-pointer items-center gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","transition-colors duration-[var(--inkblot-duration-fast)]",Ke&&!w.disabled&&"bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",_&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]",w.disabled&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[w.icon&&at("span",{className:"flex size-5 shrink-0 items-center justify-center text-[var(--inkblot-semantic-color-text-secondary)]",children:w.icon}),Rt("span",{className:"flex min-w-0 flex-1 flex-col",children:[at("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:w.label}),w.description&&at("span",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:w.description})]})]},w.value)})})]})]})}import{AlertCircle as dd,AlertTriangle as md,CheckCircle2 as pd,Info as bd}from"lucide-react";import{jsx as mo,jsxs as Qa}from"react/jsx-runtime";var ud={info:"border-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-status-info)]/10 text-[var(--inkblot-semantic-color-text-primary)]",success:"border-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-text-primary)]",warning:"border-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-status-warning)]/10 text-[var(--inkblot-semantic-color-text-primary)]",error:"border-[var(--inkblot-semantic-color-status-error)] bg-[var(--inkblot-semantic-color-status-error)]/10 text-[var(--inkblot-semantic-color-text-primary)]"},vd={info:bd,success:pd,warning:md,error:dd};function fd({title:t,description:e,variant:r="info",className:a}){let i=vd[r];return Qa("div",{role:"alert",className:o("flex w-full items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",ud[r],a),children:[mo(i,{className:"mt-0.5 h-4 w-4 shrink-0"}),Qa("div",{className:"flex min-w-0 flex-col gap-[var(--inkblot-spacing-1)]",children:[mo("div",{className:"font-semibold",children:t}),e&&mo("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})]})}import{useCallback as Ja,useEffect as gd,useId as tn,useRef as po}from"react";import{AlertTriangle as kd}from"lucide-react";import{jsx as Xt,jsxs as Pr}from"react/jsx-runtime";function yd({open:t,title:e,description:r,confirmLabel:a="Confirm",cancelLabel:i="Cancel",destructive:n=!1,confirmDisabled:s=!1,closeOnConfirm:l=!0,initialFocusRef:c,onOpenChange:d,onConfirm:m,onCancel:p,className:b}){let v=po(null),f=po(null),C=po(null),y=tn(),T=tn(),N=Ja(()=>{p?.(),d?.(!1)},[p,d]),x=Ja(()=>{m?.(),l&&d?.(!1)},[l,m,d]);return gd(()=>{if(!t)return;C.current=document.activeElement instanceof HTMLElement?document.activeElement:null,(c?.current??f.current??v.current)?.focus();let g=u=>{u.key==="Escape"&&N()};return window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g),C.current?.focus()}},[N,c,t]),t?Xt("div",{className:"fixed inset-0 z-50 grid place-items-center bg-[var(--inkblot-semantic-color-background-primary)]/70 px-[var(--inkblot-spacing-4)]",onClick:N,children:Pr("div",{role:"alertdialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":r?T:void 0,tabIndex:-1,ref:v,onClick:k=>k.stopPropagation(),className:o("w-full max-w-[520px] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-6)] text-[var(--inkblot-semantic-color-text-primary)] shadow-lg",b),children:[Pr("div",{className:"mb-[var(--inkblot-spacing-4)] flex items-start gap-[var(--inkblot-spacing-3)]",children:[Xt("div",{className:o("mt-0.5 rounded-[var(--inkblot-radius-full)] p-[var(--inkblot-spacing-2)]",n?"bg-[var(--inkblot-semantic-color-status-error)]/15 text-[var(--inkblot-semantic-color-status-error)]":"bg-[var(--inkblot-semantic-color-status-warning)]/15 text-[var(--inkblot-semantic-color-status-warning)]"),children:Xt(kd,{className:"h-5 w-5"})}),Pr("div",{className:"flex-1",children:[Xt("h2",{id:y,className:"text-lg font-semibold",children:e}),r&&Xt("p",{id:T,className:"mt-[var(--inkblot-spacing-2)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r})]})]}),Pr("div",{className:"flex flex-wrap justify-end gap-[var(--inkblot-spacing-2)]",children:[Xt("button",{type:"button",ref:f,onClick:N,className:"inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-interactive-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] font-medium text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:i}),Xt("button",{type:"button",disabled:s,onClick:x,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] font-medium text-[var(--inkblot-semantic-color-text-inverse)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",n?"bg-[var(--inkblot-semantic-color-status-error)] hover:bg-[var(--inkblot-semantic-color-status-error)]/85 active:bg-[var(--inkblot-semantic-color-status-error)]/80":"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)]"),children:a})]})]})}):null}import{useEffect as xd,useRef as hd,useState as bo}from"react";import{Check as Nd,Loader2 as wd,Sparkles as en}from"lucide-react";import{Fragment as uo,jsx as Nt,jsxs as ue}from"react/jsx-runtime";var Cd=["Write a product launch announcement for a SaaS tool","Create a re-engagement email for churned users","Draft a welcome email for new customers","Write a quarterly business review summary","Create a seasonal promotion email with urgency"];function SN({value:t,defaultValue:e="",onValueChange:r,isGenerating:a,onGeneratingChange:i,generated:n,onGeneratedChange:s,generationDelayMs:l=1500,onSubmitPrompt:c,generateBlocks:d,onGenerate:m,suggestions:p=Cd,className:b}){let[v,f]=bo(e),[C,y]=bo(!1),[T,N]=bo(!1),x=hd(null),k=t!==void 0,g=k?t:v,u=a!==void 0,h=u?a:C,P=n!==void 0,M=P?n:T,D=A=>{k||f(A),r?.(A)},E=A=>{u||y(A),i?.(A)},O=A=>{P||N(A),s?.(A)};xd(()=>()=>{x.current!==null&&window.clearTimeout(x.current)},[]);let L=A=>{let W=Date.now();return[{id:`ai-${W}-1`,type:"heading",content:"Exciting News from Our Team"},{id:`ai-${W}-2`,type:"text",content:`Generated from prompt: ${A}`},{id:`ai-${W}-3`,type:"image",content:""},{id:`ai-${W}-4`,type:"text",content:"Our latest updates are designed to help you achieve more with less effort. We've built these improvements with your feedback in mind."},{id:`ai-${W}-5`,type:"button",content:"Learn More"},{id:`ai-${W}-6`,type:"divider",content:""},{id:`ai-${W}-7`,type:"text",content:`Best regards,
21
+ The Team`}]},B=async()=>{let A=g.trim();if(!A||h)return;c?.(A),E(!0);let W;d?W=await Promise.resolve(d(A)):(await new Promise(X=>{window.setTimeout(()=>X(),l)}),W=L(A)),m?.(W),E(!1),O(!0),x.current=window.setTimeout(()=>O(!1),1800)};return ue("section",{className:o(b),children:[ue("div",{className:"mb-2 flex items-center gap-2",children:[Nt(en,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-warning)]"}),Nt("span",{className:"text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Email Generator"})]}),ue("div",{className:"space-y-3",children:[Nt("textarea",{value:g,onChange:A=>D(A.target.value),rows:3,placeholder:"Describe the email you want to create...",className:"w-full resize-none rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-3 text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}),Nt("div",{className:"flex flex-wrap gap-1.5",children:p.map(A=>Nt("button",{type:"button",onClick:()=>D(A),className:"rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-secondary)] px-2.5 py-1 text-[10px] text-[var(--inkblot-semantic-color-text-primary)] transition-opacity duration-[var(--inkblot-duration-fast)] hover:opacity-85",children:A},A))}),Nt("button",{type:"button",onClick:B,disabled:!g.trim()||h,className:"flex items-center gap-2 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-status-warning)]/10 px-4 py-2 text-xs font-medium text-[var(--inkblot-semantic-color-status-warning)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-40",children:h?ue(uo,{children:[Nt(wd,{className:"h-3 w-3 animate-spin"}),"Generating..."]}):M?ue(uo,{children:[Nt(Nd,{className:"h-3 w-3"}),"Applied to editor"]}):ue(uo,{children:[Nt(en,{className:"h-3 w-3"}),"Generate Email"]})})]})]})}import{CheckSquare as Pd,Command as Sd,FileText as Md,Mail as Ed,MessageSquare as Id,Settings as Ld,Users as Ad}from"lucide-react";import{jsx as vo,jsxs as Td}from"react/jsx-runtime";function fo({label:t,icon:e,active:r=!1,onClick:a,title:i,dataTour:n,className:s}){return Td("button",{type:"button",onClick:a,"data-tour":n,className:o("group relative flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-transparent transition-colors duration-[var(--inkblot-duration-fast)]",r?"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]",s),title:i??t,"aria-current":r?"page":void 0,"aria-label":t,children:[vo(e,{className:"h-[18px] w-[18px]","aria-hidden":!0}),r?vo("span",{className:"absolute left-0 top-1/2 h-4 w-[2px] -translate-y-1/2 rounded-r bg-[var(--inkblot-semantic-color-interactive-primary)]"}):null,vo("span",{className:"pointer-events-none absolute left-full z-50 ml-3 whitespace-nowrap rounded-[var(--inkblot-radius-sm)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-2 py-1 text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)] opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:t})]})}import{jsx as Ht,jsxs as go}from"react/jsx-runtime";var Dd=[{id:"canvas",icon:Id,label:"Canvas",path:"/",dataTour:"nav-canvas"},{id:"invoices",icon:Md,label:"Invoices & Deals",path:"/invoices",dataTour:"nav-invoices"},{id:"contacts",icon:Ad,label:"Contacts",path:"/contacts",dataTour:"nav-contacts"},{id:"campaigns",icon:Ed,label:"Campaigns",path:"/campaigns",dataTour:"nav-campaigns"},{id:"tasks",icon:Pd,label:"Tasks",path:"/tasks",dataTour:"nav-tasks"}],Rd=[{id:"settings",icon:Ld,label:"Settings",path:"/settings",dataTour:"nav-settings"}];function rn({items:t=Dd,bottomItems:e=Rd,activePath:r="/",onNavigate:a,logo:i,showStatusDot:n=!0,showThemeToggle:s=!0,className:l}){return go("aside",{"data-tour":"sidebar",className:o("flex h-full w-16 flex-col items-center gap-1 border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] py-4",l),children:[Ht("div",{className:"mb-6 flex h-9 w-9 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:i??Ht(Sd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}),Ht("nav",{className:"hide-scrollbar flex flex-1 flex-col gap-1 overflow-y-auto",children:t.map(c=>Ht(fo,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id))}),go("div",{className:"flex flex-col gap-1",children:[e.map(c=>Ht(fo,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id)),s?go("div",{className:"group relative flex justify-center",children:[Ht(hr,{}),Ht("span",{className:"pointer-events-none absolute left-full z-50 ml-3 whitespace-nowrap rounded-[var(--inkblot-radius-sm)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-2 py-1 text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)] opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:"Theme"})]}):null,n?Ht("span",{"data-tour":"system-status",className:"mx-auto mt-2 h-2 w-2 animate-pulse rounded-full bg-[var(--inkblot-semantic-color-status-success)]",title:"System Online"}):null]})]})}import{CreditCard as on,FileText as Hd,GitBranch as Bd,Mail as Fd,Phone as zd,Zap as Od}from"lucide-react";import{jsx as ut,jsxs as De}from"react/jsx-runtime";var Vd=[{id:1,icon:Fd,title:"Email opened",meta:"Jane Smith \xB7 Acme Corp",time:"2m ago",status:"info"},{id:2,icon:on,title:"Invoice #1042 paid",meta:"$24,500 \xB7 TechVentures",time:"8m ago",status:"success"},{id:3,icon:Od,title:"Pipeline stage changed",meta:"Negotiation \u2192 Closing",time:"14m ago",status:"warning"},{id:4,icon:zd,title:"Call completed",meta:"12 min \xB7 Mark Johnson",time:"23m ago",status:"info"},{id:5,icon:Hd,title:"Contract signed",meta:"NDA \xB7 GlobalTech Inc",time:"1h ago",status:"success"},{id:6,icon:Bd,title:"New relationship detected",meta:"Acme \u2194 DataFlow Labs",time:"2h ago",status:"info"},{id:7,icon:on,title:"Invoice overdue",meta:"$8,200 \xB7 StartupXYZ",time:"3h ago",status:"danger"}],Gd={success:"bg-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]",danger:"bg-[var(--inkblot-semantic-color-status-error)]",info:"bg-[var(--inkblot-semantic-color-status-info)]"};function an({title:t="Event Stream",liveLabel:e="Live",events:r=Vd,onItemClick:a,className:i}){return De("section",{className:o("p-4",i),children:[De("header",{className:"mb-4 flex items-center justify-between",children:[ut("h3",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),ut("span",{className:"text-[10px] font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),ut("ul",{className:"space-y-1",children:r.map(n=>{let s=n.icon;return ut("li",{children:De("button",{type:"button",onClick:()=>a?.(n),className:"group flex w-full items-start gap-3 rounded-[var(--inkblot-radius-md)] px-2.5 py-2.5 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:[ut("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:ut(s,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)] group-hover:text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0})}),De("span",{className:"min-w-0 flex-1",children:[De("span",{className:"flex items-center gap-2",children:[ut("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",Gd[n.status])}),ut("span",{className:"truncate text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.title})]}),ut("span",{className:"mt-0.5 block truncate text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.meta})]}),ut("span",{className:"mt-0.5 shrink-0 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.time})]})},n.id)})})]})}import{createContext as Wd,useContext as Kd,useState as Ud,useCallback as nn}from"react";import{jsx as $d}from"react/jsx-runtime";var sn=Wd(null);function _d(){let t=Kd(sn);if(!t)throw new Error("useCanvas must be used within a CanvasProvider");return t}var jd=[{id:"welcome-1",type:"text",content:"Welcome to Citron OS. Use the AI chat on the right to interact with your revenue engine."},{id:"welcome-2",type:"entity"},{id:"welcome-3",type:"intelligence"}];function ko({children:t,initialBlocks:e=jd}){let[r,a]=Ud(e),i=nn(s=>{a(l=>[...l,...s])},[]),n=nn(()=>{a([])},[]);return $d(sn.Provider,{value:{blocks:r,addBlocks:i,clearBlocks:n},children:t})}import{jsx as Re,jsxs as ln}from"react/jsx-runtime";function iw({children:t,showEventFeed:e=!1,sidebarProps:r,eventFeedProps:a,canvasProviderProps:i,className:n}){let s=ln("div",{className:o("flex h-screen w-full overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[Re(rn,{...r}),ln("main",{className:"flex flex-1 overflow-hidden",children:[Re("section",{"data-tour":"canvas",className:"hide-scrollbar flex-1 overflow-y-auto",children:t}),e&&Re("aside",{"data-tour":"event-feed",className:"flex w-80 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)]",children:Re(an,{...a})})]})]});return i?Re(ko,{...i,children:s}):s}import{jsx as cn,jsxs as Yd}from"react/jsx-runtime";function qd({ratio:t=16/9,children:e,className:r}){let a=Number.isFinite(t)&&t>0?t:1.7777777777777777;return Yd("div",{className:o("relative w-full overflow-hidden",r),children:[cn("div",{style:{paddingTop:`${1/a*100}%`}}),cn("div",{className:"absolute inset-0",children:e})]})}import{jsx as Qd}from"react/jsx-runtime";var Xd={default:"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]",secondary:"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-primary)]",success:"bg-[var(--inkblot-semantic-color-status-success)]/15 text-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]/15 text-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]/15 text-[var(--inkblot-semantic-color-status-error)]",outline:"border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]"};function Zd({children:t,variant:e="default",disabled:r=!1,className:a}){return Qd("span",{"aria-disabled":r,className:o("inline-flex min-h-[calc(var(--inkblot-size-touch-target-min)-1rem)] items-center justify-center rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)] text-xs font-semibold transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",Xd[e],r&&"opacity-[var(--inkblot-opacity-disabled)]",a),children:t})}import{ChevronRight as Jd}from"lucide-react";import{jsx as He,jsxs as em}from"react/jsx-runtime";function tm({items:t,className:e}){return He("nav",{"aria-label":"Breadcrumb",className:o("w-full",e),children:He("ol",{className:"flex flex-wrap items-center gap-[var(--inkblot-spacing-2)]",children:t.map((r,a)=>{let i=r.href&&!r.disabled&&!r.current?He("a",{href:r.href,onClick:r.onClick,className:"rounded-[var(--inkblot-radius-sm)] text-sm text-[var(--inkblot-semantic-color-text-secondary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:r.label}):He("span",{"aria-current":r.current?"page":void 0,className:o("text-sm",r.current?"font-semibold text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)]",r.disabled&&"opacity-[var(--inkblot-opacity-disabled)]"),children:r.label});return em("li",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[i,a<t.length-1&&He(Jd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"})]},r.id)})})})}import{useMemo as dn,useState as rm}from"react";import{ChevronLeft as om,ChevronRight as am}from"lucide-react";import{jsx as Bt,jsxs as xo}from"react/jsx-runtime";var nm=["L","M","X","J","V","S","D"];function mn(t){return new Date(t.getFullYear(),t.getMonth(),1)}function im(t){return new Date(t.getFullYear(),t.getMonth()+1,0)}function sm(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function yo(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}function lm(t){let e=mn(t),r=im(t),a=(e.getDay()+6)%7,i=r.getDate(),n=[];for(let s=0;s<a;s+=1)n.push(null);for(let s=1;s<=i;s+=1)n.push(new Date(t.getFullYear(),t.getMonth(),s));for(;n.length%7!==0;)n.push(null);return n}function cm({value:t,onChange:e,disabledDates:r,className:a}){let i=t??new Date,[n,s]=rm(mn(i)),l=dn(()=>lm(n),[n]),c=dn(()=>new Set((r??[]).map(yo)),[r]);return xo("div",{className:o("w-[320px] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)] text-[var(--inkblot-semantic-color-text-primary)]",a),children:[xo("div",{className:"mb-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[Bt("button",{type:"button",onClick:()=>s(new Date(n.getFullYear(),n.getMonth()-1,1)),className:"inline-flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-md)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Bt(om,{className:"h-4 w-4"})}),Bt("div",{className:"font-semibold",children:n.toLocaleDateString("es-ES",{month:"long",year:"numeric"})}),Bt("button",{type:"button",onClick:()=>s(new Date(n.getFullYear(),n.getMonth()+1,1)),className:"inline-flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-md)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Bt(am,{className:"h-4 w-4"})})]}),xo("div",{className:"grid grid-cols-7 gap-[var(--inkblot-spacing-1)]",children:[nm.map(d=>Bt("div",{className:"pb-[var(--inkblot-spacing-1)] text-center text-xs font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:d},d)),l.map((d,m)=>{if(!d)return Bt("div",{className:"h-9"},`empty-${m}`);let p=c.has(yo(d)),b=t?sm(d,t):!1;return Bt("button",{type:"button",disabled:p,onClick:()=>e?.(d),className:o("h-9 rounded-[var(--inkblot-radius-md)] text-sm transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",b?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",p&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:d.getDate()},yo(d))})]})]})}import{jsx as ve}from"react/jsx-runtime";function dm({className:t,interactive:e=!1,disabled:r=!1,...a}){return ve("div",{"aria-disabled":r,className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]",e&&"transition-[border-color,transform,background] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] hover:border-[var(--inkblot-semantic-color-border-strong)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] active:translate-y-px",r&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]",t),...a})}function mm({className:t,...e}){return ve("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-1)] p-[var(--inkblot-spacing-5)]",t),...e})}function pm({className:t,...e}){return ve("h3",{className:o("text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",t),...e})}function bm({className:t,...e}){return ve("p",{className:o("text-sm text-[var(--inkblot-semantic-color-text-secondary)]",t),...e})}function um({className:t,...e}){return ve("div",{className:o("px-[var(--inkblot-spacing-5)] pb-[var(--inkblot-spacing-5)]",t),...e})}function vm({className:t,...e}){return ve("div",{className:o("flex items-center justify-end gap-[var(--inkblot-spacing-2)] border-t border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-5)] py-[var(--inkblot-spacing-4)]",t),...e})}import{useState as fm}from"react";import{ChevronLeft as gm,ChevronRight as km}from"lucide-react";import{jsx as Ft,jsxs as ho}from"react/jsx-runtime";function ym({items:t,initialIndex:e=0,loop:r=!1,className:a}){let[i,n]=fm(Math.min(Math.max(e,0),Math.max(t.length-1,0))),s=r||i>0,l=r||i<t.length-1,c=()=>{if(t.length!==0){if(r){n(m=>(m-1+t.length)%t.length);return}n(m=>Math.max(m-1,0))}},d=()=>{if(t.length!==0){if(r){n(m=>(m+1)%t.length);return}n(m=>Math.min(m+1,t.length-1))}};return ho("div",{className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-4)]",a),children:[Ft("div",{className:"relative overflow-hidden rounded-[var(--inkblot-radius-lg)]",children:Ft("div",{className:"flex transition-transform duration-[var(--inkblot-duration-normal)] ease-[var(--inkblot-easing-default)]",style:{transform:`translateX(-${i*100}%)`},children:t.map((m,p)=>Ft("div",{className:"w-full shrink-0",children:m},p))})}),ho("div",{className:"mt-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[Ft("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.length>0?`${i+1} de ${t.length}`:"Sin elementos"}),ho("div",{className:"flex gap-[var(--inkblot-spacing-2)]",children:[Ft("button",{type:"button",onClick:c,disabled:!s||t.length===0,className:"inline-flex h-9 w-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",children:Ft(gm,{className:"h-4 w-4"})}),Ft("button",{type:"button",onClick:d,disabled:!l||t.length===0,className:"inline-flex h-9 w-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",children:Ft(km,{className:"h-4 w-4"})})]})]})]})}import{jsx as Zt,jsxs as pn}from"react/jsx-runtime";function xm({data:t,title:e="Rendimiento",emptyMessage:r="No data to display.",className:a}){let i=Math.max(...t.map(n=>n.value),0);return pn("div",{className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-5)]",a),children:[Zt("h3",{className:"mb-[var(--inkblot-spacing-4)] text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:e}),t.length===0?Zt("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r}):Zt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:t.map(n=>{let s=i>0?n.value/i*100:0;return pn("div",{className:"grid grid-cols-[120px_1fr_48px] items-center gap-[var(--inkblot-spacing-3)]",children:[Zt("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:n.label}),Zt("div",{className:"h-3 overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Zt("div",{className:"h-full rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",style:{width:`${s}%`,backgroundColor:n.color??"var(--inkblot-semantic-color-interactive-primary)"}})}),Zt("span",{className:"text-right text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.value})]},n.id)})})]})}import{useState as hm}from"react";import{Check as Nm}from"lucide-react";import{jsx as Sr,jsxs as bn}from"react/jsx-runtime";function wm({checked:t,defaultChecked:e=!1,onCheckedChange:r,label:a,description:i,disabled:n=!1,error:s=!1,className:l}){let[c,d]=hm(e),m=t!==void 0,p=m?t:c,b=v=>{m||d(v),r?.(v)};return bn("label",{className:o("inline-flex items-start gap-[var(--inkblot-spacing-3)] text-[var(--inkblot-semantic-color-text-primary)]",n&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]",l),children:[Sr("button",{type:"button",role:"checkbox","aria-checked":p,disabled:n,onClick:()=>b(!p),className:o("mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] border transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2",p?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] hover:border-[var(--inkblot-semantic-color-border-strong)]",s&&!p&&"border-[var(--inkblot-semantic-color-status-error)]"),children:p&&Sr(Nm,{className:"h-4 w-4"})}),(a||i)&&bn("span",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[a&&Sr("span",{className:"text-sm font-medium",children:a}),i&&Sr("span",{className:o("text-xs text-[var(--inkblot-semantic-color-text-secondary)]",s&&!p&&"text-[var(--inkblot-semantic-color-status-error)]"),children:i})]})]})}import{jsx as Be,jsxs as No}from"react/jsx-runtime";var Cm={success:"var(--inkblot-semantic-color-status-success)",warning:"var(--inkblot-semantic-color-status-warning)",error:"var(--inkblot-semantic-color-status-error)",info:"var(--inkblot-semantic-color-status-info)",primary:"var(--inkblot-semantic-color-interactive-primary)"};function un({label:t,value:e,tone:r="primary",color:a,inverted:i=!1,size:n=72,className:s}){let l=Math.max(0,Math.min(100,e)),c=i?100-l:l,d=5,m=(n-d)/2,p=2*Math.PI*m,b=p-c/100*p,v=a??Cm[r];return Be("div",{className:s,children:No("div",{className:"flex flex-col items-center gap-2",children:[No("div",{className:"relative",style:{width:n,height:n},children:[No("svg",{width:n,height:n,className:"-rotate-90",children:[Be("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:d}),Be("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:v,strokeWidth:d,strokeDasharray:p,strokeDashoffset:b,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),Be("span",{className:"absolute inset-0 flex items-center justify-center text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:l})]}),Be("span",{className:"text-center text-[10px] leading-tight text-[var(--inkblot-semantic-color-text-tertiary)]",children:t})]})})}import{useState as Tm}from"react";import{ChevronDown as Pm}from"lucide-react";import{jsx as wo,jsxs as vn}from"react/jsx-runtime";function Sm({title:t,children:e,defaultOpen:r=!1,disabled:a=!1,className:i}){let[n,s]=Tm(r);return vn("div",{className:o("w-full rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",a&&"opacity-[var(--inkblot-opacity-disabled)]",i),children:[vn("button",{type:"button",disabled:a,"aria-expanded":n,onClick:()=>s(l=>!l),className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-3)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left text-[var(--inkblot-semantic-color-text-primary)]",!a&&"hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-[-2px]"),children:[wo("span",{className:"font-medium",children:t}),wo(Pm,{className:o("h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",n&&"rotate-180")})]}),n&&wo("div",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})}import{useMemo as Mm,useState as Em}from"react";import{Search as Im}from"lucide-react";import{jsx as zt,jsxs as Co}from"react/jsx-runtime";function Lm({items:t,placeholder:e="Search commands...",onSelect:r,className:a}){let[i,n]=Em(""),s=Mm(()=>{let l=i.trim().toLowerCase();return l?t.filter(c=>{let d=c.label.toLowerCase().includes(l),m=(c.keywords??[]).some(p=>p.toLowerCase().includes(l));return d||m}):t},[t,i]);return Co("div",{className:o("w-full rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:[Co("div",{className:"flex items-center gap-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-3)]",children:[zt(Im,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"}),zt("input",{value:i,onChange:l=>n(l.target.value),placeholder:e,className:"h-11 w-full bg-transparent text-sm text-[var(--inkblot-semantic-color-text-primary)] outline-none placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]"})]}),zt("div",{className:"max-h-[280px] overflow-y-auto p-[var(--inkblot-spacing-2)]",children:s.length>0?zt("ul",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:s.map(l=>zt("li",{children:Co("button",{type:"button",disabled:l.disabled,onClick:()=>r?.(l),className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] text-left text-sm text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",l.disabled?"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]":"hover:bg-[var(--inkblot-semantic-color-background-tertiary)] active:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:[l.icon&&zt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:l.icon}),zt("span",{children:l.label})]})},l.id))}):zt("div",{className:"px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-3)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"No results found."})})]})}import{useEffect as Am,useMemo as Dm,useRef as Rm,useState as To}from"react";import{Send as Hm,Sparkles as Mr}from"lucide-react";import{jsx as R,jsxs as dt}from"react/jsx-runtime";var Bm=[{id:"1",role:"user",content:"Show me Acme Corp's profile and deal health."},{id:"2",role:"assistant",content:"Here's the entity profile and current intelligence insights for Acme Corp.",cards:["entity","intelligence"]}],Po="rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]";function TC({title:t="Command Canvas",subtitle:e="AI-native interface \u2014 results appear here",readyLabel:r="System ready",placeholder:a="Ask anything \u2014 deals, contacts, forecasts...",footerText:i="Citron OS v1.0 \xB7 AI-native Revenue & Operations Platform",blocks:n,renderBlock:s,messages:l,initialMessages:c=Bm,onMessagesChange:d,inputValue:m,defaultInputValue:p="",onInputValueChange:b,autoAssistantResponse:v=!0,assistantResponseDelayMs:f=700,isResponding:C,onRespondingChange:y,onSend:T,generateAssistantMessage:N,renderCard:x,hideInput:k=!1,className:g}){let[u,h]=To(c),[P,M]=To(p),[D,E]=To(!1),O=Rm(null),L=l!==void 0,B=L?l:u,A=m!==void 0,W=A?m:P,X=C!==void 0,gt=X?C:D,S=W.trim().length>0&&!gt,K=Dm(()=>I=>({content:`Analyzing "${I}". Here are the latest insights.`,cards:["entity","intelligence"]}),[]),w=I=>{L||h(I),d?.(I)},U=I=>{A||M(I),b?.(I)},_=I=>{X||E(I),y?.(I)};Am(()=>()=>{O.current!==null&&window.clearTimeout(O.current)},[]);let Ke=()=>{let I=W.trim();if(!I)return;let Jt={id:`${Date.now()}-user`,role:"user",content:I},Zo=[...B,Jt];w(Zo),U(""),T?.(I),v&&(_(!0),O.current=window.setTimeout(()=>{let Qo=(N??K)(I),Ui=[...Zo,{id:`${Date.now()}-assistant`,role:"assistant",content:Qo.content,cards:Qo.cards}];w(Ui),_(!1)},f))},Xo=n!==void 0,Ki=I=>I.type==="text"?dt("div",{className:"flex items-start gap-3",children:[R("div",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/15",children:R(Mr,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),R("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:I.content})]}):I.type==="entity"?x?x("entity"):R("div",{className:Po,children:"Entity card preview"}):I.type==="intelligence"?x?x("intelligence"):R("div",{className:Po,children:"Intelligence card preview"}):I.type==="loading"?dt("div",{className:"flex items-center gap-3",children:[R("div",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/15",children:R(Mr,{className:"h-3.5 w-3.5 animate-pulse text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),dt("div",{className:"flex gap-1",children:[R("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"0ms"}}),R("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"150ms"}}),R("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"300ms"}})]})]}):null;return dt("section",{className:o("flex h-full flex-col",g),children:[dt("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[dt("div",{children:[R("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),R("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),dt("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[R("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),r]})]}),R("div",{className:"hide-scrollbar flex-1 overflow-y-auto px-8 py-6",children:R("div",{className:"mx-auto max-w-3xl space-y-6",children:Xo?n.map(I=>R("div",{children:s?s(I):Ki(I)},I.id)):B.map(I=>I.role==="user"?R("div",{className:"flex justify-end",children:R("div",{className:"max-w-md rounded-2xl rounded-br-sm bg-[var(--inkblot-semantic-color-interactive-secondary)] px-4 py-2.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-primary)]",children:I.content})},I.id):dt("div",{className:"space-y-4",children:[dt("div",{className:"flex items-start gap-3",children:[R("div",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)]/15",children:R(Mr,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),R("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:I.content})]}),I.cards?.length?R("div",{className:"ml-9 grid gap-4",children:I.cards.map(Jt=>x?R("div",{children:x(Jt)},Jt):R("div",{className:Po,children:Jt==="entity"?"Entity card preview":"Intelligence card preview"},Jt))}):null]},I.id))})}),!k&&!Xo?R("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-4",children:dt("div",{className:"mx-auto max-w-3xl",children:[dt("div",{className:"flex items-center gap-3 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-3",children:[R(Mr,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),R("input",{type:"text",value:W,onChange:I=>U(I.target.value),onKeyDown:I=>{I.key==="Enter"&&Ke()},placeholder:a,className:"flex-1 bg-transparent text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}),R("button",{type:"button",onClick:Ke,disabled:!S,className:"flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-sm)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-35","aria-label":"Send",children:R(Hm,{className:"h-3.5 w-3.5"})})]}),R("p",{className:"mt-2 text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):R("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-3",children:R("p",{className:"text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})})]})}import{useEffect as Fm,useRef as zm,useState as fn}from"react";import{jsx as Er,jsxs as So}from"react/jsx-runtime";function Om({trigger:t,items:e,className:r}){let[a,i]=fn(!1),[n,s]=fn({x:0,y:0}),l=zm(null);Fm(()=>{if(!a)return;let d=()=>i(!1);return document.addEventListener("click",d),document.addEventListener("contextmenu",d),()=>{document.removeEventListener("click",d),document.removeEventListener("contextmenu",d)}},[a]);let c=d=>{d.preventDefault();let m=l.current?.getBoundingClientRect(),p=m?.left??0,b=m?.top??0;s({x:d.clientX-p,y:d.clientY-b}),i(!0)};return So("div",{ref:l,className:o("relative w-full",r),onContextMenu:c,children:[t,a&&Er("div",{role:"menu",className:"absolute z-40 min-w-[220px] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-1)] shadow-lg",style:{left:n.x,top:n.y},children:e.map(d=>So("button",{type:"button",role:"menuitem",disabled:d.disabled,onClick:()=>{d.onSelect?.(),i(!1)},className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center justify-between gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] text-sm transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",d.disabled?"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]":"hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",d.danger?"text-[var(--inkblot-semantic-color-status-error)]":"text-[var(--inkblot-semantic-color-text-primary)]"),children:[So("span",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[d.icon&&Er("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.icon}),Er("span",{children:d.label})]}),d.shortcut&&Er("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.shortcut})]},d.id))})]})}import{createContext as Vm,forwardRef as Eo,useCallback as Mo,useContext as Gm,useEffect as gn,useId as kn,useMemo as Wm,useRef as yn,useState as Km}from"react";import{createPortal as Um}from"react-dom";import{X as _m}from"lucide-react";import{jsx as it,jsxs as xn}from"react/jsx-runtime";var hn=Vm(null);function Io(){let t=Gm(hn);if(!t)throw new Error("Dialog components must be used within Dialog");return t}function jm({open:t,defaultOpen:e=!1,onOpenChange:r,children:a}){let[i,n]=Km(e),s=t!==void 0,l=s?t:i,c=Mo(m=>{s||n(m),r?.(m)},[s,r]),d=Wm(()=>({open:l,setOpen:c}),[l,c]);return it(hn.Provider,{value:d,children:a})}var Nn=Eo(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Io();return it("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!0)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-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","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a})});Nn.displayName="DialogTrigger";var wn=Eo(({className:t,children:e,showCloseButton:r=!0,initialFocusRef:a,...i},n)=>{let{open:s,setOpen:l}=Io(),c=kn(),d=kn(),m=yn(null),p=yn(null),b=Mo(f=>{if(m.current=f,typeof n=="function"){n(f);return}n&&(n.current=f)},[n]),v=Mo(()=>{l(!1)},[l]);return gn(()=>{if(!s)return;let f=C=>{C.key==="Escape"&&v()};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f)}},[v,s]),gn(()=>{if(!s)return;p.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let f=a?.current,C=m.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(f??C??m.current)?.focus(),()=>{p.current?.focus()}},[a,s]),!s||typeof document>"u"?null:Um(xn("div",{className:o("fixed inset-0 z-50 flex items-center justify-center p-[var(--inkblot-spacing-6)]"),children:[it("button",{type:"button","aria-label":"Close dialog",className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70"),onClick:v}),xn("div",{ref:b,role:"dialog","aria-modal":"true","aria-labelledby":c,"aria-describedby":d,tabIndex:-1,className:o("relative z-10 w-full max-w-[calc(var(--inkblot-size-touch-target-min)*10)] rounded-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-6)]","shadow-[var(--inkblot-shadow-lg)]",t),...i,children:[r?it(Lo,{"aria-label":"Close dialog",className:o("absolute right-[var(--inkblot-spacing-4)] top-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-md)] p-[var(--inkblot-spacing-2)]"),children:it(_m,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}):null,it("div",{id:c,className:"sr-only"}),it("div",{id:d,className:"sr-only"}),e]})]}),document.body)});wn.displayName="DialogContent";function $m({className:t,...e}){return it("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function qm({className:t,...e}){return it("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function Ym({className:t,...e}){return it("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function Xm({className:t,...e}){return it("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var Lo=Eo(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Io();return it("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!1)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-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)]","focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a})});Lo.displayName="DialogClose";import{createContext as Zm,forwardRef as Do,useCallback as Ao,useContext as Qm,useEffect as Cn,useMemo as Jm,useRef as Tn,useState as tp}from"react";import{createPortal as ep}from"react-dom";import{X as rp}from"lucide-react";import{jsx as vt,jsxs as lp}from"react/jsx-runtime";var Pn=Zm(null);function Ro(){let t=Qm(Pn);if(!t)throw new Error("Drawer components must be used within Drawer");return t}function op({children:t,open:e,defaultOpen:r=!1,onOpenChange:a,side:i="right"}){let[n,s]=tp(r),l=e!==void 0,c=l?e:n,d=Ao(p=>{l||s(p),a?.(p)},[l,a]),m=Jm(()=>({open:c,setOpen:d,side:i}),[c,d,i]);return vt(Pn.Provider,{value:m,children:t})}var Sn=Do(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Ro();return vt("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!0)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2",t),...a})});Sn.displayName="DrawerTrigger";var Mn=Do(({className:t,children:e,initialFocusRef:r,...a},i)=>{let{open:n,setOpen:s,side:l}=Ro(),c=Tn(null),d=Tn(null),m=Ao(b=>{if(c.current=b,typeof i=="function"){i(b);return}i&&(i.current=b)},[i]),p=Ao(()=>{s(!1)},[s]);return Cn(()=>{if(!n)return;let b=v=>{v.key==="Escape"&&p()};return window.addEventListener("keydown",b),()=>{window.removeEventListener("keydown",b)}},[p,n]),Cn(()=>{if(!n)return;d.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let b=r?.current,v=c.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(b??v??c.current)?.focus(),()=>{d.current?.focus()}},[r,n]),!n||typeof document>"u"?null:ep(lp("div",{className:"fixed inset-0 z-50",children:[vt("button",{type:"button","aria-label":"Close drawer",className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",onClick:p}),vt("div",{ref:m,role:"dialog","aria-modal":"true",tabIndex:-1,className:o("absolute top-0 h-full w-full max-w-[calc(var(--inkblot-size-touch-target-min)*7)] border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-6)] shadow-[var(--inkblot-shadow-lg)]",l==="right"?"right-0 border-l":"left-0 border-r",t),...a,children:e})]}),document.body)});Mn.displayName="DrawerContent";function ap({className:t,...e}){return vt("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function np({className:t,...e}){return vt("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function ip({className:t,...e}){return vt("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function sp({className:t,...e}){return vt("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var En=Do(({className:t,type:e="button",onClick:r,children:a,...i},n)=>{let{setOpen:s}=Ro();return vt("button",{ref:n,type:e,onClick:l=>{r?.(l),l.defaultPrevented||s(!1)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","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)]",t),...i,children:a??vt(rp,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})});En.displayName="DrawerClose";import{createContext as cp,forwardRef as Ho,useCallback as dp,useContext as mp,useEffect as pp,useMemo as bp,useRef as up,useState as vp}from"react";import{ChevronDown as fp}from"lucide-react";import{jsx as Fe,jsxs as Rn}from"react/jsx-runtime";var In=cp(null);function Bo(){let t=mp(In);if(!t)throw new Error("DropdownMenu components must be used within DropdownMenu");return t}function gp({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=vp(r),s=up(null),l=e!==void 0,c=l?e:i,d=dp(p=>{l||n(p),a?.(p)},[l,a]);pp(()=>{if(!c)return;let p=v=>{let f=v.target;f&&s.current&&!s.current.contains(f)&&d(!1)},b=v=>{v.key==="Escape"&&d(!1)};return window.addEventListener("pointerdown",p),window.addEventListener("keydown",b),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("keydown",b)}},[c,d]);let m=bp(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Fe(In.Provider,{value:m,children:Fe("div",{ref:s,className:"relative inline-flex",children:t})})}var Ln=Ho(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{open:l,setOpen:c}=Bo();return Rn("button",{ref:s,type:e,"aria-haspopup":"menu","aria-expanded":l,onClick:d=>{a?.(d),d.defaultPrevented||c(!l)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-text-primary)] hover: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","[font:var(--inkblot-semantic-typography-body-medium)]",t),...n,children:[i,r?Fe(fp,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});Ln.displayName="DropdownMenuTrigger";var An=Ho(({className:t,...e},r)=>{let{open:a}=Bo();return a?Fe("div",{ref:r,role:"menu",className:o("absolute right-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-md)]",t),...e}):null});An.displayName="DropdownMenuContent";var Dn=Ho(({className:t,type:e="button",icon:r,onClick:a,children:i,...n},s)=>{let{setOpen:l}=Bo();return Rn("button",{ref:s,type:e,role:"menuitem",onClick:c=>{a?.(c),c.defaultPrevented||l(!1)},className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","text-left text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]","focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-0","[font:var(--inkblot-semantic-typography-body-medium)]",t),...n,children:[r,i]})});Dn.displayName="DropdownMenuItem";function kp({className:t,...e}){return Fe("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}import{useMemo as Hn,useState as yp}from"react";import{ChevronDown as xp,ChevronUp as hp,Columns as Np,GripVertical as wp,Image as zn,Minus as Cp,MousePointerClick as Tp,Square as Pp,Trash2 as Sp,Type as Bn}from"lucide-react";import{jsx as z,jsxs as wt}from"react/jsx-runtime";var Fn=[{type:"heading",label:"Heading",icon:Bn},{type:"text",label:"Text",icon:Bn},{type:"image",label:"Image",icon:zn},{type:"button",label:"Button",icon:Pp},{type:"divider",label:"Divider",icon:Cp},{type:"columns",label:"2 Columns",icon:Np}],Mp={heading:"Your Heading Here",text:"Write your content here. Click to edit this text block.",image:"https://placehold.co/600x200",button:"Click Me",divider:"",columns:"Column 1 | Column 2"};function lT({blocks:t,onBlocksChange:e,availableBlockTypes:r,editingId:a,onEditingIdChange:i,onAddBlock:n,onDeleteBlock:s,onMoveBlock:l,onBlockContentChange:c,readOnly:d=!1,className:m}){let[p,b]=yp(null),v=a!==void 0,f=v?a:p,C=u=>{v||b(u),i?.(u)},y=Hn(()=>!r||r.length===0?Fn:Fn.filter(u=>r.includes(u.type)),[r]),T=Hn(()=>t.reduce((u,h,P)=>(u[h.id]=P,u),{}),[t]),N=u=>{if(d)return;let h={id:`block-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:u,content:Mp[u]};e([...t,h]),n?.(u,h)},x=(u,h)=>{d||(e(t.map(P=>P.id===u?{...P,content:h}:P)),c?.(u,h))},k=u=>{d||(e(t.filter(h=>h.id!==u)),s?.(u))},g=(u,h)=>{if(d)return;let P=T[u],M=P+h;if(M<0||M>=t.length)return;let D=[...t],[E]=D.splice(P,1);D.splice(M,0,E),e(D),l?.(u,h)};return wt("section",{className:o("flex gap-4",m),children:[wt("aside",{className:"w-44 shrink-0",children:[z("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Blocks"}),z("div",{className:"mt-2 space-y-1",children:y.map(u=>wt("button",{type:"button",onClick:()=>N(u.type),disabled:d,className:"flex w-full items-center gap-2 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-3 py-2 text-xs text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:[z(u.icon,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)]"}),u.label]},u.type))})]}),z("div",{className:"glass min-h-[400px] flex-1 rounded-[var(--inkblot-radius-lg)] p-6",children:t.length===0?wt("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-center",children:[z(Tp,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/40"}),wt("div",{children:[z("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Drop blocks here to build your email"}),z("p",{className:"mt-1 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]/60",children:"or use AI to generate a full layout"})]})]}):z("div",{className:"space-y-2",children:t.map((u,h)=>wt("article",{className:"group flex items-start gap-2",children:[z("div",{className:"pt-1 text-[var(--inkblot-semantic-color-text-tertiary)]",children:z(wp,{className:"h-3.5 w-3.5"})}),wt("div",{className:"flex-1 rounded-[var(--inkblot-radius-md)] border border-transparent p-3 transition-colors duration-[var(--inkblot-duration-fast)] group-hover:border-[var(--inkblot-semantic-color-border-default)]",children:[u.type==="heading"?z("h2",{contentEditable:!d&&f===u.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(u.id)},onBlur:P=>{x(u.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text text-xl font-bold text-[var(--inkblot-semantic-color-text-primary)] outline-none",children:u.content}):null,u.type==="text"?z("p",{contentEditable:!d&&f===u.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(u.id)},onBlur:P=>{x(u.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)] outline-none",children:u.content}):null,u.type==="image"?z("div",{className:"flex h-32 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:z(zn,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/50"})}):null,u.type==="button"?z("div",{className:"flex justify-center",children:z("span",{contentEditable:!d&&f===u.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(u.id)},onBlur:P=>{x(u.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-6 py-2.5 text-sm font-medium text-[var(--inkblot-semantic-color-text-inverse)] outline-none",children:u.content})}):null,u.type==="divider"?z("hr",{className:"my-2 border-[var(--inkblot-semantic-color-border-default)]"}):null,u.type==="columns"?wt("div",{className:"grid grid-cols-2 gap-4",children:[z("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-4 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Column 1"}),z("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-4 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Column 2"})]}):null]}),wt("div",{className:"flex flex-col gap-1 opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:[z("button",{type:"button",onClick:()=>g(u.id,-1),disabled:d||h===0,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-30","aria-label":"Move up",children:z(hp,{className:"h-3 w-3"})}),z("button",{type:"button",onClick:()=>g(u.id,1),disabled:d||h===t.length-1,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-30","aria-label":"Move down",children:z(xp,{className:"h-3 w-3"})}),z("button",{type:"button",onClick:()=>k(u.id),disabled:d,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-status-error)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-status-error)]/10","aria-label":"Delete block",children:z(Sp,{className:"h-3 w-3"})})]})]},u.id))})})]})}import{forwardRef as Ep}from"react";import{jsx as ze,jsxs as On}from"react/jsx-runtime";var Vn=Ep(({className:t,...e},r)=>ze("form",{ref:r,className:o("grid gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-5)]",t),...e}));Vn.displayName="Form";function Ip({className:t,label:e,hint:r,error:a,children:i,requiredIndicator:n,...s}){return On("div",{className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:[e?On("p",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:[e,n?ze("span",{className:"ml-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}):null,i,a?ze("p",{className:"text-[var(--inkblot-semantic-color-status-error)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}):r?ze("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:r}):null]})}function Lp({className:t,...e}){return ze("div",{className:o("mt-[var(--inkblot-spacing-2)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}import{useEffect as Ap,useRef as Dp}from"react";import{jsx as fe,jsxs as ge}from"react/jsx-runtime";var Rp=[{id:"1",label:"Acme Corp",kind:"org",x:400,y:250,score:82},{id:"2",label:"TechVentures",kind:"org",x:220,y:140,score:65},{id:"3",label:"DataFlow Labs",kind:"org",x:600,y:160,score:45},{id:"4",label:"Jane Smith",kind:"person",x:300,y:380,score:90},{id:"5",label:"Mark Johnson",kind:"person",x:520,y:370,score:72},{id:"6",label:"GlobalTech",kind:"org",x:160,y:300,score:38},{id:"7",label:"Sarah Lee",kind:"person",x:650,y:310,score:55}],Hp=[{from:"1",to:"2",strength:.8},{from:"1",to:"3",strength:.5},{from:"1",to:"4",strength:.9},{from:"1",to:"5",strength:.7},{from:"2",to:"6",strength:.4},{from:"3",to:"7",strength:.6},{from:"4",to:"5",strength:.3},{from:"6",to:"4",strength:.5}];function Bp(t,e,r,a){return t>=70?e:t>=50?r:a}function Ot(t,e){for(let r of e){let a=t.getPropertyValue(r).trim();if(a)return a}return""}function Fo(t,e,r){if(e){t.font=e;return}t.font=r}function hT({title:t="Entity Graph",subtitle:e,nodes:r=Rp,edges:a=Hp,className:i}){let n=Dp(null);Ap(()=>{let l=n.current;if(!l)return;let c=l.getContext("2d");if(!c)return;let d=()=>{let m=l.getBoundingClientRect(),p=window.devicePixelRatio||1;l.width=m.width*p,l.height=m.height*p,c.setTransform(p,0,0,p,0,0),c.clearRect(0,0,m.width,m.height);let b=getComputedStyle(document.documentElement),v=Ot(b,["--inkblot-semantic-color-border-default","--inkblot-semantic-color-border-strong"]),f=Ot(b,["--inkblot-semantic-color-text-tertiary","--inkblot-semantic-color-text-secondary"]),C=Ot(b,["--inkblot-semantic-color-background-secondary","--inkblot-semantic-color-background-primary"]),y=Ot(b,["--inkblot-semantic-color-status-success","--inkblot-semantic-color-interactive-primary"]),T=Ot(b,["--inkblot-semantic-color-status-warning","--inkblot-semantic-color-status-info"]),N=Ot(b,["--inkblot-semantic-color-status-error","--inkblot-semantic-color-status-warning"]),x=Ot(b,["--inkblot-semantic-typography-body-small","--inkblot-semantic-typography-body-medium"]),k=Ot(b,["--inkblot-semantic-typography-body-medium","--inkblot-semantic-typography-body-small"]),g=c.font;a.forEach(u=>{let h=r.find(M=>M.id===u.from),P=r.find(M=>M.id===u.to);!h||!P||(c.beginPath(),c.moveTo(h.x,h.y),c.lineTo(P.x,P.y),c.strokeStyle=v,c.globalAlpha=Math.min(1,Math.max(0,u.strength*.45)),c.lineWidth=Math.max(1,u.strength*2),c.stroke(),c.globalAlpha=1)}),r.forEach(u=>{let h=Bp(u.score,y,T,N),P=u.kind==="org"?28:22;c.beginPath(),c.arc(u.x,u.y,P+8,0,Math.PI*2),c.fillStyle=h,c.globalAlpha=.08,c.fill(),c.globalAlpha=1,c.beginPath(),c.arc(u.x,u.y,P,0,Math.PI*2),c.fillStyle=C,c.strokeStyle=h,c.globalAlpha=.7,c.lineWidth=1.5,c.fill(),c.stroke(),c.globalAlpha=1,c.fillStyle=h,Fo(c,x,g),c.textAlign="center",c.textBaseline="middle",c.fillText(u.kind==="org"?"\u2B21":"\u25CF",u.x,u.y),c.fillStyle=f,Fo(c,k,g),c.fillText(u.label,u.x,u.y+P+16),c.fillStyle=h,c.globalAlpha=.8,Fo(c,x,g),c.fillText(String(u.score),u.x,u.y+P+28),c.globalAlpha=1})};return d(),window.addEventListener("resize",d),()=>window.removeEventListener("resize",d)},[a,r]);let s=e??`Relationship intelligence \xB7 ${r.length} nodes \xB7 ${a.length} edges`;return ge("section",{className:o("flex h-full flex-col",i),children:[ge("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[ge("div",{children:[fe("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),fe("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]}),ge("div",{className:"flex items-center gap-4 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[ge("span",{className:"flex items-center gap-1.5",children:[fe("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),"Orgs"]}),ge("span",{className:"flex items-center gap-1.5",children:[fe("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-warning)]"}),"People"]})]})]}),fe("div",{className:"relative flex-1",children:fe("canvas",{ref:n,className:"h-full w-full"})})]})}import{useCallback as Fp,useEffect as zp,useMemo as Op,useState as zo}from"react";import{ArrowLeft as Vp,ArrowRight as Gp,Check as Wp,X as Kp}from"lucide-react";import{Fragment as Gn,jsx as st,jsxs as Vt}from"react/jsx-runtime";var Up=[{target:"[data-tour='sidebar']",title:"Navigation Sidebar",description:"Access all CRM modules from this sidebar. Each icon represents a different module.",position:"right"},{target:"[data-tour='canvas']",title:"AI Command Canvas",description:"This is your AI-powered command center where you can orchestrate tasks and workflows.",position:"bottom"},{target:"[data-tour='event-feed']",title:"Real-Time Event Feed",description:"Follow live system activity like stage updates, invoices, and communication events.",position:"left"},{target:"[data-tour='system-status']",title:"System Status",description:"This indicator confirms platform health and connectivity.",position:"right"}];function ET({steps:t=Up,open:e,defaultOpen:r=!0,onOpenChange:a,stepIndex:i,defaultStepIndex:n=0,onStepIndexChange:s,onComplete:l,className:c}){let[d,m]=zo(r),[p,b]=zo(n),[v,f]=zo(null),C=e??d,y=i??p,T=t[y],N=y===t.length-1,x=M=>{e===void 0&&m(M),a?.(M)},k=M=>{let D=Math.min(Math.max(M,0),Math.max(t.length-1,0));i===void 0&&b(D),s?.(D)},g=Fp(()=>{let M=document.querySelector(T.target);if(!M){f(null);return}f(M.getBoundingClientRect())},[T.target]);zp(()=>(g(),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)}),[g]);let u=()=>{if(N){x(!1),l();return}k(y+1)},h=()=>{k(y-1)},P=Op(()=>{if(!v)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};let M=16,D=320;return T.position==="right"?{top:v.top+v.height/2,left:v.right+M,transform:"translateY(-50%)"}:T.position==="left"?{top:v.top+v.height/2,left:v.left-D-M,transform:"translateY(-50%)"}:T.position==="top"?{top:v.top-M,left:v.left+v.width/2,transform:"translate(-50%, -100%)"}:{top:v.bottom+M,left:v.left+v.width/2,transform:"translateX(-50%)"}},[T.position,v]);return C?Vt("div",{className:o("fixed inset-0 z-[200]",c),children:[v?st("div",{className:"pointer-events-none absolute rounded-[var(--inkblot-radius-lg)] border-2 border-[var(--inkblot-semantic-color-interactive-primary)]/50",style:{top:v.top-6,left:v.left-6,width:v.width+12,height:v.height+12,boxShadow:"0 0 0 9999px var(--inkblot-semantic-color-background-inverse), var(--inkblot-shadow-lg)"}}):st("div",{className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-inverse)]/70"}),Vt("div",{style:{...P,position:"absolute",width:320,zIndex:210},className:"rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-5 shadow-[var(--inkblot-shadow-lg)]",children:[Vt("div",{className:"mb-3 flex items-center justify-between",children:[Vt("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:["Step ",y+1," of ",t.length]}),st("button",{type:"button",onClick:()=>{x(!1),l()},className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","aria-label":"Close tour",children:st(Kp,{className:"h-3 w-3"})})]}),st("h3",{className:"mb-1.5 text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:T.title}),st("p",{className:"text-xs leading-relaxed text-[var(--inkblot-semantic-color-text-tertiary)]",children:T.description}),st("div",{className:"mb-3 mt-4 flex gap-1",children:t.map((M,D)=>st("span",{className:o("h-1 flex-1 rounded-full",D<=y?"bg-[var(--inkblot-semantic-color-interactive-primary)]":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},`${D}-progress`))}),Vt("div",{className:"flex items-center justify-between",children:[Vt("button",{type:"button",onClick:h,disabled:y===0,className:"flex items-center gap-1 text-xs text-[var(--inkblot-semantic-color-text-tertiary)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-0",children:[st(Vp,{className:"h-3 w-3"}),"Back"]}),st("button",{type:"button",onClick:u,className:"flex items-center gap-1.5 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-4 py-2 text-xs font-medium text-[var(--inkblot-semantic-color-text-inverse)]",children:N?Vt(Gn,{children:[st(Wp,{className:"h-3 w-3"}),"Get Started"]}):Vt(Gn,{children:["Next",st(Gp,{className:"h-3 w-3"})]})})]})]})]}):null}import{createContext as _p,forwardRef as Wn,useContext as jp,useMemo as $p,useRef as qp,useState as Yp}from"react";import{jsx as Ir}from"react/jsx-runtime";var Kn=_p(null);function Un(){let t=jp(Kn);if(!t)throw new Error("HoverCard components must be used within HoverCard");return t}function Xp({children:t,openDelay:e=120,closeDelay:r=120}){let[a,i]=Yp(!1),n=qp(null),s=$p(()=>({open:a,setOpen:i,openDelay:e,closeDelay:r,timeoutRef:n}),[a,e,r]);return Ir(Kn.Provider,{value:s,children:Ir("div",{className:"relative inline-flex",children:t})})}var _n=Wn(({className:t,onMouseEnter:e,onMouseLeave:r,onFocus:a,onBlur:i,...n},s)=>{let{setOpen:l,openDelay:c,closeDelay:d,timeoutRef:m}=Un();return Ir("div",{ref:s,tabIndex:0,onMouseEnter:p=>{e?.(p),m.current&&window.clearTimeout(m.current),m.current=window.setTimeout(()=>l(!0),c)},onMouseLeave:p=>{r?.(p),m.current&&window.clearTimeout(m.current),m.current=window.setTimeout(()=>l(!1),d)},onFocus:p=>{a?.(p),l(!0)},onBlur:p=>{i?.(p),l(!1)},className:o(t),...n})});_n.displayName="HoverCardTrigger";var jn=Wn(({className:t,onMouseEnter:e,onMouseLeave:r,...a},i)=>{let{open:n,setOpen:s,closeDelay:l,timeoutRef:c}=Un();return n?Ir("div",{ref:i,role:"dialog",onMouseEnter:d=>{e?.(d),c.current&&window.clearTimeout(c.current),s(!0)},onMouseLeave:d=>{r?.(d),c.current&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>s(!1),l)},className:o("absolute left-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-md)]",t),...a}):null});jn.displayName="HoverCardContent";import{forwardRef as Zp,useMemo as Qp,useRef as Jp,useState as tb}from"react";import{jsx as $n}from"react/jsx-runtime";var qn=Zp(({className:t,disabled:e,length:r=6,value:a,defaultValue:i="",onValueChange:n,containerProps:s,...l},c)=>{let[d,m]=tb(i.slice(0,r)),p=Jp([]),b=a!==void 0,v=b?a.slice(0,r):d,f=Qp(()=>Array.from({length:r},(k,g)=>v[g]??""),[v,r]),C=k=>{let g=k.slice(0,r);b||m(g),n?.(g)},y=k=>{let g=p.current[k];g?.focus(),g?.select()},T=(k,g)=>{let u=g.replace(/[^0-9A-Za-z]/g,"").slice(0,1),h=f.map((P,M)=>M===k?u:P);C(h.join("")),u&&k<r-1&&y(k+1)},N=(k,g)=>{if(g.key==="Backspace"&&!f[k]&&k>0){let u=f.map((h,P)=>P===k-1?"":h);C(u.join("")),y(k-1)}g.key==="ArrowLeft"&&k>0&&(g.preventDefault(),y(k-1)),g.key==="ArrowRight"&&k<r-1&&(g.preventDefault(),y(k+1))};return $n("div",{ref:c,onPaste:k=>{k.preventDefault();let g=k.clipboardData.getData("text").replace(/[^0-9A-Za-z]/g,"").slice(0,r);g&&(C(g),y(Math.min(g.length,r-1)))},className:o("flex items-center gap-[var(--inkblot-spacing-2)]",t,s?.className),...s,children:f.map((k,g)=>$n("input",{ref:u=>{p.current[g]=u},type:"text",inputMode:"numeric",maxLength:1,value:k,disabled:e,onChange:u=>T(g,u.target.value),onKeyDown:u=>N(g,u),className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]","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"),...l},`otp-slot-${g}`))})});qn.displayName="InputOtp";import{jsx as Oo,jsxs as rb}from"react/jsx-runtime";var eb=[{label:"Revenue Confidence",value:82,tone:"success"},{label:"Churn Risk",value:23,tone:"warning",inverted:!0},{label:"Momentum",value:67,tone:"primary"}];function qT({title:t="Intelligence Scores",items:e=eb,className:r}){return rb("article",{className:o("glass rounded-[var(--inkblot-radius-lg)] p-5",r),children:[Oo("h3",{className:"mb-4 text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),Oo("div",{className:"grid grid-cols-3 gap-6",children:e.map(a=>Oo(un,{label:a.label,value:a.value,tone:a.tone,color:a.color,inverted:a.inverted},a.label))})]})}import{forwardRef as ob}from"react";import{jsx as ab,jsxs as nb}from"react/jsx-runtime";var Yn=ob(({className:t,children:e,requiredIndicator:r,...a},i)=>nb("label",{ref:i,className:o("inline-flex items-center gap-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...a,children:[e,r?ab("span",{className:"text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}));Yn.displayName="Label";import{createContext as Xn,forwardRef as Oe,useContext as Zn,useMemo as Qn,useRef as ib,useState as sb}from"react";import{ChevronDown as lb}from"lucide-react";import{jsx as Gt,jsxs as si}from"react/jsx-runtime";var Jn=Xn(null);function Vo(){let t=Zn(Jn);if(!t)throw new Error("Menubar components must be used within Menubar");return t}var ti=Xn(null);function ei(){let t=Zn(ti);if(!t)throw new Error("Menubar menu components must be used within MenubarMenu");return t}var ri=Oe(({className:t,...e},r)=>{let[a,i]=sb(null),n=Qn(()=>({openMenuId:a,setOpenMenuId:i}),[a]);return Gt(Jn.Provider,{value:n,children:Gt("div",{ref:r,className:o("flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)]",t),...e})})});ri.displayName="Menubar";function cb({id:t,className:e,...r}){let a=Qn(()=>({menuId:t}),[t]);return Gt(ti.Provider,{value:a,children:Gt("div",{className:o("relative inline-flex",e),...r})})}var oi=Oe(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{openMenuId:l,setOpenMenuId:c}=Vo(),{menuId:d}=ei(),m=l===d;return si("button",{ref:s,type:e,"aria-haspopup":"menu","aria-expanded":m,onClick:p=>{a?.(p),p.defaultPrevented||c(m?null:d)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]",m?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",t),...n,children:[i,r?Gt(lb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});oi.displayName="MenubarTrigger";var ai=Oe(({className:t,...e},r)=>{let{openMenuId:a}=Vo(),{menuId:i}=ei();return a!==i?null:Gt("div",{ref:r,role:"menu",className:o("absolute left-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-md)]",t),...e})});ai.displayName="MenubarContent";var ni=Oe(({className:t,type:e="button",icon:r,...a},i)=>si("button",{ref:i,type:e,role:"menuitem",className:o("flex min-h-[var(--inkblot-size-touch-target-min)] w-full items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","text-left text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a,children:[r,a.children]}));ni.displayName="MenubarItem";function db({className:t,...e}){return Gt("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}var ii=Oe(({className:t,...e},r)=>{let{setOpenMenuId:a}=Vo(),i=ib(null);return Gt("div",{ref:n=>{i.current=n,typeof r=="function"?r(n):r&&(r.current=n)},onPointerDown:n=>{i.current?.contains(n.target)&&a(null)},className:o(t),...e})});ii.displayName="MenubarCloseZone";import{ChevronRight as li}from"lucide-react";import{jsx as Lr,jsxs as ci}from"react/jsx-runtime";function mb({items:t,className:e,onItemSelect:r}){return Lr("nav",{"aria-label":"Navigation menu",className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-2)]",e),children:t.map(a=>Lr(pb,{item:a,onSelect:()=>r?.(a)},a.id))})}function pb({item:t,onSelect:e,className:r,...a}){let i=o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]",t.active?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",t.disabled&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]",r);return t.href?ci("a",{href:t.href,"aria-current":t.active?"page":void 0,className:i,onClick:()=>e?.(),...a,children:[t.icon,t.label,t.active?null:Lr(li,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]}):ci("button",{type:"button","aria-current":t.active?"page":void 0,disabled:t.disabled,className:i,onClick:()=>e?.(),children:[t.icon,t.label,t.active?null:Lr(li,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]})}import{useMemo as bb,useState as di}from"react";import{ArrowLeft as ub,ArrowRight as vb,Briefcase as fb,Building2 as gb,Check as kb,Command as yb,Globe as xb,Megaphone as hb,Sparkles as Nb,Target as mi,Users as wb}from"lucide-react";import{Fragment as pi,jsx as q,jsxs as lt}from"react/jsx-runtime";var Cb=[{id:"company",question:"What's your company name?",subtitle:"We'll personalize your workspace around your brand.",icon:gb,type:"input",field:"companyName",placeholder:"e.g. Acme Corporation"},{id:"size",question:"How many employees does your company have?",subtitle:"This helps us tailor the right features for your team size.",icon:wb,type:"select",field:"companySize",options:[{value:"1-10",label:"1-10"},{value:"11-50",label:"11-50"},{value:"51-200",label:"51-200"},{value:"201-1000",label:"201-1,000"},{value:"1000+",label:"1,000+"}]},{id:"industry",question:"What industry are you in?",subtitle:"We'll pre-configure pipelines and templates for your sector.",icon:fb,type:"select",field:"industry",options:[{value:"saas",label:"SaaS / Software"},{value:"agency",label:"Agency / Consulting"},{value:"ecommerce",label:"E-Commerce"},{value:"fintech",label:"Fintech"},{value:"healthcare",label:"Healthcare"},{value:"other",label:"Other"}]},{id:"role",question:"What's your role?",subtitle:"So we can surface the most relevant modules first.",icon:mi,type:"select",field:"role",options:[{value:"founder",label:"Founder / CEO"},{value:"sales",label:"Sales Leader"},{value:"marketing",label:"Marketing"},{value:"ops",label:"Operations"},{value:"other",label:"Other"}]},{id:"goals",question:"What do you want to achieve?",subtitle:"Select all that apply. We'll prioritize these in your dashboard.",icon:mi,type:"multi-select",field:"goals",options:[{value:"pipeline",label:"Manage Sales Pipeline"},{value:"contacts",label:"Organize Contacts"},{value:"email",label:"Email Campaigns"},{value:"invoicing",label:"Invoicing"},{value:"reporting",label:"Analytics & Reporting"},{value:"automation",label:"Workflow Automation"}]},{id:"source",question:"How did you hear about us?",subtitle:"Helps us improve our outreach.",icon:hb,type:"select",field:"source",options:[{value:"google",label:"Google Search"},{value:"social",label:"Social Media"},{value:"referral",label:"Friend / Colleague"},{value:"event",label:"Conference / Event"},{value:"other",label:"Other"}]},{id:"website",question:"What's your company website?",subtitle:"Optional, we'll try to auto-import your branding.",icon:xb,type:"input",field:"website",placeholder:"e.g. https://acme.com"}];function hP({onComplete:t,steps:e=Cb,value:r,defaultValue:a,onValueChange:i,stepIndex:n,defaultStepIndex:s=0,onStepIndexChange:l,onCancel:c,showSkip:d=!0,className:m}){let[p,b]=di(s),[v,f]=di(a??{}),C=n!==void 0,y=r!==void 0,T=C?n:p,N=y?r:v,x=e[T],k=N[x.field]??(x.type==="multi-select"?[]:""),g=T===e.length-1,u=bb(()=>x.type==="multi-select"?k.length>0:x.id==="website"?!0:typeof k=="string"&&k.trim().length>0,[k,x.id,x.type]),h=L=>{let B=Math.min(Math.max(L,0),Math.max(e.length-1,0));C||b(B),l?.(B)},P=L=>{y||f(L),i?.(L)},M=()=>h(T-1),D=()=>{if(g){t(N);return}h(T+1)},E=(L,B)=>{P({...N,[L]:B})},O=(L,B)=>{let A=N[L]??[],W=A.includes(B)?A.filter(X=>X!==B):[...A,B];E(L,W)};return lt("section",{className:o("fixed inset-0 z-[100] flex items-center justify-center bg-[var(--inkblot-semantic-color-background-primary)]",m),children:[lt("div",{className:"absolute inset-0 overflow-hidden",children:[q("div",{className:"absolute left-1/4 top-1/4 h-96 w-96 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]/5 blur-[120px]"}),q("div",{className:"absolute bottom-1/4 right-1/4 h-96 w-96 rounded-full bg-[var(--inkblot-semantic-color-status-warning)]/5 blur-[120px]"})]}),lt("div",{className:"relative w-full max-w-lg px-6",children:[lt("header",{className:"mb-12 flex items-center justify-center gap-2",children:[q("span",{className:"flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:q(yb,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-inverse)]"})}),q("span",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:"Citron OS"})]}),q("div",{className:"mb-10 flex gap-1",children:e.map((L,B)=>q("span",{className:o("h-0.5 flex-1 rounded-full",B<T?"bg-[var(--inkblot-semantic-color-interactive-primary)]":B===T?"bg-[var(--inkblot-semantic-color-interactive-primary)]/60":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},L.id))}),lt("div",{className:"space-y-6",children:[lt("div",{children:[q("div",{className:"mb-4 flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-secondary)]",children:q(x.icon,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]"})}),q("h2",{className:"text-xl font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:x.question}),q("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:x.subtitle})]}),x.type==="input"?q("input",{autoFocus:!0,value:k||"",onChange:L=>E(x.field,L.target.value),placeholder:x.placeholder,onKeyDown:L=>{L.key==="Enter"&&u&&D()},className:"w-full rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-5 py-3.5 text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}):null,x.type==="select"?q("div",{className:"grid grid-cols-2 gap-2",children:x.options?.map(L=>q("button",{type:"button",onClick:()=>E(x.field,L.value),className:o("rounded-[var(--inkblot-radius-lg)] border px-4 py-3 text-left text-sm transition-colors duration-[var(--inkblot-duration-fast)]",k===L.value?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 text-[var(--inkblot-semantic-color-text-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:L.label},L.value))}):null,x.type==="multi-select"?q("div",{className:"grid grid-cols-2 gap-2",children:x.options?.map(L=>{let B=k.includes(L.value);return lt("button",{type:"button",onClick:()=>O(x.field,L.value),className:o("flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] border px-4 py-3 text-left text-sm transition-colors duration-[var(--inkblot-duration-fast)]",B?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]/10 text-[var(--inkblot-semantic-color-text-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:[q("span",{className:o("flex h-4 w-4 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] border",B?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]":"border-[var(--inkblot-semantic-color-border-default)]"),children:B?q(kb,{className:"h-2.5 w-2.5 text-[var(--inkblot-semantic-color-text-inverse)]"}):null}),L.label]},L.value)})}):null]}),lt("footer",{className:"mt-10 flex items-center justify-between",children:[lt("button",{type:"button",onClick:M,disabled:T===0,className:"flex items-center gap-1.5 rounded-[var(--inkblot-radius-md)] px-4 py-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-0",children:[q(ub,{className:"h-3 w-3"}),"Back"]}),lt("div",{className:"flex items-center gap-3",children:[!g&&d?q("button",{type:"button",onClick:c??D,className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Skip"}):null,q("button",{type:"button",onClick:D,disabled:!u,className:"flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-5 py-2.5 text-xs font-medium text-[var(--inkblot-semantic-color-text-inverse)] transition-opacity duration-[var(--inkblot-duration-fast)] disabled:opacity-40",children:g?lt(pi,{children:[q(Nb,{className:"h-3 w-3"}),"Launch Citron OS"]}):lt(pi,{children:["Continue",q(vb,{className:"h-3 w-3"})]})})]})]})]})]})}import{ChevronLeft as Tb,ChevronRight as Pb}from"lucide-react";import{jsx as Ve,jsxs as Mb}from"react/jsx-runtime";function Sb({page:t,totalPages:e,onPageChange:r,className:a}){let i=Array.from({length:e},(n,s)=>s+1);return Mb("nav",{"aria-label":"Pagination",className:o("flex items-center gap-[var(--inkblot-spacing-2)]",a),children:[Ve("button",{type:"button","aria-label":"Previous page",disabled:t<=1,onClick:()=>r(Math.max(t-1,1)),className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none"),children:Ve(Tb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}),i.map(n=>{let s=n===t;return Ve("button",{type:"button",onClick:()=>r(n),"aria-current":s?"page":void 0,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] min-w-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]",s?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),children:n},`page-${n}`)}),Ve("button",{type:"button","aria-label":"Next page",disabled:t>=e,onClick:()=>r(Math.min(t+1,e)),className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none"),children:Ve(Pb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})]})}import{createContext as Eb,forwardRef as Go,useCallback as Ib,useContext as Lb,useEffect as Ab,useMemo as Db,useRef as Rb,useState as Hb}from"react";import{jsx as Ge}from"react/jsx-runtime";var bi=Eb(null);function Wo(){let t=Lb(bi);if(!t)throw new Error("Popover components must be used within Popover");return t}function Bb({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=Hb(r),s=Rb(null),l=e!==void 0,c=l?e:i,d=Ib(p=>{l||n(p),a?.(p)},[l,a]);Ab(()=>{if(!c)return;let p=v=>{let f=v.target;f&&s.current&&!s.current.contains(f)&&d(!1)},b=v=>{v.key==="Escape"&&d(!1)};return window.addEventListener("pointerdown",p),window.addEventListener("keydown",b),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("keydown",b)}},[c,d]);let m=Db(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Ge(bi.Provider,{value:m,children:Ge("div",{ref:s,className:"relative inline-flex",children:t})})}var ui=Go(({className:t,type:e="button",onClick:r,...a},i)=>{let{open:n,setOpen:s}=Wo();return Ge("button",{ref:i,type:e,"aria-haspopup":"dialog","aria-expanded":n,onClick:l=>{r?.(l),l.defaultPrevented||s(!n)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","[font:var(--inkblot-semantic-typography-body-medium)]",t),...a})});ui.displayName="PopoverTrigger";var vi=Go(({className:t,...e},r)=>{let{open:a}=Wo();return a?Ge("div",{ref:r,role:"dialog",className:o("absolute left-0 top-[calc(100%+var(--inkblot-spacing-2))] z-40 min-w-[calc(var(--inkblot-size-touch-target-min)*4)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-4)] shadow-[var(--inkblot-shadow-md)]",t),...e}):null});vi.displayName="PopoverContent";var fi=Go(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Wo();return Ge("button",{ref:i,type:e,onClick:s=>{r?.(s),s.defaultPrevented||n(!1)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]",t),...a})});fi.displayName="PopoverClose";import{forwardRef as Fb}from"react";import{jsx as Ko,jsxs as zb}from"react/jsx-runtime";var gi=Fb(({className:t,value:e,max:r=100,showValueLabel:a=!1,...i},n)=>{let s=Math.max(0,Math.min(e/r,1)),l=`${Math.round(s*100)}%`;return zb("div",{ref:n,className:o("grid gap-[var(--inkblot-spacing-2)]",t),...i,children:[Ko("div",{className:"h-[var(--inkblot-spacing-2)] overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:Ko("div",{className:"h-full rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)] transition-[width] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",style:{width:l}})}),a?Ko("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:l}):null]})});gi.displayName="Progress";import{forwardRef as yi,useState as Ob}from"react";import{jsx as We,jsxs as ki}from"react/jsx-runtime";var xi=yi(({className:t,options:e,value:r,defaultValue:a,onValueChange:i,name:n="radio-group",...s},l)=>{let[c,d]=Ob(a??""),m=r!==void 0,p=m?r:c,b=v=>{m||d(v),i?.(v)};return We("div",{ref:l,role:"radiogroup",className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:e.map(v=>ki("label",{className:o("flex cursor-pointer items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-background-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",v.disabled&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]"),children:[We(Uo,{type:"radio",name:n,value:v.value,checked:p===v.value,disabled:v.disabled,onChange:()=>b(v.value)}),ki("span",{className:"grid gap-[var(--inkblot-spacing-1)]",children:[We("span",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:v.label}),v.description?We("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:v.description}):null]})]},v.value))})});xi.displayName="RadioGroup";var Uo=yi(({className:t,...e},r)=>We("input",{ref:r,className:o("mt-[var(--inkblot-spacing-1)] h-[var(--inkblot-spacing-4)] w-[var(--inkblot-spacing-4)] border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-interactive-primary)]",t),...e}));Uo.displayName="RadioGroupItem";import{useMemo as Vb,useState as Gb}from"react";import{GripVertical as Wb,GripHorizontal as Kb}from"lucide-react";import{jsx as ke,jsxs as _b}from"react/jsx-runtime";function Ub({primary:t,secondary:e,direction:r="horizontal",defaultPrimarySize:a=50,minPrimarySize:i=20,minSecondarySize:n=20,className:s}){let[l,c]=Gb(a),d=r==="horizontal",m=Vb(()=>d?{gridTemplateColumns:`${l}fr auto ${100-l}fr`}:{gridTemplateRows:`${l}fr auto ${100-l}fr`},[d,l]),p=(b,v)=>{let f=v.getBoundingClientRect(),C=d?(b.x-f.left)/f.width*100:(b.y-f.top)/f.height*100,y=100-n,T=Math.min(y,Math.max(i,C));c(T)};return _b("div",{className:o("grid h-full w-full overflow-hidden rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)]",s),style:m,children:[ke("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:t}),ke("div",{className:o(d?"w-[var(--inkblot-spacing-2)]":"h-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-border-default)]"),children:ke("button",{type:"button","aria-label":"Resize panels",className:o("flex h-full w-full items-center justify-center bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-secondary)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] active:bg-[var(--inkblot-semantic-color-background-secondary)]"),onPointerDown:b=>{let v=b.currentTarget.closest("div")?.parentElement;if(!v)return;p({x:b.clientX,y:b.clientY},v);let f=y=>{p({x:y.clientX,y:y.clientY},v)},C=()=>{window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",C)},children:d?ke(Wb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):ke(Kb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})}),ke("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:e})]})}import{forwardRef as jb}from"react";import{jsx as $b}from"react/jsx-runtime";var hi=jb(({className:t,maxHeight:e="var(--inkblot-size-touch-target-min)",...r},a)=>$b("div",{ref:a,className:o("overflow-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-[var(--inkblot-spacing-3)]",t),style:{maxHeight:e,...r.style},...r}));hi.displayName="ScrollArea";import{ChevronDown as qb}from"lucide-react";import{forwardRef as Yb}from"react";import{jsx as _o,jsxs as Ni}from"react/jsx-runtime";var wi=Yb(({className:t,options:e,placeholder:r,error:a,disabled:i,...n},s)=>Ni("div",{className:"relative w-full",children:[Ni("select",{ref:s,disabled:i,"aria-invalid":a,className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full appearance-none rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-2 pr-10 text-[var(--inkblot-semantic-color-text-primary)] 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",a?"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,children:[r?_o("option",{value:"",disabled:!0,children:r}):null,e.map(l=>_o("option",{value:l.value,disabled:l.disabled,children:l.label},l.value))]}),_o(qb,{"aria-hidden":!0,className:"pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-[var(--inkblot-semantic-color-text-tertiary)]"})]}));wi.displayName="Select";import{forwardRef as Xb}from"react";import{jsx as Zb}from"react/jsx-runtime";var Ci=Xb(({className:t,orientation:e="horizontal",decorative:r=!0,...a},i)=>Zb("div",{ref:i,role:r?"none":"separator","aria-orientation":e,className:o("shrink-0 bg-[var(--inkblot-semantic-color-border-default)]",e==="horizontal"?"h-px w-full":"h-full w-px",t),...a}));Ci.displayName="Separator";import{X as Qb}from"lucide-react";import{useEffect as Jb}from"react";import{jsx as ye,jsxs as Ar}from"react/jsx-runtime";var tu={top:"inset-x-0 top-0 border-b rounded-b-[var(--inkblot-radius-lg)]",right:"inset-y-0 right-0 h-full w-full max-w-[420px] border-l",bottom:"inset-x-0 bottom-0 border-t rounded-t-[var(--inkblot-radius-lg)]",left:"inset-y-0 left-0 h-full w-full max-w-[420px] border-r"};function eu({open:t,onOpenChange:e,side:r="right",title:a,description:i,showCloseButton:n=!0,className:s,overlayClassName:l,children:c,...d}){return Jb(()=>{if(!t)return;let m=p=>{p.key==="Escape"&&e?.(!1)};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[t,e]),t?Ar("div",{className:"fixed inset-0 z-50",children:[ye("button",{type:"button","aria-label":"Close panel",onClick:()=>e?.(!1),className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",l)}),Ar("section",{role:"dialog","aria-modal":"true",className:o("absolute bg-[var(--inkblot-semantic-color-background-secondary)] p-5 text-[var(--inkblot-semantic-color-text-primary)] shadow-lg border-[var(--inkblot-semantic-color-border-default)]",tu[r],s),...d,children:[(a||i||n)&&Ar("header",{className:"mb-4 flex items-start justify-between gap-4",children:[Ar("div",{children:[a?ye("h3",{className:"text-base font-semibold",children:a}):null,i?ye("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:i}):null]}),n?ye("button",{type:"button","aria-label":"Close",onClick:()=>e?.(!1),className:"inline-flex size-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-text-secondary)] transition-colors hover:text-[var(--inkblot-semantic-color-text-primary)]",children:ye(Qb,{className:"size-4"})}):null]}),ye("div",{children:c})]})]}):null}import{PanelLeftClose as ru,PanelLeftOpen as ou}from"lucide-react";import{Fragment as nu,jsx as Ct,jsxs as Dr}from"react/jsx-runtime";function au({items:t,collapsed:e=!1,onCollapsedChange:r,header:a,footer:i,className:n,...s}){return Dr("aside",{className:o("flex h-full flex-col border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 transition-[width] duration-[var(--inkblot-duration-fast)]",e?"w-[76px]":"w-[260px]",n),...s,children:[Dr("div",{className:"mb-3 flex items-center justify-between gap-2",children:[Ct("div",{className:o("truncate text-sm font-semibold",e&&"sr-only"),children:a}),Ct("button",{type:"button","aria-label":e?"Expandir sidebar":"Colapsar sidebar",onClick:()=>r?.(!e),className:"inline-flex size-9 items-center justify-center rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:e?Ct(ou,{className:"size-4"}):Ct(ru,{className:"size-4"})})]}),Ct("nav",{className:"flex flex-1 flex-col gap-1",children:t.map(l=>{let c=l.icon;return Dr("button",{type:"button",disabled:l.disabled,onClick:l.onClick,className:o("flex min-h-[var(--inkblot-size-touch-target-min)] items-center gap-3 rounded-[var(--inkblot-radius-md)] px-3 py-2 text-sm transition-colors",l.active?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",l.disabled&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[c?Ct(c,{className:"size-4 shrink-0"}):null,e?null:Dr(nu,{children:[Ct("span",{className:"truncate",children:l.label}),l.badge?Ct("span",{className:"ml-auto",children:l.badge}):null]})]},l.id)})}),i?Ct("div",{className:o("mt-3 border-t border-[var(--inkblot-semantic-color-border-default)] pt-3",e&&"sr-only"),children:i}):null]})}import{forwardRef as iu,useMemo as su}from"react";import{jsx as Rr,jsxs as Ti}from"react/jsx-runtime";var Pi=iu(({className:t,value:e,defaultValue:r,min:a=0,max:i=100,step:n=1,disabled:s,showValue:l=!0,onValueChange:c,...d},m)=>{let p=e??r??a,b=su(()=>i<=a?0:(p-a)/(i-a)*100,[p,a,i]);return Ti("div",{className:o("w-full",t),children:[Ti("div",{className:"mb-2 flex items-center justify-between text-sm",children:[Rr("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:a}),l?Rr("span",{className:"font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:p}):null,Rr("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:i})]}),Rr("input",{ref:m,type:"range",value:e,defaultValue:r,min:a,max:i,step:n,disabled:s,onChange:v=>c?.(Number(v.target.value)),className:"h-2 w-full cursor-pointer appearance-none rounded-full bg-[var(--inkblot-semantic-color-background-tertiary)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)] [&::-webkit-slider-runnable-track]:h-2 [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-transparent [&::-webkit-slider-thumb]:mt-[-4px] [&::-webkit-slider-thumb]:size-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border [&::-webkit-slider-thumb]:border-[var(--inkblot-semantic-color-border-default)] [&::-webkit-slider-thumb]:bg-[var(--inkblot-semantic-color-background-secondary)] [&::-webkit-slider-thumb]:shadow-sm [&::-moz-range-track]:h-2 [&::-moz-range-track]:rounded-full [&::-moz-range-track]:bg-transparent [&::-moz-range-thumb]:size-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border [&::-moz-range-thumb]:border-[var(--inkblot-semantic-color-border-default)] [&::-moz-range-thumb]:bg-[var(--inkblot-semantic-color-background-secondary)]",style:{background:`linear-gradient(to right, var(--inkblot-semantic-color-interactive-primary) 0%, var(--inkblot-semantic-color-interactive-primary) ${b}%, var(--inkblot-semantic-color-background-tertiary) ${b}%, var(--inkblot-semantic-color-background-tertiary) 100%)`},...d})]})});Pi.displayName="Slider";import{useMemo as fu}from"react";import{AlertTriangle as lu,CheckCircle2 as cu,CircleX as du,Info as mu,X as pu}from"lucide-react";import{jsx as mt,jsxs as Si}from"react/jsx-runtime";var bu={info:"border-[var(--inkblot-semantic-color-status-info)]",success:"border-[var(--inkblot-semantic-color-status-success)]",warning:"border-[var(--inkblot-semantic-color-status-warning)]",error:"border-[var(--inkblot-semantic-color-status-error)]"},uu={info:mt(mu,{className:"size-4"}),success:mt(cu,{className:"size-4"}),warning:mt(lu,{className:"size-4"}),error:mt(du,{className:"size-4"})};function jo({title:t,description:e,variant:r="info",action:a,onClose:i,className:n,...s}){return mt("div",{role:"status",className:o("w-full rounded-[var(--inkblot-radius-lg)] border-l-4 border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-[var(--inkblot-semantic-color-text-primary)] shadow-sm",bu[r],n),...s,children:Si("div",{className:"flex items-start gap-3",children:[mt("span",{className:"mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]",children:uu[r]}),Si("div",{className:"min-w-0 flex-1",children:[mt("p",{className:"text-sm font-semibold",children:t}),e?mt("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e}):null,a?mt("button",{type:"button",...a,className:o("mt-2 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-2 py-1 text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",a.className),children:a.label}):null]}),i?mt("button",{type:"button","aria-label":"Close notification",onClick:i,className:"inline-flex size-8 items-center justify-center rounded-[var(--inkblot-radius-md)] text-[var(--inkblot-semantic-color-text-tertiary)] hover:text-[var(--inkblot-semantic-color-text-primary)]",children:mt(pu,{className:"size-4"})}):null]})})}import{jsx as Mi}from"react/jsx-runtime";var vu={"top-left":"top-4 left-4","top-right":"top-4 right-4","bottom-left":"bottom-4 left-4","bottom-right":"bottom-4 right-4"};function $o({toasts:t,position:e="bottom-right",onDismiss:r,className:a,...i}){return Mi("div",{className:o("fixed z-50 flex w-full max-w-[360px] flex-col gap-2",vu[e],a),...i,children:t.map(n=>Mi(jo,{...n,onClose:()=>r?.(n.id)},n.id))})}import{jsx as ku}from"react/jsx-runtime";function gu({toasts:t,maxVisible:e=3,position:r="bottom-right",onDismiss:a,...i}){let n=fu(()=>t.slice(0,e),[t,e]);return ku($o,{toasts:n,position:r,onDismiss:a,...i})}import{forwardRef as yu,useState as xu}from"react";import{jsx as Ei}from"react/jsx-runtime";var Ii=yu(({checked:t,defaultChecked:e=!1,onCheckedChange:r,disabled:a,className:i,...n},s)=>{let[l,c]=xu(e),d=t??l;return Ei("button",{ref:s,type:"button",role:"switch","aria-checked":d,disabled:a,onClick:()=>{if(a)return;let p=!d;t===void 0&&c(p),r?.(p)},className:o("relative inline-flex h-7 w-12 items-center rounded-full border transition-colors 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",d?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]":"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)]",i),...n,children:Ei("span",{className:o("inline-block size-5 rounded-full bg-[var(--inkblot-semantic-color-background-secondary)] transition-transform duration-[var(--inkblot-duration-fast)]",d?"translate-x-6":"translate-x-1")})})});Ii.displayName="Switch";import{forwardRef as Wt}from"react";import{ArrowDown as hu,ArrowUp as Nu,ArrowUpDown as wu}from"lucide-react";import{jsx as J,jsxs as Oi}from"react/jsx-runtime";var Li=Wt(({className:t,...e},r)=>J("div",{className:"w-full overflow-x-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]",children:J("table",{ref:r,className:o("w-full border-collapse bg-[var(--inkblot-semantic-color-background-secondary)]",t),...e})})),Ai=Wt(({className:t,...e},r)=>J("thead",{ref:r,className:o("bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Di=Wt(({className:t,...e},r)=>J("tbody",{ref:r,className:o(t),...e})),Ri=Wt(({className:t,...e},r)=>J("tr",{ref:r,className:o("border-b border-[var(--inkblot-semantic-color-border-default)] text-[var(--inkblot-semantic-color-text-primary)] transition-colors hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Hi=Wt(({className:t,children:e,sortable:r=!1,sortDirection:a,onSort:i,sortButtonProps:n,...s},l)=>J("th",{ref:l,className:o("px-4 py-3 text-left text-sm font-semibold text-[var(--inkblot-semantic-color-text-secondary)]",t),...s,children:r?Oi("button",{type:"button",onClick:i,className:"inline-flex items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-sm)] text-inherit transition-colors duration-[var(--inkblot-duration-fast)] hover:text-[var(--inkblot-semantic-color-text-primary)]",...n,children:[e,a==="asc"?J(Nu,{className:"h-3.5 w-3.5","aria-hidden":!0}):a==="desc"?J(hu,{className:"h-3.5 w-3.5","aria-hidden":!0}):J(wu,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):e})),Bi=Wt(({className:t,...e},r)=>J("td",{ref:r,className:o("px-4 py-3 text-sm",t),...e})),Fi=Wt(({className:t,...e},r)=>J("caption",{ref:r,className:o("p-3 text-left text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",t),...e})),zi=Wt(({className:t,colSpan:e,title:r="No data available",description:a="Adjust filters or add records to populate this table.",...i},n)=>J("tr",{children:J("td",{ref:n,colSpan:e,className:o("px-4 py-10 text-center align-middle","text-[var(--inkblot-semantic-color-text-secondary)]",t),...i,children:Oi("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[J("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:r}),J("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:a})]})})}));Li.displayName="Table";Ai.displayName="TableHeader";Di.displayName="TableBody";Ri.displayName="TableRow";Hi.displayName="TableHead";Bi.displayName="TableCell";Fi.displayName="TableCaption";zi.displayName="TableEmptyState";import{useMemo as Cu,useState as Tu}from"react";import{jsx as qo,jsxs as Su}from"react/jsx-runtime";function Pu({items:t,value:e,defaultValue:r,onValueChange:a,fullWidth:i=!1,className:n,...s}){let l=r??t.find(v=>!v.disabled)?.id??"",[c,d]=Tu(l),m=e??c,p=Cu(()=>t.find(v=>v.id===m)??t.find(v=>!v.disabled),[m,t]),b=v=>{e===void 0&&d(v),a?.(v)};return Su("div",{className:o("w-full",n),...s,children:[qo("div",{role:"tablist",className:"inline-flex rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-1",children:t.map(v=>{let f=v.id===p?.id;return qo("button",{type:"button",role:"tab","aria-selected":f,disabled:v.disabled,onClick:()=>b(v.id),className:o("min-h-[var(--inkblot-size-touch-target-min)] rounded-[var(--inkblot-radius-md)] px-4 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",i&&"flex-1",f?"bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]"),children:v.label},v.id)})}),qo("div",{className:"mt-3 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4 text-[var(--inkblot-semantic-color-text-primary)]",children:p?.content})]})}import{forwardRef as Mu}from"react";import{jsx as Iu}from"react/jsx-runtime";var Eu={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},Vi=Mu(({className:t,error:e,disabled:r,resize:a="vertical",...i},n)=>Iu("textarea",{ref:n,disabled:r,"aria-invalid":e,className:o("min-h-[120px] w-full rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-3 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:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",Eu[a],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}));Vi.displayName="Textarea";import{useState as Lu}from"react";import{jsx as Ru,jsxs as Hu}from"react/jsx-runtime";var Au={top:"bottom-full left-1/2 mb-2 -translate-x-1/2",right:"left-full top-1/2 ml-2 -translate-y-1/2",bottom:"left-1/2 top-full mt-2 -translate-x-1/2",left:"right-full top-1/2 mr-2 -translate-y-1/2"};function Du({content:t,side:e="top",open:r,defaultOpen:a=!1,onOpenChange:i,disabled:n=!1,className:s,children:l,...c}){let[d,m]=Lu(a),p=r??d,b=v=>{r===void 0&&m(v),i?.(v)};return Hu("span",{className:o("relative inline-flex",s),onMouseEnter:()=>!n&&b(!0),onMouseLeave:()=>b(!1),onFocus:()=>!n&&b(!0),onBlur:()=>b(!1),...c,children:[l,p&&!n?Ru("span",{role:"tooltip",className:o("pointer-events-none absolute z-50 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-3 py-2 text-xs text-[var(--inkblot-semantic-color-text-primary)] shadow-sm",Au[e]),children:t}):null]})}import{Sparkles as Bu}from"lucide-react";import{jsx as Tt,jsxs as Yo}from"react/jsx-runtime";function Fu({item:t,onSelect:e,onGenerateWithAI:r}){return Yo("div",{role:"button",tabIndex:0,onClick:()=>e?.(t),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),e?.(t))},className:o("group mb-[var(--inkblot-spacing-4)] break-inside-avoid rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)] shadow-[var(--inkblot-shadow-sm)]","cursor-pointer transition-shadow duration-[var(--inkblot-duration-fast)]","hover:shadow-[var(--inkblot-shadow-md)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[t.thumbnail?Tt("img",{src:t.thumbnail,alt:t.title,className:"w-full rounded-t-[var(--inkblot-radius-lg)] object-cover"}):Tt("div",{className:"flex h-32 items-center justify-center rounded-t-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:Tt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No preview"})}),Yo("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-4)]",children:[t.category&&Tt("span",{className:o("inline-flex w-fit items-center rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:t.category}),Tt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.description&&Tt("p",{className:"line-clamp-2 text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.description}),r&&Yo("button",{type:"button",onClick:a=>{a.stopPropagation(),r(t)},className:o("mt-[var(--inkblot-spacing-1)] inline-flex w-full items-center justify-center gap-[var(--inkblot-spacing-2)]","rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-3)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-small)]","opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[Tt(Bu,{className:"h-4 w-4","aria-hidden":!0}),"Generate with AI"]})]})]})}function zu({items:t,columns:e=3,onSelect:r,onGenerateWithAI:a,className:i}){return Tt("div",{className:o("gap-[var(--inkblot-spacing-4)]",i),style:{columns:e,columnGap:"var(--inkblot-spacing-4)"},children:t.map(n=>Tt(Fu,{item:n,onSelect:r,onGenerateWithAI:a},n.id))})}import{useEffect as Ou,useCallback as Vu}from"react";import{X as Gu,AlertTriangle as Wu,ArrowUp as Ku,ArrowDown as Uu,Minus as Gi,Calendar as _u,User as ju}from"lucide-react";import{Fragment as Zu,jsx as Y,jsxs as ft}from"react/jsx-runtime";var $u={todo:{label:"To Do",color:"bg-[var(--inkblot-semantic-color-text-tertiary)]"},in_progress:{label:"In Progress",color:"bg-[var(--inkblot-semantic-color-status-info)]"},done:{label:"Done",color:"bg-[var(--inkblot-semantic-color-status-success)]"}},qu={urgent:{label:"Urgent",icon:Wu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},high:{label:"High",icon:Ku,color:"text-[var(--inkblot-semantic-color-status-warning)]"},medium:{label:"Medium",icon:Gi,color:"text-[var(--inkblot-semantic-color-status-info)]"},low:{label:"Low",icon:Uu,color:"text-[var(--inkblot-semantic-color-text-tertiary)]"}};function Yu(t){return t.completed?"done":"todo"}function xe({label:t,children:e}){return ft("div",{className:"flex items-start gap-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] border-b border-[var(--inkblot-semantic-color-border-default)]",children:[Y("span",{className:"w-28 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t}),Y("div",{className:"min-w-0 flex-1 text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})}function Xu({task:t,open:e,onOpenChange:r,extraFields:a,onStatusChange:i,onAssigneeChange:n,className:s}){let l=Vu(()=>r?.(!1),[r]);if(Ou(()=>{if(!e)return;let b=v=>{v.key==="Escape"&&l()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[e,l]),!e)return null;let c=t?Yu(t):null,d=c?$u[c]:null,m=t?qu[t.priority]:null,p=m?.icon??Gi;return ft("div",{className:"fixed inset-0 z-50 flex justify-end",children:[Y("div",{className:"absolute inset-0 bg-black/40 transition-opacity duration-[var(--inkblot-duration-fast)]",onClick:l,"aria-hidden":!0}),Y("div",{role:"dialog","aria-modal":"true","aria-label":t?.title??"Task details",className:o("relative z-10 flex h-full w-[480px] flex-col","bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-md)]",s),children:t?ft(Zu,{children:[ft("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)] border-b border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-6)]",children:[ft("div",{className:"min-w-0 flex-1",children:[Y("h2",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.jiraKey&&Y("span",{className:"mt-[var(--inkblot-spacing-1)] inline-block text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.jiraKey})]}),Y("button",{type:"button",onClick:l,"aria-label":"Close",className:o("inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)]","text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:text-[var(--inkblot-semantic-color-text-primary)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:Y(Gu,{className:"h-4 w-4","aria-hidden":!0})})]}),ft("div",{className:"flex-1 overflow-y-auto p-[var(--inkblot-spacing-6)]",children:[Y(xe,{label:"Status",children:ft("button",{type:"button",onClick:()=>{if(!i||!c)return;let b=["todo","in_progress","done"],v=b[(b.indexOf(c)+1)%b.length];i(v)},className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","transition-colors duration-[var(--inkblot-duration-fast)]",i&&"cursor-pointer hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),disabled:!i,children:[Y("span",{className:o("h-2 w-2 shrink-0 rounded-full",d?.color)}),d?.label]})}),Y(xe,{label:"Priority",children:ft("span",{className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)]",m?.color),children:[Y(p,{className:"h-4 w-4","aria-hidden":!0}),m?.label]})}),Y(xe,{label:"Assignee",children:ft("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[Y(ju,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.assignee]})}),Y(xe,{label:"Due date",children:ft("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[Y(_u,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.date]})}),Y(xe,{label:"Company",children:t.company}),a?.map(b=>Y(xe,{label:b.label,children:b.value},b.label))]})]}):Y("div",{className:"flex flex-1 items-center justify-center p-[var(--inkblot-spacing-6)]",children:Y("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No task selected"})})})]})}import{Fragment as Wi,jsx as pt,jsxs as Qt}from"react/jsx-runtime";function Qu({name:t,description:e,icon:r,connected:a=!1,onConnect:i,onDisconnect:n,className:s}){return Qt("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)] p-[var(--inkblot-spacing-5)] shadow-[var(--inkblot-shadow-sm)]",s),children:[Qt("div",{className:"flex items-start gap-[var(--inkblot-spacing-4)]",children:[pt("div",{className:o("flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)]","bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)]"),children:r??pt("span",{className:"h-5 w-5 rounded-full bg-[var(--inkblot-semantic-color-border-default)]"})}),Qt("div",{className:"min-w-0 flex-1",children:[pt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t}),pt("p",{className:"mt-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})]}),pt("div",{className:"flex items-center justify-between",children:a?Qt(Wi,{children:[Qt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[pt("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),pt("span",{className:"text-[var(--inkblot-semantic-color-status-success)]",children:"Connected"})]}),n&&pt("button",{type:"button",onClick:n,className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-body-small)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:"Disconnect"})]}):Qt(Wi,{children:[Qt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[pt("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]"}),pt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Not connected"})]}),i&&pt("button",{type:"button",onClick:i,className:o("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-small)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)]","active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)]"),children:"Connect"})]})})]})}var t0="var(--inkblot-semantic-color-background-primary)",e0="var(--inkblot-semantic-color-background-secondary)",r0="var(--inkblot-semantic-color-border-default)",o0="var(--inkblot-semantic-color-text-primary)",a0="var(--inkblot-semantic-color-text-secondary)",n0="var(--inkblot-semantic-color-interactive-primary)",i0="var(--inkblot-semantic-color-interactive-secondary)",s0="var(--inkblot-semantic-color-interactive-secondary-hover)";export{Ne as AIComposeInput,SN as AIEmailGenerator,od as Accordion,zr as ActionButtons,mr as ActivityStream,cd as AdvancedDropdown,fd as Alert,yd as AlertDialog,iw as AppLayout,Ma as AppNavigationRail,rn as AppSidebar,qd as AspectRatio,os as AssistantPanel,to as Avatar,Zd as Badge,tm as Breadcrumb,we as Button,yr as CITRON_THEME_STORAGE_KEY,cm as Calendar,qe as CampaignTable,ko as CanvasProvider,dm as Card,um as CardContent,bm as CardDescription,vm as CardFooter,mm as CardHeader,pm as CardTitle,ym as Carousel,ms as CenteredAIChat,as as CenteredAssistantChat,xm as Chart,wm as Checkbox,un as CircularScore,Sm as Collapsible,Lm as Command,Ea as CommandBar,TC as CommandCanvas,Om as ContextMenu,jm as Dialog,Lo as DialogClose,wn as DialogContent,Ym as DialogDescription,Xm as DialogFooter,$m as DialogHeader,qm as DialogTitle,Nn as DialogTrigger,op as Drawer,En as DrawerClose,Mn as DrawerContent,ip as DrawerDescription,sp as DrawerFooter,ap as DrawerHeader,np as DrawerTitle,Sn as DrawerTrigger,gp as DropdownMenu,An as DropdownMenuContent,Dn as DropdownMenuItem,kp as DropdownMenuSeparator,Ln as DropdownMenuTrigger,lT as EmailBlockEditor,Va as EmailCampaignsView,$e as EmailComposeActionButtons,Ze as EmailTemplatesSection,la as EntityCard,ca as EntityCommandCard,Qe as ErrorBoundary,an as EventFeed,ma as EventRow,ba as EventStreamFeed,Ia as EventStreamSidebar,Vn as Form,Lp as FormActions,Ip as FormField,ee as GlobalAssistantChat,hT as GraphView,ET as GuidedTour,Xp as HoverCard,jn as HoverCardContent,_n as HoverCardTrigger,_t as Input,qn as InputOtp,Qu as IntegrationPlaceholder,qT as IntelligenceCard,La as IntelligenceLab,tr as IntelligenceScoreCard,Jc as InvoiceEditorPage,io as InvoiceForm,lo as InvoicePreview,Yn as Label,Aa as MainShell,ri as Menubar,ii as MenubarCloseZone,ai as MenubarContent,ni as MenubarItem,cb as MenubarMenu,db as MenubarSeparator,oi as MenubarTrigger,ua as MetricComparisonList,or as ModuleContainer,F as ModuleErrorBoundary,er as ModuleSkeleton,fo as NavLink,no as NavLinkRouter,mb as NavigationMenu,xa as OSNavigationRail,hP as OnboardingWizard,nr as PageErrorFallback,ne as PageHeader,ie as PageHeaderActionButton,Sb as Pagination,Bb as Popover,fi as PopoverClose,vi as PopoverContent,ui as PopoverTrigger,gi as Progress,xi as RadioGroup,Uo as RadioGroupItem,Ub as Resizable,ga as RouteWithErrorBoundary,hi as ScrollArea,Et as SearchBar,wi as Select,Ci as Separator,eu as Sheet,au as Sidebar,Mt as Skeleton,Pi as Slider,gu as Sonner,ya as StatCardGrid,ir as StatCards,Na as StatCardsWithChart,Je as StatusBadge,Ii as Switch,sr as TabSystem,Li as Table,Di as TableBody,Fi as TableCaption,Bi as TableCell,zi as TableEmptyState,Hi as TableHead,Ai as TableHeader,Ri as TableRow,Pu as Tabs,br as TaskCreateForm,Xu as TaskDetailsPanel,lr as TaskItem,de as TaskKanban,de as TaskKanbanBoard,vr as TaskKanbanCard,fr as TaskKanbanColumn,cr as TaskList,Ba as TasksView,Ye as TemplateCard,zu as TemplateMasonryGrid,Vi as Textarea,_a as ThemeProvider,hr as ThemeSwitcherButton,jo as Toast,$o as Toaster,Qr as Toggle,Jr as ToggleGroup,Du as Tooltip,t0 as semanticBackgroundPrimary,e0 as semanticBackgroundSecondary,r0 as semanticBorderDefault,n0 as semanticInteractivePrimary,i0 as semanticInteractiveSecondary,s0 as semanticInteractiveSecondaryHover,o0 as semanticTextPrimary,a0 as semanticTextSecondary,_d as useCanvas,xr as useTheme};