@citron-systems/citron-ui 1.22.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useState as Jo,useRef as Hr,useEffect as ta,useCallback as Ue}from"react";import{Loader2 as ea,Paperclip as Yi,Send as Xi,Sparkles as ra}from"lucide-react";import{clsx as Ui}from"clsx";import{twMerge as _i}from"tailwind-merge";function o(...t){return _i(Ui(t))}import{FileText as ji,X as $i}from"lucide-react";import{jsx as te,jsxs as qi}from"react/jsx-runtime";function Ke({attachments:t,onRemove:e}){return t.length===0?null:te("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)] px-[var(--inkblot-spacing-2)] pb-[var(--inkblot-spacing-2)]",children:t.map((r,a)=>qi("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:[r.kind==="image"&&r.previewUrl?te("img",{src:r.previewUrl,alt:r.file.name,className:"h-8 w-8 rounded-[var(--inkblot-radius-sm)] object-cover"}):te(ji,{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:r.file.name}),te("button",{type:"button",onClick:()=>e(a),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 ${r.file.name}`,children:te($i,{size:10})})]},`${r.file.name}-${a}-${r.file.size}`))})}import{jsx as K,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...",className:n}){let[s,l]=Jo(""),[c,d]=Jo([]),m=Hr(null),p=Hr(null),b=Hr(null);ta(()=>{m.current&&(m.current.scrollTop=m.current.scrollHeight)},[t]),ta(()=>()=>{c.forEach(g=>{g.previewUrl&&URL.revokeObjectURL(g.previewUrl)})},[]);let u=Ue(()=>{let g=s.trim();if(!(!g&&c.length===0)&&!r){try{e?.({text:g,files:c.map(S=>S.file)})}catch{}l(""),d(S=>(S.forEach(N=>{N.previewUrl&&URL.revokeObjectURL(N.previewUrl)}),[])),requestAnimationFrame(()=>{b.current?.focus()})}},[s,c,r,e]),f=Ue(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),u())},[u]),C=Ue(g=>{let S=g.target.files;if(!S||S.length===0)return;let N=Array.from(S).map(y=>{let k=y.type.startsWith("image/");return{file:y,kind:k?"image":"file",previewUrl:k?URL.createObjectURL(y):void 0}});d(y=>[...y,...N]),g.target.value=""},[]),x=Ue(g=>{d(S=>{let N=S[g];return N?.previewUrl&&URL.revokeObjectURL(N.previewUrl),S.filter((y,k)=>k!==g)})},[]);return Kt("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[t.length===0?K("div",{className:"flex flex-1 items-center justify-center",children:Kt("div",{className:"text-center",children:[K(ra,{className:"mx-auto mb-[var(--inkblot-spacing-2)] h-5 w-5 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),K("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):K("div",{ref:m,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(g=>g.role==="user"?K("div",{className:"flex justify-end",children:K("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:g.renderedContent??g.content})},g.id):Kt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[K(ra,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),K("div",{className:"max-w-[90%] [font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-primary)]",children:g.renderedContent??g.content})]},g.id)),r&&Kt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[K(ea,{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}),K("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Thinking..."})]})]})}),K("div",{className:"shrink-0 border-t 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:K("div",{className:"mx-auto max-w-4xl",children:Kt("div",{className:o("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:[Kt("div",{className:"flex items-end gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-2)]",children:[K("input",{ref:p,type:"file",multiple:!0,onChange:C,className:"sr-only","aria-hidden":!0}),K("button",{type:"button",onClick:()=>p.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:K(Yi,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),K("textarea",{ref:b,value:s,onChange:g=>l(g.target.value),onKeyDown:f,placeholder:a,rows:1,className:o("min-h-[2.25rem] min-w-0 flex-1 resize-none border-0 bg-transparent py-[var(--inkblot-spacing-1)] [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")}),K("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center",children:r?K("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:K(ea,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):K("button",{type:"button",onClick:u,className:o("flex h-full w-full 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-primary)]"),"aria-label":"Send",children:K(Xi,{size:16,strokeWidth:2,"aria-hidden":!0})})})]}),K(Ke,{attachments:c,onRemove:x})]})})})]})}import{useEffect as Zi,useCallback as Qi}from"react";import{X as Ji}from"lucide-react";import{Fragment as oa,jsx as Ct,jsxs as re}from"react/jsx-runtime";function ts({open:t,onOpenChange:e,title:r="Assistant",subtitle:a,className:i,...n}){let s=Qi(()=>e?.(!1),[e]);Zi(()=>{if(!t)return;let c=d=>{d.key==="Escape"&&s()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,s]);let l=re("div",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",children:[re("div",{className:"min-w-0",children:[Ct("p",{className:"truncate text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r}),a&&Ct("p",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a})]}),Ct("button",{type:"button",onClick:s,className:"ml-[var(--inkblot-spacing-2)] flex h-7 w-7 shrink-0 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 duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]","aria-label":"Close",children:Ct(Ji,{className:"h-4 w-4"})})]});return re(oa,{children:[Ct("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(oa,{children:[l,Ct(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:[Ct("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,Ct(ee,{...n,className:"min-h-0 flex-1"})]})]})]})}import{jsx as rs}from"react/jsx-runtime";function es({className:t,...e}){return rs(ee,{...e,className:o("mx-auto w-full max-w-5xl",t)})}import{useState as Br,useRef as _e,useEffect as zr}from"react";import{ChevronDown as os,Loader2 as as,Mic as ns,Paperclip as is,Send as ss,Sparkles as aa}from"lucide-react";import{jsx as H,jsxs as Tt}from"react/jsx-runtime";function ls({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,u]=Br(""),[f,C]=Br(!1),[x,g]=Br([]),S=_e(null),N=_e(null),y=_e(null),k=!!(r??c);zr(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},[t]),zr(()=>{if(!f)return;let w=V=>{y.current&&!y.current.contains(V.target)&&C(!1)};return document.addEventListener("mousedown",w),()=>document.removeEventListener("mousedown",w)},[f]);let v=_e(x);v.current=x,zr(()=>()=>{v.current.forEach(w=>{w.previewUrl&&URL.revokeObjectURL(w.previewUrl)})},[]);let h=()=>{g(w=>(w.forEach(V=>{V.previewUrl&&URL.revokeObjectURL(V.previewUrl)}),[]))},P=w=>{g(V=>{let tt=V[w];return tt?.previewUrl&&URL.revokeObjectURL(tt.previewUrl),V.filter((bt,T)=>T!==w)})},M=(w,V)=>{r?r({text:w,files:V}):(w&&e?.(w),V.length>0&&c?.(V)),h(),u("")},A=()=>{if(a)return;let w=b.trim(),V=x.map(tt=>tt.file);!w&&V.length===0||M(w,V)},E=w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),A())},F=w=>{let V=w.target.files;if(!V?.length||!k){w.target.value="";return}let tt=Array.from(V).map(bt=>{let T=bt.type.startsWith("image/");return{file:bt,kind:T?"image":"file",previewUrl:T?URL.createObjectURL(bt):void 0}});g(bt=>[...bt,...tt]),w.target.value=""},L=n?.find(w=>w.id===s),B=b.trim(),D=x.length>0,W=!a&&(!!B||D);return Tt("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-primary)]",p),children:[t.length===0?H("div",{className:"flex flex-1 items-center justify-center",children:H("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:m})}):H("div",{ref:S,className:"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(w=>w.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:w.renderedContent??w.content})},w.id):Tt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[H(aa,{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:w.renderedContent??w.content})]},w.id))})}),H("div",{className:"shrink-0 bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]",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-[var(--inkblot-radius-xl)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] shadow-[var(--inkblot-shadow-sm)]",a&&"pointer-events-none"),"aria-busy":a,children:[H("input",{ref:N,type:"file",multiple:!0,onChange:F,className:"sr-only","aria-hidden":!0}),H("textarea",{value:b,onChange:w=>u(w.target.value),onKeyDown:E,placeholder:i,rows:3,disabled:a,className:o("min-h-[4.5rem] w-full resize-y 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:y,className:"relative min-w-0",children:[Tt("button",{type:"button",onClick:()=>C(w=>!w),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(aa,{size:14,strokeWidth:1.7,"aria-hidden":!0}),H("span",{className:"truncate",children:L?.label??"Select agent"}),H(os,{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(w=>Tt("button",{type:"button",onClick:()=>{l?.(w.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)]",w.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:w.label}),w.description&&H("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:w.description})]},w.id))})]}),Tt("div",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-2)]",children:[H("button",{type:"button",onClick:()=>N.current?.click(),disabled:a||!k,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-secondary)]","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Attach files",children:H(is,{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-[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-secondary)]","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Voice input",children:H(ns,{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(as,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):H("button",{type:"button",onClick:A,disabled:!W,className:o("flex h-full w-full 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-secondary-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)]","disabled:pointer-events-none disabled:opacity-40"),"aria-label":"Send",children:H(ss,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})]}),H(Ke,{attachments:x,onRemove:P})]})})})]})}import{Send as cs,Calendar as ds}from"lucide-react";import{jsx as je,jsxs as ps}from"react/jsx-runtime";var ms={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 Or({buttons:t,className:e}){return je("div",{className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",e),children:t.map(r=>ps("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",ms[r.variant]),children:[r.icon??null,r.label]},r.id))})}function $e({onSendNow:t,onSchedule:e,onSaveDraft:r,className:a}){return je(Or,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:je(cs,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:je(ds,{className:"h-4 w-4"}),onClick:e},{id:"draft",label:"Save Draft",variant:"secondary",onClick:r}],className:a})}import{forwardRef as bs}from"react";import{Loader2 as us,Sparkles as vs}from"lucide-react";import{jsx as oe,jsxs as Fr}from"react/jsx-runtime";var he=bs(({label:t,loading:e=!1,onWriteWithAI:r,disabled:a,className:i,...n},s)=>{let l=a||e;return Fr("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-2)]",i),children:[Fr("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?Fr("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(us,{className:"h-4 w-4 shrink-0 animate-spin"}):oe(vs,{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})})]})});he.displayName="AIComposeInput";import{forwardRef as fs}from"react";import{jsx as ks}from"react/jsx-runtime";var gs={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)]"},Ne=fs(({className:t,variant:e="primary",disabled:r,...a},i)=>ks("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)]",gs[e],t),...a}));Ne.displayName="Button";import{useMemo as ys,useState as na}from"react";import{ArrowDown as xs,ArrowUp as hs,ArrowUpDown as Ns,CheckCircle as ws,Zap as Cs,FileText as Ts,Clock as Ps}from"lucide-react";import{jsx as U,jsxs as Ut}from"react/jsx-runtime";var Ss={sent:{icon:ws,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:Cs,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:Ts,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:Ps,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]=na(i),[u,f]=na(n),C=r!==void 0&&a!==void 0,x=C?r:p,g=C?a:u,S=v=>!l||l.length===0?!0:l.includes(v),N=(v,h)=>{if(h==="campaign")return v.campaignName.toLowerCase();if(h==="status")return v.status;if(h==="opens")return Number.parseFloat(v.opens.replace("%","").trim())||0;if(h==="clicks")return Number.parseFloat(v.clicks.replace("%","").trim())||0;if(h==="date")return new Date(v.date).getTime()||0;let P=v[h];return typeof P=="number"?P:String(P??"").toLowerCase()},y=ys(()=>x?[...e].sort((h,P)=>{let M=N(h,x),A=N(P,x);return M<A?g==="asc"?-1:1:M>A?g==="asc"?1:-1:0}):e,[g,x,e]),k=v=>{let h=x===v&&g==="asc"?"desc":"asc";C||(b(v),f(h)),s?.(v,h)};return U("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:[U("thead",{children:U("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(v=>U("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:S(v.key)?Ut("button",{type:"button",onClick:()=>k(v.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:[v.label,x!==v.key?U(Ns,{className:"h-3.5 w-3.5","aria-hidden":!0}):g==="asc"?U(hs,{className:"h-3.5 w-3.5","aria-hidden":!0}):U(xs,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):v.label},v.key))})}),U("tbody",{children:y.length===0?U("tr",{children:U("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:[U("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:c}),U("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:d})]})})}):y.map(v=>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:[U("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:[U("span",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:v.campaignName}),U("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:v.recipients})]})}),U("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:U(Ms,{status:v.status,subtext:v.statusSubtext})}),U("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:v.opens}),U("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:v.clicks}),U("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:v.date})]},v.id))})]})})}function Ms({status:t,subtext:e}){let r=Ss[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:[U(a,{className:"h-4 w-4 shrink-0"}),r.label]}),e?U("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}):null]})}import{Sparkles as Is}from"lucide-react";import{File as Es}from"lucide-react";import{jsx as we,jsxs as ia}from"react/jsx-runtime";function Ye({category:t,title:e,uses:r,onClick:a,className:i}){return ia("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:[ia("div",{className:"flex items-start justify-between gap-2",children:[we("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}),we("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:r})]}),we("h3",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}),we("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:we(Es,{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(Is,{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 Ls,BadgeCheck as As,Building2 as Ds,TrendingUp as Rs,UserRound as Hs,Users as Bs}from"lucide-react";import{jsx as _,jsxs as Z}from"react/jsx-runtime";var zs={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)]"},Os={Person:Hs,Organization:Ds,Deal:As},Fs={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)]"},Vs=[{label:"Contacts",value:"12",icon:Bs},{label:"Open Deals",value:"3",icon:Rs},{label:"Touchpoints",value:"47",icon:Ls}];function sa({name:t,entityType:e,subtitle:r,statusLabel:a,metadata:i,edges:n=[],stats:s,connections:l,className:c}){let d=Os[e];if(s!==void 0||l!==void 0){let p=s??Vs;return Z("article",{className:o("glass flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] p-[var(--inkblot-spacing-5)]",c),children:[Z("div",{className:"flex items-start justify-between",children:[Z("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})}),Z("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 u=b.icon;return Z("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-[var(--inkblot-spacing-3)]",children:[Z("div",{className:"mb-1 flex items-center gap-1.5",children:[u?_(u,{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?Z("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 Z("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)]",zs[e],c),children:[Z("div",{className:"flex items-start justify-between gap-[var(--inkblot-spacing-3)]",children:[Z("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})}),Z("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",Fs[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])=>Z("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?Z("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)=>Z("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?Z("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 Gs}from"react";import{jsx as Ws}from"react/jsx-runtime";var _t=Gs(({className:t,error:e,disabled:r,...a},i)=>Ws("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 Ks}from"react";import{jsx as Gr,jsxs as Us}from"react/jsx-runtime";var z=class extends Ks{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?Us("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(Ne,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as kt,jsxs as Wr}from"react/jsx-runtime";function la({title:t,insights:e,stats:r=[],commandValue:a="",onCommandChange:i,onCommandSubmit:n,className:s}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),n?.())};return kt(z,{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:[kt("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?kt("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:[kt("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),kt("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:[kt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),kt("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},d))})]}):null,kt("div",{className:"mt-2",children:kt(_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 _s}from"react";import{jsx as ca}from"react/jsx-runtime";var Qe=class extends _s{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:ca("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:ca("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as $s}from"react/jsx-runtime";var js={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 $s("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",js[e],r),children:t})}import{jsx as ae,jsxs as Ys}from"react/jsx-runtime";function qs(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function da({event:t,className:e}){let r=qs(t.confidence_score),a=`${Math.round(t.confidence_score*100)}%`;return Ys("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 Xs}from"lucide-react";import{jsx as Pt,jsxs as ma}from"react/jsx-runtime";var Zs={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 Qs(){return Pt(Xs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}function pa({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=>ma("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(Qs,{})}),ma("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)]",Zs[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{TrendingDown as Js,TrendingUp as tl}from"lucide-react";import{jsx as St,jsxs as Ce}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(z,{className:i,children:Ce("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:[Ce("div",{className:"relative",children:[Ce("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:Ce("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(tl,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0}):a==="down"?St(Js,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0}):null]})})]}),Ce("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 ol}from"react/jsx-runtime";var el={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 rl({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 ba({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)=>ol("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",el[r.variant??"default"]),children:r.value!=null?r.value:jt(rl,{})})]},a))})})}import{jsx as al}from"react/jsx-runtime";function Mt({className:t,...e}){return al("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 Te,jsxs as nl}from"react/jsx-runtime";function er({className:t,...e}){return nl("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:[Te(Mt,{className:"h-8 w-3/5"}),Te(Mt,{className:"h-4 w-full"}),Te(Mt,{className:"h-4 w-11/12"}),Te(Mt,{className:"h-4 w-4/5"}),Te(Mt,{className:"h-4 w-2/3"})]})}import{jsx as rr,jsxs as ua}from"react/jsx-runtime";function or({children:t,loading:e=!1,title:r,className:a,onRetry:i}){return rr(z,{className:a,onRetry:i,children:e?ua("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,{})]}):ua("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 il}from"lucide-react";import{jsx as Pe,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?Pe("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:[Pe("h1",{className:o("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),e?Pe("p",{className:o("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:e}):null]})]}),a?Pe("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??Pe(il,{className:"h-4 w-4"}),t]})}import{Link as sl}from"react-router-dom";import{jsx as _r,jsxs as va}from"react/jsx-runtime";function nr({resetErrorBoundary:t}){return va("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"}),va("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(sl,{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 ll}from"react-error-boundary";import{useNavigate as cl}from"react-router-dom";import{jsx as dl}from"react/jsx-runtime";function fa({children:t,fallback:e}){let r=cl();return dl(ll,{FallbackComponent:e??nr,onReset:()=>{r("/")},children:t})}import{forwardRef as ml}from"react";import{Search as pl}from"lucide-react";import{jsx as jr,jsxs as ga}from"react/jsx-runtime";var Et=ml(({className:t,label:e,error:r,disabled:a,...i},n)=>ga("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,ga("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(pl,{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 bl}from"react/jsx-runtime";function ka({children:t,columns:e=4,className:r}){return bl("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 ul,useMemo as vl,useState as fl}from"react";import{jsx as Se,jsxs as gl}from"react/jsx-runtime";function ya({items:t,activeItemId:e,defaultActiveItemId:r,onActiveItemChange:a,onItemClick:i,className:n}){let s=vl(()=>r!==void 0?r:t.find(b=>b.active)?.id,[r,t]),[l,c]=fl(s),d=e!==void 0,m=d?e:l,p=ul((b,u)=>{if(u.disabled){b.preventDefault();return}d||c(u.id),i?.(u.id,u),u.onClick?.(u.id),a?.(u.id,u)},[d,a,i]);return Se(z,{className:n,children:Se("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 u=m?b.id===m:!!b.active;return gl("button",{type:"button",disabled:b.disabled,onClick:f=>p(f,b),"aria-current":u?"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)]",u?"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:[u?Se("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,Se("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:b.icon}),b.label?Se("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 xa={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(kl,{item:r},r.label))})}function kl({item:t}){let e=t.changeVariant??"neutral",r=xa[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 ha({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(yl,{item:r},r.label))})}function yl({item:t}){let e=t.changeVariant??"neutral",r=xa[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 Na,jsxs as xl}from"react/jsx-runtime";function sr({tabs:t,activeTabId:e,onTabChange:r,className:a}){return Na("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 xl("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?Na("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 hl,Check as Nl,User as wl}from"lucide-react";import{jsx as $t,jsxs as Me}from"react/jsx-runtime";var Cl={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=Cl[a];return Me("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(Nl,{className:"h-3 w-3",strokeWidth:3}):null}),Me("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})]}),Me("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)}),Me("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[$t(hl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),i]}),Me("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[$t(wl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),n]})]})]})}import{CircleDot as Tl,Clock as Pl,CheckCircle as Sl}from"lucide-react";import{jsx as se,jsxs as wa}from"react/jsx-runtime";var Ml={todo:Tl,in_progress:Pl,done:Sl};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=Ml[i.id],s=i.id==="done";return wa("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[wa("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 Ca,FileText as dr,Zap as El,Phone as Ta,Link2 as Il}from"lucide-react";import{jsx as ct,jsxs as Pa}from"react/jsx-runtime";function Ll(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 Al={EMAIL_OPENED:Ca,EMAIL_SENT:Ca,INVOICE_PAID:dr,INVOICE_OVERDUE:dr,CONTRACT_SIGNED:dr,STAGE_CHANGED:El,CALL_COMPLETED:Ta,PHONE_CALL:Ta,RELATIONSHIP_DETECTED:Il};function Dl(t){return Al[t]??dr}function Rl(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function Hl(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(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=Dl(s.event_type),m=Pa("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 ${Ll(s.confidence_score)}`,"aria-hidden":!0}),Pa("div",{className:"min-w-0 flex-1",children:[ct("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:Rl(s)}),ct("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:Hl(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 Bl}from"react-router-dom";import{ClipboardList as zl,Brain as Ol,BarChart3 as Fl,Network as Vl,Activity as Gl,Settings as Wl,Sparkles as Kl}from"lucide-react";import{jsx as qt,jsxs as _l}from"react/jsx-runtime";var Ul=[{id:"home",path:"/",icon:zl,label:"Home"},{id:"intelligence",path:"/intelligence",icon:Ol,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:Fl,label:"Pipeline"},{id:"graph",path:"/graph",icon:Vl,label:"Graph"},{id:"events",path:"/events",icon:Gl,label:"Events"},{id:"settings",path:"/settings",icon:Wl,label:"Settings"}];function Sa({items:t=Ul,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:a}){return qt(z,{children:_l("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(Kl,{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(Bl,{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 jl}from"react";import{Loader2 as $l,Paperclip as ql,Send as Yl,Sparkles as Xl}from"lucide-react";import{jsx as et,jsxs as qr}from"react/jsx-runtime";function Ma({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=jl(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(Xl,{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(ql,{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($l,{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(Yl,{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 Ea({events:t,title:e="Event Stream",showLive:r=!0,className:a}){return le(z,{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 Zl=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],Ql=[{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 Ia({loading:t,kpiCards:e=Zl,aiInsights:r=Ql,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(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(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(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 Ee,jsxs as Xr}from"react/jsx-runtime";function La({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:[Ee("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}),Ee("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:[Ee("div",{className:"flex-1 overflow-auto px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-6)]",children:a}),Ee("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r})]}),e&&Ee("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 Jl,X as tc}from"lucide-react";import{jsx as ce,jsxs as pr}from"react/jsx-runtime";var ec=["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:ec.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(tc,{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(Jl,{className:"h-4 w-4"}),"Add Task"]})]})]})}import{useState as kr,useMemo as Da}from"react";import{ClipboardList as yc,LayoutGrid as xc,List as hc}from"lucide-react";import{useMemo as nc,useState as ic}from"react";import{useState as rc}from"react";import{jsx as ac}from"react/jsx-runtime";var oc={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]=rc(e),p=t??d;return ac("button",{type:"button","aria-pressed":p,disabled:n,onClick:()=>{if(n)return;let u=!p;t===void 0&&m(u),r?.(u)},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)]",oc[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 Aa,jsxs as sc}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]=ic(l),m=r??c,p=nc(()=>{if(t==="single"){let f=typeof m=="string"?m:"";return new Set(f?[f]:[])}let u=Array.isArray(m)?m:[];return new Set(u)},[m,t]),b=u=>{if(t==="single"){let x=p.has(u)?"":u;r===void 0&&d(x),i?.(x);return}let f=Array.isArray(m)?m:[],C=f.includes(u)?f.filter(x=>x!==u):[...f,u];r===void 0&&d(C),i?.(C)};return Aa("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(u=>{let f=u.icon;return sc(Qr,{pressed:p.has(u.id),onPressedChange:()=>b(u.id),disabled:u.disabled,size:"sm",children:[f?Aa(f,{className:"mr-2 size-4"}):null,u.label]},u.id)})})}import{DragDropContext as uc}from"@hello-pangea/dnd";import{useCallback as vc,useMemo as fc}from"react";import{Draggable as mc}from"@hello-pangea/dnd";import{useState as lc}from"react";import{User as cc}from"lucide-react";import{jsx as ur}from"react/jsx-runtime";var dc={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]=lc(!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)]",dc[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(cc,{className:"h-4 w-4"})})}import{jsx as It,jsxs as eo}from"react/jsx-runtime";var pc={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(mc,{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)]",pc[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 bc}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(bc,{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 gc=[{id:"todo",title:"TO DO"},{id:"in_progress",title:"IN PROGRESS"},{id:"done",title:"DONE"}];function kc(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(u=>u.status===b))}function de({tasks:t,onTasksChange:e,className:r}){let a=vc(n=>{e(kc(t,n))},[t,e]),i=fc(()=>{let n={todo:[],in_progress:[],done:[]};for(let s of t)n[s.status].push(s);return n},[t]);return gr(uc,{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:gc.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 ut,jsxs as Ra}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 Nc(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 Ha({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,u]=kr("list"),f=Da(()=>{if(!m.trim())return s;let v=m.toLowerCase();return s.filter(h=>h.title.toLowerCase().includes(v)||h.company.toLowerCase().includes(v)||(h.jiraKey?.toLowerCase().includes(v)??!1))},[s,m]),C=Da(()=>Nc(f),[f]),x=s.filter(v=>v.status!=="done").length,g=s.filter(v=>v.priority==="urgent"&&v.status!=="done").length,S=`${x} pending${g>0?` \xB7 ${g} urgent`:""}`,N=v=>{let h=`task-${Date.now()}`,P=Lt(v,h);l(M=>[P,...M]),d(!1),e?.(v)},y=v=>{l(h=>h.map(P=>{if(P.id!==v)return P;let M=P.status==="done"?"todo":"done";return{...P,status:M}})),r?.(v)},k=v=>{l(v),i?.(v)};return ut("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:Ra("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[ut(ne,{title:"Tasks",subtitle:S,icon:ut(yc,{className:"h-5 w-5"}),action:ut(ie,{label:"New Task",onClick:()=>d(v=>!v)})}),Ra("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] xl:flex-row xl:items-center xl:gap-[var(--inkblot-spacing-4)]",children:[ut(Jr,{type:"single",value:b,onValueChange:v=>{(v==="list"||v==="kanban")&&u(v)},items:[{id:"list",label:"List View",icon:hc},{id:"kanban",label:"Kanban Board View",icon:xc}]}),ut("div",{className:"min-w-0 flex-1",children:ut(Et,{placeholder:b==="list"?"Search tasks (title, company, Jira key)...":"Switch to list view to search and filter tasks",value:m,onChange:v=>p(v.target.value),disabled:b==="kanban"})})]}),c?ut(br,{onConfirm:N,onCancel:()=>d(!1)}):null,b==="list"?ut(cr,{sections:C,onTaskToggle:y,onTaskClick:a}):ut(de,{tasks:s,onTasksChange:k})]})})}import{useState as me,useMemo as ao}from"react";import{Mail as wc}from"lucide-react";import{Fragment as Sc,jsx as Y,jsxs as pe}from"react/jsx-runtime";var Cc=`Hi [Name],
|
|
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],
|
|
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]`,Ba=[{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"],Tc=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],Pc=[{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 Fa({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(""),[u,f]=me(""),[C,x]=me(!1),[g,S]=me(""),N=ao(()=>{if(!d.trim())return Ba;let E=d.toLowerCase();return Ba.filter(F=>F.campaignName.toLowerCase().includes(E)||F.recipients.toLowerCase().includes(E))},[d]),y=ao(()=>{if(!d.trim())return za;let E=d.toLowerCase();return za.filter(F=>F.title.toLowerCase().includes(E)||F.category.toLowerCase().includes(E))},[d]),k=ao(()=>{if(!g.trim())return Oa;let E=g.toLowerCase();return Oa.filter(F=>F.toLowerCase().includes(E))},[g]),v=async()=>{x(!0),await new Promise(E=>setTimeout(E,1500)),f(Cc),x(!1)},h=()=>{t?.()},P=()=>{e?.()},M=()=>{r?.()},A=l==="campaigns"||l==="templates";return Y("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:[Y(ne,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:Y(wc,{className:"h-5 w-5"}),action:Y(ie,{label:"New Campaign",onClick:()=>a?.()})}),Y(sr,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),A?Y(Et,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:d,onChange:E=>m(E.target.value)}):null,l==="campaigns"?pe(Sc,{children:[Y(ir,{items:Pc}),Y(qe,{columns:Tc,rows:N})]}):l==="templates"?Y(Ze,{templates:y,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:[Y("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),Y(_t,{type:"text",value:p,onChange:E=>b(E.target.value),placeholder:"Enter subject line..."})]}),Y(he,{label:"Body",value:u,onChange:E=>f(E.target.value),placeholder:"Compose your email or let AI generate content...",loading:C,onWriteWithAI:v}),pe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[Y(Et,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:g,onChange:E=>S(E.target.value)}),k.length>0?Y("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:k.slice(0,5).map(E=>Y("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]})]}),Y($e,{onSendNow:h,onSchedule:P,onSaveDraft:M})]})]})})}import{createContext as Mc,useCallback as Va,useContext as Ec,useEffect as Ic,useLayoutEffect as Lc,useMemo as Ac,useState as Ga}from"react";import{jsx as Hc}from"react/jsx-runtime";var yr="citron-ui-theme",Ka=Mc(null);function Dc(){if(typeof window>"u")return null;try{let t=window.localStorage.getItem(yr);if(t==="light"||t==="dark")return t}catch{}return null}function Rc(){return typeof window>"u"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function Wa(t){typeof document>"u"||document.documentElement.setAttribute("data-theme",t)}function Ua({children:t}){let[e,r]=Ga("light"),[a,i]=Ga(!1);Lc(()=>{if(typeof window>"u")return;let d=Dc()??Rc();r(d),Wa(d),i(!0)},[]),Ic(()=>{if(a&&(Wa(e),!(typeof window>"u")))try{window.localStorage.setItem(yr,e)}catch{}},[e,a]);let n=Va(c=>{r(c)},[]),s=Va(()=>{r(c=>c==="light"?"dark":"light")},[]),l=Ac(()=>({theme:e,setTheme:n,toggleTheme:s}),[e,n,s]);return Hc(Ka.Provider,{value:l,children:t})}function xr(){let t=Ec(Ka);if(!t)throw new Error("useTheme must be used within a ThemeProvider");return t}import{Moon as Bc,Sun as zc}from"lucide-react";import{jsx as _a}from"react/jsx-runtime";function hr({className:t,type:e="button",...r}){let{theme:a,toggleTheme:i}=xr(),n=a==="dark",s=n?zc:Bc;return _a("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:_a(s,{className:"h-[18px] w-[18px] shrink-0",strokeWidth:2,"aria-hidden":!0})})}import{forwardRef as Oc}from"react";import{NavLink as Fc}from"react-router-dom";import{jsx as Vc}from"react/jsx-runtime";var no=Oc(({className:t,activeClassName:e,pendingClassName:r,...a},i)=>Vc(Fc,{ref:i,className:({isActive:n,isPending:s})=>o(t,n&&e,s&&r),...a}));no.displayName="NavLinkRouter";import{useState as ja,useRef as Gc,useEffect as Wc}from"react";import{ChevronDown as Kc,Plus as Uc}from"lucide-react";import{jsx as G,jsxs as J}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)]"),qa="border-[var(--inkblot-semantic-color-status-error)]";function $a({items:t,value:e,onChange:r,placeholder:a,hasError:i,onCreateNew:n,createNewLabel:s}){let[l,c]=ja(""),[d,m]=ja(!1),p=Gc(null);Wc(()=>{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),u=t.filter(f=>f.name.toLowerCase().includes(l.toLowerCase()));return J("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&&qa)}),d&&J("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:[u.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)),u.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&&u.length===0&&J("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(Uc,{className:"h-4 w-4"}),s??"Create new"]})]})]})}function Nr({options:t,value:e,onChange:r,placeholder:a}){return J("div",{className:"relative",children:[J("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(Kc,{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 _c=["Bank Transfer","Credit Card","Cash","Check"],jc=["VAT 21%","VAT 10%","VAT 0%","Exempt"],$c=["Standard","Proforma","Credit Note","Debit Note"],qc=["Main Account","Secondary Account"];function io({clients:t,products:e,paymentMethods:r=_c,taxTypes:a=jc,invoiceTypes:i=$c,bankAccounts:n=qc,value:s={},onChange:l,onCreateClient:c,attempted:d=!1,className:m}){let p=b=>l?.({...s,...b});return J("div",{className:o("grid grid-cols-1 gap-[var(--inkblot-spacing-4)] md:grid-cols-2",m),children:[J("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Client"}),G($a,{items:t,value:s.clientId??"",onChange:b=>p({clientId:b}),placeholder:"Search client...",hasError:d,onCreateNew:c,createNewLabel:"+ Create new client"})]}),J("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("label",{className:Dt,children:"Product / Service"}),G($a,{items:e,value:s.productId??"",onChange:b=>p({productId:b}),placeholder:"Search product...",hasError:d})]}),J("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&&qa)})]}),J("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..."})]}),J("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..."})]}),J("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..."})]}),J("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..."})]}),J("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 yt({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(yt,{label:"Client",value:i?.name??""}),ot(yt,{label:"Product",value:n?.name??""}),ot(yt,{label:"Quantity",value:s?String(s):""}),l>0&&ot(yt,{label:"Unit price",value:`$${l.toFixed(2)}`}),c>0&&ot(yt,{label:"Subtotal",value:`$${c.toFixed(2)}`}),ot(yt,{label:"Payment",value:t.paymentMethod??""}),ot(yt,{label:"Tax",value:t.taxType??""}),ot(yt,{label:"Type",value:t.invoiceType??""}),ot(yt,{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 Ya}from"react";import{Loader2 as Yc}from"lucide-react";import{jsx as Ie,jsxs as co}from"react/jsx-runtime";function Xc({clients:t,products:e,onSubmit:r,onCreateClient:a,isSubmitting:i=!1,className:n,...s}){let[l,c]=Ya({}),[d,m]=Ya(!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:[Ie("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:[Ie(io,{clients:t,products:e,value:l,onChange:c,onCreateClient:a,attempted:d,...s}),Ie(lo,{data:l,clients:t,products:e})]}),Ie("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&&Ie(Yc,{className:"h-4 w-4 animate-spin"}),"Create Invoice"]})})]})}import{useMemo as Zc,useState as Qc}from"react";import{ChevronDown as Jc}from"lucide-react";import{jsx as Cr,jsxs as Xa}from"react/jsx-runtime";function td({items:t,defaultValue:e,allowMultiple:r=!1,className:a}){let i=Zc(()=>new Set(e??[]),[e]),[n,s]=Qc(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 Xa("div",{className:o(d!==0&&"border-t border-[var(--inkblot-semantic-color-border-default)]"),children:[Xa("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(Jc,{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 ed,useEffect as Tr,useRef as Le,useState as be}from"react";import{ChevronDown as rd,Loader2 as od,Search as ad,X as nd}from"lucide-react";import{jsx as at,jsxs as Rt}from"react/jsx-runtime";function id({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,[u,f]=be(a??null),C=b?r:u,[x,g]=be(!1),[S,N]=be(""),[y,k]=be(-1),[v,h]=be([]),[P,M]=be(!1),A=Le(null),E=Le(0),F=e!==void 0,L=F?v:t,B=Le(null),D=Le(null),W=Le(null);Tr(()=>{if(!(!F||!x))return A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{let T=++E.current;M(!0),e(S).then(X=>{T===E.current&&(h(X),M(!1),k(-1))}).catch(()=>{T===E.current&&(h([]),M(!1))})},250),()=>{A.current&&clearTimeout(A.current)}},[S,x,F,e]);let w=F?L:L.filter(T=>T.label.toLowerCase().includes(S.toLowerCase())),V=L.find(T=>T.value===C)??(F?t.find(T=>T.value===C):void 0),tt=ed(T=>{b||f(T),i?.(T),g(!1),N(""),k(-1)},[b,i]);Tr(()=>{if(!x)return;let T=X=>{B.current&&!B.current.contains(X.target)&&(g(!1),N(""),k(-1))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[x]),Tr(()=>{x&&W.current?.focus()},[x]),Tr(()=>{if(y<0||!D.current)return;D.current.querySelectorAll("[data-option]")[y]?.scrollIntoView({block:"nearest"})},[y]);let bt=T=>{if(!x){(T.key==="Enter"||T.key===" "||T.key==="ArrowDown")&&(T.preventDefault(),g(!0));return}switch(T.key){case"ArrowDown":{T.preventDefault(),k(X=>{let q=X+1;for(;q<w.length&&w[q].disabled;)q++;return q<w.length?q:X});break}case"ArrowUp":{T.preventDefault(),k(X=>{let q=X-1;for(;q>=0&&w[q].disabled;)q--;return q>=0?q:X});break}case"Enter":{T.preventDefault(),y>=0&&y<w.length&&!w[y].disabled&&tt(w[y].value);break}case"Escape":{T.preventDefault(),g(!1),N(""),k(-1);break}}};return Rt("div",{ref:B,className:o("relative w-full",p),onKeyDown:bt,children:[Rt("button",{type:"button",disabled:m,"aria-expanded":x,"aria-haspopup":"listbox",onClick:()=>{m||g(T=>!T)},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",!V&&"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:V?V.label:n}),Rt("span",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-1)]",children:[d&&V&&at("span",{role:"button",tabIndex:0,"aria-label":"Clear selection",onClick:T=>{T.stopPropagation(),tt(null)},onKeyDown:T=>{T.key==="Enter"&&(T.stopPropagation(),tt(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(nd,{className:"size-3.5"})}),at(rd,{"aria-hidden":!0,className:o("size-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)]",x&&"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",x?"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(ad,{className:"size-3.5 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),at("input",{ref:W,type:"text",value:S,onChange:T=>{N(T.target.value),k(-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:D,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(od,{className:"size-4 animate-spin","aria-hidden":!0}),c]}):w.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}):w.map((T,X)=>{let q=T.value===C,We=X===y;return Rt("li",{role:"option","data-option":!0,"aria-selected":q,"aria-disabled":T.disabled,onClick:()=>{T.disabled||tt(T.value)},onMouseEnter:()=>{T.disabled||k(X)},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)]",We&&!T.disabled&&"bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",q&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]",T.disabled&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[T.icon&&at("span",{className:"flex size-5 shrink-0 items-center justify-center text-[var(--inkblot-semantic-color-text-secondary)]",children:T.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:T.label}),T.description&&at("span",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:T.description})]})]},T.value)})})]})]})}import{AlertCircle as sd,AlertTriangle as ld,CheckCircle2 as cd,Info as dd}from"lucide-react";import{jsx as mo,jsxs as Za}from"react/jsx-runtime";var md={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)]"},pd={info:dd,success:cd,warning:ld,error:sd};function bd({title:t,description:e,variant:r="info",className:a}){let i=pd[r];return Za("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)]",md[r],a),children:[mo(i,{className:"mt-0.5 h-4 w-4 shrink-0"}),Za("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 Qa,useEffect as ud,useId as Ja,useRef as po}from"react";import{AlertTriangle as vd}from"lucide-react";import{jsx as Xt,jsxs as Pr}from"react/jsx-runtime";function fd({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 u=po(null),f=po(null),C=po(null),x=Ja(),g=Ja(),S=Qa(()=>{p?.(),d?.(!1)},[p,d]),N=Qa(()=>{m?.(),l&&d?.(!1)},[l,m,d]);return ud(()=>{if(!t)return;C.current=document.activeElement instanceof HTMLElement?document.activeElement:null,(c?.current??f.current??u.current)?.focus();let k=v=>{v.key==="Escape"&&S()};return window.addEventListener("keydown",k),()=>{window.removeEventListener("keydown",k),C.current?.focus()}},[S,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:S,children:Pr("div",{role:"alertdialog","aria-modal":"true","aria-labelledby":x,"aria-describedby":r?g:void 0,tabIndex:-1,ref:u,onClick:y=>y.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(vd,{className:"h-5 w-5"})}),Pr("div",{className:"flex-1",children:[Xt("h2",{id:x,className:"text-lg font-semibold",children:e}),r&&Xt("p",{id:g,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:S,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:N,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 gd,useRef as kd,useState as bo}from"react";import{Check as yd,Loader2 as xd,Sparkles as tn}from"lucide-react";import{Fragment as uo,jsx as xt,jsxs as ue}from"react/jsx-runtime";var hd=["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 xN({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=hd,className:b}){let[u,f]=bo(e),[C,x]=bo(!1),[g,S]=bo(!1),N=kd(null),y=t!==void 0,k=y?t:u,v=a!==void 0,h=v?a:C,P=n!==void 0,M=P?n:g,A=D=>{y||f(D),r?.(D)},E=D=>{v||x(D),i?.(D)},F=D=>{P||S(D),s?.(D)};gd(()=>()=>{N.current!==null&&window.clearTimeout(N.current)},[]);let L=D=>{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: ${D}`},{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 D=k.trim();if(!D||h)return;c?.(D),E(!0);let W;d?W=await Promise.resolve(d(D)):(await new Promise(w=>{window.setTimeout(()=>w(),l)}),W=L(D)),m?.(W),E(!1),F(!0),N.current=window.setTimeout(()=>F(!1),1800)};return ue("section",{className:o(b),children:[ue("div",{className:"mb-2 flex items-center gap-2",children:[xt(tn,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-warning)]"}),xt("span",{className:"text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Email Generator"})]}),ue("div",{className:"space-y-3",children:[xt("textarea",{value:k,onChange:D=>A(D.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"}),xt("div",{className:"flex flex-wrap gap-1.5",children:p.map(D=>xt("button",{type:"button",onClick:()=>A(D),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:D},D))}),xt("button",{type:"button",onClick:B,disabled:!k.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:[xt(xd,{className:"h-3 w-3 animate-spin"}),"Generating..."]}):M?ue(uo,{children:[xt(yd,{className:"h-3 w-3"}),"Applied to editor"]}):ue(uo,{children:[xt(tn,{className:"h-3 w-3"}),"Generate Email"]})})]})]})}import{CheckSquare as wd,Command as Cd,FileText as Td,Mail as Pd,MessageSquare as Sd,Settings as Md,Users as Ed}from"lucide-react";import{jsx as vo,jsxs as Nd}from"react/jsx-runtime";function fo({label:t,icon:e,active:r=!1,onClick:a,title:i,dataTour:n,className:s}){return Nd("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 Id=[{id:"canvas",icon:Sd,label:"Canvas",path:"/",dataTour:"nav-canvas"},{id:"invoices",icon:Td,label:"Invoices & Deals",path:"/invoices",dataTour:"nav-invoices"},{id:"contacts",icon:Ed,label:"Contacts",path:"/contacts",dataTour:"nav-contacts"},{id:"campaigns",icon:Pd,label:"Campaigns",path:"/campaigns",dataTour:"nav-campaigns"},{id:"tasks",icon:wd,label:"Tasks",path:"/tasks",dataTour:"nav-tasks"}],Ld=[{id:"settings",icon:Md,label:"Settings",path:"/settings",dataTour:"nav-settings"}];function en({items:t=Id,bottomItems:e=Ld,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(Cd,{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 rn,FileText as Ad,GitBranch as Dd,Mail as Rd,Phone as Hd,Zap as Bd}from"lucide-react";import{jsx as vt,jsxs as Ae}from"react/jsx-runtime";var zd=[{id:1,icon:Rd,title:"Email opened",meta:"Jane Smith \xB7 Acme Corp",time:"2m ago",status:"info"},{id:2,icon:rn,title:"Invoice #1042 paid",meta:"$24,500 \xB7 TechVentures",time:"8m ago",status:"success"},{id:3,icon:Bd,title:"Pipeline stage changed",meta:"Negotiation \u2192 Closing",time:"14m ago",status:"warning"},{id:4,icon:Hd,title:"Call completed",meta:"12 min \xB7 Mark Johnson",time:"23m ago",status:"info"},{id:5,icon:Ad,title:"Contract signed",meta:"NDA \xB7 GlobalTech Inc",time:"1h ago",status:"success"},{id:6,icon:Dd,title:"New relationship detected",meta:"Acme \u2194 DataFlow Labs",time:"2h ago",status:"info"},{id:7,icon:rn,title:"Invoice overdue",meta:"$8,200 \xB7 StartupXYZ",time:"3h ago",status:"danger"}],Od={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 on({title:t="Event Stream",liveLabel:e="Live",events:r=zd,onItemClick:a,className:i}){return Ae("section",{className:o("p-4",i),children:[Ae("header",{className:"mb-4 flex items-center justify-between",children:[vt("h3",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),vt("span",{className:"text-[10px] font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),vt("ul",{className:"space-y-1",children:r.map(n=>{let s=n.icon;return vt("li",{children:Ae("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:[vt("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:vt(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})}),Ae("span",{className:"min-w-0 flex-1",children:[Ae("span",{className:"flex items-center gap-2",children:[vt("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",Od[n.status])}),vt("span",{className:"truncate text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.title})]}),vt("span",{className:"mt-0.5 block truncate text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.meta})]}),vt("span",{className:"mt-0.5 shrink-0 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.time})]})},n.id)})})]})}import{createContext as Fd,useContext as Vd,useState as Gd,useCallback as an}from"react";import{jsx as Ud}from"react/jsx-runtime";var nn=Fd(null);function Wd(){let t=Vd(nn);if(!t)throw new Error("useCanvas must be used within a CanvasProvider");return t}var Kd=[{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=Kd}){let[r,a]=Gd(e),i=an(s=>{a(l=>[...l,...s])},[]),n=an(()=>{a([])},[]);return Ud(nn.Provider,{value:{blocks:r,addBlocks:i,clearBlocks:n},children:t})}import{jsx as De,jsxs as sn}from"react/jsx-runtime";function JN({children:t,showEventFeed:e=!1,sidebarProps:r,eventFeedProps:a,canvasProviderProps:i,className:n}){let s=sn("div",{className:o("flex h-screen w-full overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[De(en,{...r}),sn("main",{className:"flex flex-1 overflow-hidden",children:[De("section",{"data-tour":"canvas",className:"hide-scrollbar flex-1 overflow-y-auto",children:t}),e&&De("aside",{"data-tour":"event-feed",className:"flex w-80 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)]",children:De(on,{...a})})]})]});return i?De(ko,{...i,children:s}):s}import{jsx as ln,jsxs as jd}from"react/jsx-runtime";function _d({ratio:t=16/9,children:e,className:r}){let a=Number.isFinite(t)&&t>0?t:1.7777777777777777;return jd("div",{className:o("relative w-full overflow-hidden",r),children:[ln("div",{style:{paddingTop:`${1/a*100}%`}}),ln("div",{className:"absolute inset-0",children:e})]})}import{jsx as Yd}from"react/jsx-runtime";var $d={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 qd({children:t,variant:e="default",disabled:r=!1,className:a}){return Yd("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)]",$d[e],r&&"opacity-[var(--inkblot-opacity-disabled)]",a),children:t})}import{ChevronRight as Xd}from"lucide-react";import{jsx as Re,jsxs as Qd}from"react/jsx-runtime";function Zd({items:t,className:e}){return Re("nav",{"aria-label":"Breadcrumb",className:o("w-full",e),children:Re("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?Re("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}):Re("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 Qd("li",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[i,a<t.length-1&&Re(Xd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"})]},r.id)})})})}import{useMemo as cn,useState as Jd}from"react";import{ChevronLeft as tm,ChevronRight as em}from"lucide-react";import{jsx as Bt,jsxs as xo}from"react/jsx-runtime";var rm=["L","M","X","J","V","S","D"];function dn(t){return new Date(t.getFullYear(),t.getMonth(),1)}function om(t){return new Date(t.getFullYear(),t.getMonth()+1,0)}function am(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 nm(t){let e=dn(t),r=om(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 im({value:t,onChange:e,disabledDates:r,className:a}){let i=t??new Date,[n,s]=Jd(dn(i)),l=cn(()=>nm(n),[n]),c=cn(()=>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(tm,{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(em,{className:"h-4 w-4"})})]}),xo("div",{className:"grid grid-cols-7 gap-[var(--inkblot-spacing-1)]",children:[rm.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?am(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 sm({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 lm({className:t,...e}){return ve("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-1)] p-[var(--inkblot-spacing-5)]",t),...e})}function cm({className:t,...e}){return ve("h3",{className:o("text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",t),...e})}function dm({className:t,...e}){return ve("p",{className:o("text-sm text-[var(--inkblot-semantic-color-text-secondary)]",t),...e})}function mm({className:t,...e}){return ve("div",{className:o("px-[var(--inkblot-spacing-5)] pb-[var(--inkblot-spacing-5)]",t),...e})}function pm({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 bm}from"react";import{ChevronLeft as um,ChevronRight as vm}from"lucide-react";import{jsx as zt,jsxs as ho}from"react/jsx-runtime";function fm({items:t,initialIndex:e=0,loop:r=!1,className:a}){let[i,n]=bm(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:[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))})}),ho("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"}),ho("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(um,{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(vm,{className:"h-4 w-4"})})]})]})]})}import{jsx as Zt,jsxs as mn}from"react/jsx-runtime";function gm({data:t,title:e="Rendimiento",emptyMessage:r="No data to display.",className:a}){let i=Math.max(...t.map(n=>n.value),0);return mn("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 mn("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 km}from"react";import{Check as ym}from"lucide-react";import{jsx as Sr,jsxs as pn}from"react/jsx-runtime";function xm({checked:t,defaultChecked:e=!1,onCheckedChange:r,label:a,description:i,disabled:n=!1,error:s=!1,className:l}){let[c,d]=km(e),m=t!==void 0,p=m?t:c,b=u=>{m||d(u),r?.(u)};return pn("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(ym,{className:"h-4 w-4"})}),(a||i)&&pn("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 He,jsxs as No}from"react/jsx-runtime";var hm={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 bn({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,u=a??hm[r];return He("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:[He("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:d}),He("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:u,strokeWidth:d,strokeDasharray:p,strokeDashoffset:b,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),He("span",{className:"absolute inset-0 flex items-center justify-center text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:l})]}),He("span",{className:"text-center text-[10px] leading-tight text-[var(--inkblot-semantic-color-text-tertiary)]",children:t})]})})}import{useState as Nm}from"react";import{ChevronDown as wm}from"lucide-react";import{jsx as wo,jsxs as un}from"react/jsx-runtime";function Cm({title:t,children:e,defaultOpen:r=!1,disabled:a=!1,className:i}){let[n,s]=Nm(r);return un("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:[un("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(wm,{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 Tm,useState as Pm}from"react";import{Search as Sm}from"lucide-react";import{jsx as Ot,jsxs as Co}from"react/jsx-runtime";function Mm({items:t,placeholder:e="Search commands...",onSelect:r,className:a}){let[i,n]=Pm(""),s=Tm(()=>{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:[Ot(Sm,{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: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&&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 Em,useMemo as Im,useRef as Lm,useState as To}from"react";import{Send as Am,Sparkles as Mr}from"lucide-react";import{jsx as R,jsxs as dt}from"react/jsx-runtime";var Dm=[{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 kC({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=Dm,onMessagesChange:d,inputValue:m,defaultInputValue:p="",onInputValueChange:b,autoAssistantResponse:u=!0,assistantResponseDelayMs:f=700,isResponding:C,onRespondingChange:x,onSend:g,generateAssistantMessage:S,renderCard:N,hideInput:y=!1,className:k}){let[v,h]=To(c),[P,M]=To(p),[A,E]=To(!1),F=Lm(null),L=l!==void 0,B=L?l:v,D=m!==void 0,W=D?m:P,w=C!==void 0,V=w?C:A,tt=W.trim().length>0&&!V,bt=Im(()=>I=>({content:`Analyzing "${I}". Here are the latest insights.`,cards:["entity","intelligence"]}),[]),T=I=>{L||h(I),d?.(I)},X=I=>{D||M(I),b?.(I)},q=I=>{w||E(I),x?.(I)};Em(()=>()=>{F.current!==null&&window.clearTimeout(F.current)},[]);let We=()=>{let I=W.trim();if(!I)return;let Jt={id:`${Date.now()}-user`,role:"user",content:I},Zo=[...B,Jt];T(Zo),X(""),g?.(I),u&&(q(!0),F.current=window.setTimeout(()=>{let Qo=(S??bt)(I),Ki=[...Zo,{id:`${Date.now()}-assistant`,role:"assistant",content:Qo.content,cards:Qo.cards}];T(Ki),q(!1)},f))},Xo=n!==void 0,Wi=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"?N?N("entity"):R("div",{className:Po,children:"Entity card preview"}):I.type==="intelligence"?N?N("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",k),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):Wi(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=>N?R("div",{children:N(Jt)},Jt):R("div",{className:Po,children:Jt==="entity"?"Entity card preview":"Intelligence card preview"},Jt))}):null]},I.id))})}),!y&&!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=>X(I.target.value),onKeyDown:I=>{I.key==="Enter"&&We()},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:We,disabled:!tt,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(Am,{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 Rm,useRef as Hm,useState as vn}from"react";import{jsx as Er,jsxs as So}from"react/jsx-runtime";function Bm({trigger:t,items:e,className:r}){let[a,i]=vn(!1),[n,s]=vn({x:0,y:0}),l=Hm(null);Rm(()=>{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 zm,forwardRef as Eo,useCallback as Mo,useContext as Om,useEffect as fn,useId as gn,useMemo as Fm,useRef as kn,useState as Vm}from"react";import{createPortal as Gm}from"react-dom";import{X as Wm}from"lucide-react";import{jsx as it,jsxs as yn}from"react/jsx-runtime";var xn=zm(null);function Io(){let t=Om(xn);if(!t)throw new Error("Dialog components must be used within Dialog");return t}function Km({open:t,defaultOpen:e=!1,onOpenChange:r,children:a}){let[i,n]=Vm(e),s=t!==void 0,l=s?t:i,c=Mo(m=>{s||n(m),r?.(m)},[s,r]),d=Fm(()=>({open:l,setOpen:c}),[l,c]);return it(xn.Provider,{value:d,children:a})}var hn=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})});hn.displayName="DialogTrigger";var Nn=Eo(({className:t,children:e,showCloseButton:r=!0,initialFocusRef:a,...i},n)=>{let{open:s,setOpen:l}=Io(),c=gn(),d=gn(),m=kn(null),p=kn(null),b=Mo(f=>{if(m.current=f,typeof n=="function"){n(f);return}n&&(n.current=f)},[n]),u=Mo(()=>{l(!1)},[l]);return fn(()=>{if(!s)return;let f=C=>{C.key==="Escape"&&u()};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f)}},[u,s]),fn(()=>{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:Gm(yn("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:u}),yn("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(Wm,{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)});Nn.displayName="DialogContent";function Um({className:t,...e}){return it("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function _m({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 jm({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 $m({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 qm,forwardRef as Do,useCallback as Ao,useContext as Ym,useEffect as wn,useMemo as Xm,useRef as Cn,useState as Zm}from"react";import{createPortal as Qm}from"react-dom";import{X as Jm}from"lucide-react";import{jsx as ft,jsxs as np}from"react/jsx-runtime";var Tn=qm(null);function Ro(){let t=Ym(Tn);if(!t)throw new Error("Drawer components must be used within Drawer");return t}function tp({children:t,open:e,defaultOpen:r=!1,onOpenChange:a,side:i="right"}){let[n,s]=Zm(r),l=e!==void 0,c=l?e:n,d=Ao(p=>{l||s(p),a?.(p)},[l,a]),m=Xm(()=>({open:c,setOpen:d,side:i}),[c,d,i]);return ft(Tn.Provider,{value:m,children:t})}var Pn=Do(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Ro();return ft("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})});Pn.displayName="DrawerTrigger";var Sn=Do(({className:t,children:e,initialFocusRef:r,...a},i)=>{let{open:n,setOpen:s,side:l}=Ro(),c=Cn(null),d=Cn(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 wn(()=>{if(!n)return;let b=u=>{u.key==="Escape"&&p()};return window.addEventListener("keydown",b),()=>{window.removeEventListener("keydown",b)}},[p,n]),wn(()=>{if(!n)return;d.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let b=r?.current,u=c.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(b??u??c.current)?.focus(),()=>{d.current?.focus()}},[r,n]),!n||typeof document>"u"?null:Qm(np("div",{className:"fixed inset-0 z-50",children:[ft("button",{type:"button","aria-label":"Close drawer",className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",onClick:p}),ft("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)});Sn.displayName="DrawerContent";function ep({className:t,...e}){return ft("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function rp({className:t,...e}){return ft("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function op({className:t,...e}){return ft("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function ap({className:t,...e}){return ft("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var Mn=Do(({className:t,type:e="button",onClick:r,children:a,...i},n)=>{let{setOpen:s}=Ro();return ft("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??ft(Jm,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})});Mn.displayName="DrawerClose";import{createContext as ip,forwardRef as Ho,useCallback as sp,useContext as lp,useEffect as cp,useMemo as dp,useRef as mp,useState as pp}from"react";import{ChevronDown as bp}from"lucide-react";import{jsx as Be,jsxs as Dn}from"react/jsx-runtime";var En=ip(null);function Bo(){let t=lp(En);if(!t)throw new Error("DropdownMenu components must be used within DropdownMenu");return t}function up({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=pp(r),s=mp(null),l=e!==void 0,c=l?e:i,d=sp(p=>{l||n(p),a?.(p)},[l,a]);cp(()=>{if(!c)return;let p=u=>{let f=u.target;f&&s.current&&!s.current.contains(f)&&d(!1)},b=u=>{u.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=dp(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Be(En.Provider,{value:m,children:Be("div",{ref:s,className:"relative inline-flex",children:t})})}var In=Ho(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{open:l,setOpen:c}=Bo();return Dn("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?Be(bp,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});In.displayName="DropdownMenuTrigger";var Ln=Ho(({className:t,...e},r)=>{let{open:a}=Bo();return a?Be("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});Ln.displayName="DropdownMenuContent";var An=Ho(({className:t,type:e="button",icon:r,onClick:a,children:i,...n},s)=>{let{setOpen:l}=Bo();return Dn("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]})});An.displayName="DropdownMenuItem";function vp({className:t,...e}){return Be("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}import{useMemo as Rn,useState as fp}from"react";import{ChevronDown as gp,ChevronUp as kp,Columns as yp,GripVertical as xp,Image as zn,Minus as hp,MousePointerClick as Np,Square as wp,Trash2 as Cp,Type as Hn}from"lucide-react";import{jsx as O,jsxs as ht}from"react/jsx-runtime";var Bn=[{type:"heading",label:"Heading",icon:Hn},{type:"text",label:"Text",icon:Hn},{type:"image",label:"Image",icon:zn},{type:"button",label:"Button",icon:wp},{type:"divider",label:"Divider",icon:hp},{type:"columns",label:"2 Columns",icon:yp}],Tp={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 eT({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]=fp(null),u=a!==void 0,f=u?a:p,C=v=>{u||b(v),i?.(v)},x=Rn(()=>!r||r.length===0?Bn:Bn.filter(v=>r.includes(v.type)),[r]),g=Rn(()=>t.reduce((v,h,P)=>(v[h.id]=P,v),{}),[t]),S=v=>{if(d)return;let h={id:`block-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:v,content:Tp[v]};e([...t,h]),n?.(v,h)},N=(v,h)=>{d||(e(t.map(P=>P.id===v?{...P,content:h}:P)),c?.(v,h))},y=v=>{d||(e(t.filter(h=>h.id!==v)),s?.(v))},k=(v,h)=>{if(d)return;let P=g[v],M=P+h;if(M<0||M>=t.length)return;let A=[...t],[E]=A.splice(P,1);A.splice(M,0,E),e(A),l?.(v,h)};return ht("section",{className:o("flex gap-4",m),children:[ht("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:x.map(v=>ht("button",{type:"button",onClick:()=>S(v.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(v.icon,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)]"}),v.label]},v.type))})]}),O("div",{className:"glass min-h-[400px] flex-1 rounded-[var(--inkblot-radius-lg)] p-6",children:t.length===0?ht("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-center",children:[O(Np,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/40"}),ht("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((v,h)=>ht("article",{className:"group flex items-start gap-2",children:[O("div",{className:"pt-1 text-[var(--inkblot-semantic-color-text-tertiary)]",children:O(xp,{className:"h-3.5 w-3.5"})}),ht("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:[v.type==="heading"?O("h2",{contentEditable:!d&&f===v.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(v.id)},onBlur:P=>{N(v.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text text-xl font-bold text-[var(--inkblot-semantic-color-text-primary)] outline-none",children:v.content}):null,v.type==="text"?O("p",{contentEditable:!d&&f===v.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(v.id)},onBlur:P=>{N(v.id,P.currentTarget.textContent??""),C(null)},className:"cursor-text text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)] outline-none",children:v.content}):null,v.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(zn,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/50"})}):null,v.type==="button"?O("div",{className:"flex justify-center",children:O("span",{contentEditable:!d&&f===v.id,suppressContentEditableWarning:!0,onClick:()=>{d||C(v.id)},onBlur:P=>{N(v.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:v.content})}):null,v.type==="divider"?O("hr",{className:"my-2 border-[var(--inkblot-semantic-color-border-default)]"}):null,v.type==="columns"?ht("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]}),ht("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:()=>k(v.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(kp,{className:"h-3 w-3"})}),O("button",{type:"button",onClick:()=>k(v.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(gp,{className:"h-3 w-3"})}),O("button",{type:"button",onClick:()=>y(v.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(Cp,{className:"h-3 w-3"})})]})]},v.id))})})]})}import{forwardRef as Pp}from"react";import{jsx as ze,jsxs as On}from"react/jsx-runtime";var Fn=Pp(({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}));Fn.displayName="Form";function Sp({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 Mp({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 Ep,useRef as Ip}from"react";import{jsx as fe,jsxs as ge}from"react/jsx-runtime";var Lp=[{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}],Ap=[{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 Dp(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 zo(t,e,r){if(e){t.font=e;return}t.font=r}function uT({title:t="Entity Graph",subtitle:e,nodes:r=Lp,edges:a=Ap,className:i}){let n=Ip(null);Ep(()=>{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),u=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"]),x=Ft(b,["--inkblot-semantic-color-status-success","--inkblot-semantic-color-interactive-primary"]),g=Ft(b,["--inkblot-semantic-color-status-warning","--inkblot-semantic-color-status-info"]),S=Ft(b,["--inkblot-semantic-color-status-error","--inkblot-semantic-color-status-warning"]),N=Ft(b,["--inkblot-semantic-typography-body-small","--inkblot-semantic-typography-body-medium"]),y=Ft(b,["--inkblot-semantic-typography-body-medium","--inkblot-semantic-typography-body-small"]),k=c.font;a.forEach(v=>{let h=r.find(M=>M.id===v.from),P=r.find(M=>M.id===v.to);!h||!P||(c.beginPath(),c.moveTo(h.x,h.y),c.lineTo(P.x,P.y),c.strokeStyle=u,c.globalAlpha=Math.min(1,Math.max(0,v.strength*.45)),c.lineWidth=Math.max(1,v.strength*2),c.stroke(),c.globalAlpha=1)}),r.forEach(v=>{let h=Dp(v.score,x,g,S),P=v.kind==="org"?28:22;c.beginPath(),c.arc(v.x,v.y,P+8,0,Math.PI*2),c.fillStyle=h,c.globalAlpha=.08,c.fill(),c.globalAlpha=1,c.beginPath(),c.arc(v.x,v.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,zo(c,N,k),c.textAlign="center",c.textBaseline="middle",c.fillText(v.kind==="org"?"\u2B21":"\u25CF",v.x,v.y),c.fillStyle=f,zo(c,y,k),c.fillText(v.label,v.x,v.y+P+16),c.fillStyle=h,c.globalAlpha=.8,zo(c,N,k),c.fillText(String(v.score),v.x,v.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 Rp,useEffect as Hp,useMemo as Bp,useState as Oo}from"react";import{ArrowLeft as zp,ArrowRight as Op,Check as Fp,X as Vp}from"lucide-react";import{Fragment as Vn,jsx as st,jsxs as Vt}from"react/jsx-runtime";var Gp=[{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 NT({steps:t=Gp,open:e,defaultOpen:r=!0,onOpenChange:a,stepIndex:i,defaultStepIndex:n=0,onStepIndexChange:s,onComplete:l,className:c}){let[d,m]=Oo(r),[p,b]=Oo(n),[u,f]=Oo(null),C=e??d,x=i??p,g=t[x],S=x===t.length-1,N=M=>{e===void 0&&m(M),a?.(M)},y=M=>{let A=Math.min(Math.max(M,0),Math.max(t.length-1,0));i===void 0&&b(A),s?.(A)},k=Rp(()=>{let M=document.querySelector(g.target);if(!M){f(null);return}f(M.getBoundingClientRect())},[g.target]);Hp(()=>(k(),window.addEventListener("resize",k),window.addEventListener("scroll",k,!0),()=>{window.removeEventListener("resize",k),window.removeEventListener("scroll",k,!0)}),[k]);let v=()=>{if(S){N(!1),l();return}y(x+1)},h=()=>{y(x-1)},P=Bp(()=>{if(!u)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};let M=16,A=320;return g.position==="right"?{top:u.top+u.height/2,left:u.right+M,transform:"translateY(-50%)"}:g.position==="left"?{top:u.top+u.height/2,left:u.left-A-M,transform:"translateY(-50%)"}:g.position==="top"?{top:u.top-M,left:u.left+u.width/2,transform:"translate(-50%, -100%)"}:{top:u.bottom+M,left:u.left+u.width/2,transform:"translateX(-50%)"}},[g.position,u]);return C?Vt("div",{className:o("fixed inset-0 z-[200]",c),children:[u?st("div",{className:"pointer-events-none absolute rounded-[var(--inkblot-radius-lg)] border-2 border-[var(--inkblot-semantic-color-interactive-primary)]/50",style:{top:u.top-6,left:u.left-6,width:u.width+12,height:u.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 ",x+1," of ",t.length]}),st("button",{type:"button",onClick:()=>{N(!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(Vp,{className:"h-3 w-3"})})]}),st("h3",{className:"mb-1.5 text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:g.title}),st("p",{className:"text-xs leading-relaxed text-[var(--inkblot-semantic-color-text-tertiary)]",children:g.description}),st("div",{className:"mb-3 mt-4 flex gap-1",children:t.map((M,A)=>st("span",{className:o("h-1 flex-1 rounded-full",A<=x?"bg-[var(--inkblot-semantic-color-interactive-primary)]":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},`${A}-progress`))}),Vt("div",{className:"flex items-center justify-between",children:[Vt("button",{type:"button",onClick:h,disabled:x===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(zp,{className:"h-3 w-3"}),"Back"]}),st("button",{type:"button",onClick:v,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:S?Vt(Vn,{children:[st(Fp,{className:"h-3 w-3"}),"Get Started"]}):Vt(Vn,{children:["Next",st(Op,{className:"h-3 w-3"})]})})]})]})]}):null}import{createContext as Wp,forwardRef as Gn,useContext as Kp,useMemo as Up,useRef as _p,useState as jp}from"react";import{jsx as Ir}from"react/jsx-runtime";var Wn=Wp(null);function Kn(){let t=Kp(Wn);if(!t)throw new Error("HoverCard components must be used within HoverCard");return t}function $p({children:t,openDelay:e=120,closeDelay:r=120}){let[a,i]=jp(!1),n=_p(null),s=Up(()=>({open:a,setOpen:i,openDelay:e,closeDelay:r,timeoutRef:n}),[a,e,r]);return Ir(Wn.Provider,{value:s,children:Ir("div",{className:"relative inline-flex",children:t})})}var Un=Gn(({className:t,onMouseEnter:e,onMouseLeave:r,onFocus:a,onBlur:i,...n},s)=>{let{setOpen:l,openDelay:c,closeDelay:d,timeoutRef:m}=Kn();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})});Un.displayName="HoverCardTrigger";var _n=Gn(({className:t,onMouseEnter:e,onMouseLeave:r,...a},i)=>{let{open:n,setOpen:s,closeDelay:l,timeoutRef:c}=Kn();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});_n.displayName="HoverCardContent";import{forwardRef as qp,useMemo as Yp,useRef as Xp,useState as Zp}from"react";import{jsx as jn}from"react/jsx-runtime";var $n=qp(({className:t,disabled:e,length:r=6,value:a,defaultValue:i="",onValueChange:n,containerProps:s,...l},c)=>{let[d,m]=Zp(i.slice(0,r)),p=Xp([]),b=a!==void 0,u=b?a.slice(0,r):d,f=Yp(()=>Array.from({length:r},(y,k)=>u[k]??""),[u,r]),C=y=>{let k=y.slice(0,r);b||m(k),n?.(k)},x=y=>{let k=p.current[y];k?.focus(),k?.select()},g=(y,k)=>{let v=k.replace(/[^0-9A-Za-z]/g,"").slice(0,1),h=f.map((P,M)=>M===y?v:P);C(h.join("")),v&&y<r-1&&x(y+1)},S=(y,k)=>{if(k.key==="Backspace"&&!f[y]&&y>0){let v=f.map((h,P)=>P===y-1?"":h);C(v.join("")),x(y-1)}k.key==="ArrowLeft"&&y>0&&(k.preventDefault(),x(y-1)),k.key==="ArrowRight"&&y<r-1&&(k.preventDefault(),x(y+1))};return jn("div",{ref:c,onPaste:y=>{y.preventDefault();let k=y.clipboardData.getData("text").replace(/[^0-9A-Za-z]/g,"").slice(0,r);k&&(C(k),x(Math.min(k.length,r-1)))},className:o("flex items-center gap-[var(--inkblot-spacing-2)]",t,s?.className),...s,children:f.map((y,k)=>jn("input",{ref:v=>{p.current[k]=v},type:"text",inputMode:"numeric",maxLength:1,value:y,disabled:e,onChange:v=>g(k,v.target.value),onKeyDown:v=>S(k,v),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-${k}`))})});$n.displayName="InputOtp";import{jsx as Fo,jsxs as Jp}from"react/jsx-runtime";var Qp=[{label:"Revenue Confidence",value:82,tone:"success"},{label:"Churn Risk",value:23,tone:"warning",inverted:!0},{label:"Momentum",value:67,tone:"primary"}];function GT({title:t="Intelligence Scores",items:e=Qp,className:r}){return Jp("article",{className:o("glass rounded-[var(--inkblot-radius-lg)] p-5",r),children:[Fo("h3",{className:"mb-4 text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),Fo("div",{className:"grid grid-cols-3 gap-6",children:e.map(a=>Fo(bn,{label:a.label,value:a.value,tone:a.tone,color:a.color,inverted:a.inverted},a.label))})]})}import{forwardRef as tb}from"react";import{jsx as eb,jsxs as rb}from"react/jsx-runtime";var qn=tb(({className:t,children:e,requiredIndicator:r,...a},i)=>rb("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?eb("span",{className:"text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}));qn.displayName="Label";import{createContext as Yn,forwardRef as Oe,useContext as Xn,useMemo as Zn,useRef as ob,useState as ab}from"react";import{ChevronDown as nb}from"lucide-react";import{jsx as Gt,jsxs as ii}from"react/jsx-runtime";var Qn=Yn(null);function Vo(){let t=Xn(Qn);if(!t)throw new Error("Menubar components must be used within Menubar");return t}var Jn=Yn(null);function ti(){let t=Xn(Jn);if(!t)throw new Error("Menubar menu components must be used within MenubarMenu");return t}var ei=Oe(({className:t,...e},r)=>{let[a,i]=ab(null),n=Zn(()=>({openMenuId:a,setOpenMenuId:i}),[a]);return Gt(Qn.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})})});ei.displayName="Menubar";function ib({id:t,className:e,...r}){let a=Zn(()=>({menuId:t}),[t]);return Gt(Jn.Provider,{value:a,children:Gt("div",{className:o("relative inline-flex",e),...r})})}var ri=Oe(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{openMenuId:l,setOpenMenuId:c}=Vo(),{menuId:d}=ti(),m=l===d;return ii("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(nb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});ri.displayName="MenubarTrigger";var oi=Oe(({className:t,...e},r)=>{let{openMenuId:a}=Vo(),{menuId:i}=ti();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})});oi.displayName="MenubarContent";var ai=Oe(({className:t,type:e="button",icon:r,...a},i)=>ii("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]}));ai.displayName="MenubarItem";function sb({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 ni=Oe(({className:t,...e},r)=>{let{setOpenMenuId:a}=Vo(),i=ob(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})});ni.displayName="MenubarCloseZone";import{ChevronRight as si}from"lucide-react";import{jsx as Lr,jsxs as li}from"react/jsx-runtime";function lb({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(cb,{item:a,onSelect:()=>r?.(a)},a.id))})}function cb({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?li("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(si,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]}):li("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(si,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]})}import{useMemo as db,useState as ci}from"react";import{ArrowLeft as mb,ArrowRight as pb,Briefcase as bb,Building2 as ub,Check as vb,Command as fb,Globe as gb,Megaphone as kb,Sparkles as yb,Target as di,Users as xb}from"lucide-react";import{Fragment as mi,jsx as j,jsxs as lt}from"react/jsx-runtime";var hb=[{id:"company",question:"What's your company name?",subtitle:"We'll personalize your workspace around your brand.",icon:ub,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:xb,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:bb,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:di,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:di,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:kb,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:gb,type:"input",field:"website",placeholder:"e.g. https://acme.com"}];function uP({onComplete:t,steps:e=hb,value:r,defaultValue:a,onValueChange:i,stepIndex:n,defaultStepIndex:s=0,onStepIndexChange:l,onCancel:c,showSkip:d=!0,className:m}){let[p,b]=ci(s),[u,f]=ci(a??{}),C=n!==void 0,x=r!==void 0,g=C?n:p,S=x?r:u,N=e[g],y=S[N.field]??(N.type==="multi-select"?[]:""),k=g===e.length-1,v=db(()=>N.type==="multi-select"?y.length>0:N.id==="website"?!0:typeof y=="string"&&y.trim().length>0,[y,N.id,N.type]),h=L=>{let B=Math.min(Math.max(L,0),Math.max(e.length-1,0));C||b(B),l?.(B)},P=L=>{x||f(L),i?.(L)},M=()=>h(g-1),A=()=>{if(k){t(S);return}h(g+1)},E=(L,B)=>{P({...S,[L]:B})},F=(L,B)=>{let D=S[L]??[],W=D.includes(B)?D.filter(w=>w!==B):[...D,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:[j("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]"}),j("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:[j("span",{className:"flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:j(fb,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-inverse)]"})}),j("span",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:"Citron OS"})]}),j("div",{className:"mb-10 flex gap-1",children:e.map((L,B)=>j("span",{className:o("h-0.5 flex-1 rounded-full",B<g?"bg-[var(--inkblot-semantic-color-interactive-primary)]":B===g?"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:[j("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:j(N.icon,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]"})}),j("h2",{className:"text-xl font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:N.question}),j("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:N.subtitle})]}),N.type==="input"?j("input",{autoFocus:!0,value:y||"",onChange:L=>E(N.field,L.target.value),placeholder:N.placeholder,onKeyDown:L=>{L.key==="Enter"&&v&&A()},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,N.type==="select"?j("div",{className:"grid grid-cols-2 gap-2",children:N.options?.map(L=>j("button",{type:"button",onClick:()=>E(N.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)]",y===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,N.type==="multi-select"?j("div",{className:"grid grid-cols-2 gap-2",children:N.options?.map(L=>{let B=y.includes(L.value);return lt("button",{type:"button",onClick:()=>F(N.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:[j("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?j(vb,{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:g===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:[j(mb,{className:"h-3 w-3"}),"Back"]}),lt("div",{className:"flex items-center gap-3",children:[!k&&d?j("button",{type:"button",onClick:c??A,className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Skip"}):null,j("button",{type:"button",onClick:A,disabled:!v,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:k?lt(mi,{children:[j(yb,{className:"h-3 w-3"}),"Launch Citron OS"]}):lt(mi,{children:["Continue",j(pb,{className:"h-3 w-3"})]})})]})]})]})]})}import{ChevronLeft as Nb,ChevronRight as wb}from"lucide-react";import{jsx as Fe,jsxs as Tb}from"react/jsx-runtime";function Cb({page:t,totalPages:e,onPageChange:r,className:a}){let i=Array.from({length:e},(n,s)=>s+1);return Tb("nav",{"aria-label":"Pagination",className:o("flex items-center gap-[var(--inkblot-spacing-2)]",a),children:[Fe("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:Fe(Nb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}),i.map(n=>{let s=n===t;return Fe("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}`)}),Fe("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:Fe(wb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})]})}import{createContext as Pb,forwardRef as Go,useCallback as Sb,useContext as Mb,useEffect as Eb,useMemo as Ib,useRef as Lb,useState as Ab}from"react";import{jsx as Ve}from"react/jsx-runtime";var pi=Pb(null);function Wo(){let t=Mb(pi);if(!t)throw new Error("Popover components must be used within Popover");return t}function Db({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=Ab(r),s=Lb(null),l=e!==void 0,c=l?e:i,d=Sb(p=>{l||n(p),a?.(p)},[l,a]);Eb(()=>{if(!c)return;let p=u=>{let f=u.target;f&&s.current&&!s.current.contains(f)&&d(!1)},b=u=>{u.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=Ib(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Ve(pi.Provider,{value:m,children:Ve("div",{ref:s,className:"relative inline-flex",children:t})})}var bi=Go(({className:t,type:e="button",onClick:r,...a},i)=>{let{open:n,setOpen:s}=Wo();return Ve("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})});bi.displayName="PopoverTrigger";var ui=Go(({className:t,...e},r)=>{let{open:a}=Wo();return a?Ve("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});ui.displayName="PopoverContent";var vi=Go(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Wo();return Ve("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})});vi.displayName="PopoverClose";import{forwardRef as Rb}from"react";import{jsx as Ko,jsxs as Hb}from"react/jsx-runtime";var fi=Rb(({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 Hb("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]})});fi.displayName="Progress";import{forwardRef as ki,useState as Bb}from"react";import{jsx as Ge,jsxs as gi}from"react/jsx-runtime";var yi=ki(({className:t,options:e,value:r,defaultValue:a,onValueChange:i,name:n="radio-group",...s},l)=>{let[c,d]=Bb(a??""),m=r!==void 0,p=m?r:c,b=u=>{m||d(u),i?.(u)};return Ge("div",{ref:l,role:"radiogroup",className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:e.map(u=>gi("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)]",u.disabled&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]"),children:[Ge(Uo,{type:"radio",name:n,value:u.value,checked:p===u.value,disabled:u.disabled,onChange:()=>b(u.value)}),gi("span",{className:"grid gap-[var(--inkblot-spacing-1)]",children:[Ge("span",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:u.label}),u.description?Ge("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:u.description}):null]})]},u.value))})});yi.displayName="RadioGroup";var Uo=ki(({className:t,...e},r)=>Ge("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 zb,useState as Ob}from"react";import{GripVertical as Fb,GripHorizontal as Vb}from"lucide-react";import{jsx as ke,jsxs as Wb}from"react/jsx-runtime";function Gb({primary:t,secondary:e,direction:r="horizontal",defaultPrimarySize:a=50,minPrimarySize:i=20,minSecondarySize:n=20,className:s}){let[l,c]=Ob(a),d=r==="horizontal",m=zb(()=>d?{gridTemplateColumns:`${l}fr auto ${100-l}fr`}:{gridTemplateRows:`${l}fr auto ${100-l}fr`},[d,l]),p=(b,u)=>{let f=u.getBoundingClientRect(),C=d?(b.x-f.left)/f.width*100:(b.y-f.top)/f.height*100,x=100-n,g=Math.min(x,Math.max(i,C));c(g)};return Wb("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 u=b.currentTarget.closest("div")?.parentElement;if(!u)return;p({x:b.clientX,y:b.clientY},u);let f=x=>{p({x:x.clientX,y:x.clientY},u)},C=()=>{window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",C)},children:d?ke(Fb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):ke(Vb,{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 Kb}from"react";import{jsx as Ub}from"react/jsx-runtime";var xi=Kb(({className:t,maxHeight:e="var(--inkblot-size-touch-target-min)",...r},a)=>Ub("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}));xi.displayName="ScrollArea";import{ChevronDown as _b}from"lucide-react";import{forwardRef as jb}from"react";import{jsx as _o,jsxs as hi}from"react/jsx-runtime";var Ni=jb(({className:t,options:e,placeholder:r,error:a,disabled:i,...n},s)=>hi("div",{className:"relative w-full",children:[hi("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(_b,{"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)]"})]}));Ni.displayName="Select";import{forwardRef as $b}from"react";import{jsx as qb}from"react/jsx-runtime";var wi=$b(({className:t,orientation:e="horizontal",decorative:r=!0,...a},i)=>qb("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}));wi.displayName="Separator";import{X as Yb}from"lucide-react";import{useEffect as Xb}from"react";import{jsx as ye,jsxs as Ar}from"react/jsx-runtime";var Zb={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 Qb({open:t,onOpenChange:e,side:r="right",title:a,description:i,showCloseButton:n=!0,className:s,overlayClassName:l,children:c,...d}){return Xb(()=>{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)]",Zb[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(Yb,{className:"size-4"})}):null]}),ye("div",{children:c})]})]}):null}import{PanelLeftClose as Jb,PanelLeftOpen as tu}from"lucide-react";import{Fragment as ru,jsx as Nt,jsxs as Dr}from"react/jsx-runtime";function eu({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:[Nt("div",{className:o("truncate text-sm font-semibold",e&&"sr-only"),children:a}),Nt("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?Nt(tu,{className:"size-4"}):Nt(Jb,{className:"size-4"})})]}),Nt("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?Nt(c,{className:"size-4 shrink-0"}):null,e?null:Dr(ru,{children:[Nt("span",{className:"truncate",children:l.label}),l.badge?Nt("span",{className:"ml-auto",children:l.badge}):null]})]},l.id)})}),i?Nt("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 ou,useMemo as au}from"react";import{jsx as Rr,jsxs as Ci}from"react/jsx-runtime";var Ti=ou(({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=au(()=>i<=a?0:(p-a)/(i-a)*100,[p,a,i]);return Ci("div",{className:o("w-full",t),children:[Ci("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:u=>c?.(Number(u.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})]})});Ti.displayName="Slider";import{useMemo as bu}from"react";import{AlertTriangle as nu,CheckCircle2 as iu,CircleX as su,Info as lu,X as cu}from"lucide-react";import{jsx as mt,jsxs as Pi}from"react/jsx-runtime";var du={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)]"},mu={info:mt(lu,{className:"size-4"}),success:mt(iu,{className:"size-4"}),warning:mt(nu,{className:"size-4"}),error:mt(su,{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",du[r],n),...s,children:Pi("div",{className:"flex items-start gap-3",children:[mt("span",{className:"mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]",children:mu[r]}),Pi("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(cu,{className:"size-4"})}):null]})})}import{jsx as Si}from"react/jsx-runtime";var pu={"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 Si("div",{className:o("fixed z-50 flex w-full max-w-[360px] flex-col gap-2",pu[e],a),...i,children:t.map(n=>Si(jo,{...n,onClose:()=>r?.(n.id)},n.id))})}import{jsx as vu}from"react/jsx-runtime";function uu({toasts:t,maxVisible:e=3,position:r="bottom-right",onDismiss:a,...i}){let n=bu(()=>t.slice(0,e),[t,e]);return vu($o,{toasts:n,position:r,onDismiss:a,...i})}import{forwardRef as fu,useState as gu}from"react";import{jsx as Mi}from"react/jsx-runtime";var Ei=fu(({checked:t,defaultChecked:e=!1,onCheckedChange:r,disabled:a,className:i,...n},s)=>{let[l,c]=gu(e),d=t??l;return Mi("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:Mi("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")})})});Ei.displayName="Switch";import{forwardRef as Wt}from"react";import{ArrowDown as ku,ArrowUp as yu,ArrowUpDown as xu}from"lucide-react";import{jsx as Q,jsxs as Oi}from"react/jsx-runtime";var Ii=Wt(({className:t,...e},r)=>Q("div",{className:"w-full overflow-x-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]",children:Q("table",{ref:r,className:o("w-full border-collapse bg-[var(--inkblot-semantic-color-background-secondary)]",t),...e})})),Li=Wt(({className:t,...e},r)=>Q("thead",{ref:r,className:o("bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Ai=Wt(({className:t,...e},r)=>Q("tbody",{ref:r,className:o(t),...e})),Di=Wt(({className:t,...e},r)=>Q("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})),Ri=Wt(({className:t,children:e,sortable:r=!1,sortDirection:a,onSort:i,sortButtonProps:n,...s},l)=>Q("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"?Q(yu,{className:"h-3.5 w-3.5","aria-hidden":!0}):a==="desc"?Q(ku,{className:"h-3.5 w-3.5","aria-hidden":!0}):Q(xu,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):e})),Hi=Wt(({className:t,...e},r)=>Q("td",{ref:r,className:o("px-4 py-3 text-sm",t),...e})),Bi=Wt(({className:t,...e},r)=>Q("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)=>Q("tr",{children:Q("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:[Q("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:r}),Q("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:a})]})})}));Ii.displayName="Table";Li.displayName="TableHeader";Ai.displayName="TableBody";Di.displayName="TableRow";Ri.displayName="TableHead";Hi.displayName="TableCell";Bi.displayName="TableCaption";zi.displayName="TableEmptyState";import{useMemo as hu,useState as Nu}from"react";import{jsx as qo,jsxs as Cu}from"react/jsx-runtime";function wu({items:t,value:e,defaultValue:r,onValueChange:a,fullWidth:i=!1,className:n,...s}){let l=r??t.find(u=>!u.disabled)?.id??"",[c,d]=Nu(l),m=e??c,p=hu(()=>t.find(u=>u.id===m)??t.find(u=>!u.disabled),[m,t]),b=u=>{e===void 0&&d(u),a?.(u)};return Cu("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(u=>{let f=u.id===p?.id;return qo("button",{type:"button",role:"tab","aria-selected":f,disabled:u.disabled,onClick:()=>b(u.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:u.label},u.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 Tu}from"react";import{jsx as Su}from"react/jsx-runtime";var Pu={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},Fi=Tu(({className:t,error:e,disabled:r,resize:a="vertical",...i},n)=>Su("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)]",Pu[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}));Fi.displayName="Textarea";import{useState as Mu}from"react";import{jsx as Lu,jsxs as Au}from"react/jsx-runtime";var Eu={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 Iu({content:t,side:e="top",open:r,defaultOpen:a=!1,onOpenChange:i,disabled:n=!1,className:s,children:l,...c}){let[d,m]=Mu(a),p=r??d,b=u=>{r===void 0&&m(u),i?.(u)};return Au("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?Lu("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",Eu[e]),children:t}):null]})}import{Sparkles as Du}from"lucide-react";import{jsx as wt,jsxs as Yo}from"react/jsx-runtime";function Ru({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?wt("img",{src:t.thumbnail,alt:t.title,className:"w-full rounded-t-[var(--inkblot-radius-lg)] object-cover"}):wt("div",{className:"flex h-32 items-center justify-center rounded-t-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:wt("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&&wt("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}),wt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.description&&wt("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:[wt(Du,{className:"h-4 w-4","aria-hidden":!0}),"Generate with AI"]})]})]})}function Hu({items:t,columns:e=3,onSelect:r,onGenerateWithAI:a,className:i}){return wt("div",{className:o("gap-[var(--inkblot-spacing-4)]",i),style:{columns:e,columnGap:"var(--inkblot-spacing-4)"},children:t.map(n=>wt(Ru,{item:n,onSelect:r,onGenerateWithAI:a},n.id))})}import{useEffect as Bu,useCallback as zu}from"react";import{X as Ou,AlertTriangle as Fu,ArrowUp as Vu,ArrowDown as Gu,Minus as Vi,Calendar as Wu,User as Ku}from"lucide-react";import{Fragment as qu,jsx as $,jsxs as gt}from"react/jsx-runtime";var Uu={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)]"}},_u={urgent:{label:"Urgent",icon:Fu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},high:{label:"High",icon:Vu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},medium:{label:"Medium",icon:Vi,color:"text-[var(--inkblot-semantic-color-status-info)]"},low:{label:"Low",icon:Gu,color:"text-[var(--inkblot-semantic-color-text-tertiary)]"}};function ju(t){return t.completed?"done":"todo"}function xe({label:t,children:e}){return gt("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:[$("span",{className:"w-28 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t}),$("div",{className:"min-w-0 flex-1 text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})}function $u({task:t,open:e,onOpenChange:r,extraFields:a,onStatusChange:i,onAssigneeChange:n,className:s}){let l=zu(()=>r?.(!1),[r]);if(Bu(()=>{if(!e)return;let b=u=>{u.key==="Escape"&&l()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[e,l]),!e)return null;let c=t?ju(t):null,d=c?Uu[c]:null,m=t?_u[t.priority]:null,p=m?.icon??Vi;return gt("div",{className:"fixed inset-0 z-50 flex justify-end",children:[$("div",{className:"absolute inset-0 bg-black/40 transition-opacity duration-[var(--inkblot-duration-fast)]",onClick:l,"aria-hidden":!0}),$("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?gt(qu,{children:[gt("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:[gt("div",{className:"min-w-0 flex-1",children:[$("h2",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.jiraKey&&$("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})]}),$("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:$(Ou,{className:"h-4 w-4","aria-hidden":!0})})]}),gt("div",{className:"flex-1 overflow-y-auto p-[var(--inkblot-spacing-6)]",children:[$(xe,{label:"Status",children:gt("button",{type:"button",onClick:()=>{if(!i||!c)return;let b=["todo","in_progress","done"],u=b[(b.indexOf(c)+1)%b.length];i(u)},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:[$("span",{className:o("h-2 w-2 shrink-0 rounded-full",d?.color)}),d?.label]})}),$(xe,{label:"Priority",children:gt("span",{className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)]",m?.color),children:[$(p,{className:"h-4 w-4","aria-hidden":!0}),m?.label]})}),$(xe,{label:"Assignee",children:gt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[$(Ku,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.assignee]})}),$(xe,{label:"Due date",children:gt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[$(Wu,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.date]})}),$(xe,{label:"Company",children:t.company}),a?.map(b=>$(xe,{label:b.label,children:b.value},b.label))]})]}):$("div",{className:"flex flex-1 items-center justify-center p-[var(--inkblot-spacing-6)]",children:$("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No task selected"})})})]})}import{Fragment as Gi,jsx as pt,jsxs as Qt}from"react/jsx-runtime";function Yu({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(Gi,{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(Gi,{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 $M="var(--inkblot-semantic-color-background-primary)",qM="var(--inkblot-semantic-color-background-secondary)",YM="var(--inkblot-semantic-color-border-default)",XM="var(--inkblot-semantic-color-text-primary)",ZM="var(--inkblot-semantic-color-text-secondary)",QM="var(--inkblot-semantic-color-interactive-primary)",JM="var(--inkblot-semantic-color-interactive-secondary)",t0="var(--inkblot-semantic-color-interactive-secondary-hover)";export{he as AIComposeInput,xN as AIEmailGenerator,td as Accordion,Or as ActionButtons,mr as ActivityStream,id as AdvancedDropdown,bd as Alert,fd as AlertDialog,JN as AppLayout,Sa as AppNavigationRail,en as AppSidebar,_d as AspectRatio,ts as AssistantPanel,to as Avatar,qd as Badge,Zd as Breadcrumb,Ne as Button,yr as CITRON_THEME_STORAGE_KEY,im as Calendar,qe as CampaignTable,ko as CanvasProvider,sm as Card,mm as CardContent,dm as CardDescription,pm as CardFooter,lm as CardHeader,cm as CardTitle,fm as Carousel,ls as CenteredAIChat,es as CenteredAssistantChat,gm as Chart,xm as Checkbox,bn as CircularScore,Cm as Collapsible,Mm as Command,Ma as CommandBar,kC as CommandCanvas,Bm as ContextMenu,Km as Dialog,Lo as DialogClose,Nn as DialogContent,jm as DialogDescription,$m as DialogFooter,Um as DialogHeader,_m as DialogTitle,hn as DialogTrigger,tp as Drawer,Mn as DrawerClose,Sn as DrawerContent,op as DrawerDescription,ap as DrawerFooter,ep as DrawerHeader,rp as DrawerTitle,Pn as DrawerTrigger,up as DropdownMenu,Ln as DropdownMenuContent,An as DropdownMenuItem,vp as DropdownMenuSeparator,In as DropdownMenuTrigger,eT as EmailBlockEditor,Fa as EmailCampaignsView,$e as EmailComposeActionButtons,Ze as EmailTemplatesSection,sa as EntityCard,la as EntityCommandCard,Qe as ErrorBoundary,on as EventFeed,da as EventRow,pa as EventStreamFeed,Ea as EventStreamSidebar,Fn as Form,Mp as FormActions,Sp as FormField,ee as GlobalAssistantChat,uT as GraphView,NT as GuidedTour,$p as HoverCard,_n as HoverCardContent,Un as HoverCardTrigger,_t as Input,$n as InputOtp,Yu as IntegrationPlaceholder,GT as IntelligenceCard,Ia as IntelligenceLab,tr as IntelligenceScoreCard,Xc as InvoiceEditorPage,io as InvoiceForm,lo as InvoicePreview,qn as Label,La as MainShell,ei as Menubar,ni as MenubarCloseZone,oi as MenubarContent,ai as MenubarItem,ib as MenubarMenu,sb as MenubarSeparator,ri as MenubarTrigger,ba as MetricComparisonList,or as ModuleContainer,z as ModuleErrorBoundary,er as ModuleSkeleton,fo as NavLink,no as NavLinkRouter,lb as NavigationMenu,ya as OSNavigationRail,uP as OnboardingWizard,nr as PageErrorFallback,ne as PageHeader,ie as PageHeaderActionButton,Cb as Pagination,Db as Popover,vi as PopoverClose,ui as PopoverContent,bi as PopoverTrigger,fi as Progress,yi as RadioGroup,Uo as RadioGroupItem,Gb as Resizable,fa as RouteWithErrorBoundary,xi as ScrollArea,Et as SearchBar,Ni as Select,wi as Separator,Qb as Sheet,eu as Sidebar,Mt as Skeleton,Ti as Slider,uu as Sonner,ka as StatCardGrid,ir as StatCards,ha as StatCardsWithChart,Je as StatusBadge,Ei as Switch,sr as TabSystem,Ii as Table,Ai as TableBody,Bi as TableCaption,Hi as TableCell,zi as TableEmptyState,Ri as TableHead,Li as TableHeader,Di as TableRow,wu as Tabs,br as TaskCreateForm,$u as TaskDetailsPanel,lr as TaskItem,de as TaskKanban,de as TaskKanbanBoard,vr as TaskKanbanCard,fr as TaskKanbanColumn,cr as TaskList,Ha as TasksView,Ye as TemplateCard,Hu as TemplateMasonryGrid,Fi as Textarea,Ua as ThemeProvider,hr as ThemeSwitcherButton,jo as Toast,$o as Toaster,Qr as Toggle,Jr as ToggleGroup,Iu as Tooltip,$M as semanticBackgroundPrimary,qM as semanticBackgroundSecondary,YM as semanticBorderDefault,QM as semanticInteractivePrimary,JM as semanticInteractiveSecondary,t0 as semanticInteractiveSecondaryHover,XM as semanticTextPrimary,ZM as semanticTextSecondary,Wd as useCanvas,xr as useTheme};
|
|
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&>&&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};
|