chordia-ui 3.3.2 → 3.3.3
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/README.md +4 -0
- package/dist/SmallButton.cjs.js +1 -1
- package/dist/SmallButton.cjs.js.map +1 -1
- package/dist/SmallButton.es.js +170 -162
- package/dist/SmallButton.es.js.map +1 -1
- package/dist/components/chat.cjs.js +8 -8
- package/dist/components/chat.cjs.js.map +1 -1
- package/dist/components/chat.es.js +329 -335
- package/dist/components/chat.es.js.map +1 -1
- package/dist/components/data.cjs.js +1 -1
- package/dist/components/data.cjs.js.map +1 -1
- package/dist/components/data.es.js +83 -80
- package/dist/components/data.es.js.map +1 -1
- package/dist/components/layout.cjs.js +1 -1
- package/dist/components/layout.cjs.js.map +1 -1
- package/dist/components/layout.es.js +3 -1
- package/dist/components/layout.es.js.map +1 -1
- package/dist/index.cjs2.js +1 -1
- package/dist/index.cjs2.js.map +1 -1
- package/dist/index.es2.js +4 -4
- package/dist/index.es2.js.map +1 -1
- package/dist/pages/interactionDetails.cjs.js +2 -2
- package/dist/pages/interactionDetails.cjs.js.map +1 -1
- package/dist/pages/interactionDetails.es.js +117 -123
- package/dist/pages/interactionDetails.es.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/ChatHistoryPanel.jsx +3 -3
- package/src/components/chat/ChatInterface.jsx +14 -14
- package/src/components/common/MessageThread.jsx +19 -19
- package/src/components/data/DataTable.jsx +18 -15
- package/src/components/layout/SplitPane.jsx +2 -0
- package/src/components/login/LoginPage.jsx +4 -4
- package/src/components/primitives/SmallButton.jsx +14 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("react"),
|
|
2
|
-
`);let r=0,d=0;for(;r<t.length;){const
|
|
3
|
-
`),c,`code-${d++}`));continue}if(
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("react"),D=require("lucide-react"),g=require("recharts"),ae=({content:f,onCodeBlockClick:y,onFilePathClick:b})=>{const[v,a]=h.useState(new Set),j=async(s,n)=>{try{await navigator.clipboard.writeText(s),a(t=>new Set([...t,n])),setTimeout(()=>{a(t=>{const r=new Set(t);return r.delete(n),r})},2e3)}catch(t){console.error("Failed to copy text:",t)}},L=(s,n,t)=>{const r=v.has(t);return e.jsxs("div",{style:{position:"relative",marginBottom:"16px",borderRadius:"8px",background:"var(--ink, #1E2125)",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",overflow:"hidden"},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",background:"rgba(255,255,255,0.05)",borderBottom:"1px solid rgba(255,255,255,0.1)"},children:[e.jsx("span",{style:{fontSize:"11px",color:"rgba(255,255,255,0.7)",fontFamily:"var(--font-mono, monospace)",textTransform:"uppercase",letterSpacing:"0.05em"},children:n||"code"}),e.jsxs("button",{onClick:()=>j(s,t),style:{background:"none",border:"none",color:"rgba(255,255,255,0.7)",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",gap:"4px",fontSize:"11px",transition:"all 0.15s ease"},onMouseEnter:d=>{d.target.style.background="rgba(255,255,255,0.1)",d.target.style.color="rgba(255,255,255,0.9)"},onMouseLeave:d=>{d.target.style.background="none",d.target.style.color="rgba(255,255,255,0.7)"},children:[r?e.jsx(D.Check,{size:12}):e.jsx(D.Copy,{size:12}),r?"Copied!":"Copy"]}),y&&e.jsxs("button",{onClick:()=>y({code:s,language:n}),style:{background:"none",border:"none",color:"rgba(255,255,255,0.7)",cursor:"pointer",padding:"4px",borderRadius:"4px",display:"flex",alignItems:"center",gap:"4px",fontSize:"11px",transition:"all 0.15s ease"},onMouseEnter:d=>{d.currentTarget.style.background="rgba(255,255,255,0.1)",d.currentTarget.style.color="rgba(255,255,255,0.9)"},onMouseLeave:d=>{d.currentTarget.style.background="none",d.currentTarget.style.color="rgba(255,255,255,0.7)"},children:[e.jsx(D.PanelRightOpen,{size:12}),"Canvas"]})]}),e.jsx("pre",{style:{margin:0,padding:"12px",fontFamily:"var(--font-mono, monospace)",fontSize:"13px",lineHeight:1.4,color:"rgba(255,255,255,0.95)",overflow:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:s})]},t)},w=s=>{const n=[],t=s.split(`
|
|
2
|
+
`);let r=0,d=0;for(;r<t.length;){const p=t[r];if(p.trim().startsWith("```")){const c=p.trim().slice(3);let C=[];for(r++;r<t.length&&!t[r].trim().startsWith("```");)C.push(t[r]),r++;r<t.length&&r++,n.push(L(C.join(`
|
|
3
|
+
`),c,`code-${d++}`));continue}if(p.startsWith("#")){const c=p.match(/^#+/)[0].length,C=p.slice(c).trim(),z=c===1?"h2":c===2?"h3":c===3?"h4":"h5";n.push(h.createElement(z,{key:`header-${r}`,style:{fontSize:c===1?"18px":c===2?"16px":"14px",fontWeight:720,color:"var(--text-strong, rgba(30,33,37,0.92))",marginTop:n.length>0?"20px":"0",marginBottom:"8px",lineHeight:1.3}},C)),r++;continue}if(p.trim()==="---"||p.trim()==="***"){n.push(e.jsx("hr",{style:{border:"none",borderTop:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",margin:"16px 0"}},`hr-${r}`)),r++;continue}if(p.match(/^(\s*)([-*+]|\d+\.)\s/)){const c=[],C=/^\s*\d+\./.test(p);for(;r<t.length&&(t[r].match(/^(\s*)([-*+]|\d+\.)\s/)||t[r].trim()==="");){if(t[r].trim()!==""){const R=t[r].match(/^(\s*)([-*+]|\d+\.)\s(.*)$/);R&&c.push(R[3])}r++}const z=C?"ol":"ul";n.push(h.createElement(z,{key:`list-${r}`,style:{margin:"8px 0",paddingLeft:"20px",color:"var(--text-strong, rgba(30,33,37,0.92))"}},c.map((R,o)=>h.createElement("li",{key:`item-${o}`,style:{marginBottom:"4px"}},l(R)))));continue}if(p.trim().startsWith("|")&&p.trim().endsWith("|")){const c=[];for(;r<t.length&&t[r].trim().startsWith("|")&&t[r].trim().endsWith("|");)c.push(t[r]),r++;if(c.length>=2){const C=i=>i.trim().slice(1,-1).split("|").map(u=>u.trim()),z=C(c[0]),R=i=>C(i).every(u=>/^[-:]+$/.test(u)),o=c.length>=2&&R(c[1]),k=o?2:1,M=o?C(c[1]).map(i=>i.startsWith(":")&&i.endsWith(":")?"center":i.endsWith(":")?"right":"left"):z.map(()=>"left"),T={padding:"6px 12px",borderBottom:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",fontSize:"13px",lineHeight:1.5,color:"var(--text-strong, rgba(30,33,37,0.92))"};n.push(e.jsx("div",{style:{overflowX:"auto",margin:"8px 0"},children:e.jsxs("table",{style:{borderCollapse:"collapse",width:"100%",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",borderRadius:"6px",overflow:"hidden"},children:[o&&e.jsx("thead",{children:e.jsx("tr",{style:{background:"var(--hover-warm-subtle, rgba(231,212,162,0.08))"},children:z.map((i,u)=>e.jsx("th",{style:{...T,fontWeight:660,textAlign:M[u]||"left",whiteSpace:"nowrap"},children:l(i)},u))})}),e.jsx("tbody",{children:(o?c.slice(k):c).map((i,u)=>e.jsx("tr",{style:{background:u%2===1?"var(--hover-warm-subtle, rgba(231,212,162,0.04))":"transparent"},children:C(i).map((I,S)=>e.jsx("td",{style:{...T,textAlign:M[S]||"left"},children:l(I)},S))},u))})]})},`table-${r}`))}continue}if(p.trim()){const c=[];for(;r<t.length&&t[r].trim()&&!t[r].match(/^(#|```|---|\*\*\*|(\s*)([-*+]|\d+\.)\s)/)&&!(t[r].trim().startsWith("|")&&t[r].trim().endsWith("|"));)c.push(t[r]),r++;c.length>0&&n.push(e.jsx("p",{style:{margin:"8px 0",lineHeight:1.6,color:"var(--text-strong, rgba(30,33,37,0.92))"},children:l(c.join(" "))},`p-${r}`))}else r++}return n},m=s=>{const n=[];let t=s,r=0;for(;t.length>0;){if(b){const R=t.match(/^([^\s`*\[]+(?:\/src\/|\/components\/|\/packages\/)[^\s`*\[]*|[^\s`*\[]*\.(ts|tsx|js|jsx|py|css|scss|sass|json|md|yaml|yml|html|xml|sh|sql|go|rs|php|java|c|cpp|h|hpp)(?:\b|$))/);if(R){const o=R[1];n.push(e.jsx("span",{onClick:()=>b(o),style:{color:"var(--rail-discovery, #5E88B0)",textDecoration:"underline",textDecorationStyle:"dotted",textUnderlineOffset:"2px",cursor:"pointer",fontFamily:"var(--font-mono, monospace)",fontSize:"13px",transition:"all 0.15s ease",":hover":{background:"var(--hover-warm-subtle, rgba(231,212,162,0.08))",textDecoration:"underline",textDecorationStyle:"solid"}},onMouseEnter:k=>{k.target.style.background="var(--hover-warm-subtle, rgba(231,212,162,0.08))",k.target.style.textDecorationStyle="solid"},onMouseLeave:k=>{k.target.style.background="none",k.target.style.textDecorationStyle="dotted"},children:o},`file-path-${r++}`)),t=t.slice(R[0].length);continue}}const d=t.match(/^`([^`]+)`/);if(d){n.push(e.jsx("code",{style:{background:"var(--hover-warm-subtle, rgba(231,212,162,0.08))",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",borderRadius:"3px",padding:"2px 4px",fontFamily:"var(--font-mono, monospace)",fontSize:"12px",color:"var(--text-strong, rgba(30,33,37,0.92))"},children:d[1]},`inline-code-${r++}`)),t=t.slice(d[0].length);continue}const p=t.match(/^\*\*([^*]+)\*\*/);if(p){n.push(e.jsx("strong",{style:{fontWeight:720,color:"var(--text-strong, rgba(30,33,37,0.92))"},children:p[1]},`bold-${r++}`)),t=t.slice(p[0].length);continue}const c=t.match(/^\*([^*]+)\*/);if(c){n.push(e.jsx("em",{style:{fontStyle:"italic",color:"var(--text-strong, rgba(30,33,37,0.92))"},children:c[1]},`italic-${r++}`)),t=t.slice(c[0].length);continue}const C=t.match(/^\[([^\]]+)\]\(([^)]+)\)/);if(C){n.push(e.jsx("a",{href:C[2],target:"_blank",rel:"noopener noreferrer",style:{color:"var(--rail-discovery, #5E88B0)",textDecoration:"underline",textUnderlineOffset:"2px"},children:C[1]},`link-${r++}`)),t=t.slice(C[0].length);continue}const z=t.search(/[`*\[]/);if(z===-1){n.push(t);break}else z===0?(n.push(t[0]),t=t.slice(1)):(n.push(t.slice(0,z)),t=t.slice(z))}return n.length===1&&typeof n[0]=="string"?n[0]:n},l=s=>m(s);return e.jsx("div",{children:w(f)})};function re({role:f,content:y,html:b,timestamp:v,toolBadges:a,isStreaming:j,onCodeBlockClick:L,onFilePathClick:w}){const m=f==="user";return e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:m?"flex-end":"flex-start",marginBottom:"16px",maxWidth:"100%"},children:[e.jsxs("div",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-faint, rgba(30,33,37,0.36))",marginBottom:"6px",fontWeight:650,letterSpacing:"0.02em"},children:[m?"You":"Chordia",j&&!m&&e.jsx("span",{style:{marginLeft:"6px",color:"var(--rail-purple, #9B7AA8)"},children:"●"})]}),a&&a.length>0&&e.jsx("div",{style:{marginBottom:"8px",display:"flex",flexWrap:"wrap",gap:"4px",maxWidth:"75%"},children:a.map((l,s)=>e.jsxs("span",{style:{display:"inline-block",fontSize:"11px",padding:"2px 8px",borderRadius:"6px",background:"var(--paper-elevated, rgba(255,255,255,0.82))",border:`1px solid ${l.pending?"var(--rail-discovery, #5A8CC0)":l.success!==!1?"var(--state-present, #5CB85C)":"var(--rail-signal-churn, #C98A5A)"}`,color:l.pending?"var(--rail-discovery, #5A8CC0)":l.success!==!1?"var(--state-present, #5CB85C)":"var(--rail-signal-churn, #C98A5A)"},children:[e.jsx(D.Wrench,{size:10,style:{marginRight:3,verticalAlign:"middle"}}),l.name,l.pending?"...":l.success!==!1?" ✓":" ✗"]},l.id||s))}),e.jsx("div",{style:{maxWidth:"75%",padding:"12px 16px",borderRadius:"var(--radius-lg, 12px)",background:m?"var(--card-customer, rgba(94,136,176,0.08))":"var(--paper-elevated, rgba(255,255,255,0.82))",border:m?"1px solid var(--border-subtle, rgba(52,58,64,0.08))":"1px solid var(--border, rgba(52,58,64,0.12))",fontSize:"var(--text-base, 14px)",lineHeight:1.6,color:"var(--text-strong, rgba(30,33,37,0.92))",wordBreak:"break-word"},children:b?e.jsx("div",{dangerouslySetInnerHTML:{__html:b}}):m?e.jsx("div",{style:{whiteSpace:"pre-wrap"},children:y}):e.jsx(ae,{content:y||"",onCodeBlockClick:L,onFilePathClick:w})}),v&&e.jsx("div",{style:{fontSize:"var(--text-xs-plus, 10.5px)",color:"var(--text-faint, rgba(30,33,37,0.36))",marginTop:"4px",fontFamily:"var(--font-mono, monospace)"},children:v})]})}function se({phase:f="thinking",toolSteps:y=[],label:b,elapsedMs:v,compact:a=!1}){const j=t=>{if(!t||t<1e3)return null;const r=Math.floor(t/1e3);if(r<60)return`${r}s`;const d=Math.floor(r/60),p=r%60;return p>0?`${d}m ${p}s`:`${d}m`},L=()=>{if(b)return b;switch(f){case"thinking":return"Thinking...";case"tool":return null;case"responding":return"Responding...";default:return"Thinking..."}},w=(t,r)=>{const d=()=>{const c={width:a?"4px":"6px",height:a?"4px":"6px",borderRadius:"50%",display:"inline-block",marginRight:a?"6px":"8px"};switch(t.status){case"active":return e.jsx("span",{style:{...c,backgroundColor:"var(--rail-purple, #9B7AA8)",animation:"pulse 1.2s ease-in-out infinite"}});case"done":return e.jsx("span",{style:{...c,backgroundColor:"var(--text-xfaint, rgba(30,33,37,0.28))"}});case"error":return e.jsx("span",{style:{...c,backgroundColor:"var(--rail-compliance, #C98A5A)"}});default:return e.jsx("span",{style:{...c,backgroundColor:"var(--text-xfaint, rgba(30,33,37,0.28))"}})}},p=()=>{switch(t.status){case"done":return e.jsx("span",{style:{color:"var(--text-faint, rgba(30,33,37,0.36))",fontSize:a?"9px":"var(--text-xs-plus, 10.5px)"},children:"✓"});case"error":return e.jsx("span",{style:{color:"var(--rail-compliance, #C98A5A)",fontSize:a?"9px":"var(--text-xs-plus, 10.5px)"},children:"failed"});default:return null}};return e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:a?"2px":"4px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[d(),e.jsx("span",{style:{fontFamily:"var(--font-mono)",fontSize:a?"9px":"var(--text-xs-plus, 10.5px)",color:"var(--text-muted)"},children:t.name})]}),p()]},r)},m=()=>e.jsx("div",{style:{width:"100%",height:a?"2px":"3px",backgroundColor:"var(--border-subtle, rgba(52,58,64,0.08))",borderRadius:a?"2px":"3px",overflow:"hidden",position:"relative"},children:e.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,background:"linear-gradient(90deg, transparent 0%, rgba(155,122,168,0.3) 50%, transparent 100%)",animation:"shimmer 2s linear infinite"}})}),l=()=>e.jsx("span",{style:{width:a?"4px":"6px",height:a?"10px":"14px",backgroundColor:"var(--rail-purple, #9B7AA8)",borderRadius:"1px",display:"inline-block",marginLeft:"2px",animation:"cursorBlink 0.8s ease-in-out infinite"}}),s=L(),n=j(v);return e.jsxs("div",{style:{borderLeft:`${a?"3px":"4px"} solid var(--rail-purple, #9B7AA8)`,backgroundColor:"var(--card-assistant, rgba(155,122,168,0.06))",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",borderRadius:a?"8px":"10px",padding:a?"8px 10px 8px 12px":"10px 14px 10px 18px"},children:[e.jsx("style",{children:`
|
|
4
4
|
@keyframes shimmer {
|
|
5
5
|
0% { transform: translateX(-100%); }
|
|
6
6
|
100% { transform: translateX(200%); }
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
0%, 100% { opacity: 0; }
|
|
16
16
|
50% { opacity: 1; }
|
|
17
17
|
}
|
|
18
|
-
`}),!a&&e.jsx("div",{style:{fontSize:"var(--text-xs-plus, 10.5px)",fontWeight:650,textTransform:"uppercase",letterSpacing:"var(--tracking-label, 0.16em)",color:"var(--text-faint, rgba(30,33,37,0.36))",marginBottom:"8px"},children:"AI ASSISTANT"}),f==="thinking"&&e.jsxs("div",{children:[e.jsxs("div",{style:{color:"var(--text-muted)",fontWeight:400,fontSize:a?"11px":"13px",marginBottom:a?"4px":"8px",display:"flex",alignItems:"center",gap:"6px"},children:[s,n&&e.jsx("span",{style:{fontSize:a?"9px":"10px",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:n})]}),m()]}),f==="tool"&&e.jsxs("div",{children:[s&&e.jsxs("div",{style:{color:"var(--text-muted)",fontWeight:400,fontSize:a?"11px":"13px",marginBottom:a?"4px":"8px",display:"flex",alignItems:"center",gap:"6px"},children:[s,n&&e.jsx("span",{style:{fontSize:a?"9px":"10px",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:n})]}),e.jsx("div",{style:{marginBottom:a?"4px":"8px"},children:y.map((t,r)=>w(t,r))}),m()]}),f==="responding"&&e.jsxs("div",{style:{color:"var(--text-muted)",fontWeight:400,fontSize:a?"11px":"13px",display:"flex",alignItems:"center",gap:"6px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[s,
|
|
19
|
-
`);
|
|
18
|
+
`}),!a&&e.jsx("div",{style:{fontSize:"var(--text-xs-plus, 10.5px)",fontWeight:650,textTransform:"uppercase",letterSpacing:"var(--tracking-label, 0.16em)",color:"var(--text-faint, rgba(30,33,37,0.36))",marginBottom:"8px"},children:"AI ASSISTANT"}),f==="thinking"&&e.jsxs("div",{children:[e.jsxs("div",{style:{color:"var(--text-muted)",fontWeight:400,fontSize:a?"11px":"13px",marginBottom:a?"4px":"8px",display:"flex",alignItems:"center",gap:"6px"},children:[s,n&&e.jsx("span",{style:{fontSize:a?"9px":"10px",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:n})]}),m()]}),f==="tool"&&e.jsxs("div",{children:[s&&e.jsxs("div",{style:{color:"var(--text-muted)",fontWeight:400,fontSize:a?"11px":"13px",marginBottom:a?"4px":"8px",display:"flex",alignItems:"center",gap:"6px"},children:[s,n&&e.jsx("span",{style:{fontSize:a?"9px":"10px",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:n})]}),e.jsx("div",{style:{marginBottom:a?"4px":"8px"},children:y.map((t,r)=>w(t,r))}),m()]}),f==="responding"&&e.jsxs("div",{style:{color:"var(--text-muted)",fontWeight:400,fontSize:a?"11px":"13px",display:"flex",alignItems:"center",gap:"6px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[s,l()]}),n&&e.jsx("span",{style:{fontSize:a?"9px":"10px",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:n})]})]})}const oe={error:(...f)=>console.warn("toast.error:",...f)};function ie({initialMessages:f=[],onSendMessage:y,onStreamMessage:b,onMessagesChange:v,onCodeBlockClick:a,placeholder:j="Ask a question about this interaction...",title:L="Chat with Chordia"}){const[w,m]=h.useState(f||[]),[l,s]=h.useState(""),[n,t]=h.useState(!1),[r,d]=h.useState(!1),[p,c]=h.useState(null),[C,z]=h.useState("thinking"),[R,o]=h.useState(null),[k,M]=h.useState(0),T=h.useRef(null),i=h.useRef(null),u=h.useRef(null),I=h.useRef(null),S=h.useRef(null),[E,_]=h.useState(!1),[O,X]=h.useState(0);h.useEffect(()=>{var x;(x=T.current)==null||x.scrollIntoView({behavior:"smooth"})},[w,n]),h.useEffect(()=>{i.current&&(i.current.style.height="auto",i.current.style.height=`${Math.min(i.current.scrollHeight,120)}px`)},[l]),h.useEffect(()=>{if(v){const x=[...w];p&&x.push(p),v(x)}},[w,p,v]),h.useEffect(()=>{let x;return n&&R&&(x=setInterval(()=>{if(M(Date.now()-R),S.current){const W=(Date.now()-S.current)/1e3;W>=3?(_(!0),X(Math.floor(W))):_(!1)}},500)),()=>x&&clearInterval(x)},[n,R]);const H=()=>{t(!1),d(!1),c(null),I.current=null,z("thinking"),_(!1),X(0),S.current=null,o(null),M(0),u.current&&(u.current.abort(),u.current=null)},K=x=>{if(x.startsWith("data: ")){const W=x.slice(6);if(W==="[DONE]")return{type:"done"};try{return{type:"data",data:JSON.parse(W)}}catch{return null}}return null},q=x=>{var P,B;if(!((B=(P=x.choices)==null?void 0:P[0])!=null&&B.delta))return;S.current=Date.now(),_(!1);const W=x.choices[0].delta;if(W.tool_calls||W.tool_results){z("tool");return}W.content!==void 0&&(z("responding"),c(F=>{const G=F||{id:Date.now().toString(),role:"assistant",content:"",timestamp:new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}),isStreaming:!0},V={...G,content:(G.content||"")+(W.content||"")};return I.current=V,V}))},U=async x=>{const W=x.getReader(),P=new TextDecoder;let B="";try{for(;;){const{done:F,value:G}=await W.read();if(F)break;B+=P.decode(G,{stream:!0});const V=B.split(`
|
|
19
|
+
`);B=V.pop()||"";for(const ne of V)if(ne.trim()){const Q=K(ne);if(Q){if(Q.type==="done")return;Q.type==="data"&&q(Q.data)}}}}finally{W.releaseLock()}},Y=async()=>{if(!l.trim()||r)return;const x=l.trim(),W={id:Date.now().toString(),role:"user",content:x,timestamp:new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})},P=[...w,W];m(P),s(""),t(!0),d(!0),z("thinking"),o(Date.now()),S.current=Date.now(),u.current=new AbortController;try{let B;if(b)B=await b(x,P);else if(y)B=await y(x,P);else{setTimeout(()=>{const F={id:(Date.now()+1).toString(),role:"assistant",content:"This is a demonstration response. In a real implementation, this would connect to your LLM backend.",timestamp:new Date().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})};m(G=>[...G,F]),H()},1e3);return}if(B instanceof ReadableStream)await U(B);else if(B instanceof Response&&B.body)await U(B.body);else if(B&&typeof B.then=="function"){const F=await B;F instanceof ReadableStream?await U(F):F instanceof Response&&F.body&&await U(F.body)}I.current&&m(F=>[...F,{...I.current,isStreaming:!1}])}catch(B){B.name!=="AbortError"&&(oe.error("Failed to send message"),console.error("Stream error:",B))}finally{H()}},$=x=>{x.key==="Enter"&&!x.shiftKey&&(x.preventDefault(),Y())};return e.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",border:"1px solid var(--border, rgba(52,58,64,0.12))",borderRadius:"var(--radius-lg, 12px)",background:"var(--paper-elevated, rgba(255,255,255,0.82))",overflow:"hidden"},children:[L?e.jsxs("div",{style:{padding:"16px 20px",borderBottom:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",background:"var(--paper-elevated, rgba(255,255,255,0.82))"},children:[e.jsx("div",{style:{fontSize:"var(--text-lg, 16px)",fontWeight:720,letterSpacing:"-0.01em",color:"var(--text-strong, rgba(30,33,37,0.92))"},children:L}),e.jsx("div",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-muted, rgba(30,33,37,0.56))",marginTop:"2px"},children:"Ask questions, get insights from analyzed interactions"})]}):null,e.jsx("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"20px",display:"flex",flexDirection:"column"},children:w.length===0?e.jsx("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"var(--text-md, 13px)",textAlign:"center",padding:"40px"},children:"No messages yet. Start a conversation by asking a question below."}):e.jsxs(e.Fragment,{children:[w.map(x=>e.jsx(re,{role:x.role,content:x.content,html:x.html,timestamp:x.timestamp,toolBadges:x.toolBadges,isStreaming:x.isStreaming,onCodeBlockClick:a},x.id)),p&&e.jsx(re,{role:p.role,content:p.content,timestamp:p.timestamp,isStreaming:!0,onCodeBlockClick:a},p.id),n&&(!p||E)&&e.jsx("div",{style:{marginBottom:"16px"},children:e.jsx(se,{phase:E?"tool":C,elapsedMs:k,label:E&&O>=30?"Compacting conversation — trimming context to stay sharp...":E&&O>=10?"Running background tasks...":E?"Still working...":void 0})}),e.jsx("div",{ref:T})]})}),e.jsxs("div",{style:{borderTop:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",padding:"16px 20px",background:"var(--paper-elevated, rgba(255,255,255,0.82))"},children:[e.jsxs("div",{style:{display:"flex",gap:"12px",alignItems:"flex-end"},children:[e.jsx("textarea",{ref:i,value:l,onChange:x=>s(x.target.value),onKeyDown:$,placeholder:j,rows:1,disabled:r,style:{flex:1,padding:"10px 14px",fontSize:"var(--text-base, 14px)",lineHeight:1.5,color:"var(--text-strong, rgba(30,33,37,0.92))",background:"rgba(255, 255, 255, 0.95)",border:"1px solid rgba(52, 58, 64, 0.18)",borderRadius:"var(--radius-md, 8px)",resize:"none",outline:"none",transition:"border-color 0.15s ease",fontFamily:"inherit",minHeight:"42px",maxHeight:"120px",opacity:r?.6:1,cursor:r?"not-allowed":"text"},onFocus:x=>{r||(x.target.style.borderColor="rgba(94, 136, 176, 0.35)")},onBlur:x=>{x.target.style.borderColor="rgba(52, 58, 64, 0.18)"}}),e.jsx("button",{onClick:Y,disabled:!l.trim()||r,style:{padding:"10px 16px",background:l.trim()&&!r?"var(--Base-Strong, #0B0B0B)":"#ECEEF2",color:l.trim()&&!r?"white":"var(--text-base)",border:"none",borderRadius:"var(--radius-md, 8px)",cursor:l.trim()&&!r?"pointer":"not-allowed",display:"flex",alignItems:"center",gap:"6px",fontSize:"var(--text-md, 13px)",fontWeight:650,transition:"all 0.15s ease",height:"42px"},children:r?e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
|
|
20
20
|
@keyframes buttonSpin {
|
|
21
21
|
from { transform: rotate(0deg); }
|
|
22
22
|
to { transform: rotate(360deg); }
|
|
23
23
|
}
|
|
24
|
-
`}),e.jsx("div",{style:{width:"14px",height:"14px",border:"2px solid rgba(255, 255, 255, 0.3)",borderTopColor:"white",borderRadius:"50%",animation:"buttonSpin 0.6s linear infinite"}}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(E.Send,{size:16}),"Send"]})})]}),e.jsx("div",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-faint, rgba(30,33,37,0.36))",marginTop:"8px"},children:"Press Enter to send, Shift+Enter for new line"})]})]})}function le({threads:f=[],activeThreadId:y,onSelectThread:b,onNewChat:v,loading:a=!1}){const[j,L]=h.useState(""),m=[...f.filter(s=>{if(!j)return!0;const n=j.toLowerCase();return(s.title||"").toLowerCase().includes(n)||(s.last_message_preview||"").toLowerCase().includes(n)})].sort((s,n)=>{if(s.pinned&&!n.pinned)return-1;if(!s.pinned&&n.pinned)return 1;const t=new Date(s.updated_at||s.created_at||0).getTime();return new Date(n.updated_at||n.created_at||0).getTime()-t}),i=s=>{if(!s)return"";const n=new Date(s),r=new Date().getTime()-n.getTime(),d=Math.floor(r/864e5);return d===0?n.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}):d===1?"Yesterday":d<7?n.toLocaleDateString("en-US",{weekday:"short"}):n.toLocaleDateString("en-US",{month:"short",day:"numeric"})};return e.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--paper, rgba(255,255,255,0.95))",borderRight:"1px solid var(--border, rgba(52,58,64,0.12))",overflow:"hidden"},children:[e.jsxs("div",{style:{padding:"12px 14px",borderBottom:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",flexShrink:0},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"10px"},children:[e.jsx("div",{style:{fontSize:"13px",fontWeight:650,color:"var(--text-ink, rgba(30,33,37,0.92))"},children:"Threads"}),v&&e.jsx("button",{onClick:v,style:{padding:"4px 10px",fontSize:"11px",fontWeight:600,color:"var(--rail-discovery, #5E88B0)",background:"rgba(94, 136, 176, 0.08)",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",borderRadius:"6px",cursor:"pointer",transition:"all 0.15s ease"},onMouseEnter:s=>{s.currentTarget.style.background="rgba(94, 136, 176, 0.14)"},onMouseLeave:s=>{s.currentTarget.style.background="rgba(94, 136, 176, 0.08)"},children:"+ New"})]}),e.jsxs("div",{style:{position:"relative"},children:[e.jsx(E.Search,{size:13,style:{position:"absolute",left:"10px",top:"50%",transform:"translateY(-50%)",color:"var(--text-faint, rgba(30,33,37,0.36))",pointerEvents:"none"}}),e.jsx("input",{type:"text",value:j,onChange:s=>L(s.target.value),placeholder:"Search threads...",style:{width:"100%",padding:"7px 10px 7px 32px",fontSize:"12px",color:"var(--text-ink, rgba(30,33,37,0.92))",background:"var(--paper-elevated, rgba(255,255,255,0.82))",border:"1px solid var(--border, rgba(52,58,64,0.12))",borderRadius:"6px",outline:"none",transition:"border-color 0.15s ease",boxSizing:"border-box"},onFocus:s=>{s.target.style.borderColor="rgba(94, 136, 176, 0.35)"},onBlur:s=>{s.target.style.borderColor="rgba(52, 58, 64, 0.12)"}})]})]}),e.jsx("div",{style:{flex:1,overflowY:"auto",padding:"4px 6px"},children:a?e.jsx("div",{style:{padding:"30px 16px",textAlign:"center",color:"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"12px"},children:"Loading threads..."}):m.length===0?e.jsx("div",{style:{padding:"30px 16px",textAlign:"center",color:"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"12px"},children:j?"No threads found":"No threads yet"}):m.map(s=>{const n=s.id===y;return e.jsxs("div",{onClick:()=>b==null?void 0:b(s.id),style:{padding:"10px 10px",marginBottom:"2px",borderRadius:"6px",background:n?"rgba(94, 136, 176, 0.10)":"transparent",border:n?"1px solid rgba(94, 136, 176, 0.15)":"1px solid transparent",cursor:"pointer",transition:"all 0.12s ease"},onMouseEnter:t=>{n||(t.currentTarget.style.background="rgba(0,0,0,0.03)")},onMouseLeave:t=>{n||(t.currentTarget.style.background="transparent")},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",marginBottom:"4px"},children:[e.jsx(E.MessageSquare,{size:12,style:{color:n?"var(--rail-discovery, #5E88B0)":"var(--text-faint, rgba(30,33,37,0.36))",flexShrink:0}}),e.jsx("div",{style:{flex:1,fontSize:"12px",fontWeight:n?650:550,color:n?"var(--text-ink, rgba(30,33,37,0.92))":"var(--text-base, rgba(30,33,37,0.78))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.title||"Untitled thread"}),s.pinned&&e.jsx(E.Pin,{size:10,style:{color:"var(--rail-discovery, #5E88B0)",flexShrink:0}})]}),s.last_message_preview&&e.jsx("div",{style:{fontSize:"11px",color:"var(--text-muted, rgba(30,33,37,0.56))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:"18px",marginBottom:"4px"},children:s.last_message_preview}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",marginLeft:"18px",fontSize:"10px",color:"var(--text-faint, rgba(30,33,37,0.36))"},children:[e.jsx(E.Clock,{size:9}),e.jsx("span",{children:i(s.updated_at||s.created_at)}),s.message_count!=null&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"·"}),e.jsxs("span",{children:[s.message_count," msg",s.message_count!==1?"s":""]})]})]})]},s.id)})})]})}const de={error:(...f)=>console.warn("toast.error:",...f)},ce=()=>({userData:{name:"User",email:""}});function pe({sessionTitle:f,messages:y,onSendMessage:b,currentUser:v}){var R;const[a,j]=h.useState(""),[L,w]=h.useState(!1),[m,i]=h.useState(y||[]),[s,n]=h.useState(!1),[t,r]=h.useState(!1),{userData:d}=ce(),x=h.useRef(null),c=v||{name:(d==null?void 0:d.name)||"You",initials:((R=d==null?void 0:d.name)==null?void 0:R.split(" ").map(o=>o[0]).join("").toUpperCase())||"YO",color:"#6B7C93"};h.useEffect(()=>{i(y||[])},[y]),h.useEffect(()=>{x.current&&x.current.scrollIntoView({behavior:"smooth"})},[m]);const C=async()=>{if(!a.trim())return;const o=a.trim();j(""),r(!0);const k={id:`temp-${Date.now()}`,author:{name:c.name,role:(d==null?void 0:d.role)||"",initials:c.initials,color:c.color},content:o,timestamp:"Just now",type:"comment",isOptimistic:!0};if(i(M=>[...M,k]),b){try{await b(o),i(M=>M.map(T=>T.id===k.id?{...T,isOptimistic:!1}:T))}catch{i(T=>T.filter(l=>l.id!==k.id)),de.error("Failed to send message")}finally{r(!1)}return}setTimeout(()=>{i(M=>M.map(T=>T.id===k.id?{...T,isOptimistic:!1}:T)),r(!1)},500)},z=o=>{o.key==="Enter"&&!o.shiftKey&&(o.preventDefault(),C())};return e.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--paper-elevated, rgba(255,255,255,0.82))",border:"1px solid var(--border, rgba(52,58,64,0.12))",borderRadius:"var(--radius-lg, 12px)",overflow:"hidden"},children:[f&&e.jsxs("div",{style:{padding:"14px 16px",borderBottom:"1px solid var(--border, rgba(52,58,64,0.12))",background:"var(--paper-elevated, rgba(255,255,255,0.82))"},children:[e.jsx("div",{style:{fontSize:"var(--text-md, 13px)",fontWeight:680,color:"var(--text-strong, rgba(30,33,37,0.92))",marginBottom:"3px"},children:"Session Discussion"}),f&&e.jsx("div",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-muted, rgba(30,33,37,0.56))",display:"flex",alignItems:"center",gap:"8px"},children:e.jsx("span",{children:f})})]}),e.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"16px",display:"flex",flexDirection:"column",gap:"16px"},children:[s?e.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"40px",color:"var(--text-faint, rgba(30,33,37,0.36))"},children:"Loading messages..."}):m.length===0?e.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"40px",color:"var(--text-faint, rgba(30,33,37,0.36))"},children:"No messages yet. Start the conversation!"}):m.map(o=>e.jsxs("div",{style:{display:"flex",gap:"12px",opacity:o.type==="system"?.75:1},children:[o.type!=="system"&&e.jsx("div",{style:{width:"32px",height:"32px",borderRadius:"8px",background:o.author.color,color:"white",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:650,flexShrink:0,opacity:.9},children:o.author.initials}),o.type==="system"&&e.jsx("div",{style:{width:"32px",height:"32px",borderRadius:"8px",background:"rgba(30, 33, 37, 0.08)",color:"rgba(30, 33, 37, 0.52)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:650,flexShrink:0},children:e.jsx(E.Clock,{size:14})}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:"8px",marginBottom:"4px"},children:[e.jsx("span",{style:{fontSize:"var(--text-sm, 11px)",fontWeight:650,color:"var(--text-base, rgba(30,33,37,0.78))"},children:o.author.name}),e.jsx("span",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:o.timestamp}),o.author.role&&e.jsx("span",{style:{fontSize:"var(--text-xs, 10px)",color:"var(--text-muted, rgba(30,33,37,0.56))",background:"rgba(30, 33, 37, 0.06)",padding:"2px 6px",borderRadius:"4px",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:o.author.role}),o.isEdited&&e.jsx("span",{style:{fontSize:"var(--text-xs, 10px)",color:"var(--text-faint, rgba(30,33,37,0.36))",fontStyle:"italic"},children:"(edited)"})]}),e.jsx("div",{style:{fontSize:"var(--text-md, 13px)",color:"var(--text-base, rgba(30,33,37,0.78))",lineHeight:1.5,marginBottom:o.references?"8px":0},children:o.content}),o.references&&o.references.length>0&&e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px",marginTop:"8px"},children:o.references.map((k,M)=>e.jsxs("button",{type:"button",style:{fontSize:"11px",padding:"4px 8px",borderRadius:"6px",border:"1px solid rgba(52, 58, 64, 0.16)",background:"rgba(255, 255, 255, 0.7)",color:k.type==="condition"?"rgba(94, 136, 176, 0.85)":k.type==="observation"?"rgba(107, 123, 147, 0.85)":k.type==="timestamp"?"rgba(184, 156, 106, 0.85)":"rgba(30, 33, 37, 0.65)",cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"4px",transition:"all 0.15s ease",fontWeight:550},onMouseEnter:T=>{T.currentTarget.style.background="rgba(255, 255, 255, 0.95)",T.currentTarget.style.borderColor="rgba(52, 58, 64, 0.24)"},onMouseLeave:T=>{T.currentTarget.style.background="rgba(255, 255, 255, 0.7)",T.currentTarget.style.borderColor="rgba(52, 58, 64, 0.16)"},children:[k.type==="timestamp"&&e.jsx(E.Clock,{size:12}),(k.type==="condition"||k.type==="observation")&&e.jsx(E.Hash,{size:12}),k.label]},M))})]})]},o.id)),e.jsx("div",{ref:x})]}),e.jsxs("div",{style:{padding:"12px",borderTop:"1px solid var(--border, rgba(52,58,64,0.12))",background:"var(--paper-elevated, rgba(255,255,255,0.82))"},children:[e.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"flex-end"},children:[e.jsx("div",{style:{width:"32px",height:"32px",borderRadius:"var(--radius-md, 8px)",background:c.color,color:"white",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"var(--text-sm, 11px)",fontWeight:650,flexShrink:0,opacity:.9},children:c.initials}),e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"8px"},children:[e.jsx("textarea",{value:a,onChange:o=>j(o.target.value),onKeyDown:z,onFocus:()=>w(!0),onBlur:()=>w(!1),placeholder:"Add a comment...",style:{width:"100%",minHeight:"38px",maxHeight:"120px",padding:"8px 12px",fontSize:"var(--text-md, 13px)",color:"var(--text-base, rgba(30,33,37,0.78))",background:"white",border:`1px solid ${L?"rgba(94, 136, 176, 0.35)":"rgba(52, 58, 64, 0.16)"}`,borderRadius:"var(--radius-md, 8px)",resize:"vertical",outline:"none",transition:"border-color 0.15s ease",fontFamily:"inherit",lineHeight:1.5}}),e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsxs("div",{style:{display:"flex",gap:"4px"},children:[e.jsx("button",{type:"button",style:{padding:"6px",background:"transparent",border:"none",borderRadius:"6px",color:"rgba(30, 33, 37, 0.52)",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.15s ease"},onMouseEnter:o=>{o.currentTarget.style.background="rgba(30, 33, 37, 0.06)",o.currentTarget.style.color="rgba(30, 33, 37, 0.75)"},onMouseLeave:o=>{o.currentTarget.style.background="transparent",o.currentTarget.style.color="rgba(30, 33, 37, 0.52)"},title:"Mention user",children:e.jsx(E.AtSign,{size:16})}),e.jsx("button",{type:"button",style:{padding:"6px",background:"transparent",border:"none",borderRadius:"6px",color:"rgba(30, 33, 37, 0.52)",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.15s ease"},onMouseEnter:o=>{o.currentTarget.style.background="rgba(30, 33, 37, 0.06)",o.currentTarget.style.color="rgba(30, 33, 37, 0.75)"},onMouseLeave:o=>{o.currentTarget.style.background="transparent",o.currentTarget.style.color="rgba(30, 33, 37, 0.52)"},title:"Reference condition",children:e.jsx(E.Hash,{size:16})}),e.jsx("button",{type:"button",style:{padding:"6px",background:"transparent",border:"none",borderRadius:"6px",color:"rgba(30, 33, 37, 0.52)",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.15s ease"},onMouseEnter:o=>{o.currentTarget.style.background="rgba(30, 33, 37, 0.06)",o.currentTarget.style.color="rgba(30, 33, 37, 0.75)"},onMouseLeave:o=>{o.currentTarget.style.background="transparent",o.currentTarget.style.color="rgba(30, 33, 37, 0.52)"},title:"Attach file",children:e.jsx(E.Paperclip,{size:16})})]}),e.jsx("button",{type:"button",onClick:C,disabled:!a.trim()||t,style:{padding:"6px 12px",background:a.trim()&&!t?"rgba(94, 136, 176, 0.85)":"var(--border-subtle, rgba(52,58,64,0.08))",border:"none",borderRadius:"6px",color:a.trim()&&!t?"white":"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"var(--text-sm, 11px)",fontWeight:600,cursor:a.trim()&&!t?"pointer":"not-allowed",display:"flex",alignItems:"center",gap:"6px",transition:"all 0.15s ease"},onMouseEnter:o=>{a.trim()&&!t&&(o.currentTarget.style.background="rgba(94, 136, 176, 1)")},onMouseLeave:o=>{a.trim()&&!t&&(o.currentTarget.style.background="rgba(94, 136, 176, 0.85)")},children:t?e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
|
|
24
|
+
`}),e.jsx("div",{style:{width:"14px",height:"14px",border:"2px solid rgba(255, 255, 255, 0.3)",borderTopColor:"white",borderRadius:"50%",animation:"buttonSpin 0.6s linear infinite"}}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(D.Send,{size:16}),"Send"]})})]}),e.jsx("div",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-faint, rgba(30,33,37,0.36))",marginTop:"8px"},children:"Press Enter to send, Shift+Enter for new line"})]})]})}function le({threads:f=[],activeThreadId:y,onSelectThread:b,onNewChat:v,loading:a=!1}){const[j,L]=h.useState(""),m=[...f.filter(s=>{if(!j)return!0;const n=j.toLowerCase();return(s.title||"").toLowerCase().includes(n)||(s.last_message_preview||"").toLowerCase().includes(n)})].sort((s,n)=>{if(s.pinned&&!n.pinned)return-1;if(!s.pinned&&n.pinned)return 1;const t=new Date(s.updated_at||s.created_at||0).getTime();return new Date(n.updated_at||n.created_at||0).getTime()-t}),l=s=>{if(!s)return"";const n=new Date(s),r=new Date().getTime()-n.getTime(),d=Math.floor(r/864e5);return d===0?n.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}):d===1?"Yesterday":d<7?n.toLocaleDateString("en-US",{weekday:"short"}):n.toLocaleDateString("en-US",{month:"short",day:"numeric"})};return e.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--paper, rgba(255,255,255,0.95))",borderRight:"1px solid var(--border, rgba(52,58,64,0.12))",overflow:"hidden"},children:[e.jsxs("div",{style:{padding:"12px 14px",borderBottom:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",flexShrink:0},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"10px"},children:[e.jsx("div",{style:{fontSize:"13px",fontWeight:650,color:"var(--text-ink, rgba(30,33,37,0.92))"},children:"Threads"}),v&&e.jsx("button",{onClick:v,style:{padding:"4px 10px",fontSize:"11px",fontWeight:600,color:"var(--Base-Strong, #0B0B0B)",background:"#ECEEF2",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",borderRadius:"6px",cursor:"pointer",transition:"all 0.15s ease"},onMouseEnter:s=>{s.currentTarget.style.background="#ECEEF2"},onMouseLeave:s=>{s.currentTarget.style.background="rgba(94, 136, 176, 0.08)"},children:"+ New"})]}),e.jsxs("div",{style:{position:"relative"},children:[e.jsx(D.Search,{size:13,style:{position:"absolute",left:"10px",top:"50%",transform:"translateY(-50%)",color:"var(--text-faint, rgba(30,33,37,0.36))",pointerEvents:"none"}}),e.jsx("input",{type:"text",value:j,onChange:s=>L(s.target.value),placeholder:"Search threads...",style:{width:"100%",padding:"7px 10px 7px 32px",fontSize:"12px",color:"var(--text-ink, rgba(30,33,37,0.92))",background:"var(--paper-elevated, rgba(255,255,255,0.82))",border:"1px solid var(--border, rgba(52,58,64,0.12))",borderRadius:"6px",outline:"none",transition:"border-color 0.15s ease",boxSizing:"border-box"},onFocus:s=>{s.target.style.borderColor="rgba(94, 136, 176, 0.35)"},onBlur:s=>{s.target.style.borderColor="rgba(52, 58, 64, 0.12)"}})]})]}),e.jsx("div",{style:{flex:1,overflowY:"auto",padding:"4px 6px"},children:a?e.jsx("div",{style:{padding:"30px 16px",textAlign:"center",color:"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"12px"},children:"Loading threads..."}):m.length===0?e.jsx("div",{style:{padding:"30px 16px",textAlign:"center",color:"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"12px"},children:j?"No threads found":"No threads yet"}):m.map(s=>{const n=s.id===y;return e.jsxs("div",{onClick:()=>b==null?void 0:b(s.id),style:{padding:"10px 10px",marginBottom:"2px",borderRadius:"6px",background:n?"rgba(94, 136, 176, 0.10)":"transparent",border:n?"1px solid rgba(94, 136, 176, 0.15)":"1px solid transparent",cursor:"pointer",transition:"all 0.12s ease"},onMouseEnter:t=>{n||(t.currentTarget.style.background="rgba(0,0,0,0.03)")},onMouseLeave:t=>{n||(t.currentTarget.style.background="transparent")},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",marginBottom:"4px"},children:[e.jsx(D.MessageSquare,{size:12,style:{color:n?"var(--rail-discovery, #5E88B0)":"var(--text-faint, rgba(30,33,37,0.36))",flexShrink:0}}),e.jsx("div",{style:{flex:1,fontSize:"12px",fontWeight:n?650:550,color:n?"var(--text-ink, rgba(30,33,37,0.92))":"var(--text-base, rgba(30,33,37,0.78))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.title||"Untitled thread"}),s.pinned&&e.jsx(D.Pin,{size:10,style:{color:"var(--rail-discovery, #5E88B0)",flexShrink:0}})]}),s.last_message_preview&&e.jsx("div",{style:{fontSize:"11px",color:"var(--text-muted, rgba(30,33,37,0.56))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginLeft:"18px",marginBottom:"4px"},children:s.last_message_preview}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",marginLeft:"18px",fontSize:"10px",color:"var(--text-faint, rgba(30,33,37,0.36))"},children:[e.jsx(D.Clock,{size:9}),e.jsx("span",{children:l(s.updated_at||s.created_at)}),s.message_count!=null&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"·"}),e.jsxs("span",{children:[s.message_count," msg",s.message_count!==1?"s":""]})]})]})]},s.id)})})]})}const de={error:(...f)=>console.warn("toast.error:",...f)},ce=()=>({userData:{name:"User",email:""}});function pe({sessionTitle:f,messages:y,onSendMessage:b,currentUser:v}){var R;const[a,j]=h.useState(""),[L,w]=h.useState(!1),[m,l]=h.useState(y||[]),[s,n]=h.useState(!1),[t,r]=h.useState(!1),{userData:d}=ce(),p=h.useRef(null),c=v||{name:(d==null?void 0:d.name)||"You",initials:((R=d==null?void 0:d.name)==null?void 0:R.split(" ").map(o=>o[0]).join("").toUpperCase())||"YO",color:"#6B7C93"};h.useEffect(()=>{l(y||[])},[y]),h.useEffect(()=>{p.current&&p.current.scrollIntoView({behavior:"smooth"})},[m]);const C=async()=>{if(!a.trim())return;const o=a.trim();j(""),r(!0);const k={id:`temp-${Date.now()}`,author:{name:c.name,role:(d==null?void 0:d.role)||"",initials:c.initials,color:c.color},content:o,timestamp:"Just now",type:"comment",isOptimistic:!0};if(l(M=>[...M,k]),b){try{await b(o),l(M=>M.map(T=>T.id===k.id?{...T,isOptimistic:!1}:T))}catch{l(T=>T.filter(i=>i.id!==k.id)),de.error("Failed to send message")}finally{r(!1)}return}setTimeout(()=>{l(M=>M.map(T=>T.id===k.id?{...T,isOptimistic:!1}:T)),r(!1)},500)},z=o=>{o.key==="Enter"&&!o.shiftKey&&(o.preventDefault(),C())};return e.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",background:"var(--paper-elevated, rgba(255,255,255,0.82))",border:"1px solid var(--border, rgba(52,58,64,0.12))",borderRadius:"var(--radius-lg, 12px)",overflow:"hidden"},children:[f&&e.jsxs("div",{style:{padding:"14px 16px",borderBottom:"1px solid var(--border, rgba(52,58,64,0.12))",background:"var(--paper-elevated, rgba(255,255,255,0.82))"},children:[e.jsx("div",{style:{fontSize:"var(--text-md, 13px)",fontWeight:680,color:"var(--text-strong, rgba(30,33,37,0.92))",marginBottom:"3px"},children:"Session Discussion"}),f&&e.jsx("div",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-muted, rgba(30,33,37,0.56))",display:"flex",alignItems:"center",gap:"8px"},children:e.jsx("span",{children:f})})]}),e.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"16px",display:"flex",flexDirection:"column",gap:"16px"},children:[s?e.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"40px",color:"var(--text-faint, rgba(30,33,37,0.36))"},children:"Loading messages..."}):m.length===0?e.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"40px",color:"var(--text-faint, rgba(30,33,37,0.36))"},children:"No messages yet. Start the conversation!"}):m.map(o=>e.jsxs("div",{style:{display:"flex",gap:"12px",opacity:o.type==="system"?.75:1},children:[o.type!=="system"&&e.jsx("div",{style:{width:"32px",height:"32px",borderRadius:"8px",background:o.author.color,color:"white",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:650,flexShrink:0,opacity:.9},children:o.author.initials}),o.type==="system"&&e.jsx("div",{style:{width:"32px",height:"32px",borderRadius:"8px",background:"rgba(30, 33, 37, 0.08)",color:"rgba(30, 33, 37, 0.52)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"11px",fontWeight:650,flexShrink:0},children:e.jsx(D.Clock,{size:14})}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:"8px",marginBottom:"4px"},children:[e.jsx("span",{style:{fontSize:"var(--text-sm, 11px)",fontWeight:650,color:"var(--text-base, rgba(30,33,37,0.78))"},children:o.author.name}),e.jsx("span",{style:{fontSize:"var(--text-sm, 11px)",color:"var(--text-faint, rgba(30,33,37,0.36))",fontFamily:"var(--font-mono, monospace)"},children:o.timestamp}),o.author.role&&e.jsx("span",{style:{fontSize:"var(--text-xs, 10px)",color:"var(--text-muted, rgba(30,33,37,0.56))",background:"rgba(30, 33, 37, 0.06)",padding:"2px 6px",borderRadius:"4px",textTransform:"uppercase",letterSpacing:"0.04em",fontWeight:600},children:o.author.role}),o.isEdited&&e.jsx("span",{style:{fontSize:"var(--text-xs, 10px)",color:"var(--text-faint, rgba(30,33,37,0.36))",fontStyle:"italic"},children:"(edited)"})]}),e.jsx("div",{style:{fontSize:"var(--text-md, 13px)",color:"var(--text-base, rgba(30,33,37,0.78))",lineHeight:1.5,marginBottom:o.references?"8px":0},children:o.content}),o.references&&o.references.length>0&&e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px",marginTop:"8px"},children:o.references.map((k,M)=>e.jsxs("button",{type:"button",style:{fontSize:"11px",padding:"4px 8px",borderRadius:"6px",border:"1px solid rgba(52, 58, 64, 0.16)",background:"rgba(255, 255, 255, 0.7)",color:k.type==="condition"?"rgba(94, 136, 176, 0.85)":k.type==="observation"?"rgba(107, 123, 147, 0.85)":k.type==="timestamp"?"rgba(184, 156, 106, 0.85)":"rgba(30, 33, 37, 0.65)",cursor:"pointer",display:"inline-flex",alignItems:"center",gap:"4px",transition:"all 0.15s ease",fontWeight:550},onMouseEnter:T=>{T.currentTarget.style.background="rgba(255, 255, 255, 0.95)",T.currentTarget.style.borderColor="rgba(52, 58, 64, 0.24)"},onMouseLeave:T=>{T.currentTarget.style.background="rgba(255, 255, 255, 0.7)",T.currentTarget.style.borderColor="rgba(52, 58, 64, 0.16)"},children:[k.type==="timestamp"&&e.jsx(D.Clock,{size:12}),(k.type==="condition"||k.type==="observation")&&e.jsx(D.Hash,{size:12}),k.label]},M))})]})]},o.id)),e.jsx("div",{ref:p})]}),e.jsxs("div",{style:{padding:"12px",borderTop:"1px solid var(--border, rgba(52,58,64,0.12))",background:"var(--paper-elevated, rgba(255,255,255,0.82))"},children:[e.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"flex-end"},children:[e.jsx("div",{style:{width:"32px",height:"32px",borderRadius:"var(--radius-md, 8px)",background:c.color,color:"white",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"var(--text-sm, 11px)",fontWeight:650,flexShrink:0,opacity:.9},children:c.initials}),e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"8px"},children:[e.jsx("textarea",{value:a,onChange:o=>j(o.target.value),onKeyDown:z,onFocus:()=>w(!0),onBlur:()=>w(!1),placeholder:"Add a comment...",style:{width:"100%",minHeight:"38px",maxHeight:"120px",padding:"8px 12px",fontSize:"var(--text-md, 13px)",color:"var(--text-base, rgba(30,33,37,0.78))",background:"white",border:`1px solid ${L?"rgba(94, 136, 176, 0.35)":"rgba(52, 58, 64, 0.16)"}`,borderRadius:"var(--radius-md, 8px)",resize:"vertical",outline:"none",transition:"border-color 0.15s ease",fontFamily:"inherit",lineHeight:1.5}}),e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsxs("div",{style:{display:"flex",gap:"4px"},children:[e.jsx("button",{type:"button",style:{padding:"6px",background:"transparent",border:"none",borderRadius:"6px",color:"rgba(30, 33, 37, 0.52)",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.15s ease"},onMouseEnter:o=>{o.currentTarget.style.background="rgba(30, 33, 37, 0.06)",o.currentTarget.style.color="rgba(30, 33, 37, 0.75)"},onMouseLeave:o=>{o.currentTarget.style.background="transparent",o.currentTarget.style.color="rgba(30, 33, 37, 0.52)"},title:"Mention user",children:e.jsx(D.AtSign,{size:16})}),e.jsx("button",{type:"button",style:{padding:"6px",background:"transparent",border:"none",borderRadius:"6px",color:"rgba(30, 33, 37, 0.52)",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.15s ease"},onMouseEnter:o=>{o.currentTarget.style.background="rgba(30, 33, 37, 0.06)",o.currentTarget.style.color="rgba(30, 33, 37, 0.75)"},onMouseLeave:o=>{o.currentTarget.style.background="transparent",o.currentTarget.style.color="rgba(30, 33, 37, 0.52)"},title:"Reference condition",children:e.jsx(D.Hash,{size:16})}),e.jsx("button",{type:"button",style:{padding:"6px",background:"transparent",border:"none",borderRadius:"6px",color:"rgba(30, 33, 37, 0.52)",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.15s ease"},onMouseEnter:o=>{o.currentTarget.style.background="rgba(30, 33, 37, 0.06)",o.currentTarget.style.color="rgba(30, 33, 37, 0.75)"},onMouseLeave:o=>{o.currentTarget.style.background="transparent",o.currentTarget.style.color="rgba(30, 33, 37, 0.52)"},title:"Attach file",children:e.jsx(D.Paperclip,{size:16})})]}),e.jsx("button",{type:"button",onClick:C,disabled:!a.trim()||t,style:{padding:"6px 12px",background:a.trim()&&!t?"rgba(94, 136, 176, 0.85)":"var(--border-subtle, rgba(52,58,64,0.08))",border:"none",borderRadius:"6px",color:a.trim()&&!t?"white":"var(--text-faint, rgba(30,33,37,0.36))",fontSize:"var(--text-sm, 11px)",fontWeight:600,cursor:a.trim()&&!t?"pointer":"not-allowed",display:"flex",alignItems:"center",gap:"6px",transition:"all 0.15s ease"},onMouseEnter:o=>{a.trim()&&!t&&(o.currentTarget.style.background="rgba(94, 136, 176, 1)")},onMouseLeave:o=>{a.trim()&&!t&&(o.currentTarget.style.background="rgba(94, 136, 176, 0.85)")},children:t?e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
|
|
25
25
|
@keyframes messageSpin {
|
|
26
26
|
from { transform: rotate(0deg); }
|
|
27
27
|
to { transform: rotate(360deg); }
|
|
28
28
|
}
|
|
29
|
-
`}),e.jsx("div",{style:{width:"14px",height:"14px",border:"2px solid rgba(255, 255, 255, 0.3)",borderTopColor:"white",borderRadius:"50%",animation:"messageSpin 0.6s linear infinite"}}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(
|
|
30
|
-
`);navigator.clipboard.writeText(a)},he=({onDownload:f,onCopy:y,copied:b})=>e.jsxs("div",{style:{display:"flex",gap:6,justifyContent:"flex-end",marginBottom:8,opacity:.7,transition:"opacity 0.15s"},children:[e.jsx("button",{onClick:y,title:"Copy data as CSV",style:{background:"none",border:"1px solid var(--border, #e0e0e0)",borderRadius:"var(--radius-sm, 4px)",padding:"3px 8px",fontSize:11,color:"var(--text-muted, #666)",cursor:"pointer",display:"flex",alignItems:"center",gap:4},children:b?"✓ Copied":"📋 CSV"}),e.jsx("button",{onClick:f,title:"Download as PNG",style:{background:"none",border:"1px solid var(--border, #e0e0e0)",borderRadius:"var(--radius-sm, 4px)",padding:"3px 8px",fontSize:11,color:"var(--text-muted, #666)",cursor:"pointer",display:"flex",alignItems:"center",gap:4},children:"📥 PNG"})]}),fe=({chartType:f,title:y,xLabel:b,yLabel:v,series:a})=>{const j=h.useRef(null),[L,w]=h.useState(!1);if(!a||a.length===0)return null;const m=[...new Set(a.flatMap(
|
|
29
|
+
`}),e.jsx("div",{style:{width:"14px",height:"14px",border:"2px solid rgba(255, 255, 255, 0.3)",borderTopColor:"white",borderRadius:"50%",animation:"messageSpin 0.6s linear infinite"}}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(D.Send,{size:14}),"Send"]})})]})]})]}),e.jsxs("div",{style:{marginTop:"8px",fontSize:"var(--text-sm, 11px)",color:"var(--text-faint, rgba(30,33,37,0.36))",lineHeight:1.4},children:[e.jsx("strong",{children:"Tip:"})," Use"," ",e.jsx("code",{style:{background:"rgba(30, 33, 37, 0.06)",padding:"2px 4px",borderRadius:"3px",fontFamily:"var(--font-mono, monospace)",fontSize:"var(--text-xs, 10px)"},children:"@"})," ","to mention teammates,"," ",e.jsx("code",{style:{background:"rgba(30, 33, 37, 0.06)",padding:"2px 4px",borderRadius:"3px",fontFamily:"var(--font-mono, monospace)",fontSize:"var(--text-xs, 10px)"},children:"#"})," ","to reference conditions"]})]})]})}const A=["#5E88B0","#9B7AA8","#C98A5A","#7BA89D","#D17B6B","#6B7C93","#9B8E6F","#8A9BAF","#B8976A","#A8C76B"],te={fill:"var(--text-muted, #666)",fontSize:12},N={stroke:"var(--border, #e0e0e0)"},Z="var(--border, #e0e0e0)",J={contentStyle:{backgroundColor:"var(--paper-elevated, #fff)",border:"1px solid var(--border, #e0e0e0)",borderRadius:"var(--radius-sm, 4px)",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.1)",color:"var(--text-ink, #1e2125)"},labelStyle:{color:"var(--text-strong, #1e2125)"}},ee={color:"var(--text-ink, #1e2125)",fontSize:"12px"},xe=(f,y)=>{if(!f)return!1;const b=f.toLowerCase();return y.filter(a=>String(a).toLowerCase().includes(b)).length<y.length*.5},ge=async(f,y)=>{const b=f.querySelector("svg");if(!b)return;const v=b.cloneNode(!0),a=b.clientWidth||600,j=b.clientHeight||300;v.setAttribute("width",a),v.setAttribute("height",j),v.setAttribute("xmlns","http://www.w3.org/2000/svg");const L=document.createElement("style");L.textContent='text { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }',v.insertBefore(L,v.firstChild);const w=new XMLSerializer().serializeToString(v),m=new Blob([w],{type:"image/svg+xml;charset=utf-8"}),l=URL.createObjectURL(m),s=new Image;s.onload=()=>{const n=document.createElement("canvas"),t=2;n.width=a*t,n.height=j*t;const r=n.getContext("2d");r.fillStyle="#ffffff",r.fillRect(0,0,n.width,n.height),r.scale(t,t),r.drawImage(s,0,0,a,j),URL.revokeObjectURL(l);const d=document.createElement("a");d.download=`${(y||"chart").replace(/[^a-z0-9]+/gi,"_")}.png`,d.href=n.toDataURL("image/png"),d.click()},s.src=l},ue=(f,y)=>{const b=["",...f.map(j=>j.name)].join(","),v=y.map(j=>{const L=f.map(w=>{const m=w.data.find(l=>l.x===j);return m?m.y:""});return[j,...L].join(",")}),a=[b,...v].join(`
|
|
30
|
+
`);navigator.clipboard.writeText(a)},he=({onDownload:f,onCopy:y,copied:b})=>e.jsxs("div",{style:{display:"flex",gap:6,justifyContent:"flex-end",marginBottom:8,opacity:.7,transition:"opacity 0.15s"},children:[e.jsx("button",{onClick:y,title:"Copy data as CSV",style:{background:"none",border:"1px solid var(--border, #e0e0e0)",borderRadius:"var(--radius-sm, 4px)",padding:"3px 8px",fontSize:11,color:"var(--text-muted, #666)",cursor:"pointer",display:"flex",alignItems:"center",gap:4},children:b?"✓ Copied":"📋 CSV"}),e.jsx("button",{onClick:f,title:"Download as PNG",style:{background:"none",border:"1px solid var(--border, #e0e0e0)",borderRadius:"var(--radius-sm, 4px)",padding:"3px 8px",fontSize:11,color:"var(--text-muted, #666)",cursor:"pointer",display:"flex",alignItems:"center",gap:4},children:"📥 PNG"})]}),fe=({chartType:f,title:y,xLabel:b,yLabel:v,series:a})=>{const j=h.useRef(null),[L,w]=h.useState(!1);if(!a||a.length===0)return null;const m=[...new Set(a.flatMap(i=>i.data.map(u=>u.x)))],l=m.map(i=>{const u={x:i};return a.forEach(I=>{const S=I.data.find(E=>E.x===i);u[I.name]=S?S.y:null}),u}),s=a.map(i=>i.name),n=s.length===1,t=xe(b,m),r=t?20:5,p=Math.max(...m.map(i=>String(i).length))>12||m.length>8,c={background:"var(--paper-elevated, #fff)",border:"1px solid var(--border, #e0e0e0)",borderRadius:"var(--radius-md, 8px)",padding:"16px",marginBottom:"16px"},C={color:"var(--text-strong, #1e2125)",fontSize:"14px",fontWeight:"600",marginBottom:"12px"},z={dataKey:"x",tick:p?{fill:"var(--text-muted, #666)",fontSize:11,angle:-35,textAnchor:"end"}:te,axisLine:N,tickLine:N,...t?{label:{value:b,position:"insideBottom",offset:-10,style:{textAnchor:"middle",fill:"var(--text-muted, #666)"}}}:{}},R={tick:te,axisLine:N,tickLine:N,...v?{label:{value:v,angle:-90,position:"insideLeft",style:{textAnchor:"middle",fill:"var(--text-muted, #666)"}}}:{}},o=()=>{switch(f){case"bar":return e.jsx(g.ResponsiveContainer,{width:"100%",height:300,children:e.jsxs(g.BarChart,{data:l,margin:{top:5,right:30,left:20,bottom:p?40:r},children:[e.jsx(g.CartesianGrid,{strokeDasharray:"3 3",stroke:Z}),e.jsx(g.XAxis,{...z}),e.jsx(g.YAxis,{...R}),e.jsx(g.Tooltip,{...J}),!n&&e.jsx(g.Legend,{wrapperStyle:ee}),s.map((i,u)=>e.jsx(g.Bar,{dataKey:i,fill:A[u%A.length],radius:[2,2,0,0],children:n&&l.map((I,S)=>e.jsx(g.Cell,{fill:A[S%A.length]},S))},i))]})});case"horizontal_bar":return e.jsx(g.ResponsiveContainer,{width:"100%",height:Math.max(300,l.length*40),children:e.jsxs(g.BarChart,{data:l,layout:"vertical",margin:{top:5,right:30,left:100,bottom:5},children:[e.jsx(g.CartesianGrid,{strokeDasharray:"3 3",stroke:Z}),e.jsx(g.XAxis,{type:"number",tick:te,axisLine:N,tickLine:N,...v?{label:{value:v,position:"insideBottom",offset:-5,style:{textAnchor:"middle",fill:"var(--text-muted, #666)"}}}:{}}),e.jsx(g.YAxis,{type:"category",dataKey:"x",tick:{fill:"var(--text-muted, #666)",fontSize:11},width:90,axisLine:N,tickLine:N}),e.jsx(g.Tooltip,{...J}),!n&&e.jsx(g.Legend,{wrapperStyle:ee}),s.map((i,u)=>e.jsx(g.Bar,{dataKey:i,fill:A[u%A.length],radius:[0,2,2,0],children:n&&l.map((I,S)=>e.jsx(g.Cell,{fill:A[S%A.length]},S))},i))]})});case"line":return e.jsx(g.ResponsiveContainer,{width:"100%",height:300,children:e.jsxs(g.LineChart,{data:l,margin:{top:5,right:30,left:20,bottom:p?40:r},children:[e.jsx(g.CartesianGrid,{strokeDasharray:"3 3",stroke:Z}),e.jsx(g.XAxis,{...z}),e.jsx(g.YAxis,{...R}),e.jsx(g.Tooltip,{...J}),e.jsx(g.Legend,{wrapperStyle:ee}),s.map((i,u)=>e.jsx(g.Line,{type:"monotone",dataKey:i,stroke:A[u%A.length],strokeWidth:2,dot:{r:4,fill:A[u%A.length]},activeDot:{r:6,fill:A[u%A.length]}},i))]})});case"area":return e.jsx(g.ResponsiveContainer,{width:"100%",height:300,children:e.jsxs(g.AreaChart,{data:l,margin:{top:5,right:30,left:20,bottom:p?40:r},children:[e.jsx(g.CartesianGrid,{strokeDasharray:"3 3",stroke:Z}),e.jsx(g.XAxis,{...z}),e.jsx(g.YAxis,{...R}),e.jsx(g.Tooltip,{...J}),e.jsx(g.Legend,{wrapperStyle:ee}),s.map((i,u)=>e.jsx(g.Area,{type:"monotone",dataKey:i,stroke:A[u%A.length],strokeWidth:2,fill:A[u%A.length],fillOpacity:.15},i))]})});case"pie":{const i=a[0].data.map((S,E)=>({name:S.x,value:S.y,fill:A[E%A.length]})),u=Math.PI/180,I=({cx:S,cy:E,midAngle:_,innerRadius:O,outerRadius:X,percent:H,name:K})=>{const q=X+20,U=S+q*Math.cos(-_*u),Y=E+q*Math.sin(-_*u);return H<.04?null:e.jsxs("text",{x:U,y:Y,fill:"var(--text-ink, #1e2125)",fontSize:11,textAnchor:U>S?"start":"end",dominantBaseline:"central",children:[K," (",(H*100).toFixed(0),"%)"]})};return e.jsx(g.ResponsiveContainer,{width:"100%",height:320,children:e.jsxs(g.PieChart,{children:[e.jsx(g.Pie,{data:i,cx:"50%",cy:"50%",outerRadius:100,dataKey:"value",label:I,labelLine:{stroke:"var(--text-muted, #666)"},children:i.map((S,E)=>e.jsx(g.Cell,{fill:S.fill},E))}),e.jsx(g.Tooltip,{...J})]})})}case"metric":{const i=a[0],u=i.data[0],I=i.data.length>1?i.data[1]:null,S=u.y,E=u.x||"",_=I!==null,O=_?S-I.y:0,X=_&&I.y!==0?O/Math.abs(I.y)*100:0,H=O>0,K=O<0,q=H?"#7BA89D":K?"#D17B6B":"var(--text-muted, #666)",U=H?"↑":K?"↓":"→",Y=$=>Number.isInteger($)&&Math.abs($)>=1e3?$.toLocaleString():typeof $=="number"?$%1===0?$.toString():$.toFixed($<10?2:1):String($);return e.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:12,padding:"8px 0"},children:[e.jsx("div",{style:{fontSize:"36px",fontWeight:700,lineHeight:1,color:"var(--text-strong, #1e2125)",fontVariantNumeric:"tabular-nums"},children:Y(S)}),E&&e.jsx("div",{style:{fontSize:"14px",color:"var(--text-muted, #666)",fontWeight:500},children:E}),_&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,fontSize:"13px",fontWeight:600,color:q,background:H?"rgba(123,168,157,0.12)":K?"rgba(209,123,107,0.12)":"rgba(128,128,128,0.08)",padding:"3px 8px",borderRadius:"var(--radius-sm, 4px)"},children:[e.jsx("span",{children:U}),e.jsxs("span",{children:[Y(Math.abs(O))," (",Math.abs(X).toFixed(1),"%)"]})]}),_&&e.jsxs("div",{style:{fontSize:"11px",color:"var(--text-faint, #999)"},children:["vs ",I.x||"previous"]})]})}default:return e.jsxs("div",{style:{color:"var(--text-muted)",fontSize:12,padding:8},children:["Unsupported chart type: ",f]})}},k=h.useCallback(()=>{j.current&&ge(j.current,y)},[y]),M=h.useCallback(()=>{ue(a,m),w(!0),setTimeout(()=>w(!1),2e3)},[a,m]),T=f!=="metric";return e.jsxs("div",{style:c,children:[y&&e.jsx("div",{style:C,children:y}),T&&e.jsx(he,{onDownload:k,onCopy:M,copied:L}),e.jsx("div",{ref:j,children:o()})]})};exports.ChartRenderer=fe;exports.ChatHistoryPanel=le;exports.ChatInterface=ie;exports.ChatMessage=re;exports.MessageThread=pe;exports.ThinkingIndicator=se;
|
|
31
31
|
//# sourceMappingURL=chat.cjs.js.map
|