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