@coffer-org/web 7.3.1 → 7.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coffer-org/web",
3
- "version": "7.3.1",
3
+ "version": "7.4.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=24"
@@ -1,5 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,t as n}from"./i18n-vendor-T6EnJ_TL.js";import{l as r,t as i}from"./react-vendor-CzSUaSLk.js";import{Ar as a,Bt as o,Ct as s,Fr as c,Ir as l,Nr as u,Ur as d,Vr as f,hi as p,kr as m,lr as ee,sr as h,zr as g}from"./src-B0pL3dGf.js";import{n as _,r as v}from"./input-BFMNMo6y.js";import{n as y,r as b,t as x}from"./file-text-BdYRF4MO.js";import{f as S,l as C,p as w}from"./phone-input-8QtHMHO_.js";import{c as T}from"./popover-UkAmHo3Y.js";var E=v(`file-archive`,[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]),D=v(`file-headphone`,[[`path`,{d:`M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]]),O=v(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),k=v(`file-play`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]]),A=v(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),te=v(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),j=v(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),ne=v(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),M=v(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),N=v(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),P=e(t(),1);async function*F(e){let t=e.getReader(),n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a;for(;(a=r.indexOf(`
2
-
3
- `))!==-1;){let e=r.slice(0,a);r=r.slice(a+2);let t=`message`,n=[];for(let r of e.split(`
4
- `))!r||r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trim():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));n.length&&(yield{event:t,data:n.join(`
5
- `)})}}}var I=`/api/plugins/webchat/user`;async function L(e,t){let n=await fetch(`${I}/${e}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(e);return await n.json()}async function R(){return(await L(`threads`,{})).threads}async function re(e){return L(`history`,{convId:e})}async function ie(e){let t=await L(`agents`,{convId:e});return{agents:t.agents??[],defaultAgentId:t.defaultAgentId??null,selection:t.selection??{agentId:null,presetId:null},starters:t.starters??[]}}async function z(e,t){return(await L(`selectAgent`,{convId:e,...t})).selection}async function B(e,t){return L(`setVisibility`,{convId:e,private:t})}async function V(e){return L(`send`,{convId:e.convId,text:e.text,replyTo:e.replyTo,context:e.context,...e.attachments?.length?{attachments:e.attachments}:{}})}async function ae(e){if(!(await fetch(`${I}/stop`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e})})).ok)throw Error(`stop`)}async function oe(e,t,n){let r=await fetch(`${I}/channel/stream`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e}),signal:n});if(!r.ok||!r.body)throw Error(`http ${r.status}`);for await(let e of F(r.body))try{let n=JSON.parse(e.data);e.event===`user`?t.onUser({msgId:String(n.msgId??``),text:String(n.text??``),ts:typeof n.ts==`number`?n.ts:0,...Array.isArray(n.attachments)?{attachments:n.attachments}:{}}):e.event===`message`?t.onMessage({msgId:String(n.msgId??``),text:String(n.text??``)}):e.event===`delta`?t.onDelta({msgId:String(n.msgId??``),text:String(n.text??``)}):e.event===`reasoning`?t.onReasoning({msgId:String(n.msgId??``),text:String(n.text??``)}):e.event===`done`?t.onDone({msgId:n.msgId??null,parentMsgId:String(n.parentMsgId??``),suggestions:Array.isArray(n.suggestions)?n.suggestions:null}):e.event===`error`&&t.onError({message:n.message??null,parentMsgId:typeof n.parentMsgId==`string`?n.parentMsgId:null})}catch(e){t.onError({message:`malformed frame: ${String(e)}`,parentMsgId:null})}}function H(){return crypto.randomUUID()}function se(e){switch(e.kind){case`user`:case`message`:case`delta`:case`reasoning`:return e.data.msgId;case`done`:return e.data.msgId;case`error`:return null}}var ce=1e3,le=3e4;function ue(){let[e,t]=(0,P.useState)([]),[n,r]=(0,P.useState)(null),[i,a]=(0,P.useState)([]),[o,s]=(0,P.useState)(null),[c,l]=(0,P.useState)(null),[u,d]=(0,P.useState)(null),[f,p]=(0,P.useState)([]),[m,ee]=(0,P.useState)(null),[h,g]=(0,P.useState)({agentId:null,presetId:null}),[_,v]=(0,P.useState)([]),[y,b]=(0,P.useState)(null),x=(0,P.useRef)(null),S=(0,P.useRef)(!1),C=(0,P.useRef)(null),w=(0,P.useRef)(``),T=(0,P.useRef)(null),E=(0,P.useRef)(0),D=(0,P.useRef)(!0);(0,P.useEffect)(()=>(D.current=!0,()=>{D.current=!1,E.current++}),[]);let O=(0,P.useCallback)(()=>{R().then(e=>{D.current&&t(e)}).catch(()=>{})},[]);(0,P.useEffect)(()=>{if(!n)return;let e=!1;return ie(n).then(t=>{e||(p(t.agents),ee(t.defaultAgentId),g(t.selection),v(t.starters))}).catch(()=>{}),()=>{e=!0}},[n]);let k=(0,P.useCallback)((e,t)=>{let n=se(e),r=t!==null&&n!==null&&t.has(n);switch(e.kind){case`user`:{if(r)break;let{msgId:t,text:n,ts:i,attachments:o}=e.data;a(e=>e.some(e=>e.msgId===t)?e:[...e,{msgId:t,role:`user`,text:n,ts:i,...o?.length?{attachments:o}:{}}]);break}case`message`:case`delta`:if(r)break;w.current=e.data.text,s(e.data.text);break;case`reasoning`:if(r)break;T.current=e.data.text,l(e.data.text);break;case`done`:{let{msgId:t,parentMsgId:n,suggestions:i}=e.data;if(x.current=t??n,b(i??null),!r&&t&&w.current){let e=w.current,n=T.current;a(r=>r.some(e=>e.msgId===t)?r:[...r,{msgId:t,role:`assistant`,text:e,ts:Math.floor(Date.now()/1e3),...n?{reasoning:n}:{}}])}w.current=``,T.current=null,s(null),l(null),C.current!==null&&C.current===n&&(S.current=!1,C.current=null),O();break}case`error`:d(e.data.message??`error`),w.current=``,T.current=null,s(null),l(null),C.current!==null&&C.current===e.data.parentMsgId&&(S.current=!1,C.current=null);break}},[O]);(0,P.useEffect)(()=>{if(!n)return;let e=n,t=!1,r=null,i=0,o=new AbortController;async function s(){if(t)return;let n=!0,c=!1,l=[],u=e=>{t||(c=!0,n?l.push(e):k(e,null))},f=oe(e,{onUser:e=>u({kind:`user`,data:e}),onMessage:e=>u({kind:`message`,data:e}),onDelta:e=>u({kind:`delta`,data:e}),onReasoning:e=>u({kind:`reasoning`,data:e}),onDone:e=>u({kind:`done`,data:e}),onError:e=>u({kind:`error`,data:e})},o.signal).then(()=>!0,()=>!1);try{let r=await re(e);if(t)return;x.current=r.headMsgId;let i=new Set(r.messages.map(e=>e.msgId));a(e=>{let t=C.current,n=e.filter(e=>!i.has(e.msgId)&&(e.msgId.startsWith(`local-`)||e.msgId===t));return n.length?[...r.messages,...n]:r.messages}),b(r.messages.at(-1)?.suggestions??null),n=!1;for(let e of l)k(e,i)}catch(e){if(t)return;d(e.message),n=!1;for(let e of l)k(e,null)}if(await f,t)return;c&&(i=0);let p=Math.min(ce*2**i,le);i++,r=setTimeout(()=>void s(),p)}return s(),()=>{t=!0,r&&clearTimeout(r),o.abort()}},[n,k]);let A=(0,P.useCallback)(e=>{let t=h;g(e),n&&z(n,e).then(g).catch(e=>{g(t),d(e instanceof Error?e.message:String(e))})},[n,h]),te=(0,P.useCallback)((n,r)=>{let i=e.find(e=>e.convId===n)?.private??!1;t(e=>e.map(e=>e.convId===n?{...e,private:r}:e)),B(n,r).then(e=>{t(t=>t.map(t=>t.convId===n?{...t,private:e.visibility===`private`}:t))}).catch(()=>{t(e=>e.map(e=>e.convId===n?{...e,private:i}:e))})},[e]),j=(0,P.useMemo)(()=>{let e=f.find(e=>e.id===h.agentId)?.media;return!e||e.image.accepts.length>0||e.document.accepts.length>0},[f,h]),ne=(0,P.useCallback)(()=>{E.current++,S.current=!1,C.current=null,x.current=null,r(H()),a([]),s(null),l(null),w.current=``,T.current=null,d(null),b(null)},[]),M=(0,P.useCallback)(async e=>{E.current++,S.current=!1,C.current=null,r(e),x.current=null,a([]),s(null),l(null),w.current=``,T.current=null,d(null),b(null)},[]),N=(0,P.useCallback)(()=>{n&&ae(n).catch(()=>{})},[n]);return{threads:e,convId:n,messages:i,pending:o,pendingReasoning:c,error:u,agents:f,defaultAgentId:m,selection:h,starters:_,suggestions:y,attachmentsAllowed:j,chooseAgent:A,togglePrivate:te,send:(0,P.useCallback)((e,t,i=[])=>{if(!e.trim()||S.current)return!1;S.current=!0;let o=E.current,c=n??H();n===null&&r(c),d(null),b(null);let u=`local-${H()}`;return a(t=>[...t,{msgId:u,role:`user`,text:e,ts:Math.floor(Date.now()/1e3),...i.length?{attachments:i}:{}}]),s(``),(async()=>{try{let{msgId:n}=await V({convId:c,text:e,replyTo:x.current,context:t,attachments:i});if(E.current!==o)return;if(n===null){S.current=!1,s(null),l(null);return}a(e=>e.some(e=>e.msgId===n)?e.filter(e=>e.msgId!==u):e.map(e=>e.msgId===u?{...e,msgId:n}:e)),C.current=n}catch(e){E.current===o&&(S.current=!1,d(e.message),s(null),l(null))}})(),!0},[n]),open:M,newConversation:ne,loadThreads:O,stop:N}}var de=`—`;function fe(){if(typeof document>`u`)return;let e=document.querySelector(`[role="heading"][aria-level="1"]`)?.textContent?.trim();return e&&e!==de?e:void 0}function pe(e){let t=e.split(`/`).filter(Boolean),n=new Set([`settings`,`browse`,`plugins`,`login`,`setup`]);if(t.length<2||n.has(t[0]))return{path:e};let[r,i,a]=t,o=!!(a&&a!==`new`),s=o?fe():void 0;return{path:e,library:r,type:i,...o?{id:a}:{},...s?{title:s}:{}}}function me(){let{pathname:e}=r();return(0,P.useCallback)(()=>pe(e),[e])}var U=i(),he=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-nav.tsx`,ge=(0,P.createContext)(()=>{});function _e({onNavigate:e,children:t}){return(0,U.jsxDEV)(ge.Provider,{value:e,children:t},void 0,!1,{fileName:he,lineNumber:9,columnNumber:10},this)}function ve(){return(0,P.useContext)(ge)}var ye=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-markdown.tsx`;function be({text:e,className:t}){let n=ve();return(0,U.jsxDEV)(o,{value:e,className:t??`md-static md-chat`,onNavigate:n},void 0,!1,{fileName:ye,lineNumber:21,columnNumber:10},this)}var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatAttachments.tsx`,xe=2,Se=[[/\.(png|jpe?g|gif|webp|avif|svg|bmp|heic|heif)$/i,O],[/\.(mp3|wav|ogg|oga|flac|m4a|aac|opus)$/i,D],[/\.(mp4|mov|mkv|webm|avi|m4v)$/i,k],[/\.(zip|rar|7z|tar|gz|tgz|bz2|xz)$/i,E],[/\.(csv|tsv|xlsx?|ods|numbers)$/i,A],[/\.(json|xml|ya?ml|toml|ini|js|jsx|ts|tsx|css|html?|sh|py|sql)$/i,y]];function Ce(e){let t=e.mime?.toLowerCase().split(`;`,1)[0]??``;if(t.startsWith(`image/`))return O;if(t.startsWith(`audio/`))return D;if(t.startsWith(`video/`))return k;if(t===`text/csv`||t.includes(`spreadsheet`)||t.includes(`excel`))return A;if(t===`application/json`||t===`application/xml`||t.startsWith(`text/x`))return y;if(t===`application/zip`||t.includes(`compressed`)||t.includes(`tar`))return E;let n=e.label??e.name;for(let[e,t]of Se)if(e.test(n))return t;return x}function we(e){let t=e.lastIndexOf(`.`);return t<=0||e.length-t>11?{stem:e,ext:``}:{stem:e.slice(0,t),ext:e.slice(t)}}function Te({a:e,onRemove:t}){let{t:r}=n(),i=e.label??e.name,{stem:a,ext:o}=we(i),s=b(e.size);return(0,U.jsxDEV)(`li`,{className:`flex min-w-0 items-center gap-2 rounded-[calc(var(--radius-md)+1px)] border border-border bg-background py-1 pr-1.5 pl-2`,children:[(0,U.jsxDEV)(Ce(e),{size:14,"aria-hidden":!0,className:`shrink-0 text-muted-foreground`},void 0,!1,{fileName:W,lineNumber:100,columnNumber:7},this),(0,U.jsxDEV)(`span`,{className:`flex min-w-0 flex-1 text-xs`,title:i,children:[(0,U.jsxDEV)(`span`,{className:`truncate`,children:a},void 0,!1,{fileName:W,lineNumber:102,columnNumber:9},this),o&&(0,U.jsxDEV)(`span`,{className:`shrink-0 text-muted-foreground`,children:o},void 0,!1,{fileName:W,lineNumber:103,columnNumber:17},this)]},void 0,!0,{fileName:W,lineNumber:101,columnNumber:7},this),s&&(0,U.jsxDEV)(`span`,{className:`shrink-0 text-[0.6875rem] tabular-nums text-muted-foreground`,children:s},void 0,!1,{fileName:W,lineNumber:105,columnNumber:16},this),t&&(0,U.jsxDEV)(`button`,{type:`button`,"aria-label":r(`webchat.removeAttachment`,{name:i}),title:r(`webchat.removeAttachment`,{name:i}),className:`shrink-0 rounded p-0.5 text-muted-foreground hover:text-destructive focus-visible:outline-2 focus-visible:outline-ring`,onClick:t,children:(0,U.jsxDEV)(S,{size:13},void 0,!1,{fileName:W,lineNumber:114,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:107,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:99,columnNumber:5},this)}function Ee({items:e,onRemove:t,className:r=``}){let{t:i}=n(),[a,o]=(0,P.useState)(!1),s=(0,P.useId)();if(!e.length)return null;let c=a?0:Math.max(0,e.length-xe),l=c?e.slice(0,xe):e;return(0,U.jsxDEV)(`div`,{className:`flex flex-col gap-1 ${r}`,"data-chat-attachments":!0,children:[(0,U.jsxDEV)(`ul`,{id:s,"aria-label":i(`webchat.attachments`),className:`flex flex-col gap-1`,children:l.map((e,n)=>(0,U.jsxDEV)(Te,{a:e,...t?{onRemove:()=>t(n)}:{}},`${e.name}-${n}`,!1,{fileName:W,lineNumber:141,columnNumber:11},this))},void 0,!1,{fileName:W,lineNumber:139,columnNumber:7},this),e.length>xe&&(0,U.jsxDEV)(`button`,{type:`button`,"aria-expanded":a,"aria-controls":s,className:`inline-flex items-center gap-1 self-start rounded px-1 py-0.5 text-xs text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>o(e=>!e),children:[(0,U.jsxDEV)(w,{size:12,"aria-hidden":!0,className:a?`rotate-180 transition-transform`:`transition-transform`},void 0,!1,{fileName:W,lineNumber:152,columnNumber:11},this),a?i(`webchat.fewerFiles`):i(`webchat.moreFiles`,{count:c})]},void 0,!0,{fileName:W,lineNumber:145,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:138,columnNumber:5},this)}var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatMessages.tsx`;function De({messages:e,pending:t,pendingReasoning:r,trailing:i}){let{t:a}=n(),o=(0,P.useRef)(null);return(0,P.useEffect)(()=>{let e=o.current;e&&(e.scrollTop=e.scrollHeight)},[e.length,t]),(0,U.jsxDEV)(`div`,{ref:o,"data-chat-list":!0,className:`flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2`,children:[!e.length&&t===null&&r===null?(0,U.jsxDEV)(`div`,{className:`grid flex-1 place-items-center px-6 text-center text-sm text-muted-foreground`,children:(0,U.jsxDEV)(`span`,{className:`flex flex-col items-center gap-2`,children:[(0,U.jsxDEV)(j,{size:28,"aria-hidden":!0,className:`text-faint`},void 0,!1,{fileName:G,lineNumber:43,columnNumber:13},this),a(`webchat.empty`)]},void 0,!0,{fileName:G,lineNumber:42,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:41,columnNumber:9},this):(0,U.jsxDEV)(U.Fragment,{children:[e.map(e=>(0,U.jsxDEV)(Oe,{role:e.role,text:e.text,reasoning:e.reasoning,attachments:e.attachments},e.msgId,!1,{fileName:G,lineNumber:50,columnNumber:13},this)),t!==null&&(0,U.jsxDEV)(Oe,{role:`assistant`,text:t||a(`webchat.thinking`),reasoning:r},void 0,!1,{fileName:G,lineNumber:53,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:48,columnNumber:9},this),i]},void 0,!0,{fileName:G,lineNumber:39,columnNumber:5},this)}var Oe=(0,P.memo)(function({role:e,text:t,reasoning:r,attachments:i}){let{t:a}=n();return e===`user`?(0,U.jsxDEV)(`div`,{className:`max-w-[85%] min-w-0 self-end rounded-2xl rounded-br-sm border border-border bg-accent px-3 py-2 text-[0.8125rem] break-words whitespace-pre-wrap`,children:[i?.length?(0,U.jsxDEV)(Ee,{items:i,className:`-mx-1 ${t?`mb-2`:``}`},void 0,!1,{fileName:G,lineNumber:90,columnNumber:32},this):null,t]},void 0,!0,{fileName:G,lineNumber:89,columnNumber:7},this):(0,U.jsxDEV)(`div`,{className:`max-w-[95%] min-w-0 self-start rounded-2xl rounded-bl-sm bg-muted px-3 py-2 text-sm break-words`,children:[r?(0,U.jsxDEV)(`details`,{className:`group/reason -mx-1 mb-2 rounded-[calc(var(--radius-md)+1px)] border border-border bg-background px-2 py-1`,children:[(0,U.jsxDEV)(`summary`,{className:`flex cursor-pointer list-none items-center gap-1 select-none text-xs text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring [&::-webkit-details-marker]:hidden`,children:[(0,U.jsxDEV)(d,{size:12,"aria-hidden":!0,className:`shrink-0 transition-transform group-open/reason:rotate-90`},void 0,!1,{fileName:G,lineNumber:114,columnNumber:13},this),a(`webchat.reasoning`)]},void 0,!0,{fileName:G,lineNumber:113,columnNumber:11},this),(0,U.jsxDEV)(be,{text:r,className:`md-static md-chat md-chat-sub mt-1 text-muted-foreground`},void 0,!1,{fileName:G,lineNumber:117,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:112,columnNumber:9},this):null,(0,U.jsxDEV)(be,{text:t,className:`md-static md-chat`},void 0,!1,{fileName:G,lineNumber:120,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:96,columnNumber:5},this)}),K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/AgentPicker.tsx`;function ke({agents:e,defaultAgentId:t,selection:r,onChange:i}){let{t:a}=n(),[o,s]=(0,P.useState)(!1),c=(0,P.useRef)(null),l=(0,P.useRef)(null);(0,P.useEffect)(()=>{if(!o)return;function e(e){c.current&&!c.current.contains(e.target)&&s(!1)}function t(e){e.key===`Escape`&&(s(!1),l.current?.focus())}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]);let u=e.length>1,d=e.flatMap(e=>e.presets.map(t=>({agentId:e.id,presetId:t.id,label:u?`${e.title} · ${t.title}`:t.title,hint:t.hint,isDefault:t.default===!0})));if(d.length===0)return null;let f=d.find(e=>e.agentId===r.agentId&&e.presetId===r.presetId)??d.find(e=>e.agentId===t&&e.isDefault)??d.find(e=>e.isDefault)??d[0];return(0,U.jsxDEV)(`div`,{className:`relative`,ref:c,children:[(0,U.jsxDEV)(`button`,{ref:l,type:`button`,"aria-haspopup":`menu`,"aria-expanded":o,className:`flex items-center gap-1 rounded-md px-2 py-1 text-xs text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>s(e=>!e),children:[(0,U.jsxDEV)(`span`,{className:`max-w-40 truncate`,children:f.hint?`${f.label} · ${f.hint}`:f.label},void 0,!1,{fileName:K,lineNumber:103,columnNumber:9},this),(0,U.jsxDEV)(w,{size:12,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:104,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:95,columnNumber:7},this),o&&(0,U.jsxDEV)(`ul`,{"aria-label":a(`webchat.agentPicker`),className:`absolute bottom-full left-0 z-10 mb-1 max-h-64 w-64 max-w-[calc(100vw-2rem)] overflow-y-auto rounded-md border border-border bg-muted py-1 shadow-lg`,children:d.map(e=>{let t=e===f;return(0,U.jsxDEV)(`li`,{children:(0,U.jsxDEV)(`button`,{type:`button`,...t?{"aria-current":!0}:{},className:`flex w-full items-center gap-2 px-2 py-1.5 text-left text-xs hover:bg-card focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{s(!1),i({agentId:e.agentId,presetId:e.presetId})},children:[(0,U.jsxDEV)(_,{size:12,className:t?`shrink-0 text-primary`:`shrink-0 opacity-0`},void 0,!1,{fileName:K,lineNumber:132,columnNumber:19},this),(0,U.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label},void 0,!1,{fileName:K,lineNumber:133,columnNumber:19},this),e.hint?(0,U.jsxDEV)(`span`,{className:`shrink-0 text-muted-foreground`,children:e.hint},void 0,!1,{fileName:K,lineNumber:134,columnNumber:29},this):null]},void 0,!0,{fileName:K,lineNumber:123,columnNumber:17},this)},`${e.agentId}/${e.presetId}`,!1,{fileName:K,lineNumber:122,columnNumber:15},this)})},void 0,!1,{fileName:K,lineNumber:112,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:94,columnNumber:5},this)}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatComposer.tsx`;function Ae({streaming:e,onSend:t,onStop:r,attachments:i,uploading:a,uploadError:o,uploadProgress:s,canRetryUpload:l,onRetryUpload:d,onPickFiles:p,onRemoveAttachment:m,agents:ee,defaultAgentId:h,selection:g,onChooseAgent:_,attachmentsAllowed:v}){let{t:y}=n(),[b,x]=(0,P.useState)(``);function S(){!b.trim()||e||t(b.trim(),i)&&x(``)}return(0,U.jsxDEV)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-border p-2`,children:[(i.length>0||a||o)&&(0,U.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 px-1`,children:[(0,U.jsxDEV)(Ee,{items:i,onRemove:m},void 0,!1,{fileName:q,lineNumber:65,columnNumber:11},this),a&&(0,U.jsxDEV)(`div`,{className:`flex min-w-32 flex-1 items-center gap-2`,"aria-label":y(`webchat.uploading`),children:[(0,U.jsxDEV)(f,{size:14,className:`shrink-0 animate-spin text-muted-foreground`},void 0,!1,{fileName:q,lineNumber:68,columnNumber:15},this),(0,U.jsxDEV)(`div`,{role:`progressbar`,"aria-label":y(`webchat.uploadProgress`),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":s,className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-border`,children:(0,U.jsxDEV)(`div`,{className:`h-full rounded-full bg-primary transition-[width]`,style:{width:`${s}%`}},void 0,!1,{fileName:q,lineNumber:77,columnNumber:17},this)},void 0,!1,{fileName:q,lineNumber:69,columnNumber:15},this),(0,U.jsxDEV)(`span`,{className:`text-xs tabular-nums text-muted-foreground`,children:[s,`%`]},void 0,!0,{fileName:q,lineNumber:82,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:67,columnNumber:13},this),o&&(0,U.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-destructive`,children:[(0,U.jsxDEV)(`span`,{className:`min-w-0 flex-1`,children:y(o)},void 0,!1,{fileName:q,lineNumber:87,columnNumber:15},this),l&&(0,U.jsxDEV)(`button`,{type:`button`,className:`inline-flex shrink-0 items-center gap-1 rounded px-1.5 py-0.5 font-medium text-primary hover:bg-muted focus-visible:outline-2 focus-visible:outline-ring`,onClick:d,children:[(0,U.jsxDEV)(c,{size:12},void 0,!1,{fileName:q,lineNumber:94,columnNumber:19},this),` `,y(`webchat.retryUpload`)]},void 0,!0,{fileName:q,lineNumber:89,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:86,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:64,columnNumber:9},this),(0,U.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,U.jsxDEV)(`textarea`,{className:`max-h-32 w-full resize-none rounded-lg border border-border bg-background px-3 py-2 text-sm transition-colors outline-none placeholder:text-faint focus:border-ring focus:ring-2 focus:ring-ring`,rows:1,value:b,placeholder:y(`webchat.placeholder`),onChange:e=>x(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),S())}},void 0,!1,{fileName:q,lineNumber:104,columnNumber:9},this),(0,U.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[v&&(0,U.jsxDEV)(`label`,{title:y(`webchat.attach`),className:`flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-within:ring-2 focus-within:ring-ring ${a?`pointer-events-none opacity-60`:``}`,children:[(0,U.jsxDEV)(M,{size:18,"aria-hidden":!0},void 0,!1,{fileName:q,lineNumber:127,columnNumber:15},this),(0,U.jsxDEV)(`input`,{type:`file`,multiple:!0,"aria-label":y(`webchat.attach`),className:`sr-only`,disabled:a,onChange:e=>{e.target.files?.length&&p(e.target.files),e.currentTarget.value=``}},void 0,!1,{fileName:q,lineNumber:128,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:120,columnNumber:13},this),(0,U.jsxDEV)(ke,{agents:ee,defaultAgentId:h,selection:g,onChange:_},void 0,!1,{fileName:q,lineNumber:141,columnNumber:11},this),(0,U.jsxDEV)(`div`,{className:`flex-1`},void 0,!1,{fileName:q,lineNumber:142,columnNumber:11},this),e?(0,U.jsxDEV)(C,{type:`button`,variant:`ghost`,size:`iconSm`,"aria-label":y(`webchat.stop`),title:y(`webchat.stop`),className:`shrink-0`,onClick:r,children:(0,U.jsxDEV)(u,{size:18},void 0,!1,{fileName:q,lineNumber:153,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:144,columnNumber:13},this):(0,U.jsxDEV)(C,{type:`button`,variant:`ghost`,size:`iconSm`,"aria-label":y(`webchat.send`),title:y(`webchat.send`),disabled:!b.trim(),className:`shrink-0 hover:text-primary`,onClick:S,children:(0,U.jsxDEV)(N,{size:18},void 0,!1,{fileName:q,lineNumber:168,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:158,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:118,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:59,columnNumber:5},this)}var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatThreadList.tsx`;function je({threads:e,activeId:t,onOpen:r,onNew:i,onTogglePrivate:a,className:o=`w-[220px] shrink-0`}){let{t:s}=n();return(0,U.jsxDEV)(`aside`,{"aria-label":s(`webchat.threads`),className:`${o} flex flex-col border-r border-border`,children:[(0,U.jsxDEV)(`button`,{className:`flex items-center gap-2 border-b border-border px-3 py-2 text-sm font-medium text-primary hover:bg-muted focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring`,onClick:i,children:[(0,U.jsxDEV)(l,{size:16,"aria-hidden":!0},void 0,!1,{fileName:J,lineNumber:32,columnNumber:9},this),` `,s(`webchat.newConversation`)]},void 0,!0,{fileName:J,lineNumber:28,columnNumber:7},this),(0,U.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:e.map(e=>{let n=e.convId===t;return(0,U.jsxDEV)(`div`,{className:`flex items-center gap-1 border-l-2 pr-2 pl-1 ${n?`border-ring bg-accent`:`border-transparent hover:bg-muted`}`,children:[(0,U.jsxDEV)(`button`,{onClick:()=>r(e.convId),className:`min-w-0 flex-1 rounded-sm py-2 pl-2 text-left text-sm focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring ${n?`font-medium`:``}`,children:[(0,U.jsxDEV)(`span`,{className:`block truncate`,children:e.title||s(`webchat.newConversation`)},void 0,!1,{fileName:J,lineNumber:52,columnNumber:17},this),(e.mine||e.ownerName)&&(0,U.jsxDEV)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.mine?s(`webchat.you`):e.ownerName},void 0,!1,{fileName:J,lineNumber:57,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:48,columnNumber:15},this),e.mine&&(0,U.jsxDEV)(`button`,{type:`button`,"aria-label":e.private?s(`webchat.makePublic`):s(`webchat.makePrivate`),title:e.private?s(`webchat.makePublic`):s(`webchat.makePrivate`),onClick:t=>{t.stopPropagation(),a(e.convId,!e.private)},className:`shrink-0 rounded p-1 text-muted-foreground hover:bg-card hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,children:(0,U.jsxDEV)(m,{name:e.private?`lucide:shield`:`lucide:globe`,size:14},void 0,!1,{fileName:J,lineNumber:73,columnNumber:19},this)},void 0,!1,{fileName:J,lineNumber:63,columnNumber:17},this)]},e.convId,!0,{fileName:J,lineNumber:42,columnNumber:13},this)})},void 0,!1,{fileName:J,lineNumber:34,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:27,columnNumber:5},this)}var Me=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/SuggestionChips.tsx`;function Ne({items:e,onPick:t}){let{t:r}=n();return e?.length?(0,U.jsxDEV)(`div`,{role:`group`,"aria-label":r(`webchat.suggestions`),className:`flex flex-wrap gap-1.5 px-2 pb-1.5`,children:e.map((e,n)=>(0,U.jsxDEV)(`button`,{type:`button`,title:e,className:`max-w-full truncate rounded-full border border-border bg-muted px-3 py-1 text-xs text-foreground hover:border-border2 hover:bg-card focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>t(e),children:e},`${n}-${e}`,!1,{fileName:Me,lineNumber:24,columnNumber:9},this))},void 0,!1,{fileName:Me,lineNumber:22,columnNumber:5},this):null}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatWidget.tsx`,Pe=25*1024*1024;function X(e){return Array.from(e.dataTransfer.types).includes(`Files`)}function Fe({children:e,onFiles:t,className:r}){let{t:i}=n(),[o,s]=(0,P.useState)(!1),c=(0,P.useRef)(0);function l(e){X(e)&&(e.preventDefault(),c.current+=1,s(!0))}function u(e){X(e)&&(e.preventDefault(),c.current=Math.max(0,c.current-1),c.current===0&&s(!1))}function d(e){X(e)&&(e.preventDefault(),c.current=0,s(!1),t(Array.from(e.dataTransfer.files)))}return(0,U.jsxDEV)(`div`,{className:r,onDragEnter:l,onDragLeave:u,onDragOver:e=>{X(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:d,children:[e,o&&(0,U.jsxDEV)(`div`,{"data-chat-drop-overlay":!0,"data-testid":`chat-drop-overlay`,className:`pointer-events-none absolute inset-0 z-50 grid place-items-center bg-card/95 p-6 text-center backdrop-blur-sm`,children:(0,U.jsxDEV)(`div`,{className:`flex h-full w-full flex-col items-center justify-center rounded-2xl border-2 border-dashed border-ring text-primary`,children:[(0,U.jsxDEV)(a,{size:34},void 0,!1,{fileName:Y,lineNumber:83,columnNumber:13},this),(0,U.jsxDEV)(`span`,{className:`mt-3 text-base font-medium`,children:i(`webchat.dropFiles`)},void 0,!1,{fileName:Y,lineNumber:84,columnNumber:13},this),(0,U.jsxDEV)(`span`,{className:`mt-1 text-xs text-muted-foreground`,children:i(`webchat.dropFilesHint`)},void 0,!1,{fileName:Y,lineNumber:85,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:82,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:59,columnNumber:5},this)}function Z(e){return e?[`bubble`,`panel`,`modal`]:[`bubble`,`modal`]}function Q(e){return Z(e)[1]}function $(e,t,n){let r=Z(t),i=r.indexOf(e)+n;return r[Math.min(r.length-1,Math.max(0,i))]}function Ie(){let{t:e}=n(),t=ue(),r=me(),[i,a]=(0,P.useState)(`bubble`),[o,c]=(0,P.useState)(!1),[u,d]=(0,P.useState)([]),[f,m]=(0,P.useState)(!1),[_,v]=(0,P.useState)(0),[y,b]=(0,P.useState)(null),[x,w]=(0,P.useState)([]),E=s(`sm`,640),D=E&&i===`modal`,O=(0,P.useCallback)(()=>{a(Q(E))},[E]),k=(0,P.useRef)(null),A=(0,P.useRef)(`bubble`);(0,P.useEffect)(()=>{if(i!==`modal`)return;let e=e=>{e.key===`Escape`&&a($(`modal`,E,-1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,E]),(0,P.useEffect)(()=>{Z(E).includes(i)||a(Q(E))},[i,E]),(0,P.useEffect)(()=>{i===`panel`&&A.current===`modal`&&k.current?.focus(),A.current=i},[i]),(0,P.useEffect)(()=>{(i===`bubble`||D)&&c(!1)},[i,D]),(0,P.useEffect)(()=>{if(i!==`modal`)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[i]);let j=i!==`bubble`;(0,P.useEffect)(()=>{j&&t.loadThreads()},[j,t.loadThreads]);let{convId:M,newConversation:N}=t;(0,P.useEffect)(()=>{j&&M===null&&N()},[j,M,N]);function F(){t.newConversation(),d([]),b(null),w([]),c(!1)}let I=(0,P.useCallback)(async e=>{if(!e.length)return;b(null),w([]),m(!0),v(0);let t=[],n=[],r=null;for(let i of e){if(i.size>Pe){r??=`webchat.uploadTooLarge`;continue}try{v(0);let e=await p(i,v);e?t.push({...e,label:i.name}):(n.push(i),r??=`webchat.uploadFailed`)}catch{n.push(i),r??=`webchat.uploadFailed`}}t.length&&d(e=>[...e,...t]),m(!1),v(0),w(n),r&&b(r)},[]),L=(0,P.useCallback)(()=>{x.length&&I(x)},[I,x]),R=(0,P.useCallback)((e,n)=>{let i=r(),a=n.length?t.send(e,i,n):t.send(e,i);return a&&(d([]),b(null),w([])),a},[t,r]),re=t.messages.length>0||t.pending!==null,ie=t.threads.find(e=>e.convId===t.convId)?.title,z=(0,U.jsxDEV)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-border px-3 py-1.5`,children:[(0,U.jsxDEV)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:ie||e(`webchat.title`)},void 0,!1,{fileName:Y,lineNumber:298,columnNumber:7},this),(0,U.jsxDEV)(`div`,{className:`-mr-1 flex shrink-0 items-center gap-0.5`,children:[re&&(0,U.jsxDEV)(C,{type:`button`,variant:`ghost`,size:`iconSm`,"aria-label":e(`webchat.newConversation`),title:e(`webchat.newConversation`),onClick:F,children:(0,U.jsxDEV)(l,{size:16},void 0,!1,{fileName:Y,lineNumber:313,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:305,columnNumber:11},this),!D&&(0,U.jsxDEV)(C,{type:`button`,variant:`ghost`,size:`iconSm`,"aria-label":e(`webchat.threads`),title:e(`webchat.threads`),"aria-expanded":o,className:o?`bg-muted text-foreground`:``,onClick:()=>c(e=>!e),children:(0,U.jsxDEV)(T,{size:16},void 0,!1,{fileName:Y,lineNumber:330,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:320,columnNumber:11},this),Z(E).includes(`panel`)&&(0,U.jsxDEV)(C,{ref:k,type:`button`,variant:`ghost`,size:`iconSm`,"aria-label":e(i===`modal`?`webchat.collapse`:`webchat.expand`),title:e(i===`modal`?`webchat.collapse`:`webchat.expand`),onClick:()=>a($(i,E,i===`modal`?-1:1)),children:i===`modal`?(0,U.jsxDEV)(ne,{size:16},void 0,!1,{fileName:Y,lineNumber:345,columnNumber:33},this):(0,U.jsxDEV)(te,{size:16},void 0,!1,{fileName:Y,lineNumber:345,columnNumber:59},this)},void 0,!1,{fileName:Y,lineNumber:336,columnNumber:11},this),(0,U.jsxDEV)(C,{type:`button`,variant:`ghost`,size:`iconSm`,"aria-label":e(`webchat.close`),title:e(`webchat.close`),onClick:()=>a(`bubble`),children:(0,U.jsxDEV)(S,{size:16},void 0,!1,{fileName:Y,lineNumber:356,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:348,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:299,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:297,columnNumber:5},this),B=(0,U.jsxDEV)(je,{threads:t.threads,activeId:t.convId,onOpen:e=>{t.open(e),d([]),b(null),w([]),c(!1)},onNew:F,onTogglePrivate:t.togglePrivate,className:D?`w-[220px] shrink-0`:`w-full`},void 0,!1,{fileName:Y,lineNumber:365,columnNumber:5},this),V=(0,U.jsxDEV)(_e,{onNavigate:O,children:(0,U.jsxDEV)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[t.error&&(0,U.jsxDEV)(`div`,{className:`px-3 py-2 text-sm text-destructive`,children:e(`webchat.error`,{message:t.error})},void 0,!1,{fileName:Y,lineNumber:387,columnNumber:11},this),(0,U.jsxDEV)(De,{messages:t.messages,pending:t.pending,pendingReasoning:t.pendingReasoning,trailing:t.messages.length===0?(0,U.jsxDEV)(Ne,{items:t.starters,onPick:e=>R(e,u)},void 0,!1,{fileName:Y,lineNumber:395,columnNumber:15},this):(0,U.jsxDEV)(Ne,{items:t.suggestions,onPick:e=>R(e,u)},void 0,!1,{fileName:Y,lineNumber:397,columnNumber:15},this)},void 0,!1,{fileName:Y,lineNumber:389,columnNumber:9},this),(0,U.jsxDEV)(Ae,{streaming:t.pending!==null,attachments:u,uploading:f,uploadProgress:_,uploadError:y,canRetryUpload:x.length>0&&!f,onRetryUpload:L,onPickFiles:e=>void I(Array.from(e)),onRemoveAttachment:e=>d(t=>t.filter((t,n)=>n!==e)),agents:t.agents,defaultAgentId:t.defaultAgentId,selection:t.selection,onChooseAgent:t.chooseAgent,attachmentsAllowed:t.attachmentsAllowed,onSend:R,onStop:t.stop},void 0,!1,{fileName:Y,lineNumber:401,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:385,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:382,columnNumber:5},this);return i===`bubble`?(0,U.jsxDEV)(`button`,{"aria-label":e(`webchat.open`),onClick:()=>a(Q(E)),className:`fixed bottom-4 right-4 z-40 grid h-14 w-14 place-items-center rounded-full bg-primary text-on-accent ring-1 ring-border2 shadow-lg`,children:(0,U.jsxDEV)(g,{size:24},void 0,!1,{fileName:Y,lineNumber:447,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:425,columnNumber:7},this):i===`panel`?(0,U.jsxDEV)(Fe,{onFiles:I,className:`fixed bottom-4 right-4 z-40 flex h-[560px] max-h-[80dvh] w-[380px] max-w-[calc(100vw-2rem)] flex-col overflow-hidden rounded-2xl border border-border bg-card shadow-xl`,children:[z,o?B:V]},void 0,!0,{fileName:Y,lineNumber:454,columnNumber:7},this):(0,U.jsxDEV)(h,{open:!0,modal:!1,onOpenChange:e=>!e&&a($(`modal`,E,-1)),children:[(0,U.jsxDEV)(`div`,{"data-chat-backdrop":!0,"aria-hidden":`true`,className:`fixed inset-0 z-[45] bg-black/50 backdrop-blur-sm`},void 0,!1,{fileName:Y,lineNumber:476,columnNumber:7},this),(0,U.jsxDEV)(ee,{hideClose:!0,className:`h-[85dvh] w-full p-0 md:h-[85dvh] md:w-[80vw] md:max-w-[1040px] md:overflow-y-hidden`,children:(0,U.jsxDEV)(Fe,{onFiles:I,className:`h-full`,children:(0,U.jsxDEV)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[z,(0,U.jsxDEV)(`div`,{className:`flex min-h-0 flex-1`,children:[(D||o)&&B,(D||!o)&&V]},void 0,!0,{fileName:Y,lineNumber:489,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:487,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:486,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:482,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:473,columnNumber:5},this)}export{Ie as ChatWidget,Ie as default,Z as chatModes,Q as restingMode,$ as stepMode};