@citron-systems/citron-ui 1.16.0 → 1.19.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 +27 -1
- package/dist/index.d.ts +27 -1
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useState as $o,useRef as Ir,useEffect as jo,useCallback as Fe}from"react";import{FileText as zi,Loader2 as qo,Paperclip as Fi,Send as Vi,Sparkles as Yo,X as Gi}from"lucide-react";import{clsx as Bi}from"clsx";import{twMerge as Oi}from"tailwind-merge";function o(...t){return Oi(Bi(t))}import{jsx as R,jsxs as xt}from"react/jsx-runtime";function Ki({attachments:t,onRemove:e}){return t.length===0?null:R("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)=>xt("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?R("img",{src:r.previewUrl,alt:r.file.name,className:"h-8 w-8 rounded-[var(--inkblot-radius-sm)] object-cover"}):R(zi,{size:16,className:"shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),R("span",{className:"max-w-[8rem] truncate text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:r.file.name}),R("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:R(Gi,{size:10})})]},`${r.file.name}-${a}`))})}function Zt({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]=$o(""),[c,d]=$o([]),m=Ir(null),p=Ir(null),b=Ir(null);jo(()=>{m.current&&(m.current.scrollTop=m.current.scrollHeight)},[t]),jo(()=>()=>{c.forEach(g=>{g.previewUrl&&URL.revokeObjectURL(g.previewUrl)})},[]);let u=Fe(()=>{let g=s.trim();if(!(!g&&c.length===0)&&!r){try{e?.({text:g,files:c.map(P=>P.file)})}catch{}l(""),d(P=>(P.forEach(N=>{N.previewUrl&&URL.revokeObjectURL(N.previewUrl)}),[])),requestAnimationFrame(()=>{b.current?.focus()})}},[s,c,r,e]),f=Fe(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),u())},[u]),w=Fe(g=>{let P=g.target.files;if(!P||P.length===0)return;let N=Array.from(P).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=""},[]),h=Fe(g=>{d(P=>{let N=P[g];return N?.previewUrl&&URL.revokeObjectURL(N.previewUrl),P.filter((y,k)=>k!==g)})},[]);return xt("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[t.length===0?R("div",{className:"flex flex-1 items-center justify-center",children:xt("div",{className:"text-center",children:[R(Yo,{className:"mx-auto mb-[var(--inkblot-spacing-2)] h-5 w-5 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),R("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):R("div",{ref:m,className:"flex-1 overflow-y-auto",children:xt("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"?R("div",{className:"flex justify-end",children:R("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):xt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[R(Yo,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),R("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&&xt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[R(qo,{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}),R("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Thinking..."})]})]})}),R("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:R("div",{className:"mx-auto max-w-4xl",children:xt("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:[xt("div",{className:"flex items-end gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-2)]",children:[R("input",{ref:p,type:"file",multiple:!0,onChange:w,className:"sr-only","aria-hidden":!0}),R("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:R(Fi,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),R("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")}),R("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center",children:r?R("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:R(qo,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):R("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:R(Vi,{size:16,strokeWidth:2,"aria-hidden":!0})})})]}),R(Ki,{attachments:c,onRemove:h})]})})})]})}import{useEffect as Wi,useCallback as _i}from"react";import{X as Ui}from"lucide-react";import{Fragment as Xo,jsx as ht,jsxs as Qt}from"react/jsx-runtime";function $i({open:t,onOpenChange:e,title:r="Assistant",subtitle:a,className:i,...n}){let s=_i(()=>e?.(!1),[e]);Wi(()=>{if(!t)return;let c=d=>{d.key==="Escape"&&s()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,s]);let l=Qt("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:[Qt("div",{className:"min-w-0",children:[ht("p",{className:"truncate text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r}),a&&ht("p",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a})]}),ht("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:ht(Ui,{className:"h-4 w-4"})})]});return Qt(Xo,{children:[ht("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&&Qt(Xo,{children:[l,ht(Zt,{...n,className:"min-h-0 flex-1"})]})}),Qt("div",{className:o("fixed inset-0 z-50 md:hidden",t?"pointer-events-auto":"pointer-events-none"),children:[ht("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")}),Qt("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,ht(Zt,{...n,className:"min-h-0 flex-1"})]})]})]})}import{jsx as qi}from"react/jsx-runtime";function ji({className:t,...e}){return qi(Zt,{...e,className:o("mx-auto w-full max-w-5xl",t)})}import{Send as Yi,Calendar as Xi}from"lucide-react";import{jsx as Ve,jsxs as Qi}from"react/jsx-runtime";var Zi={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 Lr({buttons:t,className:e}){return Ve("div",{className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",e),children:t.map(r=>Qi("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",Zi[r.variant]),children:[r.icon??null,r.label]},r.id))})}function Ge({onSendNow:t,onSchedule:e,onSaveDraft:r,className:a}){return Ve(Lr,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:Ve(Yi,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:Ve(Xi,{className:"h-4 w-4"}),onClick:e},{id:"draft",label:"Save Draft",variant:"secondary",onClick:r}],className:a})}import{forwardRef as Ji}from"react";import{Loader2 as ts,Sparkles as es}from"lucide-react";import{jsx as Jt,jsxs as Ar}from"react/jsx-runtime";var ge=Ji(({label:t,loading:e=!1,onWriteWithAI:r,disabled:a,className:i,...n},s)=>{let l=a||e;return Ar("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-2)]",i),children:[Ar("div",{className:"flex items-center justify-between",children:[t?Jt("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}):Jt("span",{}),r?Ar("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?Jt(ts,{className:"h-4 w-4 shrink-0 animate-spin"}):Jt(es,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),e?"Generating...":"Write with AI"]}):null]}),Jt("div",{className:"relative",children:Jt("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})})]})});ge.displayName="AIComposeInput";import{forwardRef as rs}from"react";import{jsx as as}from"react/jsx-runtime";var os={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)]"},ke=rs(({className:t,variant:e="primary",disabled:r,...a},i)=>as("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)]",os[e],t),...a}));ke.displayName="Button";import{useMemo as ns,useState as Zo}from"react";import{ArrowDown as is,ArrowUp as ss,ArrowUpDown as ls,CheckCircle as cs,Zap as ds,FileText as ms,Clock as ps}from"lucide-react";import{jsx as V,jsxs as Ft}from"react/jsx-runtime";var bs={sent:{icon:cs,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:ds,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:ms,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:ps,label:"Scheduled",colorClass:"text-[var(--inkblot-semantic-color-status-info)]"}};function Ke({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]=Zo(i),[u,f]=Zo(n),w=r!==void 0&&a!==void 0,h=w?r:p,g=w?a:u,P=v=>!l||l.length===0?!0:l.includes(v),N=(v,x)=>{if(x==="campaign")return v.campaignName.toLowerCase();if(x==="status")return v.status;if(x==="opens")return Number.parseFloat(v.opens.replace("%","").trim())||0;if(x==="clicks")return Number.parseFloat(v.clicks.replace("%","").trim())||0;if(x==="date")return new Date(v.date).getTime()||0;let C=v[x];return typeof C=="number"?C:String(C??"").toLowerCase()},y=ns(()=>h?[...e].sort((x,C)=>{let S=N(x,h),D=N(C,h);return S<D?g==="asc"?-1:1:S>D?g==="asc"?1:-1:0}):e,[g,h,e]),k=v=>{let x=h===v&&g==="asc"?"desc":"asc";w||(b(v),f(x)),s?.(v,x)};return V("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:Ft("table",{className:"w-full min-w-[600px] border-collapse",children:[V("thead",{children:V("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(v=>V("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:P(v.key)?Ft("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,h!==v.key?V(ls,{className:"h-3.5 w-3.5","aria-hidden":!0}):g==="asc"?V(ss,{className:"h-3.5 w-3.5","aria-hidden":!0}):V(is,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):v.label},v.key))})}),V("tbody",{children:y.length===0?V("tr",{children:V("td",{colSpan:t.length,className:"px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-10)] text-center",children:Ft("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[V("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:c}),V("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:d})]})})}):y.map(v=>Ft("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:[V("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:Ft("div",{className:"flex flex-col gap-0.5",children:[V("span",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:v.campaignName}),V("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:v.recipients})]})}),V("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:V(us,{status:v.status,subtext:v.statusSubtext})}),V("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}),V("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}),V("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 us({status:t,subtext:e}){let r=bs[t],a=r.icon;return Ft("div",{className:"flex flex-col gap-0.5",children:[Ft("div",{className:o("inline-flex items-center gap-1.5","[font:var(--inkblot-semantic-typography-body-small)] font-medium",r.colorClass),children:[V(a,{className:"h-4 w-4 shrink-0"}),r.label]}),e?V("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}):null]})}import{Sparkles as fs}from"lucide-react";import{File as vs}from"lucide-react";import{jsx as ye,jsxs as Qo}from"react/jsx-runtime";function We({category:t,title:e,uses:r,onClick:a,className:i}){return Qo("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:[Qo("div",{className:"flex items-start justify-between gap-2",children:[ye("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}),ye("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:r})]}),ye("h3",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}),ye("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:ye(vs,{className:o("h-10 w-10","text-[var(--inkblot-semantic-color-text-tertiary)]")})})]})}import{jsx as _e,jsxs as Dr}from"react/jsx-runtime";function Ue({title:t="EMAIL TEMPLATES",onGenerateWithAI:e,templates:r,onTemplateClick:a,className:i}){return Dr("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:[Dr("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] sm:flex-row sm:items-center sm:justify-between",children:[_e("h2",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t}),e?Dr("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:[_e(fs,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),"Generate with AI"]}):null]}),_e("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] sm:grid-cols-2",children:r.map(n=>_e(We,{category:n.category,title:n.title,uses:n.uses,onClick:()=>a?.(n)},n.id))})]})}import{ArrowUpRight as gs,BadgeCheck as ks,Building2 as ys,TrendingUp as xs,UserRound as hs,Users as Ns}from"lucide-react";import{jsx as G,jsxs as Y}from"react/jsx-runtime";var ws={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)]"},Cs={Person:hs,Organization:ys,Deal:ks},Ts={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)]"},Ps=[{label:"Contacts",value:"12",icon:Ns},{label:"Open Deals",value:"3",icon:xs},{label:"Touchpoints",value:"47",icon:gs}];function Jo({name:t,entityType:e,subtitle:r,statusLabel:a,metadata:i,edges:n=[],stats:s,connections:l,className:c}){let d=Cs[e];if(s!==void 0||l!==void 0){let p=s??Ps;return Y("article",{className:o("glass flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] p-[var(--inkblot-spacing-5)]",c),children:[Y("div",{className:"flex items-start justify-between",children:[Y("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[G("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:G(d,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),Y("div",{children:[G("h3",{className:"text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?G("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]}),a?G("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]}),G("div",{className:"grid grid-cols-3 gap-[var(--inkblot-spacing-3)]",children:p.map(b=>{let u=b.icon;return Y("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-[var(--inkblot-spacing-3)]",children:[Y("div",{className:"mb-1 flex items-center gap-1.5",children:[u?G(u,{className:"h-3 w-3 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}):null,G("span",{className:"text-[10px] uppercase tracking-wider text-[var(--inkblot-semantic-color-text-tertiary)]",children:b.label})]}),G("span",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:b.value})]},b.label)})}),l?Y("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[G("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}return Y("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)]",ws[e],c),children:[Y("div",{className:"flex items-start justify-between gap-[var(--inkblot-spacing-3)]",children:[Y("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[G("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:G(d,{className:"h-5 w-5","aria-hidden":!0})}),Y("div",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[G("h3",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?G("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):G("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",Ts[e]),children:e})]})]}),a?G("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?G("dl",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-2)] sm:grid-cols-2",children:Object.entries(i).map(([p,b])=>Y("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:[G("dt",{className:"[font:var(--inkblot-semantic-typography-body-small)] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:p}),G("dd",{className:"[font:var(--inkblot-semantic-typography-body-medium)] text-[var(--inkblot-semantic-color-text-secondary)]",children:b})]},p))}):null,n.length>0?Y("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[G("h4",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),G("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:n.map((p,b)=>Y("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?Y("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[G("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}import{forwardRef as Ss}from"react";import{jsx as Ms}from"react/jsx-runtime";var Vt=Ss(({className:t,error:e,disabled:r,...a},i)=>Ms("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}));Vt.displayName="Input";import{Component as Es}from"react";import{jsx as Rr,jsxs as Is}from"react/jsx-runtime";var H=class extends Es{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?Is("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:[Rr("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),Rr("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),Rr(ke,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as ut,jsxs as Hr}from"react/jsx-runtime";function ta({title:t,insights:e,stats:r=[],commandValue:a="",onCommandChange:i,onCommandSubmit:n,className:s}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),n?.())};return ut(H,{className:s,children:Hr("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[ut("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?ut("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?Hr("div",{children:[ut("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),ut("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:r.map((c,d)=>Hr("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[ut("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),ut("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},d))})]}):null,ut("div",{className:"mt-2",children:ut(Vt,{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 Ls}from"react";import{jsx as ea}from"react/jsx-runtime";var $e=class extends Ls{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:ea("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:ea("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as Ds}from"react/jsx-runtime";var As={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 Ds("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",As[e],r),children:t})}import{jsx as te,jsxs as Hs}from"react/jsx-runtime";function Rs(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function ra({event:t,className:e}){let r=Rs(t.confidence_score),a=`${Math.round(t.confidence_score*100)}%`;return Hs("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:[te("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),te("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),te("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),te("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}),te("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),te(je,{label:a,variant:r})]})}import{Clock3 as Bs}from"lucide-react";import{jsx as Nt,jsxs as oa}from"react/jsx-runtime";var Os={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 zs(){return Nt(Bs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}function aa({events:t,className:e}){return Nt(H,{className:e,children:Nt("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=>oa("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:[Nt("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??Nt(zs,{})}),oa("div",{className:"min-w-0 flex-1",children:[Nt("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),Nt("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?Nt("div",{className:o("mt-[var(--inkblot-spacing-2)] h-2 w-2 shrink-0 rounded-[var(--inkblot-radius-full)]",Os[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{TrendingDown as Fs,TrendingUp as Vs}from"lucide-react";import{jsx as wt,jsxs as xe}from"react/jsx-runtime";var Or=36,Br=2*Math.PI*Or;function qe({label:t,value:e,subtext:r,trend:a,className:i}){let n=Math.min(100,Math.max(0,e)),s=Br-n/100*Br;return wt(H,{className:i,children:xe("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:[xe("div",{className:"relative",children:[xe("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[wt("circle",{cx:"48",cy:"48",r:Or,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),wt("circle",{cx:"48",cy:"48",r:Or,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:Br,strokeDashoffset:s,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]"})]}),wt("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:xe("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"?wt(Vs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0}):a==="down"?wt(Fs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0}):null]})})]}),xe("div",{className:"text-center",children:[wt("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?wt("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}import{jsx as Gt,jsxs as Ws}from"react/jsx-runtime";var Gs={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 Ks({className:t}){return Gt("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",t),"aria-hidden":!0,children:Gt("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function na({items:t,className:e}){return Gt(H,{className:e,children:Gt("ul",{className:o("flex flex-col gap-4 py-2"),children:t.map((r,a)=>Ws("li",{className:"flex items-center justify-between gap-4",children:[Gt("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),Gt("span",{className:o("flex items-center gap-1 text-sm font-medium",Gs[r.variant??"default"]),children:r.value!=null?r.value:Gt(Ks,{})})]},a))})})}import{jsx as _s}from"react/jsx-runtime";function Ct({className:t,...e}){return _s("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 he,jsxs as Us}from"react/jsx-runtime";function Ye({className:t,...e}){return Us("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:[he(Ct,{className:"h-8 w-3/5"}),he(Ct,{className:"h-4 w-full"}),he(Ct,{className:"h-4 w-11/12"}),he(Ct,{className:"h-4 w-4/5"}),he(Ct,{className:"h-4 w-2/3"})]})}import{jsx as Xe,jsxs as ia}from"react/jsx-runtime";function Ze({children:t,loading:e=!1,title:r,className:a,onRetry:i}){return Xe(H,{className:a,onRetry:i,children:e?ia("div",{className:o("flex flex-col gap-4",a),children:[r?Xe("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,Xe(Ye,{})]}):ia("div",{className:o("flex flex-col gap-4",a),children:[r?Xe("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}import{Plus as $s}from"lucide-react";import{jsx as Ne,jsxs as Qe}from"react/jsx-runtime";function ee({title:t,subtitle:e,icon:r,action:a,className:i}){return Qe("header",{className:o("flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between","pb-[var(--inkblot-spacing-2)]",i),children:[Qe("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[r?Ne("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,Qe("div",{className:"min-w-0",children:[Ne("h1",{className:o("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),e?Ne("p",{className:o("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:e}):null]})]}),a?Ne("div",{className:"mt-[var(--inkblot-spacing-4)] shrink-0 sm:mt-0",children:a}):null]})}function re({label:t,onClick:e,icon:r,className:a}){return Qe("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??Ne($s,{className:"h-4 w-4"}),t]})}import{Link as js}from"react-router-dom";import{jsx as zr,jsxs as sa}from"react/jsx-runtime";function Je({resetErrorBoundary:t}){return sa("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:[zr("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"This page is unavailable"}),sa("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[zr("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"}),zr(js,{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 qs}from"react-error-boundary";import{useNavigate as Ys}from"react-router-dom";import{jsx as Xs}from"react/jsx-runtime";function la({children:t,fallback:e}){let r=Ys();return Xs(qs,{FallbackComponent:e??Je,onReset:()=>{r("/")},children:t})}import{forwardRef as Zs}from"react";import{Search as Qs}from"lucide-react";import{jsx as Fr,jsxs as ca}from"react/jsx-runtime";var Tt=Zs(({className:t,label:e,error:r,disabled:a,...i},n)=>ca("div",{className:"flex flex-col gap-1",children:[e?Fr("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,ca("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:[Fr(Qs,{className:o("ml-[var(--inkblot-spacing-4)] h-4 w-4 shrink-0","text-[var(--inkblot-semantic-color-text-tertiary)]")}),Fr("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})]})]}));Tt.displayName="SearchBar";import{jsx as Js}from"react/jsx-runtime";function da({children:t,columns:e=4,className:r}){return Js("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 tl,useMemo as el,useState as rl}from"react";import{jsx as we,jsxs as ol}from"react/jsx-runtime";function ma({items:t,activeItemId:e,defaultActiveItemId:r,onActiveItemChange:a,onItemClick:i,className:n}){let s=el(()=>r!==void 0?r:t.find(b=>b.active)?.id,[r,t]),[l,c]=rl(s),d=e!==void 0,m=d?e:l,p=tl((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 we(H,{className:n,children:we("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 ol("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?we("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,we("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:b.icon}),b.label?we("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium",children:b.label}):null]},b.id)})})})}import{jsx as rt,jsxs as Vr}from"react/jsx-runtime";var pa={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 tr({items:t,className:e}){return rt("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>rt(al,{item:r},r.label))})}function al({item:t}){let e=t.changeVariant??"neutral",r=pa[e];return Vr("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:[rt("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),rt("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),t.change?rt("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}function ba({items:t,className:e}){return rt("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>rt(nl,{item:r},r.label))})}function nl({item:t}){let e=t.changeVariant??"neutral",r=pa[e],a=t.chartData??[],i=Math.max(...a,1);return Vr("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:[rt("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),Vr("div",{className:"flex items-end justify-between gap-2",children:[rt("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),a.length>0?rt("div",{className:"flex h-8 items-end gap-0.5",children:a.map((n,s)=>rt("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?rt("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}import{jsx as ua,jsxs as il}from"react/jsx-runtime";function er({tabs:t,activeTabId:e,onTabChange:r,className:a}){return ua("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 il("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?ua("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 sl,Check as ll,User as cl}from"lucide-react";import{jsx as Kt,jsxs as Ce}from"react/jsx-runtime";var dl={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 rr({id:t,title:e,company:r,priority:a,date:i,assignee:n,completed:s=!1,onToggle:l,onClick:c,className:d}){let m=dl[a];return Ce("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:[Kt("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?Kt(ll,{className:"h-3 w-3",strokeWidth:3}):null}),Ce("div",{className:"min-w-0 flex-1",children:[Kt("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}),Kt("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})]}),Ce("div",{className:"flex shrink-0 flex-wrap items-center justify-end gap-[var(--inkblot-spacing-3)]",children:[Kt("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)}),Ce("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[Kt(sl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),i]}),Ce("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[Kt(cl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),n]})]})]})}import{CircleDot as ml,Clock as pl,CheckCircle as bl}from"lucide-react";import{jsx as oe,jsxs as va}from"react/jsx-runtime";var ul={todo:ml,in_progress:pl,done:bl};function or({sections:t,onTaskToggle:e,onTaskClick:r,className:a}){return oe("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-8)]",a),children:t.map(i=>{let n=ul[i.id],s=i.id==="done";return va("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[va("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[oe(n,{className:o("h-5 w-5 shrink-0",s?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)]")}),oe("h2",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:i.label}),oe("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})]}),oe("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:i.tasks.map(l=>oe(rr,{...l,completed:s,onToggle:e,onClick:r},l.id))})]},i.id)})})}import{Mail as fa,FileText as ar,Zap as vl,Phone as ga,Link2 as fl}from"lucide-react";import{jsx as it,jsxs as ka}from"react/jsx-runtime";function gl(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 kl={EMAIL_OPENED:fa,EMAIL_SENT:fa,INVOICE_PAID:ar,INVOICE_OVERDUE:ar,CONTRACT_SIGNED:ar,STAGE_CHANGED:vl,CALL_COMPLETED:ga,PHONE_CALL:ga,RELATIONSHIP_DETECTED:fl};function yl(t){return kl[t]??ar}function xl(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function hl(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function nr({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 it(H,{children:it("div",{className:o("space-y-2",i),children:t.length===0?it("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=yl(s.event_type),m=ka("div",{className:"flex flex-1 items-center gap-3",children:[it(d,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),it("div",{className:`h-2 w-2 shrink-0 rounded-full ${gl(s.confidence_score)}`,"aria-hidden":!0}),ka("div",{className:"min-w-0 flex-1",children:[it("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:xl(s)}),it("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:hl(s)})]}),it("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 it("div",{children:c?it("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}):it("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 Nl}from"react-router-dom";import{ClipboardList as wl,Brain as Cl,BarChart3 as Tl,Network as Pl,Activity as Sl,Settings as Ml,Sparkles as El}from"lucide-react";import{jsx as Wt,jsxs as Ll}from"react/jsx-runtime";var Il=[{id:"home",path:"/",icon:wl,label:"Home"},{id:"intelligence",path:"/intelligence",icon:Cl,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:Tl,label:"Pipeline"},{id:"graph",path:"/graph",icon:Pl,label:"Graph"},{id:"events",path:"/events",icon:Sl,label:"Events"},{id:"settings",path:"/settings",icon:Ml,label:"Settings"}];function ya({items:t=Il,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:a}){return Wt(H,{children:Ll("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:[Wt("div",{className:"flex flex-col items-center gap-2",children:Wt("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??Wt(El,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})})}),Wt("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-2)]",children:t.map(i=>{let n=i.icon;return Wt(Nl,{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:Wt(n,{size:20,"aria-hidden":!0})},i.id)})})]})})}import{useRef as Al}from"react";import{Loader2 as Dl,Paperclip as Rl,Send as Hl,Sparkles as Bl}from"lucide-react";import{jsx as Q,jsxs as Gr}from"react/jsx-runtime";function xa({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=Al(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 Gr("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:[Gr("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[Q("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:Q(Bl,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),Q("div",{className:"flex-1",children:Gr("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:[Q("input",{ref:c,type:"file",multiple:!0,onChange:m,className:"sr-only","aria-hidden":!0}),Q("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:Q(Rl,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),Q("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)]")}),Q("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center",children:i?Q("div",{className:"flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:Q(Dl,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):Q("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:Q(Hl,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})})]}),s&&Q("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 ae,jsxs as Kr}from"react/jsx-runtime";function ha({events:t,title:e="Event Stream",showLive:r=!0,className:a}){return ae(H,{children:Kr("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:[Kr("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[ae("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:e}),r&&Kr("div",{className:"flex items-center gap-2",children:[ae("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),ae("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),ae("div",{className:"flex-1 overflow-auto p-4",children:ae(nr,{events:t})})]})})}import{jsx as J,jsxs as _t}from"react/jsx-runtime";var Ol=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],zl=[{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 Na({loading:t,kpiCards:e=Ol,aiInsights:r=zl,title:a="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:n}){return _t("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",n),children:[_t("div",{children:[J("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}),J("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]}),J(Ze,{loading:t,title:"",children:J(H,{children:_t("div",{className:"flex flex-col gap-4",children:[J("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:e.map(s=>J(qe,{label:s.label,value:s.value,subtext:s.subtext,trend:s.trend},s.label))}),_t("div",{children:[J("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"}),J("div",{className:"flex flex-col gap-4",children:r.map(s=>J(H,{children:_t("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[_t("div",{className:"min-w-0 flex-1",children:[J("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:s.title}),J("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.description})]}),_t("div",{className:"flex shrink-0 flex-col items-center",children:[J("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:s.confidence}),J("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},s.title))})]})]})})})]})}import{jsx as Te,jsxs as Wr}from"react/jsx-runtime";function wa({navigation:t,eventStream:e,commandBar:r,children:a,className:i,eventStreamWidth:n="w-80"}){return Wr("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[Te("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}),Te("main",{className:"flex flex-1 flex-col overflow-hidden",children:Wr("div",{className:"flex min-h-0 flex-1",children:[Wr("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[Te("div",{className:"flex-1 overflow-auto px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-6)]",children:a}),Te("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r})]}),e&&Te("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 _r}from"react";import{Check as Fl,X as Vl}from"lucide-react";import{jsx as ne,jsxs as ir}from"react/jsx-runtime";var Gl=["urgent","high","medium","low"];function sr({onConfirm:t,onCancel:e,className:r}){let[a,i]=_r(""),[n,s]=_r(""),[l,c]=_r("medium");return ir("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:[ne("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)]")}),ne("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)]")}),ne("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:Gl.map(m=>ne("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))}),ir("div",{className:"flex justify-end gap-[var(--inkblot-spacing-2)]",children:[ir("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:[ne(Vl,{className:"h-4 w-4"}),"Cancel"]}),ir("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:[ne(Fl,{className:"h-4 w-4"}),"Add Task"]})]})]})}import{useState as pr,useMemo as Ta}from"react";import{ClipboardList as nc,LayoutGrid as ic,List as sc}from"lucide-react";import{useMemo as Ul,useState as $l}from"react";import{useState as Kl}from"react";import{jsx as _l}from"react/jsx-runtime";var Wl={sm:"h-8 px-3 text-xs",md:"h-10 px-4 text-sm",lg:"h-11 px-5 text-sm"};function Ur({pressed:t,defaultPressed:e=!1,onPressedChange:r,size:a="md",variant:i="default",disabled:n,className:s,children:l,...c}){let[d,m]=Kl(e),p=t??d;return _l("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)]",Wl[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 Ca,jsxs as jl}from"react/jsx-runtime";function $r({type:t="single",items:e,value:r,defaultValue:a,onValueChange:i,className:n,...s}){let l=a??(t==="single"?"":[]),[c,d]=$l(l),m=r??c,p=Ul(()=>{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 h=p.has(u)?"":u;r===void 0&&d(h),i?.(h);return}let f=Array.isArray(m)?m:[],w=f.includes(u)?f.filter(h=>h!==u):[...f,u];r===void 0&&d(w),i?.(w)};return Ca("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 jl(Ur,{pressed:p.has(u.id),onPressedChange:()=>b(u.id),disabled:u.disabled,size:"sm",children:[f?Ca(f,{className:"mr-2 size-4"}):null,u.label]},u.id)})})}import{DragDropContext as tc}from"@hello-pangea/dnd";import{useCallback as ec,useMemo as rc}from"react";import{Draggable as Zl}from"@hello-pangea/dnd";import{useState as ql}from"react";import{User as Yl}from"lucide-react";import{jsx as lr}from"react/jsx-runtime";var Xl={sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-14 w-14 text-base"};function jr({src:t,alt:e="Avatar",fallback:r,size:a="md",disabled:i=!1,className:n}){let[s,l]=ql(!1),c=!!(t&&!s);return lr("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)]",Xl[a],n),children:c?lr("img",{src:t,alt:e,onError:()=>l(!0),className:"h-full w-full object-cover"}):r?lr("span",{className:"font-medium uppercase",children:r.slice(0,2)}):lr(Yl,{className:"h-4 w-4"})})}import{jsx as Pt,jsxs as qr}from"react/jsx-runtime";var Ql={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 cr({task:t,index:e,className:r}){let a=t.jiraKey??`TASK-${t.id}`;return Pt(Zl,{draggableId:t.id,index:e,children:(i,n)=>qr("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:[Pt("div",{className:"absolute right-[var(--inkblot-spacing-3)] top-[var(--inkblot-spacing-3)] h-8 w-1 rounded-[var(--inkblot-radius-sm)]",children:Pt("span",{className:o("block h-full w-full rounded-[var(--inkblot-radius-sm)]",Ql[t.priority])})}),Pt("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}),Pt("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.company}),qr("div",{className:"flex items-end justify-between gap-[var(--inkblot-spacing-2)]",children:[qr("div",{className:"flex flex-col gap-0.5",children:[Pt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}),t.date?Pt("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.date}):null]}),Pt(jr,{size:"sm",fallback:t.assignee.replace(/\s/g,"").slice(0,2).toUpperCase(),alt:t.assignee})]})]})})}import{Droppable as Jl}from"@hello-pangea/dnd";import{jsx as Yr,jsxs as Xr}from"react/jsx-runtime";function dr({columnId:t,title:e,count:r,children:a,className:i}){return Xr("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:[Xr("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:[Yr("h2",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]","font-semibold uppercase tracking-wide"),children:e}),Yr("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})]}),Yr(Jl,{droppableId:t,children:(n,s)=>Xr("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 mr}from"react/jsx-runtime";var oc=[{id:"todo",title:"TO DO"},{id:"in_progress",title:"IN PROGRESS"},{id:"done",title:"DONE"}];function ac(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 ie({tasks:t,onTasksChange:e,className:r}){let a=ec(n=>{e(ac(t,n))},[t,e]),i=rc(()=>{let n={todo:[],in_progress:[],done:[]};for(let s of t)n[s.status].push(s);return n},[t]);return mr(tc,{onDragEnd:a,children:mr("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:oc.map(n=>{let s=i[n.id];return mr(dr,{columnId:n.id,title:n.title,count:s.length,children:s.map((l,c)=>mr(cr,{task:l,index:c},l.id))},n.id)})})})}import{jsx as dt,jsxs as Pa}from"react/jsx-runtime";function St(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 lc(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 Mt=[St({title:"Follow up with Sarah Chen on proposal",company:"Acme Corp",priority:"high"},"1","You","CRM-104"),St({title:"Schedule demo with engineering team",company:"TechStart Inc",priority:"medium"},"2","Alex M.","CRM-112"),St({title:"Prepare quarterly report slides",company:"GlobalTech",priority:"low"},"3","Sam R.","CRM-98"),St({title:"Review Q1 marketing budget",company:"TechStart Inc",priority:"medium"},"4","Jamie L.","CRM-120"),St({title:"Draft partnership agreement",company:"Enterprise Co",priority:"urgent"},"5","You","CRM-88"),St({title:"Send contract to legal team",company:"GlobalTech",priority:"low"},"6","Lisa K."),St({title:"Update CRM with new contacts",company:"Acme Corp",priority:"low"},"7","Morgan P.","CRM-130")];Mt[0].status="todo";Mt[1].status="todo";Mt[2].status="todo";Mt[3].status="in_progress";Mt[4].status="in_progress";Mt[5].status="done";Mt[6].status="done";function Sa({initialTasks:t=Mt,onTaskCreate:e,onTaskToggle:r,onTaskClick:a,onTasksReorder:i,className:n}){let[s,l]=pr(t),[c,d]=pr(!1),[m,p]=pr(""),[b,u]=pr("list"),f=Ta(()=>{if(!m.trim())return s;let v=m.toLowerCase();return s.filter(x=>x.title.toLowerCase().includes(v)||x.company.toLowerCase().includes(v)||(x.jiraKey?.toLowerCase().includes(v)??!1))},[s,m]),w=Ta(()=>lc(f),[f]),h=s.filter(v=>v.status!=="done").length,g=s.filter(v=>v.priority==="urgent"&&v.status!=="done").length,P=`${h} pending${g>0?` \xB7 ${g} urgent`:""}`,N=v=>{let x=`task-${Date.now()}`,C=St(v,x);l(S=>[C,...S]),d(!1),e?.(v)},y=v=>{l(x=>x.map(C=>{if(C.id!==v)return C;let S=C.status==="done"?"todo":"done";return{...C,status:S}})),r?.(v)},k=v=>{l(v),i?.(v)};return dt("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:Pa("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[dt(ee,{title:"Tasks",subtitle:P,icon:dt(nc,{className:"h-5 w-5"}),action:dt(re,{label:"New Task",onClick:()=>d(v=>!v)})}),Pa("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] xl:flex-row xl:items-center xl:gap-[var(--inkblot-spacing-4)]",children:[dt($r,{type:"single",value:b,onValueChange:v=>{(v==="list"||v==="kanban")&&u(v)},items:[{id:"list",label:"List View",icon:sc},{id:"kanban",label:"Kanban Board View",icon:ic}]}),dt("div",{className:"min-w-0 flex-1",children:dt(Tt,{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?dt(sr,{onConfirm:N,onCancel:()=>d(!1)}):null,b==="list"?dt(or,{sections:w,onTaskToggle:y,onTaskClick:a}):dt(ie,{tasks:s,onTasksChange:k})]})})}import{useState as se,useMemo as Zr}from"react";import{Mail as cc}from"lucide-react";import{Fragment as bc,jsx as j,jsxs as le}from"react/jsx-runtime";var dc=`Hi [Name],
|
|
1
|
+
import{useState as Yo,useRef as Ar,useEffect as Xo,useCallback as Ge}from"react";import{FileText as _i,Loader2 as Zo,Paperclip as Ui,Send as $i,Sparkles as Qo,X as ji}from"lucide-react";import{clsx as Ki}from"clsx";import{twMerge as Wi}from"tailwind-merge";function o(...t){return Wi(Ki(t))}import{jsx as R,jsxs as ht}from"react/jsx-runtime";function qi({attachments:t,onRemove:e}){return t.length===0?null:R("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)=>ht("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?R("img",{src:r.previewUrl,alt:r.file.name,className:"h-8 w-8 rounded-[var(--inkblot-radius-sm)] object-cover"}):R(_i,{size:16,className:"shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),R("span",{className:"max-w-[8rem] truncate text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:r.file.name}),R("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:R(ji,{size:10})})]},`${r.file.name}-${a}`))})}function Jt({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]=Yo(""),[c,d]=Yo([]),p=Ar(null),b=Ar(null),u=Ar(null);Xo(()=>{p.current&&(p.current.scrollTop=p.current.scrollHeight)},[t]),Xo(()=>()=>{c.forEach(g=>{g.previewUrl&&URL.revokeObjectURL(g.previewUrl)})},[]);let v=Ge(()=>{let g=s.trim();if(!(!g&&c.length===0)&&!r){try{e?.({text:g,files:c.map(P=>P.file)})}catch{}l(""),d(P=>(P.forEach(N=>{N.previewUrl&&URL.revokeObjectURL(N.previewUrl)}),[])),requestAnimationFrame(()=>{u.current?.focus()})}},[s,c,r,e]),f=Ge(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),v())},[v]),w=Ge(g=>{let P=g.target.files;if(!P||P.length===0)return;let N=Array.from(P).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=""},[]),h=Ge(g=>{d(P=>{let N=P[g];return N?.previewUrl&&URL.revokeObjectURL(N.previewUrl),P.filter((y,k)=>k!==g)})},[]);return ht("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[t.length===0?R("div",{className:"flex flex-1 items-center justify-center",children:ht("div",{className:"text-center",children:[R(Qo,{className:"mx-auto mb-[var(--inkblot-spacing-2)] h-5 w-5 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),R("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):R("div",{ref:p,className:"flex-1 overflow-y-auto",children:ht("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"?R("div",{className:"flex justify-end",children:R("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):ht("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[R(Qo,{size:16,strokeWidth:1.7,className:"mt-[var(--inkblot-spacing-1)] shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),R("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&&ht("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[R(Zo,{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}),R("p",{className:"[font:var(--inkblot-semantic-typography-body-default)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Thinking..."})]})]})}),R("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:R("div",{className:"mx-auto max-w-4xl",children:ht("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:[ht("div",{className:"flex items-end gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-2)]",children:[R("input",{ref:b,type:"file",multiple:!0,onChange:w,className:"sr-only","aria-hidden":!0}),R("button",{type:"button",onClick:()=>b.current?.click(),disabled:r,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Attach files",children:R(Ui,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),R("textarea",{ref:u,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")}),R("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center",children:r?R("div",{className:"flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:R(Zo,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):R("button",{type:"button",onClick:v,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:R($i,{size:16,strokeWidth:2,"aria-hidden":!0})})})]}),R(qi,{attachments:c,onRemove:h})]})})})]})}import{useEffect as Yi,useCallback as Xi}from"react";import{X as Zi}from"lucide-react";import{Fragment as Jo,jsx as Nt,jsxs as te}from"react/jsx-runtime";function Qi({open:t,onOpenChange:e,title:r="Assistant",subtitle:a,className:i,...n}){let s=Xi(()=>e?.(!1),[e]);Yi(()=>{if(!t)return;let c=d=>{d.key==="Escape"&&s()};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[t,s]);let l=te("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:[te("div",{className:"min-w-0",children:[Nt("p",{className:"truncate text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r}),a&&Nt("p",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a})]}),Nt("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:Nt(Zi,{className:"h-4 w-4"})})]});return te(Jo,{children:[Nt("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&&te(Jo,{children:[l,Nt(Jt,{...n,className:"min-h-0 flex-1"})]})}),te("div",{className:o("fixed inset-0 z-50 md:hidden",t?"pointer-events-auto":"pointer-events-none"),children:[Nt("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")}),te("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,Nt(Jt,{...n,className:"min-h-0 flex-1"})]})]})]})}import{jsx as ts}from"react/jsx-runtime";function Ji({className:t,...e}){return ts(Jt,{...e,className:o("mx-auto w-full max-w-5xl",t)})}import{useState as ta,useRef as Dr,useEffect as ea}from"react";import{ChevronDown as es,Loader2 as rs,Mic as os,Paperclip as as,Send as ns,Sparkles as ra}from"lucide-react";import{jsx as H,jsxs as wt}from"react/jsx-runtime";function is({messages:t=[],onSend:e,isProcessing:r=!1,placeholder:a="Ask Citron Intelligence...",agents:i,activeAgent:n,onAgentChange:s,onFilesAttach:l,onVoiceClick:c,emptyStateMessage:d="Ask anything \u2014 deals, contacts, forecasts...",className:p}){let[b,u]=ta(""),[v,f]=ta(!1),w=Dr(null),h=Dr(null),g=Dr(null);ea(()=>{w.current&&(w.current.scrollTop=w.current.scrollHeight)},[t]),ea(()=>{if(!v)return;let m=x=>{g.current&&!g.current.contains(x.target)&&f(!1)};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[v]);let P=()=>{let m=b.trim();!m||r||(e?.(m),u(""))},N=m=>{m.key==="Enter"&&!m.shiftKey&&(m.preventDefault(),P())},y=m=>{let x=m.target.files;x&&x.length>0&&l&&l(Array.from(x)),m.target.value=""},k=i?.find(m=>m.id===n);return wt("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:d})}):H("div",{ref:w,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(m=>m.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:m.renderedContent??m.content})},m.id):wt("div",{className:"flex items-start gap-[var(--inkblot-spacing-2)]",children:[H(ra,{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:m.renderedContent??m.content})]},m.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:wt("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)]",r&&"pointer-events-none"),"aria-busy":r,children:[H("input",{ref:h,type:"file",multiple:!0,onChange:y,className:"sr-only","aria-hidden":!0}),H("textarea",{value:b,onChange:m=>u(m.target.value),onKeyDown:N,placeholder:a,rows:3,disabled:r,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")}),wt("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)]",i&&i.length>0?"justify-between":"justify-end"),children:[i&&i.length>0&&wt("div",{ref:g,className:"relative min-w-0",children:[wt("button",{type:"button",onClick:()=>f(m=>!m),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(ra,{size:14,strokeWidth:1.7,"aria-hidden":!0}),H("span",{className:"truncate",children:k?.label??"Select agent"}),H(es,{size:14,strokeWidth:1.7,className:o("shrink-0 transition-transform duration-[var(--inkblot-duration-fast)]",v&&"rotate-180"),"aria-hidden":!0})]}),v&&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:i.map(m=>wt("button",{type:"button",onClick:()=>{s?.(m.id),f(!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)]",m.id===n?"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:m.label}),m.description&&H("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:m.description})]},m.id))})]}),wt("div",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-2)]",children:[H("button",{type:"button",onClick:()=>h.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-secondary)]","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Attach files",children:H(as,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),H("button",{type:"button",onClick:()=>c?.(),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-secondary)]","disabled:pointer-events-none disabled:opacity-50"),"aria-label":"Voice input",children:H(os,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),H("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center",children:r?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(rs,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):H("button",{type:"button",onClick:P,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)]"),"aria-label":"Send",children:H(ns,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})]})]})})})]})}import{Send as ss,Calendar as ls}from"lucide-react";import{jsx as Ke,jsxs as ds}from"react/jsx-runtime";var cs={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 Rr({buttons:t,className:e}){return Ke("div",{className:o("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",e),children:t.map(r=>ds("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",cs[r.variant]),children:[r.icon??null,r.label]},r.id))})}function We({onSendNow:t,onSchedule:e,onSaveDraft:r,className:a}){return Ke(Rr,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:Ke(ss,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:Ke(ls,{className:"h-4 w-4"}),onClick:e},{id:"draft",label:"Save Draft",variant:"secondary",onClick:r}],className:a})}import{forwardRef as ms}from"react";import{Loader2 as ps,Sparkles as bs}from"lucide-react";import{jsx as ee,jsxs as Hr}from"react/jsx-runtime";var ye=ms(({label:t,loading:e=!1,onWriteWithAI:r,disabled:a,className:i,...n},s)=>{let l=a||e;return Hr("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-2)]",i),children:[Hr("div",{className:"flex items-center justify-between",children:[t?ee("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}):ee("span",{}),r?Hr("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?ee(ps,{className:"h-4 w-4 shrink-0 animate-spin"}):ee(bs,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),e?"Generating...":"Write with AI"]}):null]}),ee("div",{className:"relative",children:ee("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})})]})});ye.displayName="AIComposeInput";import{forwardRef as us}from"react";import{jsx as fs}from"react/jsx-runtime";var vs={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)]"},xe=us(({className:t,variant:e="primary",disabled:r,...a},i)=>fs("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)]",vs[e],t),...a}));xe.displayName="Button";import{useMemo as gs,useState as oa}from"react";import{ArrowDown as ks,ArrowUp as ys,ArrowUpDown as xs,CheckCircle as hs,Zap as Ns,FileText as ws,Clock as Cs}from"lucide-react";import{jsx as G,jsxs as Gt}from"react/jsx-runtime";var Ts={sent:{icon:hs,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:Ns,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:ws,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:Cs,label:"Scheduled",colorClass:"text-[var(--inkblot-semantic-color-status-info)]"}};function _e({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:p}){let[b,u]=oa(i),[v,f]=oa(n),w=r!==void 0&&a!==void 0,h=w?r:b,g=w?a:v,P=m=>!l||l.length===0?!0:l.includes(m),N=(m,x)=>{if(x==="campaign")return m.campaignName.toLowerCase();if(x==="status")return m.status;if(x==="opens")return Number.parseFloat(m.opens.replace("%","").trim())||0;if(x==="clicks")return Number.parseFloat(m.clicks.replace("%","").trim())||0;if(x==="date")return new Date(m.date).getTime()||0;let C=m[x];return typeof C=="number"?C:String(C??"").toLowerCase()},y=gs(()=>h?[...e].sort((x,C)=>{let S=N(x,h),D=N(C,h);return S<D?g==="asc"?-1:1:S>D?g==="asc"?1:-1:0}):e,[g,h,e]),k=m=>{let x=h===m&&g==="asc"?"desc":"asc";w||(u(m),f(x)),s?.(m,x)};return G("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)]",p),children:Gt("table",{className:"w-full min-w-[600px] border-collapse",children:[G("thead",{children:G("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(m=>G("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:P(m.key)?Gt("button",{type:"button",onClick:()=>k(m.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:[m.label,h!==m.key?G(xs,{className:"h-3.5 w-3.5","aria-hidden":!0}):g==="asc"?G(ys,{className:"h-3.5 w-3.5","aria-hidden":!0}):G(ks,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):m.label},m.key))})}),G("tbody",{children:y.length===0?G("tr",{children:G("td",{colSpan:t.length,className:"px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-10)] text-center",children:Gt("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[G("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:c}),G("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-secondary)]",children:d})]})})}):y.map(m=>Gt("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:[G("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:Gt("div",{className:"flex flex-col gap-0.5",children:[G("span",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:m.campaignName}),G("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:m.recipients})]})}),G("td",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:G(Ps,{status:m.status,subtext:m.statusSubtext})}),G("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:m.opens}),G("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:m.clicks}),G("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:m.date})]},m.id))})]})})}function Ps({status:t,subtext:e}){let r=Ts[t],a=r.icon;return Gt("div",{className:"flex flex-col gap-0.5",children:[Gt("div",{className:o("inline-flex items-center gap-1.5","[font:var(--inkblot-semantic-typography-body-small)] font-medium",r.colorClass),children:[G(a,{className:"h-4 w-4 shrink-0"}),r.label]}),e?G("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}):null]})}import{Sparkles as Ms}from"lucide-react";import{File as Ss}from"lucide-react";import{jsx as he,jsxs as aa}from"react/jsx-runtime";function Ue({category:t,title:e,uses:r,onClick:a,className:i}){return aa("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:[aa("div",{className:"flex items-start justify-between gap-2",children:[he("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}),he("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:r})]}),he("h3",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}),he("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:he(Ss,{className:o("h-10 w-10","text-[var(--inkblot-semantic-color-text-tertiary)]")})})]})}import{jsx as $e,jsxs as Br}from"react/jsx-runtime";function je({title:t="EMAIL TEMPLATES",onGenerateWithAI:e,templates:r,onTemplateClick:a,className:i}){return Br("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:[Br("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] sm:flex-row sm:items-center sm:justify-between",children:[$e("h2",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t}),e?Br("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:[$e(Ms,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),"Generate with AI"]}):null]}),$e("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] sm:grid-cols-2",children:r.map(n=>$e(Ue,{category:n.category,title:n.title,uses:n.uses,onClick:()=>a?.(n)},n.id))})]})}import{ArrowUpRight as Es,BadgeCheck as Is,Building2 as Ls,TrendingUp as As,UserRound as Ds,Users as Rs}from"lucide-react";import{jsx as K,jsxs as X}from"react/jsx-runtime";var Hs={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)]"},Bs={Person:Ds,Organization:Ls,Deal:Is},zs={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)]"},Os=[{label:"Contacts",value:"12",icon:Rs},{label:"Open Deals",value:"3",icon:As},{label:"Touchpoints",value:"47",icon:Es}];function na({name:t,entityType:e,subtitle:r,statusLabel:a,metadata:i,edges:n=[],stats:s,connections:l,className:c}){let d=Bs[e];if(s!==void 0||l!==void 0){let b=s??Os;return X("article",{className:o("glass flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-xl)] p-[var(--inkblot-spacing-5)]",c),children:[X("div",{className:"flex items-start justify-between",children:[X("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[K("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:K(d,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),X("div",{children:[K("h3",{className:"text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?K("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]}),a?K("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]}),K("div",{className:"grid grid-cols-3 gap-[var(--inkblot-spacing-3)]",children:b.map(u=>{let v=u.icon;return X("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-[var(--inkblot-spacing-3)]",children:[X("div",{className:"mb-1 flex items-center gap-1.5",children:[v?K(v,{className:"h-3 w-3 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}):null,K("span",{className:"text-[10px] uppercase tracking-wider text-[var(--inkblot-semantic-color-text-tertiary)]",children:u.label})]}),K("span",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:u.value})]},u.label)})}),l?X("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[K("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}return X("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)]",Hs[e],c),children:[X("div",{className:"flex items-start justify-between gap-[var(--inkblot-spacing-3)]",children:[X("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[K("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:K(d,{className:"h-5 w-5","aria-hidden":!0})}),X("div",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[K("h3",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?K("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):K("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",zs[e]),children:e})]})]}),a?K("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?K("dl",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-2)] sm:grid-cols-2",children:Object.entries(i).map(([b,u])=>X("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:[K("dt",{className:"[font:var(--inkblot-semantic-typography-body-small)] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:b}),K("dd",{className:"[font:var(--inkblot-semantic-typography-body-medium)] text-[var(--inkblot-semantic-color-text-secondary)]",children:u})]},b))}):null,n.length>0?X("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[K("h4",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),K("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:n.map((b,u)=>X("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:[b.type,b.target?` \u2192 ${b.target}`:""]},u))})]}):null,l?X("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[K("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]"}),l]}):null]})}import{forwardRef as Fs}from"react";import{jsx as Vs}from"react/jsx-runtime";var Kt=Fs(({className:t,error:e,disabled:r,...a},i)=>Vs("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}));Kt.displayName="Input";import{Component as Gs}from"react";import{jsx as zr,jsxs as Ks}from"react/jsx-runtime";var B=class extends Gs{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?Ks("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:[zr("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),zr("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),zr(xe,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as vt,jsxs as Or}from"react/jsx-runtime";function ia({title:t,insights:e,stats:r=[],commandValue:a="",onCommandChange:i,onCommandSubmit:n,className:s}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),n?.())};return vt(B,{className:s,children:Or("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[vt("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?vt("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?Or("div",{children:[vt("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),vt("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:r.map((c,d)=>Or("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[vt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),vt("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},d))})]}):null,vt("div",{className:"mt-2",children:vt(Kt,{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 Ws}from"react";import{jsx as sa}from"react/jsx-runtime";var qe=class extends Ws{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:sa("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:sa("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as Us}from"react/jsx-runtime";var _s={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 Ye({label:t,variant:e="info",className:r}){return Us("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",_s[e],r),children:t})}import{jsx as re,jsxs as js}from"react/jsx-runtime";function $s(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function la({event:t,className:e}){let r=$s(t.confidence_score),a=`${Math.round(t.confidence_score*100)}%`;return js("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:[re("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),re("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),re("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),re("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}),re("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),re(Ye,{label:a,variant:r})]})}import{Clock3 as qs}from"lucide-react";import{jsx as Ct,jsxs as ca}from"react/jsx-runtime";var Ys={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 Xs(){return Ct(qs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}function da({events:t,className:e}){return Ct(B,{className:e,children:Ct("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=>ca("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:[Ct("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??Ct(Xs,{})}),ca("div",{className:"min-w-0 flex-1",children:[Ct("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),Ct("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?Ct("div",{className:o("mt-[var(--inkblot-spacing-2)] h-2 w-2 shrink-0 rounded-[var(--inkblot-radius-full)]",Ys[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{TrendingDown as Zs,TrendingUp as Qs}from"lucide-react";import{jsx as Tt,jsxs as Ne}from"react/jsx-runtime";var Vr=36,Fr=2*Math.PI*Vr;function Xe({label:t,value:e,subtext:r,trend:a,className:i}){let n=Math.min(100,Math.max(0,e)),s=Fr-n/100*Fr;return Tt(B,{className:i,children:Ne("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:[Ne("div",{className:"relative",children:[Ne("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[Tt("circle",{cx:"48",cy:"48",r:Vr,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),Tt("circle",{cx:"48",cy:"48",r:Vr,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:Fr,strokeDashoffset:s,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]"})]}),Tt("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:Ne("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"?Tt(Qs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0}):a==="down"?Tt(Zs,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0}):null]})})]}),Ne("div",{className:"text-center",children:[Tt("p",{className:"[font:var(--inkblot-semantic-typography-body-medium)] font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?Tt("p",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}import{jsx as Wt,jsxs as el}from"react/jsx-runtime";var Js={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 tl({className:t}){return Wt("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",t),"aria-hidden":!0,children:Wt("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function ma({items:t,className:e}){return Wt(B,{className:e,children:Wt("ul",{className:o("flex flex-col gap-4 py-2"),children:t.map((r,a)=>el("li",{className:"flex items-center justify-between gap-4",children:[Wt("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),Wt("span",{className:o("flex items-center gap-1 text-sm font-medium",Js[r.variant??"default"]),children:r.value!=null?r.value:Wt(tl,{})})]},a))})})}import{jsx as rl}from"react/jsx-runtime";function Pt({className:t,...e}){return rl("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 we,jsxs as ol}from"react/jsx-runtime";function Ze({className:t,...e}){return ol("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:[we(Pt,{className:"h-8 w-3/5"}),we(Pt,{className:"h-4 w-full"}),we(Pt,{className:"h-4 w-11/12"}),we(Pt,{className:"h-4 w-4/5"}),we(Pt,{className:"h-4 w-2/3"})]})}import{jsx as Qe,jsxs as pa}from"react/jsx-runtime";function Je({children:t,loading:e=!1,title:r,className:a,onRetry:i}){return Qe(B,{className:a,onRetry:i,children:e?pa("div",{className:o("flex flex-col gap-4",a),children:[r?Qe("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,Qe(Ze,{})]}):pa("div",{className:o("flex flex-col gap-4",a),children:[r?Qe("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}import{Plus as al}from"lucide-react";import{jsx as Ce,jsxs as tr}from"react/jsx-runtime";function oe({title:t,subtitle:e,icon:r,action:a,className:i}){return tr("header",{className:o("flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between","pb-[var(--inkblot-spacing-2)]",i),children:[tr("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[r?Ce("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,tr("div",{className:"min-w-0",children:[Ce("h1",{className:o("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),e?Ce("p",{className:o("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:e}):null]})]}),a?Ce("div",{className:"mt-[var(--inkblot-spacing-4)] shrink-0 sm:mt-0",children:a}):null]})}function ae({label:t,onClick:e,icon:r,className:a}){return tr("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??Ce(al,{className:"h-4 w-4"}),t]})}import{Link as nl}from"react-router-dom";import{jsx as Gr,jsxs as ba}from"react/jsx-runtime";function er({resetErrorBoundary:t}){return ba("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:[Gr("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"This page is unavailable"}),ba("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[Gr("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"}),Gr(nl,{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 il}from"react-error-boundary";import{useNavigate as sl}from"react-router-dom";import{jsx as ll}from"react/jsx-runtime";function ua({children:t,fallback:e}){let r=sl();return ll(il,{FallbackComponent:e??er,onReset:()=>{r("/")},children:t})}import{forwardRef as cl}from"react";import{Search as dl}from"lucide-react";import{jsx as Kr,jsxs as va}from"react/jsx-runtime";var St=cl(({className:t,label:e,error:r,disabled:a,...i},n)=>va("div",{className:"flex flex-col gap-1",children:[e?Kr("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,va("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:[Kr(dl,{className:o("ml-[var(--inkblot-spacing-4)] h-4 w-4 shrink-0","text-[var(--inkblot-semantic-color-text-tertiary)]")}),Kr("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})]})]}));St.displayName="SearchBar";import{jsx as ml}from"react/jsx-runtime";function fa({children:t,columns:e=4,className:r}){return ml("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 pl,useMemo as bl,useState as ul}from"react";import{jsx as Te,jsxs as vl}from"react/jsx-runtime";function ga({items:t,activeItemId:e,defaultActiveItemId:r,onActiveItemChange:a,onItemClick:i,className:n}){let s=bl(()=>r!==void 0?r:t.find(u=>u.active)?.id,[r,t]),[l,c]=ul(s),d=e!==void 0,p=d?e:l,b=pl((u,v)=>{if(v.disabled){u.preventDefault();return}d||c(v.id),i?.(v.id,v),v.onClick?.(v.id),a?.(v.id,v)},[d,a,i]);return Te(B,{className:n,children:Te("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(u=>{let v=p?u.id===p:!!u.active;return vl("button",{type:"button",disabled:u.disabled,onClick:f=>b(f,u),"aria-current":v?"page":void 0,className:o("relative flex w-full flex-col items-center gap-[var(--inkblot-spacing-1)] rounded-[var(--inkblot-radius-lg)] border border-transparent px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-2)] transition-[background,border-color,color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",v?"border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)] hover:bg-[var(--inkblot-semantic-color-background-primary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),children:[v?Te("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,Te("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:u.icon}),u.label?Te("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] font-medium",children:u.label}):null]},u.id)})})})}import{jsx as ot,jsxs as Wr}from"react/jsx-runtime";var ka={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 rr({items:t,className:e}){return ot("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>ot(fl,{item:r},r.label))})}function fl({item:t}){let e=t.changeVariant??"neutral",r=ka[e];return Wr("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:[ot("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),ot("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),t.change?ot("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}function ya({items:t,className:e}){return ot("div",{className:o("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(r=>ot(gl,{item:r},r.label))})}function gl({item:t}){let e=t.changeVariant??"neutral",r=ka[e],a=t.chartData??[],i=Math.max(...a,1);return Wr("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:[ot("span",{className:o("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),Wr("div",{className:"flex items-end justify-between gap-2",children:[ot("span",{className:o("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),a.length>0?ot("div",{className:"flex h-8 items-end gap-0.5",children:a.map((n,s)=>ot("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?ot("span",{className:o("[font:var(--inkblot-semantic-typography-body-small)]",r),children:t.change}):null]})}import{jsx as xa,jsxs as kl}from"react/jsx-runtime";function or({tabs:t,activeTabId:e,onTabChange:r,className:a}){return xa("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 kl("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?xa("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 yl,Check as xl,User as hl}from"lucide-react";import{jsx as _t,jsxs as Pe}from"react/jsx-runtime";var Nl={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 ar({id:t,title:e,company:r,priority:a,date:i,assignee:n,completed:s=!1,onToggle:l,onClick:c,className:d}){let p=Nl[a];return Pe("div",{role:"button",tabIndex:0,onClick:()=>c?.(t),onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&(b.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:b=>{b.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(xl,{className:"h-3 w-3",strokeWidth:3}):null}),Pe("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})]}),Pe("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",p),children:a.charAt(0).toUpperCase()+a.slice(1)}),Pe("span",{className:o("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[_t(yl,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),i]}),Pe("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)]"}),n]})]})]})}import{CircleDot as wl,Clock as Cl,CheckCircle as Tl}from"lucide-react";import{jsx as ne,jsxs as ha}from"react/jsx-runtime";var Pl={todo:wl,in_progress:Cl,done:Tl};function nr({sections:t,onTaskToggle:e,onTaskClick:r,className:a}){return ne("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-8)]",a),children:t.map(i=>{let n=Pl[i.id],s=i.id==="done";return ha("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[ha("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[ne(n,{className:o("h-5 w-5 shrink-0",s?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)]")}),ne("h2",{className:o("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:i.label}),ne("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})]}),ne("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:i.tasks.map(l=>ne(ar,{...l,completed:s,onToggle:e,onClick:r},l.id))})]},i.id)})})}import{Mail as Na,FileText as ir,Zap as Sl,Phone as wa,Link2 as Ml}from"lucide-react";import{jsx as st,jsxs as Ca}from"react/jsx-runtime";function El(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 Il={EMAIL_OPENED:Na,EMAIL_SENT:Na,INVOICE_PAID:ir,INVOICE_OVERDUE:ir,CONTRACT_SIGNED:ir,STAGE_CHANGED:Sl,CALL_COMPLETED:wa,PHONE_CALL:wa,RELATIONSHIP_DETECTED:Ml};function Ll(t){return Il[t]??ir}function Al(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function Dl(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function sr({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 st(B,{children:st("div",{className:o("space-y-2",i),children:t.length===0?st("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=Ll(s.event_type),p=Ca("div",{className:"flex flex-1 items-center gap-3",children:[st(d,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),st("div",{className:`h-2 w-2 shrink-0 rounded-full ${El(s.confidence_score)}`,"aria-hidden":!0}),Ca("div",{className:"min-w-0 flex-1",children:[st("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:Al(s)}),st("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:Dl(s)})]}),st("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.timestamp})]}),b=s.id??`${s.actor}-${s.subject}-${s.timestamp}`;return st("div",{children:c?st("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:p}):st("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:p})},b)})})})}import{NavLink as Rl}from"react-router-dom";import{ClipboardList as Hl,Brain as Bl,BarChart3 as zl,Network as Ol,Activity as Fl,Settings as Vl,Sparkles as Gl}from"lucide-react";import{jsx as Ut,jsxs as Wl}from"react/jsx-runtime";var Kl=[{id:"home",path:"/",icon:Hl,label:"Home"},{id:"intelligence",path:"/intelligence",icon:Bl,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:zl,label:"Pipeline"},{id:"graph",path:"/graph",icon:Ol,label:"Graph"},{id:"events",path:"/events",icon:Fl,label:"Events"},{id:"settings",path:"/settings",icon:Vl,label:"Settings"}];function Ta({items:t=Kl,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:a}){return Ut(B,{children:Wl("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:[Ut("div",{className:"flex flex-col items-center gap-2",children:Ut("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??Ut(Gl,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})})}),Ut("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-2)]",children:t.map(i=>{let n=i.icon;return Ut(Rl,{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:Ut(n,{size:20,"aria-hidden":!0})},i.id)})})]})})}import{useRef as _l}from"react";import{Loader2 as Ul,Paperclip as $l,Send as jl,Sparkles as ql}from"lucide-react";import{jsx as J,jsxs as _r}from"react/jsx-runtime";function Pa({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=_l(null),d=b=>{b.key==="Enter"&&!b.shiftKey&&(b.preventDefault(),r())},p=b=>{let u=b.target.files;u&&u.length>0&&a&&a(Array.from(u)),b.target.value=""};return _r("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:[_r("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[J("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:J(ql,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),J("div",{className:"flex-1",children:_r("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:[J("input",{ref:c,type:"file",multiple:!0,onChange:p,className:"sr-only","aria-hidden":!0}),J("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:J($l,{size:18,strokeWidth:1.7,"aria-hidden":!0})}),J("textarea",{value:t,onChange:b=>e(b.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)]")}),J("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center",children:i?J("div",{className:"flex h-8 w-8 items-center justify-center rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:J(Ul,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}):J("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:J(jl,{size:16,strokeWidth:2,"aria-hidden":!0})})})]})})]}),s&&J("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 ie,jsxs as Ur}from"react/jsx-runtime";function Sa({events:t,title:e="Event Stream",showLive:r=!0,className:a}){return ie(B,{children:Ur("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",a),children:[Ur("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[ie("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:e}),r&&Ur("div",{className:"flex items-center gap-2",children:[ie("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),ie("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),ie("div",{className:"flex-1 overflow-auto p-4",children:ie(sr,{events:t})})]})})}import{jsx as tt,jsxs as $t}from"react/jsx-runtime";var Yl=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],Xl=[{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 Ma({loading:t,kpiCards:e=Yl,aiInsights:r=Xl,title:a="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:n}){return $t("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",n),children:[$t("div",{children:[tt("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}),tt("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]}),tt(Je,{loading:t,title:"",children:tt(B,{children:$t("div",{className:"flex flex-col gap-4",children:[tt("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:e.map(s=>tt(Xe,{label:s.label,value:s.value,subtext:s.subtext,trend:s.trend},s.label))}),$t("div",{children:[tt("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"}),tt("div",{className:"flex flex-col gap-4",children:r.map(s=>tt(B,{children:$t("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[$t("div",{className:"min-w-0 flex-1",children:[tt("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:s.title}),tt("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s.description})]}),$t("div",{className:"flex shrink-0 flex-col items-center",children:[tt("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:s.confidence}),tt("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},s.title))})]})]})})})]})}import{jsx as Se,jsxs as $r}from"react/jsx-runtime";function Ea({navigation:t,eventStream:e,commandBar:r,children:a,className:i,eventStreamWidth:n="w-80"}){return $r("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[Se("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}),Se("main",{className:"flex flex-1 flex-col overflow-hidden",children:$r("div",{className:"flex min-h-0 flex-1",children:[$r("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[Se("div",{className:"flex-1 overflow-auto px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-6)]",children:a}),Se("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:r})]}),e&&Se("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 jr}from"react";import{Check as Zl,X as Ql}from"lucide-react";import{jsx as se,jsxs as lr}from"react/jsx-runtime";var Jl=["urgent","high","medium","low"];function cr({onConfirm:t,onCancel:e,className:r}){let[a,i]=jr(""),[n,s]=jr(""),[l,c]=jr("medium");return lr("form",{onSubmit:p=>{p.preventDefault();let b=a.trim();b&&(t({title:b,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:[se("input",{type:"text",value:a,onChange:p=>i(p.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)]")}),se("input",{type:"text",value:n,onChange:p=>s(p.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)]")}),se("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:Jl.map(p=>se("button",{type:"button",onClick:()=>c(p),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===p?"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:p.charAt(0).toUpperCase()+p.slice(1)},p))}),lr("div",{className:"flex justify-end gap-[var(--inkblot-spacing-2)]",children:[lr("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:[se(Ql,{className:"h-4 w-4"}),"Cancel"]}),lr("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:[se(Zl,{className:"h-4 w-4"}),"Add Task"]})]})]})}import{useState as ur,useMemo as La}from"react";import{ClipboardList as gc,LayoutGrid as kc,List as yc}from"lucide-react";import{useMemo as oc,useState as ac}from"react";import{useState as tc}from"react";import{jsx as rc}from"react/jsx-runtime";var ec={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,p]=tc(e),b=t??d;return rc("button",{type:"button","aria-pressed":b,disabled:n,onClick:()=>{if(n)return;let v=!b;t===void 0&&p(v),r?.(v)},className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-md)] border font-medium transition-colors duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",ec[a],i==="default"?b?"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)]":b?"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 Ia,jsxs as nc}from"react/jsx-runtime";function Yr({type:t="single",items:e,value:r,defaultValue:a,onValueChange:i,className:n,...s}){let l=a??(t==="single"?"":[]),[c,d]=ac(l),p=r??c,b=oc(()=>{if(t==="single"){let f=typeof p=="string"?p:"";return new Set(f?[f]:[])}let v=Array.isArray(p)?p:[];return new Set(v)},[p,t]),u=v=>{if(t==="single"){let h=b.has(v)?"":v;r===void 0&&d(h),i?.(h);return}let f=Array.isArray(p)?p:[],w=f.includes(v)?f.filter(h=>h!==v):[...f,v];r===void 0&&d(w),i?.(w)};return Ia("div",{className:o("inline-flex items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-1",n),...s,children:e.map(v=>{let f=v.icon;return nc(qr,{pressed:b.has(v.id),onPressedChange:()=>u(v.id),disabled:v.disabled,size:"sm",children:[f?Ia(f,{className:"mr-2 size-4"}):null,v.label]},v.id)})})}import{DragDropContext as pc}from"@hello-pangea/dnd";import{useCallback as bc,useMemo as uc}from"react";import{Draggable as cc}from"@hello-pangea/dnd";import{useState as ic}from"react";import{User as sc}from"lucide-react";import{jsx as dr}from"react/jsx-runtime";var lc={sm:"h-8 w-8 text-xs",md:"h-10 w-10 text-sm",lg:"h-14 w-14 text-base"};function Xr({src:t,alt:e="Avatar",fallback:r,size:a="md",disabled:i=!1,className:n}){let[s,l]=ic(!1),c=!!(t&&!s);return dr("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)]",lc[a],n),children:c?dr("img",{src:t,alt:e,onError:()=>l(!0),className:"h-full w-full object-cover"}):r?dr("span",{className:"font-medium uppercase",children:r.slice(0,2)}):dr(sc,{className:"h-4 w-4"})})}import{jsx as Mt,jsxs as Zr}from"react/jsx-runtime";var dc={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 mr({task:t,index:e,className:r}){let a=t.jiraKey??`TASK-${t.id}`;return Mt(cc,{draggableId:t.id,index:e,children:(i,n)=>Zr("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:[Mt("div",{className:"absolute right-[var(--inkblot-spacing-3)] top-[var(--inkblot-spacing-3)] h-8 w-1 rounded-[var(--inkblot-radius-sm)]",children:Mt("span",{className:o("block h-full w-full rounded-[var(--inkblot-radius-sm)]",dc[t.priority])})}),Mt("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}),Mt("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.company}),Zr("div",{className:"flex items-end justify-between gap-[var(--inkblot-spacing-2)]",children:[Zr("div",{className:"flex flex-col gap-0.5",children:[Mt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}),t.date?Mt("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.date}):null]}),Mt(Xr,{size:"sm",fallback:t.assignee.replace(/\s/g,"").slice(0,2).toUpperCase(),alt:t.assignee})]})]})})}import{Droppable as mc}from"@hello-pangea/dnd";import{jsx as Qr,jsxs as Jr}from"react/jsx-runtime";function pr({columnId:t,title:e,count:r,children:a,className:i}){return Jr("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:[Jr("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:[Qr("h2",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]","font-semibold uppercase tracking-wide"),children:e}),Qr("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})]}),Qr(mc,{droppableId:t,children:(n,s)=>Jr("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 br}from"react/jsx-runtime";var vc=[{id:"todo",title:"TO DO"},{id:"in_progress",title:"IN PROGRESS"},{id:"done",title:"DONE"}];function fc(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(u=>u.id===i);if(!s)return t;let l=t.filter(u=>u.id!==i),c={...s,status:n},p=[...l.filter(u=>u.status===n)];return p.splice(r.index,0,c),["todo","in_progress","done"].flatMap(u=>u===n?p:l.filter(v=>v.status===u))}function le({tasks:t,onTasksChange:e,className:r}){let a=bc(n=>{e(fc(t,n))},[t,e]),i=uc(()=>{let n={todo:[],in_progress:[],done:[]};for(let s of t)n[s.status].push(s);return n},[t]);return br(pc,{onDragEnd:a,children:br("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:vc.map(n=>{let s=i[n.id];return br(pr,{columnId:n.id,title:n.title,count:s.length,children:s.map((l,c)=>br(mr,{task:l,index:c},l.id))},n.id)})})})}import{jsx as mt,jsxs as Aa}from"react/jsx-runtime";function Et(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 xc(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 It=[Et({title:"Follow up with Sarah Chen on proposal",company:"Acme Corp",priority:"high"},"1","You","CRM-104"),Et({title:"Schedule demo with engineering team",company:"TechStart Inc",priority:"medium"},"2","Alex M.","CRM-112"),Et({title:"Prepare quarterly report slides",company:"GlobalTech",priority:"low"},"3","Sam R.","CRM-98"),Et({title:"Review Q1 marketing budget",company:"TechStart Inc",priority:"medium"},"4","Jamie L.","CRM-120"),Et({title:"Draft partnership agreement",company:"Enterprise Co",priority:"urgent"},"5","You","CRM-88"),Et({title:"Send contract to legal team",company:"GlobalTech",priority:"low"},"6","Lisa K."),Et({title:"Update CRM with new contacts",company:"Acme Corp",priority:"low"},"7","Morgan P.","CRM-130")];It[0].status="todo";It[1].status="todo";It[2].status="todo";It[3].status="in_progress";It[4].status="in_progress";It[5].status="done";It[6].status="done";function Da({initialTasks:t=It,onTaskCreate:e,onTaskToggle:r,onTaskClick:a,onTasksReorder:i,className:n}){let[s,l]=ur(t),[c,d]=ur(!1),[p,b]=ur(""),[u,v]=ur("list"),f=La(()=>{if(!p.trim())return s;let m=p.toLowerCase();return s.filter(x=>x.title.toLowerCase().includes(m)||x.company.toLowerCase().includes(m)||(x.jiraKey?.toLowerCase().includes(m)??!1))},[s,p]),w=La(()=>xc(f),[f]),h=s.filter(m=>m.status!=="done").length,g=s.filter(m=>m.priority==="urgent"&&m.status!=="done").length,P=`${h} pending${g>0?` \xB7 ${g} urgent`:""}`,N=m=>{let x=`task-${Date.now()}`,C=Et(m,x);l(S=>[C,...S]),d(!1),e?.(m)},y=m=>{l(x=>x.map(C=>{if(C.id!==m)return C;let S=C.status==="done"?"todo":"done";return{...C,status:S}})),r?.(m)},k=m=>{l(m),i?.(m)};return mt("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:Aa("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[mt(oe,{title:"Tasks",subtitle:P,icon:mt(gc,{className:"h-5 w-5"}),action:mt(ae,{label:"New Task",onClick:()=>d(m=>!m)})}),Aa("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] xl:flex-row xl:items-center xl:gap-[var(--inkblot-spacing-4)]",children:[mt(Yr,{type:"single",value:u,onValueChange:m=>{(m==="list"||m==="kanban")&&v(m)},items:[{id:"list",label:"List View",icon:yc},{id:"kanban",label:"Kanban Board View",icon:kc}]}),mt("div",{className:"min-w-0 flex-1",children:mt(St,{placeholder:u==="list"?"Search tasks (title, company, Jira key)...":"Switch to list view to search and filter tasks",value:p,onChange:m=>b(m.target.value),disabled:u==="kanban"})})]}),c?mt(cr,{onConfirm:N,onCancel:()=>d(!1)}):null,u==="list"?mt(nr,{sections:w,onTaskToggle:y,onTaskClick:a}):mt(le,{tasks:s,onTasksChange:k})]})})}import{useState as ce,useMemo as to}from"react";import{Mail as hc}from"lucide-react";import{Fragment as Tc,jsx as q,jsxs as de}from"react/jsx-runtime";var Nc=`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]`,Ma=[{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"}],Ea=[{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"}],Ia=["Acme Corp - Sarah Chen","TechStart Inc - Mike Rodriguez","GlobalTech - Lisa Kim","Enterprise Co - John Smith","StartupXYZ - Emma Wilson"],mc=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],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 La({onSendNow:t,onSchedule:e,onSaveDraft:r,onNewCampaign:a,onGenerateWithAI:i,onTemplateClick:n,className:s}){let[l,c]=se("campaigns"),[d,m]=se(""),[p,b]=se(""),[u,f]=se(""),[w,h]=se(!1),[g,P]=se(""),N=Zr(()=>{if(!d.trim())return Ma;let E=d.toLowerCase();return Ma.filter(F=>F.campaignName.toLowerCase().includes(E)||F.recipients.toLowerCase().includes(E))},[d]),y=Zr(()=>{if(!d.trim())return Ea;let E=d.toLowerCase();return Ea.filter(F=>F.title.toLowerCase().includes(E)||F.category.toLowerCase().includes(E))},[d]),k=Zr(()=>{if(!g.trim())return Ia;let E=g.toLowerCase();return Ia.filter(F=>F.toLowerCase().includes(E))},[g]),v=async()=>{h(!0),await new Promise(E=>setTimeout(E,1500)),f(dc),h(!1)},x=()=>{t?.()},C=()=>{e?.()},S=()=>{r?.()},D=l==="campaigns"||l==="templates";return j("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",s),children:le("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-8)] px-[var(--inkblot-spacing-8)] py-[var(--inkblot-spacing-8)]",children:[j(ee,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:j(cc,{className:"h-5 w-5"}),action:j(re,{label:"New Campaign",onClick:()=>a?.()})}),j(er,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),D?j(Tt,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:d,onChange:E=>m(E.target.value)}):null,l==="campaigns"?le(bc,{children:[j(tr,{items:pc}),j(Ke,{columns:mc,rows:N})]}):l==="templates"?j(Ue,{templates:y,onGenerateWithAI:i,onTemplateClick:n}):le("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:[le("div",{className:"flex flex-col gap-[var(--inkblot-spacing-6)]",children:[le("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[j("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),j(Vt,{type:"text",value:p,onChange:E=>b(E.target.value),placeholder:"Enter subject line..."})]}),j(ge,{label:"Body",value:u,onChange:E=>f(E.target.value),placeholder:"Compose your email or let AI generate content...",loading:w,onWriteWithAI:v}),le("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[j(Tt,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:g,onChange:E=>P(E.target.value)}),k.length>0?j("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:k.slice(0,5).map(E=>j("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]})]}),j(Ge,{onSendNow:x,onSchedule:C,onSaveDraft:S})]})]})})}import{createContext as uc,useCallback as Aa,useContext as vc,useEffect as fc,useLayoutEffect as gc,useMemo as kc,useState as Da}from"react";import{jsx as hc}from"react/jsx-runtime";var br="citron-ui-theme",Ha=uc(null);function yc(){if(typeof window>"u")return null;try{let t=window.localStorage.getItem(br);if(t==="light"||t==="dark")return t}catch{}return null}function xc(){return typeof window>"u"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function Ra(t){typeof document>"u"||document.documentElement.setAttribute("data-theme",t)}function Ba({children:t}){let[e,r]=Da("light"),[a,i]=Da(!1);gc(()=>{if(typeof window>"u")return;let d=yc()??xc();r(d),Ra(d),i(!0)},[]),fc(()=>{if(a&&(Ra(e),!(typeof window>"u")))try{window.localStorage.setItem(br,e)}catch{}},[e,a]);let n=Aa(c=>{r(c)},[]),s=Aa(()=>{r(c=>c==="light"?"dark":"light")},[]),l=kc(()=>({theme:e,setTheme:n,toggleTheme:s}),[e,n,s]);return hc(Ha.Provider,{value:l,children:t})}function ur(){let t=vc(Ha);if(!t)throw new Error("useTheme must be used within a ThemeProvider");return t}import{Moon as Nc,Sun as wc}from"lucide-react";import{jsx as Oa}from"react/jsx-runtime";function vr({className:t,type:e="button",...r}){let{theme:a,toggleTheme:i}=ur(),n=a==="dark",s=n?wc:Nc;return Oa("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:Oa(s,{className:"h-[18px] w-[18px] shrink-0",strokeWidth:2,"aria-hidden":!0})})}import{forwardRef as Cc}from"react";import{NavLink as Tc}from"react-router-dom";import{jsx as Pc}from"react/jsx-runtime";var Qr=Cc(({className:t,activeClassName:e,pendingClassName:r,...a},i)=>Pc(Tc,{ref:i,className:({isActive:n,isPending:s})=>o(t,n&&e,s&&r),...a}));Qr.displayName="NavLinkRouter";import{useState as za,useRef as Sc,useEffect as Mc}from"react";import{ChevronDown as Ec,Plus as Ic}from"lucide-react";import{jsx as z,jsxs as Z}from"react/jsx-runtime";var gr=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)]"),Et=o("[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-secondary)]"),Va="border-[var(--inkblot-semantic-color-status-error)]";function Fa({items:t,value:e,onChange:r,placeholder:a,hasError:i,onCreateNew:n,createNewLabel:s}){let[l,c]=za(""),[d,m]=za(!1),p=Sc(null);Mc(()=>{let f=w=>{p.current&&!p.current.contains(w.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 Z("div",{ref:p,className:"relative",children:[z("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(gr,i&&!e&&Va)}),d&&Z("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=>z("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&&z("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&&Z("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:[z(Ic,{className:"h-4 w-4"}),s??"Create new"]})]})]})}function fr({options:t,value:e,onChange:r,placeholder:a}){return Z("div",{className:"relative",children:[Z("select",{value:e,onChange:i=>r(i.target.value),className:o(gr,"appearance-none pr-[var(--inkblot-spacing-8)]"),children:[z("option",{value:"",children:a}),t.map(i=>z("option",{value:i,children:i},i))]}),z(Ec,{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 Lc=["Bank Transfer","Credit Card","Cash","Check"],Ac=["VAT 21%","VAT 10%","VAT 0%","Exempt"],Dc=["Standard","Proforma","Credit Note","Debit Note"],Rc=["Main Account","Secondary Account"];function Jr({clients:t,products:e,paymentMethods:r=Lc,taxTypes:a=Ac,invoiceTypes:i=Dc,bankAccounts:n=Rc,value:s={},onChange:l,onCreateClient:c,attempted:d=!1,className:m}){let p=b=>l?.({...s,...b});return Z("div",{className:o("grid grid-cols-1 gap-[var(--inkblot-spacing-4)] md:grid-cols-2",m),children:[Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Client"}),z(Fa,{items:t,value:s.clientId??"",onChange:b=>p({clientId:b}),placeholder:"Search client...",hasError:d,onCreateNew:c,createNewLabel:"+ Create new client"})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Product / Service"}),z(Fa,{items:e,value:s.productId??"",onChange:b=>p({productId:b}),placeholder:"Search product...",hasError:d})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Quantity"}),z("input",{type:"number",min:1,value:s.quantity??"",onChange:b=>p({quantity:b.target.value===""?0:Number(b.target.value)}),placeholder:"1",className:o(gr,d&&!s.quantity&&Va)})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Payment Method"}),z(fr,{options:r,value:s.paymentMethod??"",onChange:b=>p({paymentMethod:b}),placeholder:"Select..."})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Tax Type"}),z(fr,{options:a,value:s.taxType??"",onChange:b=>p({taxType:b}),placeholder:"Select..."})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Invoice Type"}),z(fr,{options:i,value:s.invoiceType??"",onChange:b=>p({invoiceType:b}),placeholder:"Select..."})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[z("label",{className:Et,children:"Bank Account"}),z(fr,{options:n,value:s.bankAccount??"",onChange:b=>p({bankAccount:b}),placeholder:"Select..."})]}),Z("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] md:col-span-2",children:[z("label",{className:Et,children:"Notes"}),z("textarea",{value:s.notes??"",onChange:b=>p({notes:b.target.value}),rows:3,placeholder:"Additional notes...",className:o(gr,"resize-y")})]})]})}import{jsx as tt,jsxs as to}from"react/jsx-runtime";function vt({label:t,value:e}){return to("div",{className:"flex items-baseline justify-between border-b border-[var(--inkblot-semantic-color-border-default)] py-[var(--inkblot-spacing-2)]",children:[tt("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),tt("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:e||"\u2014"})]})}function eo({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 to("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:[tt("h3",{className:"mb-[var(--inkblot-spacing-4)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"Preview"}),to("div",{className:"space-y-0",children:[tt(vt,{label:"Client",value:i?.name??""}),tt(vt,{label:"Product",value:n?.name??""}),tt(vt,{label:"Quantity",value:s?String(s):""}),l>0&&tt(vt,{label:"Unit price",value:`$${l.toFixed(2)}`}),c>0&&tt(vt,{label:"Subtotal",value:`$${c.toFixed(2)}`}),tt(vt,{label:"Payment",value:t.paymentMethod??""}),tt(vt,{label:"Tax",value:t.taxType??""}),tt(vt,{label:"Type",value:t.invoiceType??""}),tt(vt,{label:"Bank",value:t.bankAccount??""})]}),t.notes&&tt("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 Ga}from"react";import{Loader2 as Hc}from"lucide-react";import{jsx as Pe,jsxs as ro}from"react/jsx-runtime";function Bc({clients:t,products:e,onSubmit:r,onCreateClient:a,isSubmitting:i=!1,className:n,...s}){let[l,c]=Ga({}),[d,m]=Ga(!1);return ro("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:[Pe("h2",{className:"mb-[var(--inkblot-spacing-6)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"New Invoice"}),ro("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] lg:grid-cols-[1fr_20rem]",children:[Pe(Jr,{clients:t,products:e,value:l,onChange:c,onCreateClient:a,attempted:d,...s}),Pe(eo,{data:l,clients:t,products:e})]}),Pe("div",{className:"mt-[var(--inkblot-spacing-6)] flex justify-end",children:ro("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&&Pe(Hc,{className:"h-4 w-4 animate-spin"}),"Create Invoice"]})})]})}import{useMemo as Oc,useState as zc}from"react";import{ChevronDown as Fc}from"lucide-react";import{jsx as kr,jsxs as Ka}from"react/jsx-runtime";function Vc({items:t,defaultValue:e,allowMultiple:r=!1,className:a}){let i=Oc(()=>new Set(e??[]),[e]),[n,s]=zc(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 kr("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 Ka("div",{className:o(d!==0&&"border-t border-[var(--inkblot-semantic-color-border-default)]"),children:[Ka("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:[kr("span",{className:"font-medium",children:c.title}),kr(Fc,{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&&kr("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 Gc,useEffect as yr,useRef as Se,useState as ce}from"react";import{ChevronDown as Kc,Loader2 as Wc,Search as _c,X as Uc}from"lucide-react";import{jsx as et,jsxs as It}from"react/jsx-runtime";function $c({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]=ce(a??null),w=b?r:u,[h,g]=ce(!1),[P,N]=ce(""),[y,k]=ce(-1),[v,x]=ce([]),[C,S]=ce(!1),D=Se(null),E=Se(0),F=e!==void 0,I=F?v:t,O=Se(null),L=Se(null),W=Se(null);yr(()=>{if(!(!F||!h))return D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{let T=++E.current;S(!0),e(P).then(q=>{T===E.current&&(x(q),S(!1),k(-1))}).catch(()=>{T===E.current&&(x([]),S(!1))})},250),()=>{D.current&&clearTimeout(D.current)}},[P,h,F,e]);let $=F?I:I.filter(T=>T.label.toLowerCase().includes(P.toLowerCase())),qt=I.find(T=>T.value===w)??(F?t.find(T=>T.value===w):void 0),Yt=Gc(T=>{b||f(T),i?.(T),g(!1),N(""),k(-1)},[b,i]);yr(()=>{if(!h)return;let T=q=>{O.current&&!O.current.contains(q.target)&&(g(!1),N(""),k(-1))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[h]),yr(()=>{h&&W.current?.focus()},[h]),yr(()=>{if(y<0||!L.current)return;L.current.querySelectorAll("[data-option]")[y]?.scrollIntoView({block:"nearest"})},[y]);let Er=T=>{if(!h){(T.key==="Enter"||T.key===" "||T.key==="ArrowDown")&&(T.preventDefault(),g(!0));return}switch(T.key){case"ArrowDown":{T.preventDefault(),k(q=>{let U=q+1;for(;U<$.length&&$[U].disabled;)U++;return U<$.length?U:q});break}case"ArrowUp":{T.preventDefault(),k(q=>{let U=q-1;for(;U>=0&&$[U].disabled;)U--;return U>=0?U:q});break}case"Enter":{T.preventDefault(),y>=0&&y<$.length&&!$[y].disabled&&Yt($[y].value);break}case"Escape":{T.preventDefault(),g(!1),N(""),k(-1);break}}};return It("div",{ref:O,className:o("relative w-full",p),onKeyDown:Er,children:[It("button",{type:"button",disabled:m,"aria-expanded":h,"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:[et("span",{className:o("truncate text-left",!qt&&"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:qt?qt.label:n}),It("span",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-1)]",children:[d&&qt&&et("span",{role:"button",tabIndex:0,"aria-label":"Clear selection",onClick:T=>{T.stopPropagation(),Yt(null)},onKeyDown:T=>{T.key==="Enter"&&(T.stopPropagation(),Yt(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:et(Uc,{className:"size-3.5"})}),et(Kc,{"aria-hidden":!0,className:o("size-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)]",h&&"rotate-180")})]})]}),It("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",h?"pointer-events-auto scale-y-100 opacity-100":"pointer-events-none scale-y-95 opacity-0"),children:[et("div",{className:"border-b border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-2)]",children:It("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:[et(_c,{className:"size-3.5 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),et("input",{ref:W,type:"text",value:P,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"})]})}),et("ul",{ref:L,role:"listbox",className:"max-h-60 overflow-y-auto p-[var(--inkblot-spacing-1)]",children:C?It("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:[et(Wc,{className:"size-4 animate-spin","aria-hidden":!0}),c]}):$.length===0?et("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}):$.map((T,q)=>{let U=T.value===w,ze=q===y;return It("li",{role:"option","data-option":!0,"aria-selected":U,"aria-disabled":T.disabled,onClick:()=>{T.disabled||Yt(T.value)},onMouseEnter:()=>{T.disabled||k(q)},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)]",ze&&!T.disabled&&"bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",U&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]",T.disabled&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[T.icon&&et("span",{className:"flex size-5 shrink-0 items-center justify-center text-[var(--inkblot-semantic-color-text-secondary)]",children:T.icon}),It("span",{className:"flex min-w-0 flex-1 flex-col",children:[et("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:T.label}),T.description&&et("span",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:T.description})]})]},T.value)})})]})]})}import{AlertCircle as jc,AlertTriangle as qc,CheckCircle2 as Yc,Info as Xc}from"lucide-react";import{jsx as oo,jsxs as Wa}from"react/jsx-runtime";var Zc={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)]"},Qc={info:Xc,success:Yc,warning:qc,error:jc};function Jc({title:t,description:e,variant:r="info",className:a}){let i=Qc[r];return Wa("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)]",Zc[r],a),children:[oo(i,{className:"mt-0.5 h-4 w-4 shrink-0"}),Wa("div",{className:"flex min-w-0 flex-col gap-[var(--inkblot-spacing-1)]",children:[oo("div",{className:"font-semibold",children:t}),e&&oo("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})]})}import{useCallback as _a,useEffect as td,useId as Ua,useRef as ao}from"react";import{AlertTriangle as ed}from"lucide-react";import{jsx as Ut,jsxs as xr}from"react/jsx-runtime";function rd({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=ao(null),f=ao(null),w=ao(null),h=Ua(),g=Ua(),P=_a(()=>{p?.(),d?.(!1)},[p,d]),N=_a(()=>{m?.(),l&&d?.(!1)},[l,m,d]);return td(()=>{if(!t)return;w.current=document.activeElement instanceof HTMLElement?document.activeElement:null,(c?.current??f.current??u.current)?.focus();let k=v=>{v.key==="Escape"&&P()};return window.addEventListener("keydown",k),()=>{window.removeEventListener("keydown",k),w.current?.focus()}},[P,c,t]),t?Ut("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:P,children:xr("div",{role:"alertdialog","aria-modal":"true","aria-labelledby":h,"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:[xr("div",{className:"mb-[var(--inkblot-spacing-4)] flex items-start gap-[var(--inkblot-spacing-3)]",children:[Ut("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:Ut(ed,{className:"h-5 w-5"})}),xr("div",{className:"flex-1",children:[Ut("h2",{id:h,className:"text-lg font-semibold",children:e}),r&&Ut("p",{id:g,className:"mt-[var(--inkblot-spacing-2)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r})]})]}),xr("div",{className:"flex flex-wrap justify-end gap-[var(--inkblot-spacing-2)]",children:[Ut("button",{type:"button",ref:f,onClick:P,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}),Ut("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 od,useRef as ad,useState as no}from"react";import{Check as nd,Loader2 as id,Sparkles as $a}from"lucide-react";import{Fragment as io,jsx as ft,jsxs as de}from"react/jsx-runtime";var sd=["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 qh({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=sd,className:b}){let[u,f]=no(e),[w,h]=no(!1),[g,P]=no(!1),N=ad(null),y=t!==void 0,k=y?t:u,v=a!==void 0,x=v?a:w,C=n!==void 0,S=C?n:g,D=L=>{y||f(L),r?.(L)},E=L=>{v||h(L),i?.(L)},F=L=>{C||P(L),s?.(L)};od(()=>()=>{N.current!==null&&window.clearTimeout(N.current)},[]);let I=L=>{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: ${L}`},{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`}]},O=async()=>{let L=k.trim();if(!L||x)return;c?.(L),E(!0);let W;d?W=await Promise.resolve(d(L)):(await new Promise($=>{window.setTimeout(()=>$(),l)}),W=I(L)),m?.(W),E(!1),F(!0),N.current=window.setTimeout(()=>F(!1),1800)};return de("section",{className:o(b),children:[de("div",{className:"mb-2 flex items-center gap-2",children:[ft($a,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-warning)]"}),ft("span",{className:"text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Email Generator"})]}),de("div",{className:"space-y-3",children:[ft("textarea",{value:k,onChange:L=>D(L.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"}),ft("div",{className:"flex flex-wrap gap-1.5",children:p.map(L=>ft("button",{type:"button",onClick:()=>D(L),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:L},L))}),ft("button",{type:"button",onClick:O,disabled:!k.trim()||x,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:x?de(io,{children:[ft(id,{className:"h-3 w-3 animate-spin"}),"Generating..."]}):S?de(io,{children:[ft(nd,{className:"h-3 w-3"}),"Applied to editor"]}):de(io,{children:[ft($a,{className:"h-3 w-3"}),"Generate Email"]})})]})]})}import{CheckSquare as cd,Command as dd,FileText as md,Mail as pd,MessageSquare as bd,Settings as ud,Users as vd}from"lucide-react";import{jsx as so,jsxs as ld}from"react/jsx-runtime";function lo({label:t,icon:e,active:r=!1,onClick:a,title:i,dataTour:n,className:s}){return ld("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:[so(e,{className:"h-[18px] w-[18px]","aria-hidden":!0}),r?so("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,so("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 Lt,jsxs as co}from"react/jsx-runtime";var fd=[{id:"canvas",icon:bd,label:"Canvas",path:"/",dataTour:"nav-canvas"},{id:"invoices",icon:md,label:"Invoices & Deals",path:"/invoices",dataTour:"nav-invoices"},{id:"contacts",icon:vd,label:"Contacts",path:"/contacts",dataTour:"nav-contacts"},{id:"campaigns",icon:pd,label:"Campaigns",path:"/campaigns",dataTour:"nav-campaigns"},{id:"tasks",icon:cd,label:"Tasks",path:"/tasks",dataTour:"nav-tasks"}],gd=[{id:"settings",icon:ud,label:"Settings",path:"/settings",dataTour:"nav-settings"}];function ja({items:t=fd,bottomItems:e=gd,activePath:r="/",onNavigate:a,logo:i,showStatusDot:n=!0,showThemeToggle:s=!0,className:l}){return co("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:[Lt("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??Lt(dd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}),Lt("nav",{className:"hide-scrollbar flex flex-1 flex-col gap-1 overflow-y-auto",children:t.map(c=>Lt(lo,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id))}),co("div",{className:"flex flex-col gap-1",children:[e.map(c=>Lt(lo,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id)),s?co("div",{className:"group relative flex justify-center",children:[Lt(vr,{}),Lt("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?Lt("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 qa,FileText as kd,GitBranch as yd,Mail as xd,Phone as hd,Zap as Nd}from"lucide-react";import{jsx as mt,jsxs as Me}from"react/jsx-runtime";var wd=[{id:1,icon:xd,title:"Email opened",meta:"Jane Smith \xB7 Acme Corp",time:"2m ago",status:"info"},{id:2,icon:qa,title:"Invoice #1042 paid",meta:"$24,500 \xB7 TechVentures",time:"8m ago",status:"success"},{id:3,icon:Nd,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:kd,title:"Contract signed",meta:"NDA \xB7 GlobalTech Inc",time:"1h ago",status:"success"},{id:6,icon:yd,title:"New relationship detected",meta:"Acme \u2194 DataFlow Labs",time:"2h ago",status:"info"},{id:7,icon:qa,title:"Invoice overdue",meta:"$8,200 \xB7 StartupXYZ",time:"3h ago",status:"danger"}],Cd={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 Ya({title:t="Event Stream",liveLabel:e="Live",events:r=wd,onItemClick:a,className:i}){return Me("section",{className:o("p-4",i),children:[Me("header",{className:"mb-4 flex items-center justify-between",children:[mt("h3",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),mt("span",{className:"text-[10px] font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),mt("ul",{className:"space-y-1",children:r.map(n=>{let s=n.icon;return mt("li",{children:Me("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:[mt("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:mt(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})}),Me("span",{className:"min-w-0 flex-1",children:[Me("span",{className:"flex items-center gap-2",children:[mt("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",Cd[n.status])}),mt("span",{className:"truncate text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.title})]}),mt("span",{className:"mt-0.5 block truncate text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.meta})]}),mt("span",{className:"mt-0.5 shrink-0 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.time})]})},n.id)})})]})}import{createContext as Td,useContext as Pd,useState as Sd,useCallback as Xa}from"react";import{jsx as Id}from"react/jsx-runtime";var Za=Td(null);function Md(){let t=Pd(Za);if(!t)throw new Error("useCanvas must be used within a CanvasProvider");return t}var Ed=[{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 mo({children:t,initialBlocks:e=Ed}){let[r,a]=Sd(e),i=Xa(s=>{a(l=>[...l,...s])},[]),n=Xa(()=>{a([])},[]);return Id(Za.Provider,{value:{blocks:r,addBlocks:i,clearBlocks:n},children:t})}import{jsx as Ee,jsxs as Qa}from"react/jsx-runtime";function SN({children:t,showEventFeed:e=!1,sidebarProps:r,eventFeedProps:a,canvasProviderProps:i,className:n}){let s=Qa("div",{className:o("flex h-screen w-full overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[Ee(ja,{...r}),Qa("main",{className:"flex flex-1 overflow-hidden",children:[Ee("section",{"data-tour":"canvas",className:"hide-scrollbar flex-1 overflow-y-auto",children:t}),e&&Ee("aside",{"data-tour":"event-feed",className:"flex w-80 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)]",children:Ee(Ya,{...a})})]})]});return i?Ee(mo,{...i,children:s}):s}import{jsx as Ja,jsxs as Ad}from"react/jsx-runtime";function Ld({ratio:t=16/9,children:e,className:r}){let a=Number.isFinite(t)&&t>0?t:1.7777777777777777;return Ad("div",{className:o("relative w-full overflow-hidden",r),children:[Ja("div",{style:{paddingTop:`${1/a*100}%`}}),Ja("div",{className:"absolute inset-0",children:e})]})}import{jsx as Hd}from"react/jsx-runtime";var Dd={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 Rd({children:t,variant:e="default",disabled:r=!1,className:a}){return Hd("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)]",Dd[e],r&&"opacity-[var(--inkblot-opacity-disabled)]",a),children:t})}import{ChevronRight as Bd}from"lucide-react";import{jsx as Ie,jsxs as zd}from"react/jsx-runtime";function Od({items:t,className:e}){return Ie("nav",{"aria-label":"Breadcrumb",className:o("w-full",e),children:Ie("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?Ie("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}):Ie("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 zd("li",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[i,a<t.length-1&&Ie(Bd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"})]},r.id)})})})}import{useMemo as tn,useState as Fd}from"react";import{ChevronLeft as Vd,ChevronRight as Gd}from"lucide-react";import{jsx as At,jsxs as bo}from"react/jsx-runtime";var Kd=["L","M","X","J","V","S","D"];function en(t){return new Date(t.getFullYear(),t.getMonth(),1)}function Wd(t){return new Date(t.getFullYear(),t.getMonth()+1,0)}function _d(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function po(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}function Ud(t){let e=en(t),r=Wd(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 $d({value:t,onChange:e,disabledDates:r,className:a}){let i=t??new Date,[n,s]=Fd(en(i)),l=tn(()=>Ud(n),[n]),c=tn(()=>new Set((r??[]).map(po)),[r]);return bo("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:[bo("div",{className:"mb-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[At("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:At(Vd,{className:"h-4 w-4"})}),At("div",{className:"font-semibold",children:n.toLocaleDateString("es-ES",{month:"long",year:"numeric"})}),At("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:At(Gd,{className:"h-4 w-4"})})]}),bo("div",{className:"grid grid-cols-7 gap-[var(--inkblot-spacing-1)]",children:[Kd.map(d=>At("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 At("div",{className:"h-9"},`empty-${m}`);let p=c.has(po(d)),b=t?_d(d,t):!1;return At("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()},po(d))})]})]})}import{jsx as me}from"react/jsx-runtime";function jd({className:t,interactive:e=!1,disabled:r=!1,...a}){return me("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 qd({className:t,...e}){return me("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-1)] p-[var(--inkblot-spacing-5)]",t),...e})}function Yd({className:t,...e}){return me("h3",{className:o("text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",t),...e})}function Xd({className:t,...e}){return me("p",{className:o("text-sm text-[var(--inkblot-semantic-color-text-secondary)]",t),...e})}function Zd({className:t,...e}){return me("div",{className:o("px-[var(--inkblot-spacing-5)] pb-[var(--inkblot-spacing-5)]",t),...e})}function Qd({className:t,...e}){return me("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 Jd}from"react";import{ChevronLeft as tm,ChevronRight as em}from"lucide-react";import{jsx as Dt,jsxs as uo}from"react/jsx-runtime";function rm({items:t,initialIndex:e=0,loop:r=!1,className:a}){let[i,n]=Jd(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 uo("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:[Dt("div",{className:"relative overflow-hidden rounded-[var(--inkblot-radius-lg)]",children:Dt("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)=>Dt("div",{className:"w-full shrink-0",children:m},p))})}),uo("div",{className:"mt-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[Dt("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.length>0?`${i+1} de ${t.length}`:"Sin elementos"}),uo("div",{className:"flex gap-[var(--inkblot-spacing-2)]",children:[Dt("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:Dt(tm,{className:"h-4 w-4"})}),Dt("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:Dt(em,{className:"h-4 w-4"})})]})]})]})}import{jsx as $t,jsxs as rn}from"react/jsx-runtime";function om({data:t,title:e="Rendimiento",emptyMessage:r="No data to display.",className:a}){let i=Math.max(...t.map(n=>n.value),0);return rn("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:[$t("h3",{className:"mb-[var(--inkblot-spacing-4)] text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:e}),t.length===0?$t("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}):$t("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:t.map(n=>{let s=i>0?n.value/i*100:0;return rn("div",{className:"grid grid-cols-[120px_1fr_48px] items-center gap-[var(--inkblot-spacing-3)]",children:[$t("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:n.label}),$t("div",{className:"h-3 overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:$t("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)"}})}),$t("span",{className:"text-right text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.value})]},n.id)})})]})}import{useState as am}from"react";import{Check as nm}from"lucide-react";import{jsx as hr,jsxs as on}from"react/jsx-runtime";function im({checked:t,defaultChecked:e=!1,onCheckedChange:r,label:a,description:i,disabled:n=!1,error:s=!1,className:l}){let[c,d]=am(e),m=t!==void 0,p=m?t:c,b=u=>{m||d(u),r?.(u)};return on("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:[hr("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&&hr(nm,{className:"h-4 w-4"})}),(a||i)&&on("span",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[a&&hr("span",{className:"text-sm font-medium",children:a}),i&&hr("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 Le,jsxs as vo}from"react/jsx-runtime";var sm={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 an({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??sm[r];return Le("div",{className:s,children:vo("div",{className:"flex flex-col items-center gap-2",children:[vo("div",{className:"relative",style:{width:n,height:n},children:[vo("svg",{width:n,height:n,className:"-rotate-90",children:[Le("circle",{cx:n/2,cy:n/2,r:m,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:d}),Le("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)]"})]}),Le("span",{className:"absolute inset-0 flex items-center justify-center text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:l})]}),Le("span",{className:"text-center text-[10px] leading-tight text-[var(--inkblot-semantic-color-text-tertiary)]",children:t})]})})}import{useState as lm}from"react";import{ChevronDown as cm}from"lucide-react";import{jsx as fo,jsxs as nn}from"react/jsx-runtime";function dm({title:t,children:e,defaultOpen:r=!1,disabled:a=!1,className:i}){let[n,s]=lm(r);return nn("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:[nn("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:[fo("span",{className:"font-medium",children:t}),fo(cm,{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&&fo("div",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})}import{useMemo as mm,useState as pm}from"react";import{Search as bm}from"lucide-react";import{jsx as Rt,jsxs as go}from"react/jsx-runtime";function um({items:t,placeholder:e="Search commands...",onSelect:r,className:a}){let[i,n]=pm(""),s=mm(()=>{let l=i.trim().toLowerCase();return l?t.filter(c=>{let d=c.label.toLowerCase().includes(l),m=(c.keywords??[]).some(p=>p.toLowerCase().includes(l));return d||m}):t},[t,i]);return go("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:[go("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:[Rt(bm,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"}),Rt("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)]"})]}),Rt("div",{className:"max-h-[280px] overflow-y-auto p-[var(--inkblot-spacing-2)]",children:s.length>0?Rt("ul",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:s.map(l=>Rt("li",{children:go("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&&Rt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:l.icon}),Rt("span",{children:l.label})]})},l.id))}):Rt("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 vm,useMemo as fm,useRef as gm,useState as ko}from"react";import{Send as km,Sparkles as Nr}from"lucide-react";import{jsx as A,jsxs as st}from"react/jsx-runtime";var ym=[{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"]}],yo="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 $w({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=ym,onMessagesChange:d,inputValue:m,defaultInputValue:p="",onInputValueChange:b,autoAssistantResponse:u=!0,assistantResponseDelayMs:f=700,isResponding:w,onRespondingChange:h,onSend:g,generateAssistantMessage:P,renderCard:N,hideInput:y=!1,className:k}){let[v,x]=ko(c),[C,S]=ko(p),[D,E]=ko(!1),F=gm(null),I=l!==void 0,O=I?l:v,L=m!==void 0,W=L?m:C,$=w!==void 0,qt=$?w:D,Yt=W.trim().length>0&&!qt,Er=fm(()=>M=>({content:`Analyzing "${M}". Here are the latest insights.`,cards:["entity","intelligence"]}),[]),T=M=>{I||x(M),d?.(M)},q=M=>{L||S(M),b?.(M)},U=M=>{$||E(M),h?.(M)};vm(()=>()=>{F.current!==null&&window.clearTimeout(F.current)},[]);let ze=()=>{let M=W.trim();if(!M)return;let Xt={id:`${Date.now()}-user`,role:"user",content:M},_o=[...O,Xt];T(_o),q(""),g?.(M),u&&(U(!0),F.current=window.setTimeout(()=>{let Uo=(P??Er)(M),Hi=[..._o,{id:`${Date.now()}-assistant`,role:"assistant",content:Uo.content,cards:Uo.cards}];T(Hi),U(!1)},f))},Wo=n!==void 0,Ri=M=>M.type==="text"?st("div",{className:"flex items-start gap-3",children:[A("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:A(Nr,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),A("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:M.content})]}):M.type==="entity"?N?N("entity"):A("div",{className:yo,children:"Entity card preview"}):M.type==="intelligence"?N?N("intelligence"):A("div",{className:yo,children:"Intelligence card preview"}):M.type==="loading"?st("div",{className:"flex items-center gap-3",children:[A("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:A(Nr,{className:"h-3.5 w-3.5 animate-pulse text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),st("div",{className:"flex gap-1",children:[A("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"0ms"}}),A("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"150ms"}}),A("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"300ms"}})]})]}):null;return st("section",{className:o("flex h-full flex-col",k),children:[st("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[st("div",{children:[A("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),A("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),st("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[A("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),r]})]}),A("div",{className:"hide-scrollbar flex-1 overflow-y-auto px-8 py-6",children:A("div",{className:"mx-auto max-w-3xl space-y-6",children:Wo?n.map(M=>A("div",{children:s?s(M):Ri(M)},M.id)):O.map(M=>M.role==="user"?A("div",{className:"flex justify-end",children:A("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:M.content})},M.id):st("div",{className:"space-y-4",children:[st("div",{className:"flex items-start gap-3",children:[A("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:A(Nr,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),A("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:M.content})]}),M.cards?.length?A("div",{className:"ml-9 grid gap-4",children:M.cards.map(Xt=>N?A("div",{children:N(Xt)},Xt):A("div",{className:yo,children:Xt==="entity"?"Entity card preview":"Intelligence card preview"},Xt))}):null]},M.id))})}),!y&&!Wo?A("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-4",children:st("div",{className:"mx-auto max-w-3xl",children:[st("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:[A(Nr,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),A("input",{type:"text",value:W,onChange:M=>q(M.target.value),onKeyDown:M=>{M.key==="Enter"&&ze()},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"}),A("button",{type:"button",onClick:ze,disabled:!Yt,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:A(km,{className:"h-3.5 w-3.5"})})]}),A("p",{className:"mt-2 text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):A("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-3",children:A("p",{className:"text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})})]})}import{useEffect as xm,useRef as hm,useState as sn}from"react";import{jsx as wr,jsxs as xo}from"react/jsx-runtime";function Nm({trigger:t,items:e,className:r}){let[a,i]=sn(!1),[n,s]=sn({x:0,y:0}),l=hm(null);xm(()=>{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 xo("div",{ref:l,className:o("relative w-full",r),onContextMenu:c,children:[t,a&&wr("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=>xo("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:[xo("span",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[d.icon&&wr("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.icon}),wr("span",{children:d.label})]}),d.shortcut&&wr("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.shortcut})]},d.id))})]})}import{createContext as wm,forwardRef as No,useCallback as ho,useContext as Cm,useEffect as ln,useId as cn,useMemo as Tm,useRef as dn,useState as Pm}from"react";import{createPortal as Sm}from"react-dom";import{X as Mm}from"lucide-react";import{jsx as ot,jsxs as mn}from"react/jsx-runtime";var pn=wm(null);function wo(){let t=Cm(pn);if(!t)throw new Error("Dialog components must be used within Dialog");return t}function Em({open:t,defaultOpen:e=!1,onOpenChange:r,children:a}){let[i,n]=Pm(e),s=t!==void 0,l=s?t:i,c=ho(m=>{s||n(m),r?.(m)},[s,r]),d=Tm(()=>({open:l,setOpen:c}),[l,c]);return ot(pn.Provider,{value:d,children:a})}var bn=No(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=wo();return ot("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})});bn.displayName="DialogTrigger";var un=No(({className:t,children:e,showCloseButton:r=!0,initialFocusRef:a,...i},n)=>{let{open:s,setOpen:l}=wo(),c=cn(),d=cn(),m=dn(null),p=dn(null),b=ho(f=>{if(m.current=f,typeof n=="function"){n(f);return}n&&(n.current=f)},[n]),u=ho(()=>{l(!1)},[l]);return ln(()=>{if(!s)return;let f=w=>{w.key==="Escape"&&u()};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f)}},[u,s]),ln(()=>{if(!s)return;p.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let f=a?.current,w=m.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(f??w??m.current)?.focus(),()=>{p.current?.focus()}},[a,s]),!s||typeof document>"u"?null:Sm(mn("div",{className:o("fixed inset-0 z-50 flex items-center justify-center p-[var(--inkblot-spacing-6)]"),children:[ot("button",{type:"button","aria-label":"Close dialog",className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70"),onClick:u}),mn("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?ot(Co,{"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:ot(Mm,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}):null,ot("div",{id:c,className:"sr-only"}),ot("div",{id:d,className:"sr-only"}),e]})]}),document.body)});un.displayName="DialogContent";function Im({className:t,...e}){return ot("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function Lm({className:t,...e}){return ot("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function Am({className:t,...e}){return ot("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function Dm({className:t,...e}){return ot("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var Co=No(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=wo();return ot("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})});Co.displayName="DialogClose";import{createContext as Rm,forwardRef as Po,useCallback as To,useContext as Hm,useEffect as vn,useMemo as Bm,useRef as fn,useState as Om}from"react";import{createPortal as zm}from"react-dom";import{X as Fm}from"lucide-react";import{jsx as pt,jsxs as Um}from"react/jsx-runtime";var gn=Rm(null);function So(){let t=Hm(gn);if(!t)throw new Error("Drawer components must be used within Drawer");return t}function Vm({children:t,open:e,defaultOpen:r=!1,onOpenChange:a,side:i="right"}){let[n,s]=Om(r),l=e!==void 0,c=l?e:n,d=To(p=>{l||s(p),a?.(p)},[l,a]),m=Bm(()=>({open:c,setOpen:d,side:i}),[c,d,i]);return pt(gn.Provider,{value:m,children:t})}var kn=Po(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=So();return pt("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})});kn.displayName="DrawerTrigger";var yn=Po(({className:t,children:e,initialFocusRef:r,...a},i)=>{let{open:n,setOpen:s,side:l}=So(),c=fn(null),d=fn(null),m=To(b=>{if(c.current=b,typeof i=="function"){i(b);return}i&&(i.current=b)},[i]),p=To(()=>{s(!1)},[s]);return vn(()=>{if(!n)return;let b=u=>{u.key==="Escape"&&p()};return window.addEventListener("keydown",b),()=>{window.removeEventListener("keydown",b)}},[p,n]),vn(()=>{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:zm(Um("div",{className:"fixed inset-0 z-50",children:[pt("button",{type:"button","aria-label":"Close drawer",className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",onClick:p}),pt("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)});yn.displayName="DrawerContent";function Gm({className:t,...e}){return pt("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function Km({className:t,...e}){return pt("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function Wm({className:t,...e}){return pt("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 pt("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var xn=Po(({className:t,type:e="button",onClick:r,children:a,...i},n)=>{let{setOpen:s}=So();return pt("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??pt(Fm,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})});xn.displayName="DrawerClose";import{createContext as $m,forwardRef as Mo,useCallback as jm,useContext as qm,useEffect as Ym,useMemo as Xm,useRef as Zm,useState as Qm}from"react";import{ChevronDown as Jm}from"lucide-react";import{jsx as Ae,jsxs as Tn}from"react/jsx-runtime";var hn=$m(null);function Eo(){let t=qm(hn);if(!t)throw new Error("DropdownMenu components must be used within DropdownMenu");return t}function tp({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=Qm(r),s=Zm(null),l=e!==void 0,c=l?e:i,d=jm(p=>{l||n(p),a?.(p)},[l,a]);Ym(()=>{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=Xm(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Ae(hn.Provider,{value:m,children:Ae("div",{ref:s,className:"relative inline-flex",children:t})})}var Nn=Mo(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{open:l,setOpen:c}=Eo();return Tn("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?Ae(Jm,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});Nn.displayName="DropdownMenuTrigger";var wn=Mo(({className:t,...e},r)=>{let{open:a}=Eo();return a?Ae("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});wn.displayName="DropdownMenuContent";var Cn=Mo(({className:t,type:e="button",icon:r,onClick:a,children:i,...n},s)=>{let{setOpen:l}=Eo();return Tn("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]})});Cn.displayName="DropdownMenuItem";function ep({className:t,...e}){return Ae("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}import{useMemo as Pn,useState as rp}from"react";import{ChevronDown as op,ChevronUp as ap,Columns as np,GripVertical as ip,Image as En,Minus as sp,MousePointerClick as lp,Square as cp,Trash2 as dp,Type as Sn}from"lucide-react";import{jsx as B,jsxs as gt}from"react/jsx-runtime";var Mn=[{type:"heading",label:"Heading",icon:Sn},{type:"text",label:"Text",icon:Sn},{type:"image",label:"Image",icon:En},{type:"button",label:"Button",icon:cp},{type:"divider",label:"Divider",icon:sp},{type:"columns",label:"2 Columns",icon:np}],mp={heading:"Your Heading Here",text:"Write your content here. Click to edit this text block.",image:"https://placehold.co/600x200",button:"Click Me",divider:"",columns:"Column 1 | Column 2"};function EC({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]=rp(null),u=a!==void 0,f=u?a:p,w=v=>{u||b(v),i?.(v)},h=Pn(()=>!r||r.length===0?Mn:Mn.filter(v=>r.includes(v.type)),[r]),g=Pn(()=>t.reduce((v,x,C)=>(v[x.id]=C,v),{}),[t]),P=v=>{if(d)return;let x={id:`block-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:v,content:mp[v]};e([...t,x]),n?.(v,x)},N=(v,x)=>{d||(e(t.map(C=>C.id===v?{...C,content:x}:C)),c?.(v,x))},y=v=>{d||(e(t.filter(x=>x.id!==v)),s?.(v))},k=(v,x)=>{if(d)return;let C=g[v],S=C+x;if(S<0||S>=t.length)return;let D=[...t],[E]=D.splice(C,1);D.splice(S,0,E),e(D),l?.(v,x)};return gt("section",{className:o("flex gap-4",m),children:[gt("aside",{className:"w-44 shrink-0",children:[B("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Blocks"}),B("div",{className:"mt-2 space-y-1",children:h.map(v=>gt("button",{type:"button",onClick:()=>P(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:[B(v.icon,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)]"}),v.label]},v.type))})]}),B("div",{className:"glass min-h-[400px] flex-1 rounded-[var(--inkblot-radius-lg)] p-6",children:t.length===0?gt("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-center",children:[B(lp,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/40"}),gt("div",{children:[B("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Drop blocks here to build your email"}),B("p",{className:"mt-1 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]/60",children:"or use AI to generate a full layout"})]})]}):B("div",{className:"space-y-2",children:t.map((v,x)=>gt("article",{className:"group flex items-start gap-2",children:[B("div",{className:"pt-1 text-[var(--inkblot-semantic-color-text-tertiary)]",children:B(ip,{className:"h-3.5 w-3.5"})}),gt("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"?B("h2",{contentEditable:!d&&f===v.id,suppressContentEditableWarning:!0,onClick:()=>{d||w(v.id)},onBlur:C=>{N(v.id,C.currentTarget.textContent??""),w(null)},className:"cursor-text text-xl font-bold text-[var(--inkblot-semantic-color-text-primary)] outline-none",children:v.content}):null,v.type==="text"?B("p",{contentEditable:!d&&f===v.id,suppressContentEditableWarning:!0,onClick:()=>{d||w(v.id)},onBlur:C=>{N(v.id,C.currentTarget.textContent??""),w(null)},className:"cursor-text text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)] outline-none",children:v.content}):null,v.type==="image"?B("div",{className:"flex h-32 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:B(En,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/50"})}):null,v.type==="button"?B("div",{className:"flex justify-center",children:B("span",{contentEditable:!d&&f===v.id,suppressContentEditableWarning:!0,onClick:()=>{d||w(v.id)},onBlur:C=>{N(v.id,C.currentTarget.textContent??""),w(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"?B("hr",{className:"my-2 border-[var(--inkblot-semantic-color-border-default)]"}):null,v.type==="columns"?gt("div",{className:"grid grid-cols-2 gap-4",children:[B("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"}),B("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]}),gt("div",{className:"flex flex-col gap-1 opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:[B("button",{type:"button",onClick:()=>k(v.id,-1),disabled:d||x===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:B(ap,{className:"h-3 w-3"})}),B("button",{type:"button",onClick:()=>k(v.id,1),disabled:d||x===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:B(op,{className:"h-3 w-3"})}),B("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:B(dp,{className:"h-3 w-3"})})]})]},v.id))})})]})}import{forwardRef as pp}from"react";import{jsx as De,jsxs as In}from"react/jsx-runtime";var Ln=pp(({className:t,...e},r)=>De("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}));Ln.displayName="Form";function bp({className:t,label:e,hint:r,error:a,children:i,requiredIndicator:n,...s}){return In("div",{className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:[e?In("p",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:[e,n?De("span",{className:"ml-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}):null,i,a?De("p",{className:"text-[var(--inkblot-semantic-color-status-error)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}):r?De("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:r}):null]})}function up({className:t,...e}){return De("div",{className:o("mt-[var(--inkblot-spacing-2)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}import{useEffect as vp,useRef as fp}from"react";import{jsx as pe,jsxs as be}from"react/jsx-runtime";var gp=[{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}],kp=[{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 yp(t,e,r,a){return t>=70?e:t>=50?r:a}function Ht(t,e){for(let r of e){let a=t.getPropertyValue(r).trim();if(a)return a}return""}function Io(t,e,r){if(e){t.font=e;return}t.font=r}function KC({title:t="Entity Graph",subtitle:e,nodes:r=gp,edges:a=kp,className:i}){let n=fp(null);vp(()=>{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=Ht(b,["--inkblot-semantic-color-border-default","--inkblot-semantic-color-border-strong"]),f=Ht(b,["--inkblot-semantic-color-text-tertiary","--inkblot-semantic-color-text-secondary"]),w=Ht(b,["--inkblot-semantic-color-background-secondary","--inkblot-semantic-color-background-primary"]),h=Ht(b,["--inkblot-semantic-color-status-success","--inkblot-semantic-color-interactive-primary"]),g=Ht(b,["--inkblot-semantic-color-status-warning","--inkblot-semantic-color-status-info"]),P=Ht(b,["--inkblot-semantic-color-status-error","--inkblot-semantic-color-status-warning"]),N=Ht(b,["--inkblot-semantic-typography-body-small","--inkblot-semantic-typography-body-medium"]),y=Ht(b,["--inkblot-semantic-typography-body-medium","--inkblot-semantic-typography-body-small"]),k=c.font;a.forEach(v=>{let x=r.find(S=>S.id===v.from),C=r.find(S=>S.id===v.to);!x||!C||(c.beginPath(),c.moveTo(x.x,x.y),c.lineTo(C.x,C.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 x=yp(v.score,h,g,P),C=v.kind==="org"?28:22;c.beginPath(),c.arc(v.x,v.y,C+8,0,Math.PI*2),c.fillStyle=x,c.globalAlpha=.08,c.fill(),c.globalAlpha=1,c.beginPath(),c.arc(v.x,v.y,C,0,Math.PI*2),c.fillStyle=w,c.strokeStyle=x,c.globalAlpha=.7,c.lineWidth=1.5,c.fill(),c.stroke(),c.globalAlpha=1,c.fillStyle=x,Io(c,N,k),c.textAlign="center",c.textBaseline="middle",c.fillText(v.kind==="org"?"\u2B21":"\u25CF",v.x,v.y),c.fillStyle=f,Io(c,y,k),c.fillText(v.label,v.x,v.y+C+16),c.fillStyle=x,c.globalAlpha=.8,Io(c,N,k),c.fillText(String(v.score),v.x,v.y+C+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 be("section",{className:o("flex h-full flex-col",i),children:[be("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[be("div",{children:[pe("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),pe("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]}),be("div",{className:"flex items-center gap-4 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[be("span",{className:"flex items-center gap-1.5",children:[pe("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),"Orgs"]}),be("span",{className:"flex items-center gap-1.5",children:[pe("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-warning)]"}),"People"]})]})]}),pe("div",{className:"relative flex-1",children:pe("canvas",{ref:n,className:"h-full w-full"})})]})}import{useCallback as xp,useEffect as hp,useMemo as Np,useState as Lo}from"react";import{ArrowLeft as wp,ArrowRight as Cp,Check as Tp,X as Pp}from"lucide-react";import{Fragment as An,jsx as at,jsxs as Bt}from"react/jsx-runtime";var Sp=[{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 XC({steps:t=Sp,open:e,defaultOpen:r=!0,onOpenChange:a,stepIndex:i,defaultStepIndex:n=0,onStepIndexChange:s,onComplete:l,className:c}){let[d,m]=Lo(r),[p,b]=Lo(n),[u,f]=Lo(null),w=e??d,h=i??p,g=t[h],P=h===t.length-1,N=S=>{e===void 0&&m(S),a?.(S)},y=S=>{let D=Math.min(Math.max(S,0),Math.max(t.length-1,0));i===void 0&&b(D),s?.(D)},k=xp(()=>{let S=document.querySelector(g.target);if(!S){f(null);return}f(S.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(P){N(!1),l();return}y(h+1)},x=()=>{y(h-1)},C=Np(()=>{if(!u)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};let S=16,D=320;return g.position==="right"?{top:u.top+u.height/2,left:u.right+S,transform:"translateY(-50%)"}:g.position==="left"?{top:u.top+u.height/2,left:u.left-D-S,transform:"translateY(-50%)"}:g.position==="top"?{top:u.top-S,left:u.left+u.width/2,transform:"translate(-50%, -100%)"}:{top:u.bottom+S,left:u.left+u.width/2,transform:"translateX(-50%)"}},[g.position,u]);return w?Bt("div",{className:o("fixed inset-0 z-[200]",c),children:[u?at("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)"}}):at("div",{className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-inverse)]/70"}),Bt("div",{style:{...C,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:[Bt("div",{className:"mb-3 flex items-center justify-between",children:[Bt("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:["Step ",h+1," of ",t.length]}),at("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:at(Pp,{className:"h-3 w-3"})})]}),at("h3",{className:"mb-1.5 text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:g.title}),at("p",{className:"text-xs leading-relaxed text-[var(--inkblot-semantic-color-text-tertiary)]",children:g.description}),at("div",{className:"mb-3 mt-4 flex gap-1",children:t.map((S,D)=>at("span",{className:o("h-1 flex-1 rounded-full",D<=h?"bg-[var(--inkblot-semantic-color-interactive-primary)]":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},`${D}-progress`))}),Bt("div",{className:"flex items-center justify-between",children:[Bt("button",{type:"button",onClick:x,disabled:h===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:[at(wp,{className:"h-3 w-3"}),"Back"]}),at("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:P?Bt(An,{children:[at(Tp,{className:"h-3 w-3"}),"Get Started"]}):Bt(An,{children:["Next",at(Cp,{className:"h-3 w-3"})]})})]})]})]}):null}import{createContext as Mp,forwardRef as Dn,useContext as Ep,useMemo as Ip,useRef as Lp,useState as Ap}from"react";import{jsx as Cr}from"react/jsx-runtime";var Rn=Mp(null);function Hn(){let t=Ep(Rn);if(!t)throw new Error("HoverCard components must be used within HoverCard");return t}function Dp({children:t,openDelay:e=120,closeDelay:r=120}){let[a,i]=Ap(!1),n=Lp(null),s=Ip(()=>({open:a,setOpen:i,openDelay:e,closeDelay:r,timeoutRef:n}),[a,e,r]);return Cr(Rn.Provider,{value:s,children:Cr("div",{className:"relative inline-flex",children:t})})}var Bn=Dn(({className:t,onMouseEnter:e,onMouseLeave:r,onFocus:a,onBlur:i,...n},s)=>{let{setOpen:l,openDelay:c,closeDelay:d,timeoutRef:m}=Hn();return Cr("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})});Bn.displayName="HoverCardTrigger";var On=Dn(({className:t,onMouseEnter:e,onMouseLeave:r,...a},i)=>{let{open:n,setOpen:s,closeDelay:l,timeoutRef:c}=Hn();return n?Cr("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});On.displayName="HoverCardContent";import{forwardRef as Rp,useMemo as Hp,useRef as Bp,useState as Op}from"react";import{jsx as zn}from"react/jsx-runtime";var Fn=Rp(({className:t,disabled:e,length:r=6,value:a,defaultValue:i="",onValueChange:n,containerProps:s,...l},c)=>{let[d,m]=Op(i.slice(0,r)),p=Bp([]),b=a!==void 0,u=b?a.slice(0,r):d,f=Hp(()=>Array.from({length:r},(y,k)=>u[k]??""),[u,r]),w=y=>{let k=y.slice(0,r);b||m(k),n?.(k)},h=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),x=f.map((C,S)=>S===y?v:C);w(x.join("")),v&&y<r-1&&h(y+1)},P=(y,k)=>{if(k.key==="Backspace"&&!f[y]&&y>0){let v=f.map((x,C)=>C===y-1?"":x);w(v.join("")),h(y-1)}k.key==="ArrowLeft"&&y>0&&(k.preventDefault(),h(y-1)),k.key==="ArrowRight"&&y<r-1&&(k.preventDefault(),h(y+1))};return zn("div",{ref:c,onPaste:y=>{y.preventDefault();let k=y.clipboardData.getData("text").replace(/[^0-9A-Za-z]/g,"").slice(0,r);k&&(w(k),h(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)=>zn("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=>P(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}`))})});Fn.displayName="InputOtp";import{jsx as Ao,jsxs as Fp}from"react/jsx-runtime";var zp=[{label:"Revenue Confidence",value:82,tone:"success"},{label:"Churn Risk",value:23,tone:"warning",inverted:!0},{label:"Momentum",value:67,tone:"primary"}];function vT({title:t="Intelligence Scores",items:e=zp,className:r}){return Fp("article",{className:o("glass rounded-[var(--inkblot-radius-lg)] p-5",r),children:[Ao("h3",{className:"mb-4 text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),Ao("div",{className:"grid grid-cols-3 gap-6",children:e.map(a=>Ao(an,{label:a.label,value:a.value,tone:a.tone,color:a.color,inverted:a.inverted},a.label))})]})}import{forwardRef as Vp}from"react";import{jsx as Gp,jsxs as Kp}from"react/jsx-runtime";var Vn=Vp(({className:t,children:e,requiredIndicator:r,...a},i)=>Kp("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?Gp("span",{className:"text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}));Vn.displayName="Label";import{createContext as Gn,forwardRef as Re,useContext as Kn,useMemo as Wn,useRef as Wp,useState as _p}from"react";import{ChevronDown as Up}from"lucide-react";import{jsx as Ot,jsxs as Qn}from"react/jsx-runtime";var _n=Gn(null);function Do(){let t=Kn(_n);if(!t)throw new Error("Menubar components must be used within Menubar");return t}var Un=Gn(null);function $n(){let t=Kn(Un);if(!t)throw new Error("Menubar menu components must be used within MenubarMenu");return t}var jn=Re(({className:t,...e},r)=>{let[a,i]=_p(null),n=Wn(()=>({openMenuId:a,setOpenMenuId:i}),[a]);return Ot(_n.Provider,{value:n,children:Ot("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})})});jn.displayName="Menubar";function $p({id:t,className:e,...r}){let a=Wn(()=>({menuId:t}),[t]);return Ot(Un.Provider,{value:a,children:Ot("div",{className:o("relative inline-flex",e),...r})})}var qn=Re(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{openMenuId:l,setOpenMenuId:c}=Do(),{menuId:d}=$n(),m=l===d;return Qn("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?Ot(Up,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});qn.displayName="MenubarTrigger";var Yn=Re(({className:t,...e},r)=>{let{openMenuId:a}=Do(),{menuId:i}=$n();return a!==i?null:Ot("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})});Yn.displayName="MenubarContent";var Xn=Re(({className:t,type:e="button",icon:r,...a},i)=>Qn("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]}));Xn.displayName="MenubarItem";function jp({className:t,...e}){return Ot("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}var Zn=Re(({className:t,...e},r)=>{let{setOpenMenuId:a}=Do(),i=Wp(null);return Ot("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})});Zn.displayName="MenubarCloseZone";import{ChevronRight as Jn}from"lucide-react";import{jsx as Tr,jsxs as ti}from"react/jsx-runtime";function qp({items:t,className:e,onItemSelect:r}){return Tr("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=>Tr(Yp,{item:a,onSelect:()=>r?.(a)},a.id))})}function Yp({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?ti("a",{href:t.href,"aria-current":t.active?"page":void 0,className:i,onClick:()=>e?.(),...a,children:[t.icon,t.label,t.active?null:Tr(Jn,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]}):ti("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:Tr(Jn,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]})}import{useMemo as Xp,useState as ei}from"react";import{ArrowLeft as Zp,ArrowRight as Qp,Briefcase as Jp,Building2 as tb,Check as eb,Command as rb,Globe as ob,Megaphone as ab,Sparkles as nb,Target as ri,Users as ib}from"lucide-react";import{Fragment as oi,jsx as K,jsxs as nt}from"react/jsx-runtime";var sb=[{id:"company",question:"What's your company name?",subtitle:"We'll personalize your workspace around your brand.",icon:tb,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:ib,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:Jp,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:ri,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:ri,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:ab,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:ob,type:"input",field:"website",placeholder:"e.g. https://acme.com"}];function KT({onComplete:t,steps:e=sb,value:r,defaultValue:a,onValueChange:i,stepIndex:n,defaultStepIndex:s=0,onStepIndexChange:l,onCancel:c,showSkip:d=!0,className:m}){let[p,b]=ei(s),[u,f]=ei(a??{}),w=n!==void 0,h=r!==void 0,g=w?n:p,P=h?r:u,N=e[g],y=P[N.field]??(N.type==="multi-select"?[]:""),k=g===e.length-1,v=Xp(()=>N.type==="multi-select"?y.length>0:N.id==="website"?!0:typeof y=="string"&&y.trim().length>0,[y,N.id,N.type]),x=I=>{let O=Math.min(Math.max(I,0),Math.max(e.length-1,0));w||b(O),l?.(O)},C=I=>{h||f(I),i?.(I)},S=()=>x(g-1),D=()=>{if(k){t(P);return}x(g+1)},E=(I,O)=>{C({...P,[I]:O})},F=(I,O)=>{let L=P[I]??[],W=L.includes(O)?L.filter($=>$!==O):[...L,O];E(I,W)};return nt("section",{className:o("fixed inset-0 z-[100] flex items-center justify-center bg-[var(--inkblot-semantic-color-background-primary)]",m),children:[nt("div",{className:"absolute inset-0 overflow-hidden",children:[K("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]"}),K("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]"})]}),nt("div",{className:"relative w-full max-w-lg px-6",children:[nt("header",{className:"mb-12 flex items-center justify-center gap-2",children:[K("span",{className:"flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:K(rb,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-inverse)]"})}),K("span",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:"Citron OS"})]}),K("div",{className:"mb-10 flex gap-1",children:e.map((I,O)=>K("span",{className:o("h-0.5 flex-1 rounded-full",O<g?"bg-[var(--inkblot-semantic-color-interactive-primary)]":O===g?"bg-[var(--inkblot-semantic-color-interactive-primary)]/60":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},I.id))}),nt("div",{className:"space-y-6",children:[nt("div",{children:[K("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:K(N.icon,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]"})}),K("h2",{className:"text-xl font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:N.question}),K("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:N.subtitle})]}),N.type==="input"?K("input",{autoFocus:!0,value:y||"",onChange:I=>E(N.field,I.target.value),placeholder:N.placeholder,onKeyDown:I=>{I.key==="Enter"&&v&&D()},className:"w-full rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-5 py-3.5 text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}):null,N.type==="select"?K("div",{className:"grid grid-cols-2 gap-2",children:N.options?.map(I=>K("button",{type:"button",onClick:()=>E(N.field,I.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===I.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:I.label},I.value))}):null,N.type==="multi-select"?K("div",{className:"grid grid-cols-2 gap-2",children:N.options?.map(I=>{let O=y.includes(I.value);return nt("button",{type:"button",onClick:()=>F(N.field,I.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)]",O?"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:[K("span",{className:o("flex h-4 w-4 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] border",O?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]":"border-[var(--inkblot-semantic-color-border-default)]"),children:O?K(eb,{className:"h-2.5 w-2.5 text-[var(--inkblot-semantic-color-text-inverse)]"}):null}),I.label]},I.value)})}):null]}),nt("footer",{className:"mt-10 flex items-center justify-between",children:[nt("button",{type:"button",onClick:S,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:[K(Zp,{className:"h-3 w-3"}),"Back"]}),nt("div",{className:"flex items-center gap-3",children:[!k&&d?K("button",{type:"button",onClick:c??D,className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Skip"}):null,K("button",{type:"button",onClick:D,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?nt(oi,{children:[K(nb,{className:"h-3 w-3"}),"Launch Citron OS"]}):nt(oi,{children:["Continue",K(Qp,{className:"h-3 w-3"})]})})]})]})]})]})}import{ChevronLeft as lb,ChevronRight as cb}from"lucide-react";import{jsx as He,jsxs as mb}from"react/jsx-runtime";function db({page:t,totalPages:e,onPageChange:r,className:a}){let i=Array.from({length:e},(n,s)=>s+1);return mb("nav",{"aria-label":"Pagination",className:o("flex items-center gap-[var(--inkblot-spacing-2)]",a),children:[He("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:He(lb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}),i.map(n=>{let s=n===t;return He("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}`)}),He("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:He(cb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})]})}import{createContext as pb,forwardRef as Ro,useCallback as bb,useContext as ub,useEffect as vb,useMemo as fb,useRef as gb,useState as kb}from"react";import{jsx as Be}from"react/jsx-runtime";var ai=pb(null);function Ho(){let t=ub(ai);if(!t)throw new Error("Popover components must be used within Popover");return t}function yb({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=kb(r),s=gb(null),l=e!==void 0,c=l?e:i,d=bb(p=>{l||n(p),a?.(p)},[l,a]);vb(()=>{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=fb(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Be(ai.Provider,{value:m,children:Be("div",{ref:s,className:"relative inline-flex",children:t})})}var ni=Ro(({className:t,type:e="button",onClick:r,...a},i)=>{let{open:n,setOpen:s}=Ho();return Be("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})});ni.displayName="PopoverTrigger";var ii=Ro(({className:t,...e},r)=>{let{open:a}=Ho();return a?Be("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});ii.displayName="PopoverContent";var si=Ro(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Ho();return Be("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})});si.displayName="PopoverClose";import{forwardRef as xb}from"react";import{jsx as Bo,jsxs as hb}from"react/jsx-runtime";var li=xb(({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:[Bo("div",{className:"h-[var(--inkblot-spacing-2)] overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:Bo("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?Bo("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:l}):null]})});li.displayName="Progress";import{forwardRef as di,useState as Nb}from"react";import{jsx as Oe,jsxs as ci}from"react/jsx-runtime";var mi=di(({className:t,options:e,value:r,defaultValue:a,onValueChange:i,name:n="radio-group",...s},l)=>{let[c,d]=Nb(a??""),m=r!==void 0,p=m?r:c,b=u=>{m||d(u),i?.(u)};return Oe("div",{ref:l,role:"radiogroup",className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:e.map(u=>ci("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:[Oe(Oo,{type:"radio",name:n,value:u.value,checked:p===u.value,disabled:u.disabled,onChange:()=>b(u.value)}),ci("span",{className:"grid gap-[var(--inkblot-spacing-1)]",children:[Oe("span",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:u.label}),u.description?Oe("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:u.description}):null]})]},u.value))})});mi.displayName="RadioGroup";var Oo=di(({className:t,...e},r)=>Oe("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}));Oo.displayName="RadioGroupItem";import{useMemo as wb,useState as Cb}from"react";import{GripVertical as Tb,GripHorizontal as Pb}from"lucide-react";import{jsx as ue,jsxs as Mb}from"react/jsx-runtime";function Sb({primary:t,secondary:e,direction:r="horizontal",defaultPrimarySize:a=50,minPrimarySize:i=20,minSecondarySize:n=20,className:s}){let[l,c]=Cb(a),d=r==="horizontal",m=wb(()=>d?{gridTemplateColumns:`${l}fr auto ${100-l}fr`}:{gridTemplateRows:`${l}fr auto ${100-l}fr`},[d,l]),p=(b,u)=>{let f=u.getBoundingClientRect(),w=d?(b.x-f.left)/f.width*100:(b.y-f.top)/f.height*100,h=100-n,g=Math.min(h,Math.max(i,w));c(g)};return Mb("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:[ue("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:t}),ue("div",{className:o(d?"w-[var(--inkblot-spacing-2)]":"h-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-border-default)]"),children:ue("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=h=>{p({x:h.clientX,y:h.clientY},u)},w=()=>{window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",w)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",w)},children:d?ue(Tb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):ue(Pb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})}),ue("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:e})]})}import{forwardRef as Eb}from"react";import{jsx as Ib}from"react/jsx-runtime";var pi=Eb(({className:t,maxHeight:e="var(--inkblot-size-touch-target-min)",...r},a)=>Ib("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}));pi.displayName="ScrollArea";import{ChevronDown as Lb}from"lucide-react";import{forwardRef as Ab}from"react";import{jsx as zo,jsxs as bi}from"react/jsx-runtime";var ui=Ab(({className:t,options:e,placeholder:r,error:a,disabled:i,...n},s)=>bi("div",{className:"relative w-full",children:[bi("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?zo("option",{value:"",disabled:!0,children:r}):null,e.map(l=>zo("option",{value:l.value,disabled:l.disabled,children:l.label},l.value))]}),zo(Lb,{"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)]"})]}));ui.displayName="Select";import{forwardRef as Db}from"react";import{jsx as Rb}from"react/jsx-runtime";var vi=Db(({className:t,orientation:e="horizontal",decorative:r=!0,...a},i)=>Rb("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}));vi.displayName="Separator";import{X as Hb}from"lucide-react";import{useEffect as Bb}from"react";import{jsx as ve,jsxs as Pr}from"react/jsx-runtime";var Ob={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 zb({open:t,onOpenChange:e,side:r="right",title:a,description:i,showCloseButton:n=!0,className:s,overlayClassName:l,children:c,...d}){return Bb(()=>{if(!t)return;let m=p=>{p.key==="Escape"&&e?.(!1)};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[t,e]),t?Pr("div",{className:"fixed inset-0 z-50",children:[ve("button",{type:"button","aria-label":"Close panel",onClick:()=>e?.(!1),className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",l)}),Pr("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)]",Ob[r],s),...d,children:[(a||i||n)&&Pr("header",{className:"mb-4 flex items-start justify-between gap-4",children:[Pr("div",{children:[a?ve("h3",{className:"text-base font-semibold",children:a}):null,i?ve("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:i}):null]}),n?ve("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:ve(Hb,{className:"size-4"})}):null]}),ve("div",{children:c})]})]}):null}import{PanelLeftClose as Fb,PanelLeftOpen as Vb}from"lucide-react";import{Fragment as Kb,jsx as kt,jsxs as Sr}from"react/jsx-runtime";function Gb({items:t,collapsed:e=!1,onCollapsedChange:r,header:a,footer:i,className:n,...s}){return Sr("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:[Sr("div",{className:"mb-3 flex items-center justify-between gap-2",children:[kt("div",{className:o("truncate text-sm font-semibold",e&&"sr-only"),children:a}),kt("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?kt(Vb,{className:"size-4"}):kt(Fb,{className:"size-4"})})]}),kt("nav",{className:"flex flex-1 flex-col gap-1",children:t.map(l=>{let c=l.icon;return Sr("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?kt(c,{className:"size-4 shrink-0"}):null,e?null:Sr(Kb,{children:[kt("span",{className:"truncate",children:l.label}),l.badge?kt("span",{className:"ml-auto",children:l.badge}):null]})]},l.id)})}),i?kt("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 Wb,useMemo as _b}from"react";import{jsx as Mr,jsxs as fi}from"react/jsx-runtime";var gi=Wb(({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=_b(()=>i<=a?0:(p-a)/(i-a)*100,[p,a,i]);return fi("div",{className:o("w-full",t),children:[fi("div",{className:"mb-2 flex items-center justify-between text-sm",children:[Mr("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:a}),l?Mr("span",{className:"font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:p}):null,Mr("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:i})]}),Mr("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})]})});gi.displayName="Slider";import{useMemo as Jb}from"react";import{AlertTriangle as Ub,CheckCircle2 as $b,CircleX as jb,Info as qb,X as Yb}from"lucide-react";import{jsx as lt,jsxs as ki}from"react/jsx-runtime";var Xb={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)]"},Zb={info:lt(qb,{className:"size-4"}),success:lt($b,{className:"size-4"}),warning:lt(Ub,{className:"size-4"}),error:lt(jb,{className:"size-4"})};function Fo({title:t,description:e,variant:r="info",action:a,onClose:i,className:n,...s}){return lt("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",Xb[r],n),...s,children:ki("div",{className:"flex items-start gap-3",children:[lt("span",{className:"mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]",children:Zb[r]}),ki("div",{className:"min-w-0 flex-1",children:[lt("p",{className:"text-sm font-semibold",children:t}),e?lt("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e}):null,a?lt("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?lt("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:lt(Yb,{className:"size-4"})}):null]})})}import{jsx as yi}from"react/jsx-runtime";var Qb={"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 Vo({toasts:t,position:e="bottom-right",onDismiss:r,className:a,...i}){return yi("div",{className:o("fixed z-50 flex w-full max-w-[360px] flex-col gap-2",Qb[e],a),...i,children:t.map(n=>yi(Fo,{...n,onClose:()=>r?.(n.id)},n.id))})}import{jsx as eu}from"react/jsx-runtime";function tu({toasts:t,maxVisible:e=3,position:r="bottom-right",onDismiss:a,...i}){let n=Jb(()=>t.slice(0,e),[t,e]);return eu(Vo,{toasts:n,position:r,onDismiss:a,...i})}import{forwardRef as ru,useState as ou}from"react";import{jsx as xi}from"react/jsx-runtime";var hi=ru(({checked:t,defaultChecked:e=!1,onCheckedChange:r,disabled:a,className:i,...n},s)=>{let[l,c]=ou(e),d=t??l;return xi("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:xi("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")})})});hi.displayName="Switch";import{forwardRef as zt}from"react";import{ArrowDown as au,ArrowUp as nu,ArrowUpDown as iu}from"lucide-react";import{jsx as X,jsxs as Ii}from"react/jsx-runtime";var Ni=zt(({className:t,...e},r)=>X("div",{className:"w-full overflow-x-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]",children:X("table",{ref:r,className:o("w-full border-collapse bg-[var(--inkblot-semantic-color-background-secondary)]",t),...e})})),wi=zt(({className:t,...e},r)=>X("thead",{ref:r,className:o("bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Ci=zt(({className:t,...e},r)=>X("tbody",{ref:r,className:o(t),...e})),Ti=zt(({className:t,...e},r)=>X("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})),Pi=zt(({className:t,children:e,sortable:r=!1,sortDirection:a,onSort:i,sortButtonProps:n,...s},l)=>X("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?Ii("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"?X(nu,{className:"h-3.5 w-3.5","aria-hidden":!0}):a==="desc"?X(au,{className:"h-3.5 w-3.5","aria-hidden":!0}):X(iu,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):e})),Si=zt(({className:t,...e},r)=>X("td",{ref:r,className:o("px-4 py-3 text-sm",t),...e})),Mi=zt(({className:t,...e},r)=>X("caption",{ref:r,className:o("p-3 text-left text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",t),...e})),Ei=zt(({className:t,colSpan:e,title:r="No data available",description:a="Adjust filters or add records to populate this table.",...i},n)=>X("tr",{children:X("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:Ii("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[X("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:r}),X("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:a})]})})}));Ni.displayName="Table";wi.displayName="TableHeader";Ci.displayName="TableBody";Ti.displayName="TableRow";Pi.displayName="TableHead";Si.displayName="TableCell";Mi.displayName="TableCaption";Ei.displayName="TableEmptyState";import{useMemo as su,useState as lu}from"react";import{jsx as Go,jsxs as du}from"react/jsx-runtime";function cu({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]=lu(l),m=e??c,p=su(()=>t.find(u=>u.id===m)??t.find(u=>!u.disabled),[m,t]),b=u=>{e===void 0&&d(u),a?.(u)};return du("div",{className:o("w-full",n),...s,children:[Go("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 Go("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)})}),Go("div",{className:"mt-3 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4 text-[var(--inkblot-semantic-color-text-primary)]",children:p?.content})]})}import{forwardRef as mu}from"react";import{jsx as bu}from"react/jsx-runtime";var pu={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},Li=mu(({className:t,error:e,disabled:r,resize:a="vertical",...i},n)=>bu("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}));Li.displayName="Textarea";import{useState as uu}from"react";import{jsx as gu,jsxs as ku}from"react/jsx-runtime";var vu={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 fu({content:t,side:e="top",open:r,defaultOpen:a=!1,onOpenChange:i,disabled:n=!1,className:s,children:l,...c}){let[d,m]=uu(a),p=r??d,b=u=>{r===void 0&&m(u),i?.(u)};return ku("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?gu("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",vu[e]),children:t}):null]})}import{Sparkles as yu}from"lucide-react";import{jsx as yt,jsxs as Ko}from"react/jsx-runtime";function xu({item:t,onSelect:e,onGenerateWithAI:r}){return Ko("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?yt("img",{src:t.thumbnail,alt:t.title,className:"w-full rounded-t-[var(--inkblot-radius-lg)] object-cover"}):yt("div",{className:"flex h-32 items-center justify-center rounded-t-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:yt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No preview"})}),Ko("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-4)]",children:[t.category&&yt("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}),yt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.description&&yt("p",{className:"line-clamp-2 text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.description}),r&&Ko("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:[yt(yu,{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 yt("div",{className:o("gap-[var(--inkblot-spacing-4)]",i),style:{columns:e,columnGap:"var(--inkblot-spacing-4)"},children:t.map(n=>yt(xu,{item:n,onSelect:r,onGenerateWithAI:a},n.id))})}import{useEffect as Nu,useCallback as wu}from"react";import{X as Cu,AlertTriangle as Tu,ArrowUp as Pu,ArrowDown as Su,Minus as Ai,Calendar as Mu,User as Eu}from"lucide-react";import{Fragment as Ru,jsx as _,jsxs as bt}from"react/jsx-runtime";var Iu={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)]"}},Lu={urgent:{label:"Urgent",icon:Tu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},high:{label:"High",icon:Pu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},medium:{label:"Medium",icon:Ai,color:"text-[var(--inkblot-semantic-color-status-info)]"},low:{label:"Low",icon:Su,color:"text-[var(--inkblot-semantic-color-text-tertiary)]"}};function Au(t){return t.completed?"done":"todo"}function fe({label:t,children:e}){return bt("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 Du({task:t,open:e,onOpenChange:r,extraFields:a,onStatusChange:i,onAssigneeChange:n,className:s}){let l=wu(()=>r?.(!1),[r]);if(Nu(()=>{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?Au(t):null,d=c?Iu[c]:null,m=t?Lu[t.priority]:null,p=m?.icon??Ai;return bt("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?bt(Ru,{children:[bt("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:[bt("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:_(Cu,{className:"h-4 w-4","aria-hidden":!0})})]}),bt("div",{className:"flex-1 overflow-y-auto p-[var(--inkblot-spacing-6)]",children:[_(fe,{label:"Status",children:bt("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]})}),_(fe,{label:"Priority",children:bt("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]})}),_(fe,{label:"Assignee",children:bt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[_(Eu,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.assignee]})}),_(fe,{label:"Due date",children:bt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[_(Mu,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.date]})}),_(fe,{label:"Company",children:t.company}),a?.map(b=>_(fe,{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 Di,jsx as ct,jsxs as jt}from"react/jsx-runtime";function Hu({name:t,description:e,icon:r,connected:a=!1,onConnect:i,onDisconnect:n,className:s}){return jt("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:[jt("div",{className:"flex items-start gap-[var(--inkblot-spacing-4)]",children:[ct("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??ct("span",{className:"h-5 w-5 rounded-full bg-[var(--inkblot-semantic-color-border-default)]"})}),jt("div",{className:"min-w-0 flex-1",children:[ct("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t}),ct("p",{className:"mt-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})]}),ct("div",{className:"flex items-center justify-between",children:a?jt(Di,{children:[jt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[ct("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),ct("span",{className:"text-[var(--inkblot-semantic-color-status-success)]",children:"Connected"})]}),n&&ct("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"})]}):jt(Di,{children:[jt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[ct("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]"}),ct("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Not connected"})]}),i&&ct("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 hM="var(--inkblot-semantic-color-background-primary)",NM="var(--inkblot-semantic-color-background-secondary)",wM="var(--inkblot-semantic-color-border-default)",CM="var(--inkblot-semantic-color-text-primary)",TM="var(--inkblot-semantic-color-text-secondary)",PM="var(--inkblot-semantic-color-interactive-primary)",SM="var(--inkblot-semantic-color-interactive-secondary)",MM="var(--inkblot-semantic-color-interactive-secondary-hover)";export{ge as AIComposeInput,qh as AIEmailGenerator,Vc as Accordion,Lr as ActionButtons,nr as ActivityStream,$c as AdvancedDropdown,Jc as Alert,rd as AlertDialog,SN as AppLayout,ya as AppNavigationRail,ja as AppSidebar,Ld as AspectRatio,$i as AssistantPanel,jr as Avatar,Rd as Badge,Od as Breadcrumb,ke as Button,br as CITRON_THEME_STORAGE_KEY,$d as Calendar,Ke as CampaignTable,mo as CanvasProvider,jd as Card,Zd as CardContent,Xd as CardDescription,Qd as CardFooter,qd as CardHeader,Yd as CardTitle,rm as Carousel,ji as CenteredAssistantChat,om as Chart,im as Checkbox,an as CircularScore,dm as Collapsible,um as Command,xa as CommandBar,$w as CommandCanvas,Nm as ContextMenu,Em as Dialog,Co as DialogClose,un as DialogContent,Am as DialogDescription,Dm as DialogFooter,Im as DialogHeader,Lm as DialogTitle,bn as DialogTrigger,Vm as Drawer,xn as DrawerClose,yn as DrawerContent,Wm as DrawerDescription,_m as DrawerFooter,Gm as DrawerHeader,Km as DrawerTitle,kn as DrawerTrigger,tp as DropdownMenu,wn as DropdownMenuContent,Cn as DropdownMenuItem,ep as DropdownMenuSeparator,Nn as DropdownMenuTrigger,EC as EmailBlockEditor,La as EmailCampaignsView,Ge as EmailComposeActionButtons,Ue as EmailTemplatesSection,Jo as EntityCard,ta as EntityCommandCard,$e as ErrorBoundary,Ya as EventFeed,ra as EventRow,aa as EventStreamFeed,ha as EventStreamSidebar,Ln as Form,up as FormActions,bp as FormField,Zt as GlobalAssistantChat,KC as GraphView,XC as GuidedTour,Dp as HoverCard,On as HoverCardContent,Bn as HoverCardTrigger,Vt as Input,Fn as InputOtp,Hu as IntegrationPlaceholder,vT as IntelligenceCard,Na as IntelligenceLab,qe as IntelligenceScoreCard,Bc as InvoiceEditorPage,Jr as InvoiceForm,eo as InvoicePreview,Vn as Label,wa as MainShell,jn as Menubar,Zn as MenubarCloseZone,Yn as MenubarContent,Xn as MenubarItem,$p as MenubarMenu,jp as MenubarSeparator,qn as MenubarTrigger,na as MetricComparisonList,Ze as ModuleContainer,H as ModuleErrorBoundary,Ye as ModuleSkeleton,lo as NavLink,Qr as NavLinkRouter,qp as NavigationMenu,ma as OSNavigationRail,KT as OnboardingWizard,Je as PageErrorFallback,ee as PageHeader,re as PageHeaderActionButton,db as Pagination,yb as Popover,si as PopoverClose,ii as PopoverContent,ni as PopoverTrigger,li as Progress,mi as RadioGroup,Oo as RadioGroupItem,Sb as Resizable,la as RouteWithErrorBoundary,pi as ScrollArea,Tt as SearchBar,ui as Select,vi as Separator,zb as Sheet,Gb as Sidebar,Ct as Skeleton,gi as Slider,tu as Sonner,da as StatCardGrid,tr as StatCards,ba as StatCardsWithChart,je as StatusBadge,hi as Switch,er as TabSystem,Ni as Table,Ci as TableBody,Mi as TableCaption,Si as TableCell,Ei as TableEmptyState,Pi as TableHead,wi as TableHeader,Ti as TableRow,cu as Tabs,sr as TaskCreateForm,Du as TaskDetailsPanel,rr as TaskItem,ie as TaskKanban,ie as TaskKanbanBoard,cr as TaskKanbanCard,dr as TaskKanbanColumn,or as TaskList,Sa as TasksView,We as TemplateCard,hu as TemplateMasonryGrid,Li as Textarea,Ba as ThemeProvider,vr as ThemeSwitcherButton,Fo as Toast,Vo as Toaster,Ur as Toggle,$r as ToggleGroup,fu as Tooltip,hM as semanticBackgroundPrimary,NM as semanticBackgroundSecondary,wM as semanticBorderDefault,PM as semanticInteractivePrimary,SM as semanticInteractiveSecondary,MM as semanticInteractiveSecondaryHover,CM as semanticTextPrimary,TM as semanticTextSecondary,Md as useCanvas,ur as useTheme};
|
|
20
|
+
[Your name]`,Ra=[{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"}],Ha=[{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"}],Ba=["Acme Corp - Sarah Chen","TechStart Inc - Mike Rodriguez","GlobalTech - Lisa Kim","Enterprise Co - John Smith","StartupXYZ - Emma Wilson"],wc=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],Cc=[{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 za({onSendNow:t,onSchedule:e,onSaveDraft:r,onNewCampaign:a,onGenerateWithAI:i,onTemplateClick:n,className:s}){let[l,c]=ce("campaigns"),[d,p]=ce(""),[b,u]=ce(""),[v,f]=ce(""),[w,h]=ce(!1),[g,P]=ce(""),N=to(()=>{if(!d.trim())return Ra;let E=d.toLowerCase();return Ra.filter(V=>V.campaignName.toLowerCase().includes(E)||V.recipients.toLowerCase().includes(E))},[d]),y=to(()=>{if(!d.trim())return Ha;let E=d.toLowerCase();return Ha.filter(V=>V.title.toLowerCase().includes(E)||V.category.toLowerCase().includes(E))},[d]),k=to(()=>{if(!g.trim())return Ba;let E=g.toLowerCase();return Ba.filter(V=>V.toLowerCase().includes(E))},[g]),m=async()=>{h(!0),await new Promise(E=>setTimeout(E,1500)),f(Nc),h(!1)},x=()=>{t?.()},C=()=>{e?.()},S=()=>{r?.()},D=l==="campaigns"||l==="templates";return q("div",{className:o("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",s),children:de("div",{className:"flex flex-1 flex-col gap-[var(--inkblot-spacing-8)] px-[var(--inkblot-spacing-8)] py-[var(--inkblot-spacing-8)]",children:[q(oe,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:q(hc,{className:"h-5 w-5"}),action:q(ae,{label:"New Campaign",onClick:()=>a?.()})}),q(or,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),D?q(St,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:d,onChange:E=>p(E.target.value)}):null,l==="campaigns"?de(Tc,{children:[q(rr,{items:Cc}),q(_e,{columns:wc,rows:N})]}):l==="templates"?q(je,{templates:y,onGenerateWithAI:i,onTemplateClick:n}):de("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:[de("div",{className:"flex flex-col gap-[var(--inkblot-spacing-6)]",children:[de("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[q("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),q(Kt,{type:"text",value:b,onChange:E=>u(E.target.value),placeholder:"Enter subject line..."})]}),q(ye,{label:"Body",value:v,onChange:E=>f(E.target.value),placeholder:"Compose your email or let AI generate content...",loading:w,onWriteWithAI:m}),de("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[q(St,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:g,onChange:E=>P(E.target.value)}),k.length>0?q("ul",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:k.slice(0,5).map(E=>q("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]})]}),q(We,{onSendNow:x,onSchedule:C,onSaveDraft:S})]})]})})}import{createContext as Pc,useCallback as Oa,useContext as Sc,useEffect as Mc,useLayoutEffect as Ec,useMemo as Ic,useState as Fa}from"react";import{jsx as Dc}from"react/jsx-runtime";var vr="citron-ui-theme",Ga=Pc(null);function Lc(){if(typeof window>"u")return null;try{let t=window.localStorage.getItem(vr);if(t==="light"||t==="dark")return t}catch{}return null}function Ac(){return typeof window>"u"?"light":window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function Va(t){typeof document>"u"||document.documentElement.setAttribute("data-theme",t)}function Ka({children:t}){let[e,r]=Fa("light"),[a,i]=Fa(!1);Ec(()=>{if(typeof window>"u")return;let d=Lc()??Ac();r(d),Va(d),i(!0)},[]),Mc(()=>{if(a&&(Va(e),!(typeof window>"u")))try{window.localStorage.setItem(vr,e)}catch{}},[e,a]);let n=Oa(c=>{r(c)},[]),s=Oa(()=>{r(c=>c==="light"?"dark":"light")},[]),l=Ic(()=>({theme:e,setTheme:n,toggleTheme:s}),[e,n,s]);return Dc(Ga.Provider,{value:l,children:t})}function fr(){let t=Sc(Ga);if(!t)throw new Error("useTheme must be used within a ThemeProvider");return t}import{Moon as Rc,Sun as Hc}from"lucide-react";import{jsx as Wa}from"react/jsx-runtime";function gr({className:t,type:e="button",...r}){let{theme:a,toggleTheme:i}=fr(),n=a==="dark",s=n?Hc:Rc;return Wa("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:Wa(s,{className:"h-[18px] w-[18px] shrink-0",strokeWidth:2,"aria-hidden":!0})})}import{forwardRef as Bc}from"react";import{NavLink as zc}from"react-router-dom";import{jsx as Oc}from"react/jsx-runtime";var eo=Bc(({className:t,activeClassName:e,pendingClassName:r,...a},i)=>Oc(zc,{ref:i,className:({isActive:n,isPending:s})=>o(t,n&&e,s&&r),...a}));eo.displayName="NavLinkRouter";import{useState as _a,useRef as Fc,useEffect as Vc}from"react";import{ChevronDown as Gc,Plus as Kc}from"lucide-react";import{jsx as F,jsxs as Q}from"react/jsx-runtime";var yr=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)]"),Lt=o("[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-secondary)]"),$a="border-[var(--inkblot-semantic-color-status-error)]";function Ua({items:t,value:e,onChange:r,placeholder:a,hasError:i,onCreateNew:n,createNewLabel:s}){let[l,c]=_a(""),[d,p]=_a(!1),b=Fc(null);Vc(()=>{let f=w=>{b.current&&!b.current.contains(w.target)&&p(!1)};return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[]);let u=t.find(f=>f.id===e),v=t.filter(f=>f.name.toLowerCase().includes(l.toLowerCase()));return Q("div",{ref:b,className:"relative",children:[F("input",{type:"text",value:d?l:u?.name??"",onChange:f=>{c(f.target.value),d||p(!0)},onFocus:()=>{p(!0),c("")},placeholder:a,className:o(yr,i&&!e&&$a)}),d&&Q("div",{className:o("absolute z-50 mt-[var(--inkblot-spacing-1)] max-h-48 w-full overflow-auto","rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)] shadow-[var(--inkblot-shadow-sm)]"),children:[v.map(f=>F("button",{type:"button",onClick:()=>{r(f.id),p(!1),c("")},className:o("w-full px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] text-left","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)]",f.id===e&&"bg-[var(--inkblot-semantic-color-background-tertiary)]"),children:f.name},f.id)),v.length===0&&!n&&F("div",{className:o("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-tertiary)]"),children:"No results"}),n&&v.length===0&&Q("button",{type:"button",onClick:()=>{n(),p(!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:[F(Kc,{className:"h-4 w-4"}),s??"Create new"]})]})]})}function kr({options:t,value:e,onChange:r,placeholder:a}){return Q("div",{className:"relative",children:[Q("select",{value:e,onChange:i=>r(i.target.value),className:o(yr,"appearance-none pr-[var(--inkblot-spacing-8)]"),children:[F("option",{value:"",children:a}),t.map(i=>F("option",{value:i,children:i},i))]}),F(Gc,{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 Wc=["Bank Transfer","Credit Card","Cash","Check"],_c=["VAT 21%","VAT 10%","VAT 0%","Exempt"],Uc=["Standard","Proforma","Credit Note","Debit Note"],$c=["Main Account","Secondary Account"];function ro({clients:t,products:e,paymentMethods:r=Wc,taxTypes:a=_c,invoiceTypes:i=Uc,bankAccounts:n=$c,value:s={},onChange:l,onCreateClient:c,attempted:d=!1,className:p}){let b=u=>l?.({...s,...u});return Q("div",{className:o("grid grid-cols-1 gap-[var(--inkblot-spacing-4)] md:grid-cols-2",p),children:[Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Client"}),F(Ua,{items:t,value:s.clientId??"",onChange:u=>b({clientId:u}),placeholder:"Search client...",hasError:d,onCreateNew:c,createNewLabel:"+ Create new client"})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Product / Service"}),F(Ua,{items:e,value:s.productId??"",onChange:u=>b({productId:u}),placeholder:"Search product...",hasError:d})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Quantity"}),F("input",{type:"number",min:1,value:s.quantity??"",onChange:u=>b({quantity:u.target.value===""?0:Number(u.target.value)}),placeholder:"1",className:o(yr,d&&!s.quantity&&$a)})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Payment Method"}),F(kr,{options:r,value:s.paymentMethod??"",onChange:u=>b({paymentMethod:u}),placeholder:"Select..."})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Tax Type"}),F(kr,{options:a,value:s.taxType??"",onChange:u=>b({taxType:u}),placeholder:"Select..."})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Invoice Type"}),F(kr,{options:i,value:s.invoiceType??"",onChange:u=>b({invoiceType:u}),placeholder:"Select..."})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)]",children:[F("label",{className:Lt,children:"Bank Account"}),F(kr,{options:n,value:s.bankAccount??"",onChange:u=>b({bankAccount:u}),placeholder:"Select..."})]}),Q("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] md:col-span-2",children:[F("label",{className:Lt,children:"Notes"}),F("textarea",{value:s.notes??"",onChange:u=>b({notes:u.target.value}),rows:3,placeholder:"Additional notes...",className:o(yr,"resize-y")})]})]})}import{jsx as et,jsxs as oo}from"react/jsx-runtime";function ft({label:t,value:e}){return oo("div",{className:"flex items-baseline justify-between border-b border-[var(--inkblot-semantic-color-border-default)] py-[var(--inkblot-spacing-2)]",children:[et("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),et("span",{className:"[font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:e||"\u2014"})]})}function ao({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 oo("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:[et("h3",{className:"mb-[var(--inkblot-spacing-4)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"Preview"}),oo("div",{className:"space-y-0",children:[et(ft,{label:"Client",value:i?.name??""}),et(ft,{label:"Product",value:n?.name??""}),et(ft,{label:"Quantity",value:s?String(s):""}),l>0&&et(ft,{label:"Unit price",value:`$${l.toFixed(2)}`}),c>0&&et(ft,{label:"Subtotal",value:`$${c.toFixed(2)}`}),et(ft,{label:"Payment",value:t.paymentMethod??""}),et(ft,{label:"Tax",value:t.taxType??""}),et(ft,{label:"Type",value:t.invoiceType??""}),et(ft,{label:"Bank",value:t.bankAccount??""})]}),t.notes&&et("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 ja}from"react";import{Loader2 as jc}from"lucide-react";import{jsx as Me,jsxs as no}from"react/jsx-runtime";function qc({clients:t,products:e,onSubmit:r,onCreateClient:a,isSubmitting:i=!1,className:n,...s}){let[l,c]=ja({}),[d,p]=ja(!1);return no("form",{onSubmit:u=>{u.preventDefault(),p(!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:[Me("h2",{className:"mb-[var(--inkblot-spacing-6)] [font:var(--inkblot-semantic-typography-heading-4)] text-[var(--inkblot-semantic-color-text-primary)]",children:"New Invoice"}),no("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] lg:grid-cols-[1fr_20rem]",children:[Me(ro,{clients:t,products:e,value:l,onChange:c,onCreateClient:a,attempted:d,...s}),Me(ao,{data:l,clients:t,products:e})]}),Me("div",{className:"mt-[var(--inkblot-spacing-6)] flex justify-end",children:no("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&&Me(jc,{className:"h-4 w-4 animate-spin"}),"Create Invoice"]})})]})}import{useMemo as Yc,useState as Xc}from"react";import{ChevronDown as Zc}from"lucide-react";import{jsx as xr,jsxs as qa}from"react/jsx-runtime";function Qc({items:t,defaultValue:e,allowMultiple:r=!1,className:a}){let i=Yc(()=>new Set(e??[]),[e]),[n,s]=Xc(i),l=c=>{s(d=>{let p=new Set(d);return p.has(c)?(p.delete(c),p):r?(p.add(c),p):new Set([c])})};return xr("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 p=n.has(c.id);return qa("div",{className:o(d!==0&&"border-t border-[var(--inkblot-semantic-color-border-default)]"),children:[qa("button",{type:"button",disabled:c.disabled,"aria-expanded":p,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:[xr("span",{className:"font-medium",children:c.title}),xr(Zc,{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)]",p&&"rotate-180")})]}),p&&xr("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 Jc,useEffect as hr,useRef as Ee,useState as me}from"react";import{ChevronDown as td,Loader2 as ed,Search as rd,X as od}from"lucide-react";import{jsx as rt,jsxs as At}from"react/jsx-runtime";function ad({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:p=!1,className:b}){let u=r!==void 0,[v,f]=me(a??null),w=u?r:v,[h,g]=me(!1),[P,N]=me(""),[y,k]=me(-1),[m,x]=me([]),[C,S]=me(!1),D=Ee(null),E=Ee(0),V=e!==void 0,I=V?m:t,O=Ee(null),L=Ee(null),_=Ee(null);hr(()=>{if(!(!V||!h))return D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{let T=++E.current;S(!0),e(P).then(Y=>{T===E.current&&(x(Y),S(!1),k(-1))}).catch(()=>{T===E.current&&(x([]),S(!1))})},250),()=>{D.current&&clearTimeout(D.current)}},[P,h,V,e]);let j=V?I:I.filter(T=>T.label.toLowerCase().includes(P.toLowerCase())),Xt=I.find(T=>T.value===w)??(V?t.find(T=>T.value===w):void 0),Zt=Jc(T=>{u||f(T),i?.(T),g(!1),N(""),k(-1)},[u,i]);hr(()=>{if(!h)return;let T=Y=>{O.current&&!O.current.contains(Y.target)&&(g(!1),N(""),k(-1))};return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[h]),hr(()=>{h&&_.current?.focus()},[h]),hr(()=>{if(y<0||!L.current)return;L.current.querySelectorAll("[data-option]")[y]?.scrollIntoView({block:"nearest"})},[y]);let Lr=T=>{if(!h){(T.key==="Enter"||T.key===" "||T.key==="ArrowDown")&&(T.preventDefault(),g(!0));return}switch(T.key){case"ArrowDown":{T.preventDefault(),k(Y=>{let $=Y+1;for(;$<j.length&&j[$].disabled;)$++;return $<j.length?$:Y});break}case"ArrowUp":{T.preventDefault(),k(Y=>{let $=Y-1;for(;$>=0&&j[$].disabled;)$--;return $>=0?$:Y});break}case"Enter":{T.preventDefault(),y>=0&&y<j.length&&!j[y].disabled&&Zt(j[y].value);break}case"Escape":{T.preventDefault(),g(!1),N(""),k(-1);break}}};return At("div",{ref:O,className:o("relative w-full",b),onKeyDown:Lr,children:[At("button",{type:"button",disabled:p,"aria-expanded":h,"aria-haspopup":"listbox",onClick:()=>{p||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)]",p&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[rt("span",{className:o("truncate text-left",!Xt&&"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:Xt?Xt.label:n}),At("span",{className:"flex shrink-0 items-center gap-[var(--inkblot-spacing-1)]",children:[d&&Xt&&rt("span",{role:"button",tabIndex:0,"aria-label":"Clear selection",onClick:T=>{T.stopPropagation(),Zt(null)},onKeyDown:T=>{T.key==="Enter"&&(T.stopPropagation(),Zt(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:rt(od,{className:"size-3.5"})}),rt(td,{"aria-hidden":!0,className:o("size-4 text-[var(--inkblot-semantic-color-text-tertiary)] transition-transform duration-[var(--inkblot-duration-fast)]",h&&"rotate-180")})]})]}),At("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",h?"pointer-events-auto scale-y-100 opacity-100":"pointer-events-none scale-y-95 opacity-0"),children:[rt("div",{className:"border-b border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-2)]",children:At("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:[rt(rd,{className:"size-3.5 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),rt("input",{ref:_,type:"text",value:P,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"})]})}),rt("ul",{ref:L,role:"listbox",className:"max-h-60 overflow-y-auto p-[var(--inkblot-spacing-1)]",children:C?At("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:[rt(ed,{className:"size-4 animate-spin","aria-hidden":!0}),c]}):j.length===0?rt("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}):j.map((T,Y)=>{let $=T.value===w,Ve=Y===y;return At("li",{role:"option","data-option":!0,"aria-selected":$,"aria-disabled":T.disabled,onClick:()=>{T.disabled||Zt(T.value)},onMouseEnter:()=>{T.disabled||k(Y)},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)]",Ve&&!T.disabled&&"bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",$&&"bg-[var(--inkblot-semantic-color-interactive-secondary)]",T.disabled&&"pointer-events-none cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:[T.icon&&rt("span",{className:"flex size-5 shrink-0 items-center justify-center text-[var(--inkblot-semantic-color-text-secondary)]",children:T.icon}),At("span",{className:"flex min-w-0 flex-1 flex-col",children:[rt("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:T.label}),T.description&&rt("span",{className:"truncate text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:T.description})]})]},T.value)})})]})]})}import{AlertCircle as nd,AlertTriangle as id,CheckCircle2 as sd,Info as ld}from"lucide-react";import{jsx as io,jsxs as Ya}from"react/jsx-runtime";var cd={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)]"},dd={info:ld,success:sd,warning:id,error:nd};function md({title:t,description:e,variant:r="info",className:a}){let i=dd[r];return Ya("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)]",cd[r],a),children:[io(i,{className:"mt-0.5 h-4 w-4 shrink-0"}),Ya("div",{className:"flex min-w-0 flex-col gap-[var(--inkblot-spacing-1)]",children:[io("div",{className:"font-semibold",children:t}),e&&io("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e})]})]})}import{useCallback as Xa,useEffect as pd,useId as Za,useRef as so}from"react";import{AlertTriangle as bd}from"lucide-react";import{jsx as jt,jsxs as Nr}from"react/jsx-runtime";function ud({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:p,onCancel:b,className:u}){let v=so(null),f=so(null),w=so(null),h=Za(),g=Za(),P=Xa(()=>{b?.(),d?.(!1)},[b,d]),N=Xa(()=>{p?.(),l&&d?.(!1)},[l,p,d]);return pd(()=>{if(!t)return;w.current=document.activeElement instanceof HTMLElement?document.activeElement:null,(c?.current??f.current??v.current)?.focus();let k=m=>{m.key==="Escape"&&P()};return window.addEventListener("keydown",k),()=>{window.removeEventListener("keydown",k),w.current?.focus()}},[P,c,t]),t?jt("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:P,children:Nr("div",{role:"alertdialog","aria-modal":"true","aria-labelledby":h,"aria-describedby":r?g:void 0,tabIndex:-1,ref:v,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",u),children:[Nr("div",{className:"mb-[var(--inkblot-spacing-4)] flex items-start gap-[var(--inkblot-spacing-3)]",children:[jt("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:jt(bd,{className:"h-5 w-5"})}),Nr("div",{className:"flex-1",children:[jt("h2",{id:h,className:"text-lg font-semibold",children:e}),r&&jt("p",{id:g,className:"mt-[var(--inkblot-spacing-2)] text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r})]})]}),Nr("div",{className:"flex flex-wrap justify-end gap-[var(--inkblot-spacing-2)]",children:[jt("button",{type:"button",ref:f,onClick:P,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}),jt("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 vd,useRef as fd,useState as lo}from"react";import{Check as gd,Loader2 as kd,Sparkles as Qa}from"lucide-react";import{Fragment as co,jsx as gt,jsxs as pe}from"react/jsx-runtime";var yd=["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 bN({value:t,defaultValue:e="",onValueChange:r,isGenerating:a,onGeneratingChange:i,generated:n,onGeneratedChange:s,generationDelayMs:l=1500,onSubmitPrompt:c,generateBlocks:d,onGenerate:p,suggestions:b=yd,className:u}){let[v,f]=lo(e),[w,h]=lo(!1),[g,P]=lo(!1),N=fd(null),y=t!==void 0,k=y?t:v,m=a!==void 0,x=m?a:w,C=n!==void 0,S=C?n:g,D=L=>{y||f(L),r?.(L)},E=L=>{m||h(L),i?.(L)},V=L=>{C||P(L),s?.(L)};vd(()=>()=>{N.current!==null&&window.clearTimeout(N.current)},[]);let I=L=>{let _=Date.now();return[{id:`ai-${_}-1`,type:"heading",content:"Exciting News from Our Team"},{id:`ai-${_}-2`,type:"text",content:`Generated from prompt: ${L}`},{id:`ai-${_}-3`,type:"image",content:""},{id:`ai-${_}-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-${_}-5`,type:"button",content:"Learn More"},{id:`ai-${_}-6`,type:"divider",content:""},{id:`ai-${_}-7`,type:"text",content:`Best regards,
|
|
21
|
+
The Team`}]},O=async()=>{let L=k.trim();if(!L||x)return;c?.(L),E(!0);let _;d?_=await Promise.resolve(d(L)):(await new Promise(j=>{window.setTimeout(()=>j(),l)}),_=I(L)),p?.(_),E(!1),V(!0),N.current=window.setTimeout(()=>V(!1),1800)};return pe("section",{className:o(u),children:[pe("div",{className:"mb-2 flex items-center gap-2",children:[gt(Qa,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-warning)]"}),gt("span",{className:"text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Email Generator"})]}),pe("div",{className:"space-y-3",children:[gt("textarea",{value:k,onChange:L=>D(L.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"}),gt("div",{className:"flex flex-wrap gap-1.5",children:b.map(L=>gt("button",{type:"button",onClick:()=>D(L),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:L},L))}),gt("button",{type:"button",onClick:O,disabled:!k.trim()||x,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:x?pe(co,{children:[gt(kd,{className:"h-3 w-3 animate-spin"}),"Generating..."]}):S?pe(co,{children:[gt(gd,{className:"h-3 w-3"}),"Applied to editor"]}):pe(co,{children:[gt(Qa,{className:"h-3 w-3"}),"Generate Email"]})})]})]})}import{CheckSquare as hd,Command as Nd,FileText as wd,Mail as Cd,MessageSquare as Td,Settings as Pd,Users as Sd}from"lucide-react";import{jsx as mo,jsxs as xd}from"react/jsx-runtime";function po({label:t,icon:e,active:r=!1,onClick:a,title:i,dataTour:n,className:s}){return xd("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:[mo(e,{className:"h-[18px] w-[18px]","aria-hidden":!0}),r?mo("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,mo("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 Dt,jsxs as bo}from"react/jsx-runtime";var Md=[{id:"canvas",icon:Td,label:"Canvas",path:"/",dataTour:"nav-canvas"},{id:"invoices",icon:wd,label:"Invoices & Deals",path:"/invoices",dataTour:"nav-invoices"},{id:"contacts",icon:Sd,label:"Contacts",path:"/contacts",dataTour:"nav-contacts"},{id:"campaigns",icon:Cd,label:"Campaigns",path:"/campaigns",dataTour:"nav-campaigns"},{id:"tasks",icon:hd,label:"Tasks",path:"/tasks",dataTour:"nav-tasks"}],Ed=[{id:"settings",icon:Pd,label:"Settings",path:"/settings",dataTour:"nav-settings"}];function Ja({items:t=Md,bottomItems:e=Ed,activePath:r="/",onNavigate:a,logo:i,showStatusDot:n=!0,showThemeToggle:s=!0,className:l}){return bo("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:[Dt("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??Dt(Nd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})}),Dt("nav",{className:"hide-scrollbar flex flex-1 flex-col gap-1 overflow-y-auto",children:t.map(c=>Dt(po,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id))}),bo("div",{className:"flex flex-col gap-1",children:[e.map(c=>Dt(po,{label:c.label,icon:c.icon,active:c.path===r,onClick:()=>a?.(c.path),dataTour:c.dataTour},c.id)),s?bo("div",{className:"group relative flex justify-center",children:[Dt(gr,{}),Dt("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?Dt("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 tn,FileText as Id,GitBranch as Ld,Mail as Ad,Phone as Dd,Zap as Rd}from"lucide-react";import{jsx as pt,jsxs as Ie}from"react/jsx-runtime";var Hd=[{id:1,icon:Ad,title:"Email opened",meta:"Jane Smith \xB7 Acme Corp",time:"2m ago",status:"info"},{id:2,icon:tn,title:"Invoice #1042 paid",meta:"$24,500 \xB7 TechVentures",time:"8m ago",status:"success"},{id:3,icon:Rd,title:"Pipeline stage changed",meta:"Negotiation \u2192 Closing",time:"14m ago",status:"warning"},{id:4,icon:Dd,title:"Call completed",meta:"12 min \xB7 Mark Johnson",time:"23m ago",status:"info"},{id:5,icon:Id,title:"Contract signed",meta:"NDA \xB7 GlobalTech Inc",time:"1h ago",status:"success"},{id:6,icon:Ld,title:"New relationship detected",meta:"Acme \u2194 DataFlow Labs",time:"2h ago",status:"info"},{id:7,icon:tn,title:"Invoice overdue",meta:"$8,200 \xB7 StartupXYZ",time:"3h ago",status:"danger"}],Bd={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 en({title:t="Event Stream",liveLabel:e="Live",events:r=Hd,onItemClick:a,className:i}){return Ie("section",{className:o("p-4",i),children:[Ie("header",{className:"mb-4 flex items-center justify-between",children:[pt("h3",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),pt("span",{className:"text-[10px] font-medium text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),pt("ul",{className:"space-y-1",children:r.map(n=>{let s=n.icon;return pt("li",{children:Ie("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:[pt("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:pt(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})}),Ie("span",{className:"min-w-0 flex-1",children:[Ie("span",{className:"flex items-center gap-2",children:[pt("span",{className:o("h-1.5 w-1.5 shrink-0 rounded-full",Bd[n.status])}),pt("span",{className:"truncate text-xs font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.title})]}),pt("span",{className:"mt-0.5 block truncate text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.meta})]}),pt("span",{className:"mt-0.5 shrink-0 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:n.time})]})},n.id)})})]})}import{createContext as zd,useContext as Od,useState as Fd,useCallback as rn}from"react";import{jsx as Kd}from"react/jsx-runtime";var on=zd(null);function Vd(){let t=Od(on);if(!t)throw new Error("useCanvas must be used within a CanvasProvider");return t}var Gd=[{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 uo({children:t,initialBlocks:e=Gd}){let[r,a]=Fd(e),i=rn(s=>{a(l=>[...l,...s])},[]),n=rn(()=>{a([])},[]);return Kd(on.Provider,{value:{blocks:r,addBlocks:i,clearBlocks:n},children:t})}import{jsx as Le,jsxs as an}from"react/jsx-runtime";function $N({children:t,showEventFeed:e=!1,sidebarProps:r,eventFeedProps:a,canvasProviderProps:i,className:n}){let s=an("div",{className:o("flex h-screen w-full overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[Le(Ja,{...r}),an("main",{className:"flex flex-1 overflow-hidden",children:[Le("section",{"data-tour":"canvas",className:"hide-scrollbar flex-1 overflow-y-auto",children:t}),e&&Le("aside",{"data-tour":"event-feed",className:"flex w-80 flex-col overflow-hidden border-l border-[var(--inkblot-semantic-color-border-default)]",children:Le(en,{...a})})]})]});return i?Le(uo,{...i,children:s}):s}import{jsx as nn,jsxs as _d}from"react/jsx-runtime";function Wd({ratio:t=16/9,children:e,className:r}){let a=Number.isFinite(t)&&t>0?t:1.7777777777777777;return _d("div",{className:o("relative w-full overflow-hidden",r),children:[nn("div",{style:{paddingTop:`${1/a*100}%`}}),nn("div",{className:"absolute inset-0",children:e})]})}import{jsx as jd}from"react/jsx-runtime";var Ud={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 $d({children:t,variant:e="default",disabled:r=!1,className:a}){return jd("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)]",Ud[e],r&&"opacity-[var(--inkblot-opacity-disabled)]",a),children:t})}import{ChevronRight as qd}from"lucide-react";import{jsx as Ae,jsxs as Xd}from"react/jsx-runtime";function Yd({items:t,className:e}){return Ae("nav",{"aria-label":"Breadcrumb",className:o("w-full",e),children:Ae("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?Ae("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}):Ae("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 Xd("li",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[i,a<t.length-1&&Ae(qd,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"})]},r.id)})})})}import{useMemo as sn,useState as Zd}from"react";import{ChevronLeft as Qd,ChevronRight as Jd}from"lucide-react";import{jsx as Rt,jsxs as fo}from"react/jsx-runtime";var tm=["L","M","X","J","V","S","D"];function ln(t){return new Date(t.getFullYear(),t.getMonth(),1)}function em(t){return new Date(t.getFullYear(),t.getMonth()+1,0)}function rm(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function vo(t){return`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`}function om(t){let e=ln(t),r=em(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 am({value:t,onChange:e,disabledDates:r,className:a}){let i=t??new Date,[n,s]=Zd(ln(i)),l=sn(()=>om(n),[n]),c=sn(()=>new Set((r??[]).map(vo)),[r]);return fo("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:[fo("div",{className:"mb-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[Rt("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:Rt(Qd,{className:"h-4 w-4"})}),Rt("div",{className:"font-semibold",children:n.toLocaleDateString("es-ES",{month:"long",year:"numeric"})}),Rt("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:Rt(Jd,{className:"h-4 w-4"})})]}),fo("div",{className:"grid grid-cols-7 gap-[var(--inkblot-spacing-1)]",children:[tm.map(d=>Rt("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,p)=>{if(!d)return Rt("div",{className:"h-9"},`empty-${p}`);let b=c.has(vo(d)),u=t?rm(d,t):!1;return Rt("button",{type:"button",disabled:b,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)]",u?"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)]",b&&"cursor-not-allowed opacity-[var(--inkblot-opacity-disabled)]"),children:d.getDate()},vo(d))})]})]})}import{jsx as be}from"react/jsx-runtime";function nm({className:t,interactive:e=!1,disabled:r=!1,...a}){return be("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 im({className:t,...e}){return be("div",{className:o("flex flex-col gap-[var(--inkblot-spacing-1)] p-[var(--inkblot-spacing-5)]",t),...e})}function sm({className:t,...e}){return be("h3",{className:o("text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",t),...e})}function lm({className:t,...e}){return be("p",{className:o("text-sm text-[var(--inkblot-semantic-color-text-secondary)]",t),...e})}function cm({className:t,...e}){return be("div",{className:o("px-[var(--inkblot-spacing-5)] pb-[var(--inkblot-spacing-5)]",t),...e})}function dm({className:t,...e}){return be("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 mm}from"react";import{ChevronLeft as pm,ChevronRight as bm}from"lucide-react";import{jsx as Ht,jsxs as go}from"react/jsx-runtime";function um({items:t,initialIndex:e=0,loop:r=!1,className:a}){let[i,n]=mm(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(p=>(p-1+t.length)%t.length);return}n(p=>Math.max(p-1,0))}},d=()=>{if(t.length!==0){if(r){n(p=>(p+1)%t.length);return}n(p=>Math.min(p+1,t.length-1))}};return go("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:[Ht("div",{className:"relative overflow-hidden rounded-[var(--inkblot-radius-lg)]",children:Ht("div",{className:"flex transition-transform duration-[var(--inkblot-duration-normal)] ease-[var(--inkblot-easing-default)]",style:{transform:`translateX(-${i*100}%)`},children:t.map((p,b)=>Ht("div",{className:"w-full shrink-0",children:p},b))})}),go("div",{className:"mt-[var(--inkblot-spacing-3)] flex items-center justify-between",children:[Ht("div",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.length>0?`${i+1} de ${t.length}`:"Sin elementos"}),go("div",{className:"flex gap-[var(--inkblot-spacing-2)]",children:[Ht("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:Ht(pm,{className:"h-4 w-4"})}),Ht("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:Ht(bm,{className:"h-4 w-4"})})]})]})]})}import{jsx as qt,jsxs as cn}from"react/jsx-runtime";function vm({data:t,title:e="Rendimiento",emptyMessage:r="No data to display.",className:a}){let i=Math.max(...t.map(n=>n.value),0);return cn("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:[qt("h3",{className:"mb-[var(--inkblot-spacing-4)] text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:e}),t.length===0?qt("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}):qt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:t.map(n=>{let s=i>0?n.value/i*100:0;return cn("div",{className:"grid grid-cols-[120px_1fr_48px] items-center gap-[var(--inkblot-spacing-3)]",children:[qt("span",{className:"truncate text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:n.label}),qt("div",{className:"h-3 overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:qt("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)"}})}),qt("span",{className:"text-right text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:n.value})]},n.id)})})]})}import{useState as fm}from"react";import{Check as gm}from"lucide-react";import{jsx as wr,jsxs as dn}from"react/jsx-runtime";function km({checked:t,defaultChecked:e=!1,onCheckedChange:r,label:a,description:i,disabled:n=!1,error:s=!1,className:l}){let[c,d]=fm(e),p=t!==void 0,b=p?t:c,u=v=>{p||d(v),r?.(v)};return dn("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:[wr("button",{type:"button",role:"checkbox","aria-checked":b,disabled:n,onClick:()=>u(!b),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",b?"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&&!b&&"border-[var(--inkblot-semantic-color-status-error)]"),children:b&&wr(gm,{className:"h-4 w-4"})}),(a||i)&&dn("span",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:[a&&wr("span",{className:"text-sm font-medium",children:a}),i&&wr("span",{className:o("text-xs text-[var(--inkblot-semantic-color-text-secondary)]",s&&!b&&"text-[var(--inkblot-semantic-color-status-error)]"),children:i})]})]})}import{jsx as De,jsxs as ko}from"react/jsx-runtime";var ym={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 mn({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,p=(n-d)/2,b=2*Math.PI*p,u=b-c/100*b,v=a??ym[r];return De("div",{className:s,children:ko("div",{className:"flex flex-col items-center gap-2",children:[ko("div",{className:"relative",style:{width:n,height:n},children:[ko("svg",{width:n,height:n,className:"-rotate-90",children:[De("circle",{cx:n/2,cy:n/2,r:p,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:d}),De("circle",{cx:n/2,cy:n/2,r:p,fill:"none",stroke:v,strokeWidth:d,strokeDasharray:b,strokeDashoffset:u,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),De("span",{className:"absolute inset-0 flex items-center justify-center text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:l})]}),De("span",{className:"text-center text-[10px] leading-tight text-[var(--inkblot-semantic-color-text-tertiary)]",children:t})]})})}import{useState as xm}from"react";import{ChevronDown as hm}from"lucide-react";import{jsx as yo,jsxs as pn}from"react/jsx-runtime";function Nm({title:t,children:e,defaultOpen:r=!1,disabled:a=!1,className:i}){let[n,s]=xm(r);return pn("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:[pn("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:[yo("span",{className:"font-medium",children:t}),yo(hm,{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&&yo("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 wm,useState as Cm}from"react";import{Search as Tm}from"lucide-react";import{jsx as Bt,jsxs as xo}from"react/jsx-runtime";function Pm({items:t,placeholder:e="Search commands...",onSelect:r,className:a}){let[i,n]=Cm(""),s=wm(()=>{let l=i.trim().toLowerCase();return l?t.filter(c=>{let d=c.label.toLowerCase().includes(l),p=(c.keywords??[]).some(b=>b.toLowerCase().includes(l));return d||p}):t},[t,i]);return xo("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:[xo("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:[Bt(Tm,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]"}),Bt("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)]"})]}),Bt("div",{className:"max-h-[280px] overflow-y-auto p-[var(--inkblot-spacing-2)]",children:s.length>0?Bt("ul",{className:"flex flex-col gap-[var(--inkblot-spacing-1)]",children:s.map(l=>Bt("li",{children:xo("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&&Bt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:l.icon}),Bt("span",{children:l.label})]})},l.id))}):Bt("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 Sm,useMemo as Mm,useRef as Em,useState as ho}from"react";import{Send as Im,Sparkles as Cr}from"lucide-react";import{jsx as A,jsxs as lt}from"react/jsx-runtime";var Lm=[{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"]}],No="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 mC({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=Lm,onMessagesChange:d,inputValue:p,defaultInputValue:b="",onInputValueChange:u,autoAssistantResponse:v=!0,assistantResponseDelayMs:f=700,isResponding:w,onRespondingChange:h,onSend:g,generateAssistantMessage:P,renderCard:N,hideInput:y=!1,className:k}){let[m,x]=ho(c),[C,S]=ho(b),[D,E]=ho(!1),V=Em(null),I=l!==void 0,O=I?l:m,L=p!==void 0,_=L?p:C,j=w!==void 0,Xt=j?w:D,Zt=_.trim().length>0&&!Xt,Lr=Mm(()=>M=>({content:`Analyzing "${M}". Here are the latest insights.`,cards:["entity","intelligence"]}),[]),T=M=>{I||x(M),d?.(M)},Y=M=>{L||S(M),u?.(M)},$=M=>{j||E(M),h?.(M)};Sm(()=>()=>{V.current!==null&&window.clearTimeout(V.current)},[]);let Ve=()=>{let M=_.trim();if(!M)return;let Qt={id:`${Date.now()}-user`,role:"user",content:M},jo=[...O,Qt];T(jo),Y(""),g?.(M),v&&($(!0),V.current=window.setTimeout(()=>{let qo=(P??Lr)(M),Gi=[...jo,{id:`${Date.now()}-assistant`,role:"assistant",content:qo.content,cards:qo.cards}];T(Gi),$(!1)},f))},$o=n!==void 0,Vi=M=>M.type==="text"?lt("div",{className:"flex items-start gap-3",children:[A("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:A(Cr,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),A("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:M.content})]}):M.type==="entity"?N?N("entity"):A("div",{className:No,children:"Entity card preview"}):M.type==="intelligence"?N?N("intelligence"):A("div",{className:No,children:"Intelligence card preview"}):M.type==="loading"?lt("div",{className:"flex items-center gap-3",children:[A("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:A(Cr,{className:"h-3.5 w-3.5 animate-pulse text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),lt("div",{className:"flex gap-1",children:[A("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"0ms"}}),A("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"150ms"}}),A("span",{className:"h-1.5 w-1.5 animate-bounce rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]",style:{animationDelay:"300ms"}})]})]}):null;return lt("section",{className:o("flex h-full flex-col",k),children:[lt("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[lt("div",{children:[A("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),A("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:e})]}),lt("div",{className:"flex items-center gap-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[A("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),r]})]}),A("div",{className:"hide-scrollbar flex-1 overflow-y-auto px-8 py-6",children:A("div",{className:"mx-auto max-w-3xl space-y-6",children:$o?n.map(M=>A("div",{children:s?s(M):Vi(M)},M.id)):O.map(M=>M.role==="user"?A("div",{className:"flex justify-end",children:A("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:M.content})},M.id):lt("div",{className:"space-y-4",children:[lt("div",{className:"flex items-start gap-3",children:[A("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:A(Cr,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0})}),A("p",{className:"pt-0.5 text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)]",children:M.content})]}),M.cards?.length?A("div",{className:"ml-9 grid gap-4",children:M.cards.map(Qt=>N?A("div",{children:N(Qt)},Qt):A("div",{className:No,children:Qt==="entity"?"Entity card preview":"Intelligence card preview"},Qt))}):null]},M.id))})}),!y&&!$o?A("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-4",children:lt("div",{className:"mx-auto max-w-3xl",children:[lt("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:[A(Cr,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),A("input",{type:"text",value:_,onChange:M=>Y(M.target.value),onKeyDown:M=>{M.key==="Enter"&&Ve()},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"}),A("button",{type:"button",onClick:Ve,disabled:!Zt,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:A(Im,{className:"h-3.5 w-3.5"})})]}),A("p",{className:"mt-2 text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]})}):A("footer",{className:"border-t border-[var(--inkblot-semantic-color-border-default)] px-8 py-3",children:A("p",{className:"text-center text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})})]})}import{useEffect as Am,useRef as Dm,useState as bn}from"react";import{jsx as Tr,jsxs as wo}from"react/jsx-runtime";function Rm({trigger:t,items:e,className:r}){let[a,i]=bn(!1),[n,s]=bn({x:0,y:0}),l=Dm(null);Am(()=>{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 p=l.current?.getBoundingClientRect(),b=p?.left??0,u=p?.top??0;s({x:d.clientX-b,y:d.clientY-u}),i(!0)};return wo("div",{ref:l,className:o("relative w-full",r),onContextMenu:c,children:[t,a&&Tr("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=>wo("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:[wo("span",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[d.icon&&Tr("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.icon}),Tr("span",{children:d.label})]}),d.shortcut&&Tr("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.shortcut})]},d.id))})]})}import{createContext as Hm,forwardRef as To,useCallback as Co,useContext as Bm,useEffect as un,useId as vn,useMemo as zm,useRef as fn,useState as Om}from"react";import{createPortal as Fm}from"react-dom";import{X as Vm}from"lucide-react";import{jsx as at,jsxs as gn}from"react/jsx-runtime";var kn=Hm(null);function Po(){let t=Bm(kn);if(!t)throw new Error("Dialog components must be used within Dialog");return t}function Gm({open:t,defaultOpen:e=!1,onOpenChange:r,children:a}){let[i,n]=Om(e),s=t!==void 0,l=s?t:i,c=Co(p=>{s||n(p),r?.(p)},[s,r]),d=zm(()=>({open:l,setOpen:c}),[l,c]);return at(kn.Provider,{value:d,children:a})}var yn=To(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Po();return at("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})});yn.displayName="DialogTrigger";var xn=To(({className:t,children:e,showCloseButton:r=!0,initialFocusRef:a,...i},n)=>{let{open:s,setOpen:l}=Po(),c=vn(),d=vn(),p=fn(null),b=fn(null),u=Co(f=>{if(p.current=f,typeof n=="function"){n(f);return}n&&(n.current=f)},[n]),v=Co(()=>{l(!1)},[l]);return un(()=>{if(!s)return;let f=w=>{w.key==="Escape"&&v()};return window.addEventListener("keydown",f),()=>{window.removeEventListener("keydown",f)}},[v,s]),un(()=>{if(!s)return;b.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let f=a?.current,w=p.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(f??w??p.current)?.focus(),()=>{b.current?.focus()}},[a,s]),!s||typeof document>"u"?null:Fm(gn("div",{className:o("fixed inset-0 z-50 flex items-center justify-center p-[var(--inkblot-spacing-6)]"),children:[at("button",{type:"button","aria-label":"Close dialog",className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70"),onClick:v}),gn("div",{ref:u,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?at(So,{"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:at(Vm,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}):null,at("div",{id:c,className:"sr-only"}),at("div",{id:d,className:"sr-only"}),e]})]}),document.body)});xn.displayName="DialogContent";function Km({className:t,...e}){return at("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function Wm({className:t,...e}){return at("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function _m({className:t,...e}){return at("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function Um({className:t,...e}){return at("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var So=To(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Po();return at("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})});So.displayName="DialogClose";import{createContext as $m,forwardRef as Eo,useCallback as Mo,useContext as jm,useEffect as hn,useMemo as qm,useRef as Nn,useState as Ym}from"react";import{createPortal as Xm}from"react-dom";import{X as Zm}from"lucide-react";import{jsx as bt,jsxs as op}from"react/jsx-runtime";var wn=$m(null);function Io(){let t=jm(wn);if(!t)throw new Error("Drawer components must be used within Drawer");return t}function Qm({children:t,open:e,defaultOpen:r=!1,onOpenChange:a,side:i="right"}){let[n,s]=Ym(r),l=e!==void 0,c=l?e:n,d=Mo(b=>{l||s(b),a?.(b)},[l,a]),p=qm(()=>({open:c,setOpen:d,side:i}),[c,d,i]);return bt(wn.Provider,{value:p,children:t})}var Cn=Eo(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Io();return bt("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})});Cn.displayName="DrawerTrigger";var Tn=Eo(({className:t,children:e,initialFocusRef:r,...a},i)=>{let{open:n,setOpen:s,side:l}=Io(),c=Nn(null),d=Nn(null),p=Mo(u=>{if(c.current=u,typeof i=="function"){i(u);return}i&&(i.current=u)},[i]),b=Mo(()=>{s(!1)},[s]);return hn(()=>{if(!n)return;let u=v=>{v.key==="Escape"&&b()};return window.addEventListener("keydown",u),()=>{window.removeEventListener("keydown",u)}},[b,n]),hn(()=>{if(!n)return;d.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let u=r?.current,v=c.current?.querySelector('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');return(u??v??c.current)?.focus(),()=>{d.current?.focus()}},[r,n]),!n||typeof document>"u"?null:Xm(op("div",{className:"fixed inset-0 z-50",children:[bt("button",{type:"button","aria-label":"Close drawer",className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",onClick:b}),bt("div",{ref:p,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)});Tn.displayName="DrawerContent";function Jm({className:t,...e}){return bt("div",{className:o("mb-[var(--inkblot-spacing-4)] grid gap-[var(--inkblot-spacing-2)]",t),...e})}function tp({className:t,...e}){return bt("h2",{className:o("text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-small)]",t),...e})}function ep({className:t,...e}){return bt("p",{className:o("text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-medium)]",t),...e})}function rp({className:t,...e}){return bt("div",{className:o("mt-[var(--inkblot-spacing-6)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}var Pn=Eo(({className:t,type:e="button",onClick:r,children:a,...i},n)=>{let{setOpen:s}=Io();return bt("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??bt(Zm,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})});Pn.displayName="DrawerClose";import{createContext as ap,forwardRef as Lo,useCallback as np,useContext as ip,useEffect as sp,useMemo as lp,useRef as cp,useState as dp}from"react";import{ChevronDown as mp}from"lucide-react";import{jsx as Re,jsxs as Ln}from"react/jsx-runtime";var Sn=ap(null);function Ao(){let t=ip(Sn);if(!t)throw new Error("DropdownMenu components must be used within DropdownMenu");return t}function pp({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=dp(r),s=cp(null),l=e!==void 0,c=l?e:i,d=np(b=>{l||n(b),a?.(b)},[l,a]);sp(()=>{if(!c)return;let b=v=>{let f=v.target;f&&s.current&&!s.current.contains(f)&&d(!1)},u=v=>{v.key==="Escape"&&d(!1)};return window.addEventListener("pointerdown",b),window.addEventListener("keydown",u),()=>{window.removeEventListener("pointerdown",b),window.removeEventListener("keydown",u)}},[c,d]);let p=lp(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Re(Sn.Provider,{value:p,children:Re("div",{ref:s,className:"relative inline-flex",children:t})})}var Mn=Lo(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{open:l,setOpen:c}=Ao();return Ln("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?Re(mp,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});Mn.displayName="DropdownMenuTrigger";var En=Lo(({className:t,...e},r)=>{let{open:a}=Ao();return a?Re("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});En.displayName="DropdownMenuContent";var In=Lo(({className:t,type:e="button",icon:r,onClick:a,children:i,...n},s)=>{let{setOpen:l}=Ao();return Ln("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]})});In.displayName="DropdownMenuItem";function bp({className:t,...e}){return Re("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}import{useMemo as An,useState as up}from"react";import{ChevronDown as vp,ChevronUp as fp,Columns as gp,GripVertical as kp,Image as Hn,Minus as yp,MousePointerClick as xp,Square as hp,Trash2 as Np,Type as Dn}from"lucide-react";import{jsx as z,jsxs as kt}from"react/jsx-runtime";var Rn=[{type:"heading",label:"Heading",icon:Dn},{type:"text",label:"Text",icon:Dn},{type:"image",label:"Image",icon:Hn},{type:"button",label:"Button",icon:hp},{type:"divider",label:"Divider",icon:yp},{type:"columns",label:"2 Columns",icon:gp}],wp={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 qC({blocks:t,onBlocksChange:e,availableBlockTypes:r,editingId:a,onEditingIdChange:i,onAddBlock:n,onDeleteBlock:s,onMoveBlock:l,onBlockContentChange:c,readOnly:d=!1,className:p}){let[b,u]=up(null),v=a!==void 0,f=v?a:b,w=m=>{v||u(m),i?.(m)},h=An(()=>!r||r.length===0?Rn:Rn.filter(m=>r.includes(m.type)),[r]),g=An(()=>t.reduce((m,x,C)=>(m[x.id]=C,m),{}),[t]),P=m=>{if(d)return;let x={id:`block-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:m,content:wp[m]};e([...t,x]),n?.(m,x)},N=(m,x)=>{d||(e(t.map(C=>C.id===m?{...C,content:x}:C)),c?.(m,x))},y=m=>{d||(e(t.filter(x=>x.id!==m)),s?.(m))},k=(m,x)=>{if(d)return;let C=g[m],S=C+x;if(S<0||S>=t.length)return;let D=[...t],[E]=D.splice(C,1);D.splice(S,0,E),e(D),l?.(m,x)};return kt("section",{className:o("flex gap-4",p),children:[kt("aside",{className:"w-44 shrink-0",children:[z("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Blocks"}),z("div",{className:"mt-2 space-y-1",children:h.map(m=>kt("button",{type:"button",onClick:()=>P(m.type),disabled:d,className:"flex w-full items-center gap-2 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] px-3 py-2 text-xs text-[var(--inkblot-semantic-color-text-primary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]",children:[z(m.icon,{className:"h-3.5 w-3.5 text-[var(--inkblot-semantic-color-text-tertiary)]"}),m.label]},m.type))})]}),z("div",{className:"glass min-h-[400px] flex-1 rounded-[var(--inkblot-radius-lg)] p-6",children:t.length===0?kt("div",{className:"flex h-full flex-col items-center justify-center gap-3 text-center",children:[z(xp,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/40"}),kt("div",{children:[z("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Drop blocks here to build your email"}),z("p",{className:"mt-1 text-[10px] text-[var(--inkblot-semantic-color-text-tertiary)]/60",children:"or use AI to generate a full layout"})]})]}):z("div",{className:"space-y-2",children:t.map((m,x)=>kt("article",{className:"group flex items-start gap-2",children:[z("div",{className:"pt-1 text-[var(--inkblot-semantic-color-text-tertiary)]",children:z(kp,{className:"h-3.5 w-3.5"})}),kt("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:[m.type==="heading"?z("h2",{contentEditable:!d&&f===m.id,suppressContentEditableWarning:!0,onClick:()=>{d||w(m.id)},onBlur:C=>{N(m.id,C.currentTarget.textContent??""),w(null)},className:"cursor-text text-xl font-bold text-[var(--inkblot-semantic-color-text-primary)] outline-none",children:m.content}):null,m.type==="text"?z("p",{contentEditable:!d&&f===m.id,suppressContentEditableWarning:!0,onClick:()=>{d||w(m.id)},onBlur:C=>{N(m.id,C.currentTarget.textContent??""),w(null)},className:"cursor-text text-sm leading-relaxed text-[var(--inkblot-semantic-color-text-secondary)] outline-none",children:m.content}):null,m.type==="image"?z("div",{className:"flex h-32 items-center justify-center overflow-hidden rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:z(Hn,{className:"h-8 w-8 text-[var(--inkblot-semantic-color-text-tertiary)]/50"})}):null,m.type==="button"?z("div",{className:"flex justify-center",children:z("span",{contentEditable:!d&&f===m.id,suppressContentEditableWarning:!0,onClick:()=>{d||w(m.id)},onBlur:C=>{N(m.id,C.currentTarget.textContent??""),w(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:m.content})}):null,m.type==="divider"?z("hr",{className:"my-2 border-[var(--inkblot-semantic-color-border-default)]"}):null,m.type==="columns"?kt("div",{className:"grid grid-cols-2 gap-4",children:[z("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-4 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Column 1"}),z("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-4 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Column 2"})]}):null]}),kt("div",{className:"flex flex-col gap-1 opacity-0 transition-opacity duration-[var(--inkblot-duration-fast)] group-hover:opacity-100",children:[z("button",{type:"button",onClick:()=>k(m.id,-1),disabled:d||x===0,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-30","aria-label":"Move up",children:z(fp,{className:"h-3 w-3"})}),z("button",{type:"button",onClick:()=>k(m.id,1),disabled:d||x===t.length-1,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] disabled:opacity-30","aria-label":"Move down",children:z(vp,{className:"h-3 w-3"})}),z("button",{type:"button",onClick:()=>y(m.id),disabled:d,className:"rounded-[var(--inkblot-radius-sm)] p-1 text-[var(--inkblot-semantic-color-status-error)] transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-status-error)]/10","aria-label":"Delete block",children:z(Np,{className:"h-3 w-3"})})]})]},m.id))})})]})}import{forwardRef as Cp}from"react";import{jsx as He,jsxs as Bn}from"react/jsx-runtime";var zn=Cp(({className:t,...e},r)=>He("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}));zn.displayName="Form";function Tp({className:t,label:e,hint:r,error:a,children:i,requiredIndicator:n,...s}){return Bn("div",{className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:[e?Bn("p",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:[e,n?He("span",{className:"ml-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}):null,i,a?He("p",{className:"text-[var(--inkblot-semantic-color-status-error)] [font:var(--inkblot-semantic-typography-body-small)]",children:a}):r?He("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:r}):null]})}function Pp({className:t,...e}){return He("div",{className:o("mt-[var(--inkblot-spacing-2)] flex flex-wrap justify-end gap-[var(--inkblot-spacing-3)]",t),...e})}import{useEffect as Sp,useRef as Mp}from"react";import{jsx as ue,jsxs as ve}from"react/jsx-runtime";var Ep=[{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}],Ip=[{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 Lp(t,e,r,a){return t>=70?e:t>=50?r:a}function zt(t,e){for(let r of e){let a=t.getPropertyValue(r).trim();if(a)return a}return""}function Do(t,e,r){if(e){t.font=e;return}t.font=r}function sT({title:t="Entity Graph",subtitle:e,nodes:r=Ep,edges:a=Ip,className:i}){let n=Mp(null);Sp(()=>{let l=n.current;if(!l)return;let c=l.getContext("2d");if(!c)return;let d=()=>{let p=l.getBoundingClientRect(),b=window.devicePixelRatio||1;l.width=p.width*b,l.height=p.height*b,c.setTransform(b,0,0,b,0,0),c.clearRect(0,0,p.width,p.height);let u=getComputedStyle(document.documentElement),v=zt(u,["--inkblot-semantic-color-border-default","--inkblot-semantic-color-border-strong"]),f=zt(u,["--inkblot-semantic-color-text-tertiary","--inkblot-semantic-color-text-secondary"]),w=zt(u,["--inkblot-semantic-color-background-secondary","--inkblot-semantic-color-background-primary"]),h=zt(u,["--inkblot-semantic-color-status-success","--inkblot-semantic-color-interactive-primary"]),g=zt(u,["--inkblot-semantic-color-status-warning","--inkblot-semantic-color-status-info"]),P=zt(u,["--inkblot-semantic-color-status-error","--inkblot-semantic-color-status-warning"]),N=zt(u,["--inkblot-semantic-typography-body-small","--inkblot-semantic-typography-body-medium"]),y=zt(u,["--inkblot-semantic-typography-body-medium","--inkblot-semantic-typography-body-small"]),k=c.font;a.forEach(m=>{let x=r.find(S=>S.id===m.from),C=r.find(S=>S.id===m.to);!x||!C||(c.beginPath(),c.moveTo(x.x,x.y),c.lineTo(C.x,C.y),c.strokeStyle=v,c.globalAlpha=Math.min(1,Math.max(0,m.strength*.45)),c.lineWidth=Math.max(1,m.strength*2),c.stroke(),c.globalAlpha=1)}),r.forEach(m=>{let x=Lp(m.score,h,g,P),C=m.kind==="org"?28:22;c.beginPath(),c.arc(m.x,m.y,C+8,0,Math.PI*2),c.fillStyle=x,c.globalAlpha=.08,c.fill(),c.globalAlpha=1,c.beginPath(),c.arc(m.x,m.y,C,0,Math.PI*2),c.fillStyle=w,c.strokeStyle=x,c.globalAlpha=.7,c.lineWidth=1.5,c.fill(),c.stroke(),c.globalAlpha=1,c.fillStyle=x,Do(c,N,k),c.textAlign="center",c.textBaseline="middle",c.fillText(m.kind==="org"?"\u2B21":"\u25CF",m.x,m.y),c.fillStyle=f,Do(c,y,k),c.fillText(m.label,m.x,m.y+C+16),c.fillStyle=x,c.globalAlpha=.8,Do(c,N,k),c.fillText(String(m.score),m.x,m.y+C+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 ve("section",{className:o("flex h-full flex-col",i),children:[ve("header",{className:"flex items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-8 py-5",children:[ve("div",{children:[ue("h2",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:t}),ue("p",{className:"mt-0.5 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]}),ve("div",{className:"flex items-center gap-4 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:[ve("span",{className:"flex items-center gap-1.5",children:[ue("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),"Orgs"]}),ve("span",{className:"flex items-center gap-1.5",children:[ue("span",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-warning)]"}),"People"]})]})]}),ue("div",{className:"relative flex-1",children:ue("canvas",{ref:n,className:"h-full w-full"})})]})}import{useCallback as Ap,useEffect as Dp,useMemo as Rp,useState as Ro}from"react";import{ArrowLeft as Hp,ArrowRight as Bp,Check as zp,X as Op}from"lucide-react";import{Fragment as On,jsx as nt,jsxs as Ot}from"react/jsx-runtime";var Fp=[{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 vT({steps:t=Fp,open:e,defaultOpen:r=!0,onOpenChange:a,stepIndex:i,defaultStepIndex:n=0,onStepIndexChange:s,onComplete:l,className:c}){let[d,p]=Ro(r),[b,u]=Ro(n),[v,f]=Ro(null),w=e??d,h=i??b,g=t[h],P=h===t.length-1,N=S=>{e===void 0&&p(S),a?.(S)},y=S=>{let D=Math.min(Math.max(S,0),Math.max(t.length-1,0));i===void 0&&u(D),s?.(D)},k=Ap(()=>{let S=document.querySelector(g.target);if(!S){f(null);return}f(S.getBoundingClientRect())},[g.target]);Dp(()=>(k(),window.addEventListener("resize",k),window.addEventListener("scroll",k,!0),()=>{window.removeEventListener("resize",k),window.removeEventListener("scroll",k,!0)}),[k]);let m=()=>{if(P){N(!1),l();return}y(h+1)},x=()=>{y(h-1)},C=Rp(()=>{if(!v)return{top:"50%",left:"50%",transform:"translate(-50%, -50%)"};let S=16,D=320;return g.position==="right"?{top:v.top+v.height/2,left:v.right+S,transform:"translateY(-50%)"}:g.position==="left"?{top:v.top+v.height/2,left:v.left-D-S,transform:"translateY(-50%)"}:g.position==="top"?{top:v.top-S,left:v.left+v.width/2,transform:"translate(-50%, -100%)"}:{top:v.bottom+S,left:v.left+v.width/2,transform:"translateX(-50%)"}},[g.position,v]);return w?Ot("div",{className:o("fixed inset-0 z-[200]",c),children:[v?nt("div",{className:"pointer-events-none absolute rounded-[var(--inkblot-radius-lg)] border-2 border-[var(--inkblot-semantic-color-interactive-primary)]/50",style:{top:v.top-6,left:v.left-6,width:v.width+12,height:v.height+12,boxShadow:"0 0 0 9999px var(--inkblot-semantic-color-background-inverse), var(--inkblot-shadow-lg)"}}):nt("div",{className:"absolute inset-0 bg-[var(--inkblot-semantic-color-background-inverse)]/70"}),Ot("div",{style:{...C,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:[Ot("div",{className:"mb-3 flex items-center justify-between",children:[Ot("span",{className:"text-[10px] uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:["Step ",h+1," of ",t.length]}),nt("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:nt(Op,{className:"h-3 w-3"})})]}),nt("h3",{className:"mb-1.5 text-sm font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:g.title}),nt("p",{className:"text-xs leading-relaxed text-[var(--inkblot-semantic-color-text-tertiary)]",children:g.description}),nt("div",{className:"mb-3 mt-4 flex gap-1",children:t.map((S,D)=>nt("span",{className:o("h-1 flex-1 rounded-full",D<=h?"bg-[var(--inkblot-semantic-color-interactive-primary)]":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},`${D}-progress`))}),Ot("div",{className:"flex items-center justify-between",children:[Ot("button",{type:"button",onClick:x,disabled:h===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:[nt(Hp,{className:"h-3 w-3"}),"Back"]}),nt("button",{type:"button",onClick:m,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:P?Ot(On,{children:[nt(zp,{className:"h-3 w-3"}),"Get Started"]}):Ot(On,{children:["Next",nt(Bp,{className:"h-3 w-3"})]})})]})]})]}):null}import{createContext as Vp,forwardRef as Fn,useContext as Gp,useMemo as Kp,useRef as Wp,useState as _p}from"react";import{jsx as Pr}from"react/jsx-runtime";var Vn=Vp(null);function Gn(){let t=Gp(Vn);if(!t)throw new Error("HoverCard components must be used within HoverCard");return t}function Up({children:t,openDelay:e=120,closeDelay:r=120}){let[a,i]=_p(!1),n=Wp(null),s=Kp(()=>({open:a,setOpen:i,openDelay:e,closeDelay:r,timeoutRef:n}),[a,e,r]);return Pr(Vn.Provider,{value:s,children:Pr("div",{className:"relative inline-flex",children:t})})}var Kn=Fn(({className:t,onMouseEnter:e,onMouseLeave:r,onFocus:a,onBlur:i,...n},s)=>{let{setOpen:l,openDelay:c,closeDelay:d,timeoutRef:p}=Gn();return Pr("div",{ref:s,tabIndex:0,onMouseEnter:b=>{e?.(b),p.current&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>l(!0),c)},onMouseLeave:b=>{r?.(b),p.current&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>l(!1),d)},onFocus:b=>{a?.(b),l(!0)},onBlur:b=>{i?.(b),l(!1)},className:o(t),...n})});Kn.displayName="HoverCardTrigger";var Wn=Fn(({className:t,onMouseEnter:e,onMouseLeave:r,...a},i)=>{let{open:n,setOpen:s,closeDelay:l,timeoutRef:c}=Gn();return n?Pr("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});Wn.displayName="HoverCardContent";import{forwardRef as $p,useMemo as jp,useRef as qp,useState as Yp}from"react";import{jsx as _n}from"react/jsx-runtime";var Un=$p(({className:t,disabled:e,length:r=6,value:a,defaultValue:i="",onValueChange:n,containerProps:s,...l},c)=>{let[d,p]=Yp(i.slice(0,r)),b=qp([]),u=a!==void 0,v=u?a.slice(0,r):d,f=jp(()=>Array.from({length:r},(y,k)=>v[k]??""),[v,r]),w=y=>{let k=y.slice(0,r);u||p(k),n?.(k)},h=y=>{let k=b.current[y];k?.focus(),k?.select()},g=(y,k)=>{let m=k.replace(/[^0-9A-Za-z]/g,"").slice(0,1),x=f.map((C,S)=>S===y?m:C);w(x.join("")),m&&y<r-1&&h(y+1)},P=(y,k)=>{if(k.key==="Backspace"&&!f[y]&&y>0){let m=f.map((x,C)=>C===y-1?"":x);w(m.join("")),h(y-1)}k.key==="ArrowLeft"&&y>0&&(k.preventDefault(),h(y-1)),k.key==="ArrowRight"&&y<r-1&&(k.preventDefault(),h(y+1))};return _n("div",{ref:c,onPaste:y=>{y.preventDefault();let k=y.clipboardData.getData("text").replace(/[^0-9A-Za-z]/g,"").slice(0,r);k&&(w(k),h(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)=>_n("input",{ref:m=>{b.current[k]=m},type:"text",inputMode:"numeric",maxLength:1,value:y,disabled:e,onChange:m=>g(k,m.target.value),onKeyDown:m=>P(k,m),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}`))})});Un.displayName="InputOtp";import{jsx as Ho,jsxs as Zp}from"react/jsx-runtime";var Xp=[{label:"Revenue Confidence",value:82,tone:"success"},{label:"Churn Risk",value:23,tone:"warning",inverted:!0},{label:"Momentum",value:67,tone:"primary"}];function RT({title:t="Intelligence Scores",items:e=Xp,className:r}){return Zp("article",{className:o("glass rounded-[var(--inkblot-radius-lg)] p-5",r),children:[Ho("h3",{className:"mb-4 text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),Ho("div",{className:"grid grid-cols-3 gap-6",children:e.map(a=>Ho(mn,{label:a.label,value:a.value,tone:a.tone,color:a.color,inverted:a.inverted},a.label))})]})}import{forwardRef as Qp}from"react";import{jsx as Jp,jsxs as tb}from"react/jsx-runtime";var $n=Qp(({className:t,children:e,requiredIndicator:r,...a},i)=>tb("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?Jp("span",{className:"text-[var(--inkblot-semantic-color-status-error)]",children:"*"}):null]}));$n.displayName="Label";import{createContext as jn,forwardRef as Be,useContext as qn,useMemo as Yn,useRef as eb,useState as rb}from"react";import{ChevronDown as ob}from"lucide-react";import{jsx as Ft,jsxs as ai}from"react/jsx-runtime";var Xn=jn(null);function Bo(){let t=qn(Xn);if(!t)throw new Error("Menubar components must be used within Menubar");return t}var Zn=jn(null);function Qn(){let t=qn(Zn);if(!t)throw new Error("Menubar menu components must be used within MenubarMenu");return t}var Jn=Be(({className:t,...e},r)=>{let[a,i]=rb(null),n=Yn(()=>({openMenuId:a,setOpenMenuId:i}),[a]);return Ft(Xn.Provider,{value:n,children:Ft("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})})});Jn.displayName="Menubar";function ab({id:t,className:e,...r}){let a=Yn(()=>({menuId:t}),[t]);return Ft(Zn.Provider,{value:a,children:Ft("div",{className:o("relative inline-flex",e),...r})})}var ti=Be(({className:t,type:e="button",showChevron:r=!0,onClick:a,children:i,...n},s)=>{let{openMenuId:l,setOpenMenuId:c}=Bo(),{menuId:d}=Qn(),p=l===d;return ai("button",{ref:s,type:e,"aria-haspopup":"menu","aria-expanded":p,onClick:b=>{a?.(b),b.defaultPrevented||c(p?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)]",p?"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?Ft(ob,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):null]})});ti.displayName="MenubarTrigger";var ei=Be(({className:t,...e},r)=>{let{openMenuId:a}=Bo(),{menuId:i}=Qn();return a!==i?null:Ft("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})});ei.displayName="MenubarContent";var ri=Be(({className:t,type:e="button",icon:r,...a},i)=>ai("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]}));ri.displayName="MenubarItem";function nb({className:t,...e}){return Ft("div",{className:o("my-[var(--inkblot-spacing-2)] border-b border-[var(--inkblot-semantic-color-border-default)]",t),...e})}var oi=Be(({className:t,...e},r)=>{let{setOpenMenuId:a}=Bo(),i=eb(null);return Ft("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})});oi.displayName="MenubarCloseZone";import{ChevronRight as ni}from"lucide-react";import{jsx as Sr,jsxs as ii}from"react/jsx-runtime";function ib({items:t,className:e,onItemSelect:r}){return Sr("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=>Sr(sb,{item:a,onSelect:()=>r?.(a)},a.id))})}function sb({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?ii("a",{href:t.href,"aria-current":t.active?"page":void 0,className:i,onClick:()=>e?.(),...a,children:[t.icon,t.label,t.active?null:Sr(ni,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]}):ii("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:Sr(ni,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})]})}import{useMemo as lb,useState as si}from"react";import{ArrowLeft as cb,ArrowRight as db,Briefcase as mb,Building2 as pb,Check as bb,Command as ub,Globe as vb,Megaphone as fb,Sparkles as gb,Target as li,Users as kb}from"lucide-react";import{Fragment as ci,jsx as W,jsxs as it}from"react/jsx-runtime";var yb=[{id:"company",question:"What's your company name?",subtitle:"We'll personalize your workspace around your brand.",icon:pb,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:kb,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:mb,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:li,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:li,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:fb,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:vb,type:"input",field:"website",placeholder:"e.g. https://acme.com"}];function sP({onComplete:t,steps:e=yb,value:r,defaultValue:a,onValueChange:i,stepIndex:n,defaultStepIndex:s=0,onStepIndexChange:l,onCancel:c,showSkip:d=!0,className:p}){let[b,u]=si(s),[v,f]=si(a??{}),w=n!==void 0,h=r!==void 0,g=w?n:b,P=h?r:v,N=e[g],y=P[N.field]??(N.type==="multi-select"?[]:""),k=g===e.length-1,m=lb(()=>N.type==="multi-select"?y.length>0:N.id==="website"?!0:typeof y=="string"&&y.trim().length>0,[y,N.id,N.type]),x=I=>{let O=Math.min(Math.max(I,0),Math.max(e.length-1,0));w||u(O),l?.(O)},C=I=>{h||f(I),i?.(I)},S=()=>x(g-1),D=()=>{if(k){t(P);return}x(g+1)},E=(I,O)=>{C({...P,[I]:O})},V=(I,O)=>{let L=P[I]??[],_=L.includes(O)?L.filter(j=>j!==O):[...L,O];E(I,_)};return it("section",{className:o("fixed inset-0 z-[100] flex items-center justify-center bg-[var(--inkblot-semantic-color-background-primary)]",p),children:[it("div",{className:"absolute inset-0 overflow-hidden",children:[W("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]"}),W("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]"})]}),it("div",{className:"relative w-full max-w-lg px-6",children:[it("header",{className:"mb-12 flex items-center justify-center gap-2",children:[W("span",{className:"flex h-10 w-10 items-center justify-center rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:W(ub,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-inverse)]"})}),W("span",{className:"text-lg font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:"Citron OS"})]}),W("div",{className:"mb-10 flex gap-1",children:e.map((I,O)=>W("span",{className:o("h-0.5 flex-1 rounded-full",O<g?"bg-[var(--inkblot-semantic-color-interactive-primary)]":O===g?"bg-[var(--inkblot-semantic-color-interactive-primary)]/60":"bg-[var(--inkblot-semantic-color-background-tertiary)]")},I.id))}),it("div",{className:"space-y-6",children:[it("div",{children:[W("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:W(N.icon,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]"})}),W("h2",{className:"text-xl font-semibold tracking-tight text-[var(--inkblot-semantic-color-text-primary)]",children:N.question}),W("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:N.subtitle})]}),N.type==="input"?W("input",{autoFocus:!0,value:y||"",onChange:I=>E(N.field,I.target.value),placeholder:N.placeholder,onKeyDown:I=>{I.key==="Enter"&&m&&D()},className:"w-full rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] px-5 py-3.5 text-sm text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] outline-none"}):null,N.type==="select"?W("div",{className:"grid grid-cols-2 gap-2",children:N.options?.map(I=>W("button",{type:"button",onClick:()=>E(N.field,I.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===I.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:I.label},I.value))}):null,N.type==="multi-select"?W("div",{className:"grid grid-cols-2 gap-2",children:N.options?.map(I=>{let O=y.includes(I.value);return it("button",{type:"button",onClick:()=>V(N.field,I.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)]",O?"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:[W("span",{className:o("flex h-4 w-4 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-sm)] border",O?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)]":"border-[var(--inkblot-semantic-color-border-default)]"),children:O?W(bb,{className:"h-2.5 w-2.5 text-[var(--inkblot-semantic-color-text-inverse)]"}):null}),I.label]},I.value)})}):null]}),it("footer",{className:"mt-10 flex items-center justify-between",children:[it("button",{type:"button",onClick:S,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:[W(cb,{className:"h-3 w-3"}),"Back"]}),it("div",{className:"flex items-center gap-3",children:[!k&&d?W("button",{type:"button",onClick:c??D,className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Skip"}):null,W("button",{type:"button",onClick:D,disabled:!m,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?it(ci,{children:[W(gb,{className:"h-3 w-3"}),"Launch Citron OS"]}):it(ci,{children:["Continue",W(db,{className:"h-3 w-3"})]})})]})]})]})]})}import{ChevronLeft as xb,ChevronRight as hb}from"lucide-react";import{jsx as ze,jsxs as wb}from"react/jsx-runtime";function Nb({page:t,totalPages:e,onPageChange:r,className:a}){let i=Array.from({length:e},(n,s)=>s+1);return wb("nav",{"aria-label":"Pagination",className:o("flex items-center gap-[var(--inkblot-spacing-2)]",a),children:[ze("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:ze(xb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})}),i.map(n=>{let s=n===t;return ze("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}`)}),ze("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:ze(hb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})]})}import{createContext as Cb,forwardRef as zo,useCallback as Tb,useContext as Pb,useEffect as Sb,useMemo as Mb,useRef as Eb,useState as Ib}from"react";import{jsx as Oe}from"react/jsx-runtime";var di=Cb(null);function Oo(){let t=Pb(di);if(!t)throw new Error("Popover components must be used within Popover");return t}function Lb({children:t,open:e,defaultOpen:r=!1,onOpenChange:a}){let[i,n]=Ib(r),s=Eb(null),l=e!==void 0,c=l?e:i,d=Tb(b=>{l||n(b),a?.(b)},[l,a]);Sb(()=>{if(!c)return;let b=v=>{let f=v.target;f&&s.current&&!s.current.contains(f)&&d(!1)},u=v=>{v.key==="Escape"&&d(!1)};return window.addEventListener("pointerdown",b),window.addEventListener("keydown",u),()=>{window.removeEventListener("pointerdown",b),window.removeEventListener("keydown",u)}},[c,d]);let p=Mb(()=>({open:c,setOpen:d,containerRef:s}),[c,d]);return Oe(di.Provider,{value:p,children:Oe("div",{ref:s,className:"relative inline-flex",children:t})})}var mi=zo(({className:t,type:e="button",onClick:r,...a},i)=>{let{open:n,setOpen:s}=Oo();return Oe("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})});mi.displayName="PopoverTrigger";var pi=zo(({className:t,...e},r)=>{let{open:a}=Oo();return a?Oe("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});pi.displayName="PopoverContent";var bi=zo(({className:t,type:e="button",onClick:r,...a},i)=>{let{setOpen:n}=Oo();return Oe("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})});bi.displayName="PopoverClose";import{forwardRef as Ab}from"react";import{jsx as Fo,jsxs as Db}from"react/jsx-runtime";var ui=Ab(({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 Db("div",{ref:n,className:o("grid gap-[var(--inkblot-spacing-2)]",t),...i,children:[Fo("div",{className:"h-[var(--inkblot-spacing-2)] overflow-hidden rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-secondary)]",children:Fo("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?Fo("p",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:l}):null]})});ui.displayName="Progress";import{forwardRef as fi,useState as Rb}from"react";import{jsx as Fe,jsxs as vi}from"react/jsx-runtime";var gi=fi(({className:t,options:e,value:r,defaultValue:a,onValueChange:i,name:n="radio-group",...s},l)=>{let[c,d]=Rb(a??""),p=r!==void 0,b=p?r:c,u=v=>{p||d(v),i?.(v)};return Fe("div",{ref:l,role:"radiogroup",className:o("grid gap-[var(--inkblot-spacing-2)]",t),...s,children:e.map(v=>vi("label",{className:o("flex cursor-pointer items-start gap-[var(--inkblot-spacing-3)] rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] p-[var(--inkblot-spacing-3)]","bg-[var(--inkblot-semantic-color-background-primary)] hover:bg-[var(--inkblot-semantic-color-background-secondary)]",v.disabled&&"pointer-events-none opacity-[var(--inkblot-opacity-disabled)]"),children:[Fe(Vo,{type:"radio",name:n,value:v.value,checked:b===v.value,disabled:v.disabled,onChange:()=>u(v.value)}),vi("span",{className:"grid gap-[var(--inkblot-spacing-1)]",children:[Fe("span",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-medium)]",children:v.label}),v.description?Fe("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:v.description}):null]})]},v.value))})});gi.displayName="RadioGroup";var Vo=fi(({className:t,...e},r)=>Fe("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}));Vo.displayName="RadioGroupItem";import{useMemo as Hb,useState as Bb}from"react";import{GripVertical as zb,GripHorizontal as Ob}from"lucide-react";import{jsx as fe,jsxs as Vb}from"react/jsx-runtime";function Fb({primary:t,secondary:e,direction:r="horizontal",defaultPrimarySize:a=50,minPrimarySize:i=20,minSecondarySize:n=20,className:s}){let[l,c]=Bb(a),d=r==="horizontal",p=Hb(()=>d?{gridTemplateColumns:`${l}fr auto ${100-l}fr`}:{gridTemplateRows:`${l}fr auto ${100-l}fr`},[d,l]),b=(u,v)=>{let f=v.getBoundingClientRect(),w=d?(u.x-f.left)/f.width*100:(u.y-f.top)/f.height*100,h=100-n,g=Math.min(h,Math.max(i,w));c(g)};return Vb("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:p,children:[fe("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:t}),fe("div",{className:o(d?"w-[var(--inkblot-spacing-2)]":"h-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-border-default)]"),children:fe("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:u=>{let v=u.currentTarget.closest("div")?.parentElement;if(!v)return;b({x:u.clientX,y:u.clientY},v);let f=h=>{b({x:h.clientX,y:h.clientY},v)},w=()=>{window.removeEventListener("pointermove",f),window.removeEventListener("pointerup",w)};window.addEventListener("pointermove",f),window.addEventListener("pointerup",w)},children:d?fe(zb,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}}):fe(Ob,{style:{width:"var(--inkblot-spacing-4)",height:"var(--inkblot-spacing-4)"}})})}),fe("div",{className:"min-h-0 min-w-0 overflow-auto p-[var(--inkblot-spacing-3)]",children:e})]})}import{forwardRef as Gb}from"react";import{jsx as Kb}from"react/jsx-runtime";var ki=Gb(({className:t,maxHeight:e="var(--inkblot-size-touch-target-min)",...r},a)=>Kb("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}));ki.displayName="ScrollArea";import{ChevronDown as Wb}from"lucide-react";import{forwardRef as _b}from"react";import{jsx as Go,jsxs as yi}from"react/jsx-runtime";var xi=_b(({className:t,options:e,placeholder:r,error:a,disabled:i,...n},s)=>yi("div",{className:"relative w-full",children:[yi("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?Go("option",{value:"",disabled:!0,children:r}):null,e.map(l=>Go("option",{value:l.value,disabled:l.disabled,children:l.label},l.value))]}),Go(Wb,{"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)]"})]}));xi.displayName="Select";import{forwardRef as Ub}from"react";import{jsx as $b}from"react/jsx-runtime";var hi=Ub(({className:t,orientation:e="horizontal",decorative:r=!0,...a},i)=>$b("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}));hi.displayName="Separator";import{X as jb}from"lucide-react";import{useEffect as qb}from"react";import{jsx as ge,jsxs as Mr}from"react/jsx-runtime";var Yb={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 Xb({open:t,onOpenChange:e,side:r="right",title:a,description:i,showCloseButton:n=!0,className:s,overlayClassName:l,children:c,...d}){return qb(()=>{if(!t)return;let p=b=>{b.key==="Escape"&&e?.(!1)};return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[t,e]),t?Mr("div",{className:"fixed inset-0 z-50",children:[ge("button",{type:"button","aria-label":"Close panel",onClick:()=>e?.(!1),className:o("absolute inset-0 bg-[var(--inkblot-semantic-color-background-primary)]/70",l)}),Mr("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)]",Yb[r],s),...d,children:[(a||i||n)&&Mr("header",{className:"mb-4 flex items-start justify-between gap-4",children:[Mr("div",{children:[a?ge("h3",{className:"text-base font-semibold",children:a}):null,i?ge("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:i}):null]}),n?ge("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:ge(jb,{className:"size-4"})}):null]}),ge("div",{children:c})]})]}):null}import{PanelLeftClose as Zb,PanelLeftOpen as Qb}from"lucide-react";import{Fragment as tu,jsx as yt,jsxs as Er}from"react/jsx-runtime";function Jb({items:t,collapsed:e=!1,onCollapsedChange:r,header:a,footer:i,className:n,...s}){return Er("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:[Er("div",{className:"mb-3 flex items-center justify-between gap-2",children:[yt("div",{className:o("truncate text-sm font-semibold",e&&"sr-only"),children:a}),yt("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?yt(Qb,{className:"size-4"}):yt(Zb,{className:"size-4"})})]}),yt("nav",{className:"flex flex-1 flex-col gap-1",children:t.map(l=>{let c=l.icon;return Er("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?yt(c,{className:"size-4 shrink-0"}):null,e?null:Er(tu,{children:[yt("span",{className:"truncate",children:l.label}),l.badge?yt("span",{className:"ml-auto",children:l.badge}):null]})]},l.id)})}),i?yt("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 eu,useMemo as ru}from"react";import{jsx as Ir,jsxs as Ni}from"react/jsx-runtime";var wi=eu(({className:t,value:e,defaultValue:r,min:a=0,max:i=100,step:n=1,disabled:s,showValue:l=!0,onValueChange:c,...d},p)=>{let b=e??r??a,u=ru(()=>i<=a?0:(b-a)/(i-a)*100,[b,a,i]);return Ni("div",{className:o("w-full",t),children:[Ni("div",{className:"mb-2 flex items-center justify-between text-sm",children:[Ir("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:a}),l?Ir("span",{className:"font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:b}):null,Ir("span",{className:"text-[var(--inkblot-semantic-color-text-secondary)]",children:i})]}),Ir("input",{ref:p,type:"range",value:e,defaultValue:r,min:a,max:i,step:n,disabled:s,onChange:v=>c?.(Number(v.target.value)),className:"h-2 w-full cursor-pointer appearance-none rounded-full bg-[var(--inkblot-semantic-color-background-tertiary)] disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)] [&::-webkit-slider-runnable-track]:h-2 [&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-transparent [&::-webkit-slider-thumb]:mt-[-4px] [&::-webkit-slider-thumb]:size-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border [&::-webkit-slider-thumb]:border-[var(--inkblot-semantic-color-border-default)] [&::-webkit-slider-thumb]:bg-[var(--inkblot-semantic-color-background-secondary)] [&::-webkit-slider-thumb]:shadow-sm [&::-moz-range-track]:h-2 [&::-moz-range-track]:rounded-full [&::-moz-range-track]:bg-transparent [&::-moz-range-thumb]:size-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border [&::-moz-range-thumb]:border-[var(--inkblot-semantic-color-border-default)] [&::-moz-range-thumb]:bg-[var(--inkblot-semantic-color-background-secondary)]",style:{background:`linear-gradient(to right, var(--inkblot-semantic-color-interactive-primary) 0%, var(--inkblot-semantic-color-interactive-primary) ${u}%, var(--inkblot-semantic-color-background-tertiary) ${u}%, var(--inkblot-semantic-color-background-tertiary) 100%)`},...d})]})});wi.displayName="Slider";import{useMemo as mu}from"react";import{AlertTriangle as ou,CheckCircle2 as au,CircleX as nu,Info as iu,X as su}from"lucide-react";import{jsx as ct,jsxs as Ci}from"react/jsx-runtime";var lu={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)]"},cu={info:ct(iu,{className:"size-4"}),success:ct(au,{className:"size-4"}),warning:ct(ou,{className:"size-4"}),error:ct(nu,{className:"size-4"})};function Ko({title:t,description:e,variant:r="info",action:a,onClose:i,className:n,...s}){return ct("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",lu[r],n),...s,children:Ci("div",{className:"flex items-start gap-3",children:[ct("span",{className:"mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]",children:cu[r]}),Ci("div",{className:"min-w-0 flex-1",children:[ct("p",{className:"text-sm font-semibold",children:t}),e?ct("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e}):null,a?ct("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?ct("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:ct(su,{className:"size-4"})}):null]})})}import{jsx as Ti}from"react/jsx-runtime";var du={"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 Wo({toasts:t,position:e="bottom-right",onDismiss:r,className:a,...i}){return Ti("div",{className:o("fixed z-50 flex w-full max-w-[360px] flex-col gap-2",du[e],a),...i,children:t.map(n=>Ti(Ko,{...n,onClose:()=>r?.(n.id)},n.id))})}import{jsx as bu}from"react/jsx-runtime";function pu({toasts:t,maxVisible:e=3,position:r="bottom-right",onDismiss:a,...i}){let n=mu(()=>t.slice(0,e),[t,e]);return bu(Wo,{toasts:n,position:r,onDismiss:a,...i})}import{forwardRef as uu,useState as vu}from"react";import{jsx as Pi}from"react/jsx-runtime";var Si=uu(({checked:t,defaultChecked:e=!1,onCheckedChange:r,disabled:a,className:i,...n},s)=>{let[l,c]=vu(e),d=t??l;return Pi("button",{ref:s,type:"button",role:"switch","aria-checked":d,disabled:a,onClick:()=>{if(a)return;let b=!d;t===void 0&&c(b),r?.(b)},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:Pi("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")})})});Si.displayName="Switch";import{forwardRef as Vt}from"react";import{ArrowDown as fu,ArrowUp as gu,ArrowUpDown as ku}from"lucide-react";import{jsx as Z,jsxs as Bi}from"react/jsx-runtime";var Mi=Vt(({className:t,...e},r)=>Z("div",{className:"w-full overflow-x-auto rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)]",children:Z("table",{ref:r,className:o("w-full border-collapse bg-[var(--inkblot-semantic-color-background-secondary)]",t),...e})})),Ei=Vt(({className:t,...e},r)=>Z("thead",{ref:r,className:o("bg-[var(--inkblot-semantic-color-background-tertiary)]",t),...e})),Ii=Vt(({className:t,...e},r)=>Z("tbody",{ref:r,className:o(t),...e})),Li=Vt(({className:t,...e},r)=>Z("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})),Ai=Vt(({className:t,children:e,sortable:r=!1,sortDirection:a,onSort:i,sortButtonProps:n,...s},l)=>Z("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?Bi("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"?Z(gu,{className:"h-3.5 w-3.5","aria-hidden":!0}):a==="desc"?Z(fu,{className:"h-3.5 w-3.5","aria-hidden":!0}):Z(ku,{className:"h-3.5 w-3.5","aria-hidden":!0})]}):e})),Di=Vt(({className:t,...e},r)=>Z("td",{ref:r,className:o("px-4 py-3 text-sm",t),...e})),Ri=Vt(({className:t,...e},r)=>Z("caption",{ref:r,className:o("p-3 text-left text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",t),...e})),Hi=Vt(({className:t,colSpan:e,title:r="No data available",description:a="Adjust filters or add records to populate this table.",...i},n)=>Z("tr",{children:Z("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:Bi("div",{className:"mx-auto flex max-w-[420px] flex-col gap-[var(--inkblot-spacing-1)]",children:[Z("span",{className:"[font:var(--inkblot-semantic-typography-body-large-bold)] text-[var(--inkblot-semantic-color-text-primary)]",children:r}),Z("span",{className:"[font:var(--inkblot-semantic-typography-body-small)]",children:a})]})})}));Mi.displayName="Table";Ei.displayName="TableHeader";Ii.displayName="TableBody";Li.displayName="TableRow";Ai.displayName="TableHead";Di.displayName="TableCell";Ri.displayName="TableCaption";Hi.displayName="TableEmptyState";import{useMemo as yu,useState as xu}from"react";import{jsx as _o,jsxs as Nu}from"react/jsx-runtime";function hu({items:t,value:e,defaultValue:r,onValueChange:a,fullWidth:i=!1,className:n,...s}){let l=r??t.find(v=>!v.disabled)?.id??"",[c,d]=xu(l),p=e??c,b=yu(()=>t.find(v=>v.id===p)??t.find(v=>!v.disabled),[p,t]),u=v=>{e===void 0&&d(v),a?.(v)};return Nu("div",{className:o("w-full",n),...s,children:[_o("div",{role:"tablist",className:"inline-flex rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] p-1",children:t.map(v=>{let f=v.id===b?.id;return _o("button",{type:"button",role:"tab","aria-selected":f,disabled:v.disabled,onClick:()=>u(v.id),className:o("min-h-[var(--inkblot-size-touch-target-min)] rounded-[var(--inkblot-radius-md)] px-4 py-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]",i&&"flex-1",f?"bg-[var(--inkblot-semantic-color-background-secondary)] text-[var(--inkblot-semantic-color-text-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)] hover:text-[var(--inkblot-semantic-color-text-primary)]"),children:v.label},v.id)})}),_o("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:b?.content})]})}import{forwardRef as wu}from"react";import{jsx as Tu}from"react/jsx-runtime";var Cu={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},zi=wu(({className:t,error:e,disabled:r,resize:a="vertical",...i},n)=>Tu("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)]",Cu[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}));zi.displayName="Textarea";import{useState as Pu}from"react";import{jsx as Eu,jsxs as Iu}from"react/jsx-runtime";var Su={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 Mu({content:t,side:e="top",open:r,defaultOpen:a=!1,onOpenChange:i,disabled:n=!1,className:s,children:l,...c}){let[d,p]=Pu(a),b=r??d,u=v=>{r===void 0&&p(v),i?.(v)};return Iu("span",{className:o("relative inline-flex",s),onMouseEnter:()=>!n&&u(!0),onMouseLeave:()=>u(!1),onFocus:()=>!n&&u(!0),onBlur:()=>u(!1),...c,children:[l,b&&!n?Eu("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",Su[e]),children:t}):null]})}import{Sparkles as Lu}from"lucide-react";import{jsx as xt,jsxs as Uo}from"react/jsx-runtime";function Au({item:t,onSelect:e,onGenerateWithAI:r}){return Uo("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?xt("img",{src:t.thumbnail,alt:t.title,className:"w-full rounded-t-[var(--inkblot-radius-lg)] object-cover"}):xt("div",{className:"flex h-32 items-center justify-center rounded-t-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-tertiary)]",children:xt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No preview"})}),Uo("div",{className:"flex flex-col gap-[var(--inkblot-spacing-2)] p-[var(--inkblot-spacing-4)]",children:[t.category&&xt("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}),xt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.description&&xt("p",{className:"line-clamp-2 text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t.description}),r&&Uo("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:[xt(Lu,{className:"h-4 w-4","aria-hidden":!0}),"Generate with AI"]})]})]})}function Du({items:t,columns:e=3,onSelect:r,onGenerateWithAI:a,className:i}){return xt("div",{className:o("gap-[var(--inkblot-spacing-4)]",i),style:{columns:e,columnGap:"var(--inkblot-spacing-4)"},children:t.map(n=>xt(Au,{item:n,onSelect:r,onGenerateWithAI:a},n.id))})}import{useEffect as Ru,useCallback as Hu}from"react";import{X as Bu,AlertTriangle as zu,ArrowUp as Ou,ArrowDown as Fu,Minus as Oi,Calendar as Vu,User as Gu}from"lucide-react";import{Fragment as $u,jsx as U,jsxs as ut}from"react/jsx-runtime";var Ku={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)]"}},Wu={urgent:{label:"Urgent",icon:zu,color:"text-[var(--inkblot-semantic-color-status-warning)]"},high:{label:"High",icon:Ou,color:"text-[var(--inkblot-semantic-color-status-warning)]"},medium:{label:"Medium",icon:Oi,color:"text-[var(--inkblot-semantic-color-status-info)]"},low:{label:"Low",icon:Fu,color:"text-[var(--inkblot-semantic-color-text-tertiary)]"}};function _u(t){return t.completed?"done":"todo"}function ke({label:t,children:e}){return ut("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:[U("span",{className:"w-28 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:t}),U("div",{className:"min-w-0 flex-1 text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})}function Uu({task:t,open:e,onOpenChange:r,extraFields:a,onStatusChange:i,onAssigneeChange:n,className:s}){let l=Hu(()=>r?.(!1),[r]);if(Ru(()=>{if(!e)return;let u=v=>{v.key==="Escape"&&l()};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[e,l]),!e)return null;let c=t?_u(t):null,d=c?Ku[c]:null,p=t?Wu[t.priority]:null,b=p?.icon??Oi;return ut("div",{className:"fixed inset-0 z-50 flex justify-end",children:[U("div",{className:"absolute inset-0 bg-black/40 transition-opacity duration-[var(--inkblot-duration-fast)]",onClick:l,"aria-hidden":!0}),U("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?ut($u,{children:[ut("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:[ut("div",{className:"min-w-0 flex-1",children:[U("h2",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t.title}),t.jiraKey&&U("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})]}),U("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:U(Bu,{className:"h-4 w-4","aria-hidden":!0})})]}),ut("div",{className:"flex-1 overflow-y-auto p-[var(--inkblot-spacing-6)]",children:[U(ke,{label:"Status",children:ut("button",{type:"button",onClick:()=>{if(!i||!c)return;let u=["todo","in_progress","done"],v=u[(u.indexOf(c)+1)%u.length];i(v)},className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-sm)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","transition-colors duration-[var(--inkblot-duration-fast)]",i&&"cursor-pointer hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"),disabled:!i,children:[U("span",{className:o("h-2 w-2 shrink-0 rounded-full",d?.color)}),d?.label]})}),U(ke,{label:"Priority",children:ut("span",{className:o("inline-flex items-center gap-[var(--inkblot-spacing-2)]",p?.color),children:[U(b,{className:"h-4 w-4","aria-hidden":!0}),p?.label]})}),U(ke,{label:"Assignee",children:ut("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[U(Gu,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.assignee]})}),U(ke,{label:"Due date",children:ut("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)]",children:[U(Vu,{className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0}),t.date]})}),U(ke,{label:"Company",children:t.company}),a?.map(u=>U(ke,{label:u.label,children:u.value},u.label))]})]}):U("div",{className:"flex flex-1 items-center justify-center p-[var(--inkblot-spacing-6)]",children:U("p",{className:"text-[var(--inkblot-semantic-color-text-tertiary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"No task selected"})})})]})}import{Fragment as Fi,jsx as dt,jsxs as Yt}from"react/jsx-runtime";function ju({name:t,description:e,icon:r,connected:a=!1,onConnect:i,onDisconnect:n,className:s}){return Yt("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:[Yt("div",{className:"flex items-start gap-[var(--inkblot-spacing-4)]",children:[dt("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??dt("span",{className:"h-5 w-5 rounded-full bg-[var(--inkblot-semantic-color-border-default)]"})}),Yt("div",{className:"min-w-0 flex-1",children:[dt("h3",{className:"text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-4)]",children:t}),dt("p",{className:"mt-[var(--inkblot-spacing-1)] text-[var(--inkblot-semantic-color-text-secondary)] [font:var(--inkblot-semantic-typography-body-small)]",children:e})]})]}),dt("div",{className:"flex items-center justify-between",children:a?Yt(Fi,{children:[Yt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[dt("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),dt("span",{className:"text-[var(--inkblot-semantic-color-status-success)]",children:"Connected"})]}),n&&dt("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"})]}):Yt(Fi,{children:[Yt("span",{className:"inline-flex items-center gap-[var(--inkblot-spacing-2)] [font:var(--inkblot-semantic-typography-body-small)]",children:[dt("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--inkblot-semantic-color-text-tertiary)]"}),dt("span",{className:"text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Not connected"})]}),i&&dt("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 VM="var(--inkblot-semantic-color-background-primary)",GM="var(--inkblot-semantic-color-background-secondary)",KM="var(--inkblot-semantic-color-border-default)",WM="var(--inkblot-semantic-color-text-primary)",_M="var(--inkblot-semantic-color-text-secondary)",UM="var(--inkblot-semantic-color-interactive-primary)",$M="var(--inkblot-semantic-color-interactive-secondary)",jM="var(--inkblot-semantic-color-interactive-secondary-hover)";export{ye as AIComposeInput,bN as AIEmailGenerator,Qc as Accordion,Rr as ActionButtons,sr as ActivityStream,ad as AdvancedDropdown,md as Alert,ud as AlertDialog,$N as AppLayout,Ta as AppNavigationRail,Ja as AppSidebar,Wd as AspectRatio,Qi as AssistantPanel,Xr as Avatar,$d as Badge,Yd as Breadcrumb,xe as Button,vr as CITRON_THEME_STORAGE_KEY,am as Calendar,_e as CampaignTable,uo as CanvasProvider,nm as Card,cm as CardContent,lm as CardDescription,dm as CardFooter,im as CardHeader,sm as CardTitle,um as Carousel,is as CenteredAIChat,Ji as CenteredAssistantChat,vm as Chart,km as Checkbox,mn as CircularScore,Nm as Collapsible,Pm as Command,Pa as CommandBar,mC as CommandCanvas,Rm as ContextMenu,Gm as Dialog,So as DialogClose,xn as DialogContent,_m as DialogDescription,Um as DialogFooter,Km as DialogHeader,Wm as DialogTitle,yn as DialogTrigger,Qm as Drawer,Pn as DrawerClose,Tn as DrawerContent,ep as DrawerDescription,rp as DrawerFooter,Jm as DrawerHeader,tp as DrawerTitle,Cn as DrawerTrigger,pp as DropdownMenu,En as DropdownMenuContent,In as DropdownMenuItem,bp as DropdownMenuSeparator,Mn as DropdownMenuTrigger,qC as EmailBlockEditor,za as EmailCampaignsView,We as EmailComposeActionButtons,je as EmailTemplatesSection,na as EntityCard,ia as EntityCommandCard,qe as ErrorBoundary,en as EventFeed,la as EventRow,da as EventStreamFeed,Sa as EventStreamSidebar,zn as Form,Pp as FormActions,Tp as FormField,Jt as GlobalAssistantChat,sT as GraphView,vT as GuidedTour,Up as HoverCard,Wn as HoverCardContent,Kn as HoverCardTrigger,Kt as Input,Un as InputOtp,ju as IntegrationPlaceholder,RT as IntelligenceCard,Ma as IntelligenceLab,Xe as IntelligenceScoreCard,qc as InvoiceEditorPage,ro as InvoiceForm,ao as InvoicePreview,$n as Label,Ea as MainShell,Jn as Menubar,oi as MenubarCloseZone,ei as MenubarContent,ri as MenubarItem,ab as MenubarMenu,nb as MenubarSeparator,ti as MenubarTrigger,ma as MetricComparisonList,Je as ModuleContainer,B as ModuleErrorBoundary,Ze as ModuleSkeleton,po as NavLink,eo as NavLinkRouter,ib as NavigationMenu,ga as OSNavigationRail,sP as OnboardingWizard,er as PageErrorFallback,oe as PageHeader,ae as PageHeaderActionButton,Nb as Pagination,Lb as Popover,bi as PopoverClose,pi as PopoverContent,mi as PopoverTrigger,ui as Progress,gi as RadioGroup,Vo as RadioGroupItem,Fb as Resizable,ua as RouteWithErrorBoundary,ki as ScrollArea,St as SearchBar,xi as Select,hi as Separator,Xb as Sheet,Jb as Sidebar,Pt as Skeleton,wi as Slider,pu as Sonner,fa as StatCardGrid,rr as StatCards,ya as StatCardsWithChart,Ye as StatusBadge,Si as Switch,or as TabSystem,Mi as Table,Ii as TableBody,Ri as TableCaption,Di as TableCell,Hi as TableEmptyState,Ai as TableHead,Ei as TableHeader,Li as TableRow,hu as Tabs,cr as TaskCreateForm,Uu as TaskDetailsPanel,ar as TaskItem,le as TaskKanban,le as TaskKanbanBoard,mr as TaskKanbanCard,pr as TaskKanbanColumn,nr as TaskList,Da as TasksView,Ue as TemplateCard,Du as TemplateMasonryGrid,zi as Textarea,Ka as ThemeProvider,gr as ThemeSwitcherButton,Ko as Toast,Wo as Toaster,qr as Toggle,Yr as ToggleGroup,Mu as Tooltip,VM as semanticBackgroundPrimary,GM as semanticBackgroundSecondary,KM as semanticBorderDefault,UM as semanticInteractivePrimary,$M as semanticInteractiveSecondary,jM as semanticInteractiveSecondaryHover,WM as semanticTextPrimary,_M as semanticTextSecondary,Vd as useCanvas,fr as useTheme};
|