@citron-systems/citron-ui 1.22.0 → 1.23.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 +10 -5
- package/dist/index.d.ts +10 -5
- 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 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=a;zr(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},[t]),zr(()=>{if(!f)return;let w=z=>{y.current&&!y.current.contains(z.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(z=>{z.previewUrl&&URL.revokeObjectURL(z.previewUrl)}),[]))},P=w=>{g(z=>{let tt=z[w];return tt?.previewUrl&&URL.revokeObjectURL(tt.previewUrl),z.filter((bt,T)=>T!==w)})},M=(w,z)=>{try{r?r({text:w,files:z}):e?e({text:w,files:z}):z.length>0&&c?.(z)}catch{}h(),u("")},A=()=>{if(a)return;let w=b.trim(),z=x.map(tt=>tt.file);!w&&z.length===0||M(w,z)},E=w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),A())},V=w=>{let z=w.target.files;if(!z?.length||k){w.target.value="";return}let tt=Array.from(z).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:V,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: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 O=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(O,{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(O,{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(O,{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(O,{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(O,{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(O,{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(O,{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(O,{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(O,{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(O,{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(O,{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],
|
|
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]`,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(V=>V.campaignName.toLowerCase().includes(E)||V.recipients.toLowerCase().includes(E))},[d]),y=ao(()=>{if(!d.trim())return za;let E=d.toLowerCase();return za.filter(V=>V.title.toLowerCase().includes(E)||V.category.toLowerCase().includes(E))},[d]),k=ao(()=>{if(!g.trim())return Oa;let E=g.toLowerCase();return Oa.filter(V=>V.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),V=e!==void 0,L=V?v:t,B=Le(null),D=Le(null),W=Le(null);Tr(()=>{if(!(!V||!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,V,e]);let w=V?L:L.filter(T=>T.label.toLowerCase().includes(S.toLowerCase())),z=L.find(T=>T.value===C)??(V?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",!z&&"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:z?z.label:n}),Rt("span",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-1)]",children:[d&&z&&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)},V=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),V(!0),N.current=window.setTimeout(()=>V(!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),V=Lm(null),L=l!==void 0,B=L?l:v,D=m!==void 0,W=D?m:P,w=C!==void 0,z=w?C:A,tt=W.trim().length>0&&!z,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(()=>()=>{V.current!==null&&window.clearTimeout(V.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),V.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 F,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:[F("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Blocks"}),F("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:[F(v.icon,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)]"}),v.label]},v.type))})]}),F("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:[F(Np,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/40"}),ht("div",{children:[F("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Drop blocks here to build your email"}),F("p",{className:"mt-1 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]/60",children:"or use AI to generate a full layout"})]})]}):F("div",{className:"space-y-2",children:t.map((v,h)=>ht("article",{className:"group flex items-start gap-2",children:[F("div",{className:"pt-1 text-[var(--inkblot-semantic-color-text-tertiary)]",children:F(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"?F("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"?F("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"?F("div",{className:"flex h-32 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:F(zn,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/50"})}):null,v.type==="button"?F("div",{className:"flex justify-center",children:F("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"?F("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:[F("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"}),F("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:[F("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:F(kp,{className:"h-3 w-3"})}),F("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:F(gp,{className:"h-3 w-3"})}),F("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:F(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})},V=(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:()=>V(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,O 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};
|