@coffer-org/web 7.3.0 → 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.
Files changed (35) hide show
  1. package/dist/assets/ChatWidget-BpM6H_NG.js +5 -0
  2. package/dist/assets/{DiagnosticsPage-CAWQ6aOl.js → DiagnosticsPage-Dzhks26m.js} +1 -1
  3. package/dist/assets/{MarkdownEditor-On2GbApm.js → MarkdownEditor-CANj53YF.js} +3 -3
  4. package/dist/assets/{PluginSettingsPage-CcTksC-8.js → PluginSettingsPage-BIUa4IUX.js} +1 -1
  5. package/dist/assets/SettingsForm-D7Go7QNO.js +1 -0
  6. package/dist/assets/{SettingsPage-CjsbuhdW.js → SettingsPage-BmyDzHcF.js} +2 -2
  7. package/dist/assets/{ThemeSwitcher-DKrSbFhp.js → ThemeSwitcher-DuYQMxYo.js} +1 -1
  8. package/dist/assets/file-text-BdYRF4MO.js +1 -0
  9. package/dist/assets/{ilamy-view-CQD1H32m.js → ilamy-view-Dddf8Q2O.js} +3 -3
  10. package/dist/assets/index-Brc5FUYA.css +2 -0
  11. package/dist/assets/index-VReUcCHo.js +22 -0
  12. package/dist/assets/phone-input-3xV95mM6.js +1 -0
  13. package/dist/assets/{phone-input-BZ9vGYpI.js → phone-input-8QtHMHO_.js} +2 -2
  14. package/dist/assets/popover-UkAmHo3Y.js +1 -0
  15. package/dist/assets/src-Bhz_DXRd.js +1 -0
  16. package/dist/assets/src-r8PGv9_a.js +7 -0
  17. package/dist/assets/{ui-CqUVBwcW.js → ui-BpQAH_5F.js} +1 -1
  18. package/dist/assets/ui-CPQ5ERi6.js +2 -0
  19. package/dist/assets/{ui-Dj0Nsb2P.js → ui-CZNm-1na.js} +2 -2
  20. package/dist/assets/{ui-BuqzqLDw.js → ui-D0o4fruq.js} +1 -1
  21. package/dist/assets/ui-vendor-ByG3otld.js +44 -0
  22. package/dist/index.html +9 -9
  23. package/dist-vendor/web-ui.js +41091 -40904
  24. package/package.json +1 -1
  25. package/dist/assets/ChatWidget-Bhj-WiNC.js +0 -5
  26. package/dist/assets/SettingsForm-NWfklsPY.js +0 -1
  27. package/dist/assets/file-text-CITvp61x.js +0 -1
  28. package/dist/assets/index-4Lr8BOK1.js +0 -22
  29. package/dist/assets/index-lbeXf7OV.css +0 -2
  30. package/dist/assets/phone-input-BpNLpzg_.js +0 -1
  31. package/dist/assets/popover-C1KB68Kk.js +0 -1
  32. package/dist/assets/src-1AsWJbID.js +0 -7
  33. package/dist/assets/src-BjYucEBM.js +0 -1
  34. package/dist/assets/ui-QzaKLk9q.js +0 -2
  35. package/dist/assets/ui-vendor-C0IUUP3F.js +0 -44
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coffer-org/web",
3
- "version": "7.3.0",
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,Br as o,Bt as s,Ct as c,Hr as l,Ir as u,Lr as d,Nr as f,Pr as p,St as m,Wr as h,_i as g,cr as _,kr as v,ur as y}from"./src-1AsWJbID.js";import{n as b,r as x}from"./input-BFMNMo6y.js";import{f as S,p as C}from"./phone-input-BZ9vGYpI.js";import{c as w}from"./popover-C1KB68Kk.js";import{t as T}from"./file-text-CITvp61x.js";var E=x(`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`}]]),D=x(`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`}]]),O=x(`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`}]]),k=x(`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`}]]),A=e(t(),1);async function*j(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 M=`/api/plugins/webchat/user`;async function N(e,t){let n=await fetch(`${M}/${e}`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(e);return await n.json()}async function P(){return(await N(`threads`,{})).threads}async function F(e){return N(`history`,{convId:e})}async function I(e){let t=await N(`agents`,{convId:e});return{agents:t.agents??[],defaultAgentId:t.defaultAgentId??null,selection:t.selection??{agentId:null,presetId:null},starters:t.starters??[]}}async function L(e,t){return(await N(`selectAgent`,{convId:e,...t})).selection}async function R(e,t){return N(`setVisibility`,{convId:e,private:t})}async function ee(e){return N(`send`,{convId:e.convId,text:e.text,replyTo:e.replyTo,context:e.context,...e.attachments?.length?{attachments:e.attachments}:{}})}async function z(e){if(!(await fetch(`${M}/stop`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({convId:e})})).ok)throw Error(`stop`)}async function te(e,t,n){let r=await fetch(`${M}/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 j(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 B(){return crypto.randomUUID()}function V(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 H=1e3,U=3e4;function ne(){let[e,t]=(0,A.useState)([]),[n,r]=(0,A.useState)(null),[i,a]=(0,A.useState)([]),[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(null),[u,d]=(0,A.useState)(null),[f,p]=(0,A.useState)([]),[m,h]=(0,A.useState)(null),[g,_]=(0,A.useState)({agentId:null,presetId:null}),[v,y]=(0,A.useState)([]),[b,x]=(0,A.useState)(null),S=(0,A.useRef)(null),C=(0,A.useRef)(!1),w=(0,A.useRef)(null),T=(0,A.useRef)(``),E=(0,A.useRef)(null),D=(0,A.useRef)(0),O=(0,A.useRef)(!0);(0,A.useEffect)(()=>(O.current=!0,()=>{O.current=!1,D.current++}),[]);let k=(0,A.useCallback)(()=>{P().then(e=>{O.current&&t(e)}).catch(()=>{})},[]);(0,A.useEffect)(()=>{if(!n)return;let e=!1;return I(n).then(t=>{e||(p(t.agents),h(t.defaultAgentId),_(t.selection),y(t.starters))}).catch(()=>{}),()=>{e=!0}},[n]);let j=(0,A.useCallback)((e,t)=>{let n=V(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;T.current=e.data.text,s(e.data.text);break;case`reasoning`:if(r)break;E.current=e.data.text,l(e.data.text);break;case`done`:{let{msgId:t,parentMsgId:n,suggestions:i}=e.data;if(S.current=t??n,x(i??null),!r&&t&&T.current){let e=T.current,n=E.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}:{}}])}T.current=``,E.current=null,s(null),l(null),w.current!==null&&w.current===n&&(C.current=!1,w.current=null),k();break}case`error`:d(e.data.message??`error`),T.current=``,E.current=null,s(null),l(null),w.current!==null&&w.current===e.data.parentMsgId&&(C.current=!1,w.current=null);break}},[k]);(0,A.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):j(e,null))},f=te(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 F(e);if(t)return;S.current=r.headMsgId;let i=new Set(r.messages.map(e=>e.msgId));a(e=>{let t=w.current,n=e.filter(e=>!i.has(e.msgId)&&(e.msgId.startsWith(`local-`)||e.msgId===t));return n.length?[...r.messages,...n]:r.messages}),x(r.messages.at(-1)?.suggestions??null),n=!1;for(let e of l)j(e,i)}catch(e){if(t)return;d(e.message),n=!1;for(let e of l)j(e,null)}if(await f,t)return;c&&(i=0);let p=Math.min(H*2**i,U);i++,r=setTimeout(()=>void s(),p)}return s(),()=>{t=!0,r&&clearTimeout(r),o.abort()}},[n,j]);let M=(0,A.useCallback)(e=>{let t=g;_(e),n&&L(n,e).then(_).catch(e=>{_(t),d(e instanceof Error?e.message:String(e))})},[n,g]),N=(0,A.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)),R(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]),ne=(0,A.useMemo)(()=>{let e=f.find(e=>e.id===g.agentId)?.media;return!e||e.image.accepts.length>0||e.document.accepts.length>0},[f,g]),re=(0,A.useCallback)(()=>{D.current++,C.current=!1,w.current=null,S.current=null,r(B()),a([]),s(null),l(null),T.current=``,E.current=null,d(null),x(null)},[]),ie=(0,A.useCallback)(async e=>{D.current++,C.current=!1,w.current=null,r(e),S.current=null,a([]),s(null),l(null),T.current=``,E.current=null,d(null),x(null)},[]),ae=(0,A.useCallback)(()=>{n&&z(n).catch(()=>{})},[n]);return{threads:e,convId:n,messages:i,pending:o,pendingReasoning:c,error:u,agents:f,defaultAgentId:m,selection:g,starters:v,suggestions:b,attachmentsAllowed:ne,chooseAgent:M,togglePrivate:N,send:(0,A.useCallback)((e,t,i=[])=>{if(!e.trim()||C.current)return!1;C.current=!0;let o=D.current,c=n??B();n===null&&r(c),d(null),x(null);let u=`local-${B()}`;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 ee({convId:c,text:e,replyTo:S.current,context:t,attachments:i});if(D.current!==o)return;if(n===null){C.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)),w.current=n}catch(e){D.current===o&&(C.current=!1,d(e.message),s(null),l(null))}})(),!0},[n]),open:ie,newConversation:re,loadThreads:k,stop:ae}}var re=`—`;function ie(){if(typeof document>`u`)return;let e=document.querySelector(`[role="heading"][aria-level="1"]`)?.textContent?.trim();return e&&e!==re?e:void 0}function ae(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?ie():void 0;return{path:e,library:r,type:i,...o?{id:a}:{},...s?{title:s}:{}}}function oe(){let{pathname:e}=r();return(0,A.useCallback)(()=>ae(e),[e])}var W=i(),se=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-nav.tsx`,ce=(0,A.createContext)(()=>{});function le({onNavigate:e,children:t}){return(0,W.jsxDEV)(ce.Provider,{value:e,children:t},void 0,!1,{fileName:se,lineNumber:9,columnNumber:10},this)}function ue(){return(0,A.useContext)(ce)}var de=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/chat-markdown.tsx`;function fe({text:e,className:t}){let n=ue();return(0,W.jsxDEV)(s,{value:e,className:t??`md-static md-chat`,onNavigate:n},void 0,!1,{fileName:de,lineNumber:21,columnNumber:10},this)}var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatMessages.tsx`;function pe({messages:e,pending:t,pendingReasoning:r,trailing:i}){let{t:a}=n(),o=(0,A.useRef)(null);return(0,A.useEffect)(()=>{let e=o.current;e&&(e.scrollTop=e.scrollHeight)},[e.length,t]),(0,W.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,W.jsxDEV)(`div`,{className:`flex-1 grid place-items-center text-muted-foreground text-sm`,children:a(`webchat.empty`)},void 0,!1,{fileName:G,lineNumber:39,columnNumber:9},this):(0,W.jsxDEV)(W.Fragment,{children:[e.map(e=>(0,W.jsxDEV)(me,{role:e.role,text:e.text,reasoning:e.reasoning,attachments:e.attachments},e.msgId,!1,{fileName:G,lineNumber:43,columnNumber:13},this)),t!==null&&(0,W.jsxDEV)(me,{role:`assistant`,text:t||a(`webchat.thinking`),reasoning:r},void 0,!1,{fileName:G,lineNumber:46,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:41,columnNumber:9},this),i]},void 0,!0,{fileName:G,lineNumber:37,columnNumber:5},this)}var me=(0,A.memo)(function({role:e,text:t,reasoning:r,attachments:i}){let{t:a}=n();return e===`user`?(0,W.jsxDEV)(`div`,{className:`self-end max-w-[85%] rounded-2xl border border-ring bg-muted px-3 py-2 text-[0.8125rem] whitespace-pre-wrap break-words`,children:[i?.length?(0,W.jsxDEV)(`div`,{className:`mb-1.5 flex flex-wrap gap-1`,children:i.map(e=>(0,W.jsxDEV)(`span`,{className:`inline-flex max-w-full items-center rounded-md bg-background px-1.5 py-0.5 text-xs`,title:e.name,children:e.label??e.name},e.name,!1,{fileName:G,lineNumber:80,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:78,columnNumber:11},this):null,t]},void 0,!0,{fileName:G,lineNumber:76,columnNumber:7},this):(0,W.jsxDEV)(`div`,{className:`self-start max-w-[95%] min-w-0 rounded-2xl bg-muted px-3 py-2 text-sm break-words`,children:[r?(0,W.jsxDEV)(`details`,{className:`mb-2 rounded-lg border border-border px-2 py-1`,children:[(0,W.jsxDEV)(`summary`,{className:`cursor-pointer select-none text-xs text-muted-foreground`,children:a(`webchat.reasoning`)},void 0,!1,{fileName:G,lineNumber:99,columnNumber:11},this),(0,W.jsxDEV)(fe,{text:r,className:`md-static md-chat md-chat-sub mt-1 text-muted-foreground`},void 0,!1,{fileName:G,lineNumber:102,columnNumber:11},this)]},void 0,!0,{fileName:G,lineNumber:98,columnNumber:9},this):null,(0,W.jsxDEV)(fe,{text:t,className:`md-static md-chat`},void 0,!1,{fileName:G,lineNumber:105,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:95,columnNumber:5},this)}),K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/AgentPicker.tsx`,he=5;function ge({quality:e,time:t,hint:r}){let{t:i}=n();if(e===void 0||t===void 0)return r?(0,W.jsxDEV)(`span`,{className:`shrink-0 text-muted-foreground`,children:r},void 0,!1,{fileName:K,lineNumber:27,columnNumber:19},this):null;let a=e!==t;return(0,W.jsxDEV)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-muted-foreground tabular-nums`,children:[(0,W.jsxDEV)(`span`,{className:`flex items-center gap-0.5`,title:i(`webchat.quality`,{value:e}),children:[e,(0,W.jsxDEV)(f,{size:11,"aria-hidden":!0,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:37,columnNumber:9},this),(0,W.jsxDEV)(`span`,{className:`sr-only`,children:i(`webchat.quality`,{value:e})},void 0,!1,{fileName:K,lineNumber:38,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:35,columnNumber:7},this),a?(0,W.jsxDEV)(`span`,{className:`flex items-center gap-0.5`,title:i(`webchat.time`,{value:t}),children:[t,(0,W.jsxDEV)(h,{size:11,"aria-hidden":!0,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:43,columnNumber:11},this),(0,W.jsxDEV)(`span`,{className:`sr-only`,children:i(`webchat.time`,{value:t})},void 0,!1,{fileName:K,lineNumber:44,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:41,columnNumber:9},this):(0,W.jsxDEV)(`span`,{className:`sr-only`,children:i(`webchat.time`,{value:t})},void 0,!1,{fileName:K,lineNumber:47,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:34,columnNumber:5},this)}function _e(e,t){if(t||e.length<2||e.length>he)return null;let n=Array.from({length:e.length});for(let t of e){let r=t.quality;if(r===void 0||!Number.isInteger(r)||r<1||r>e.length||n[r-1])return null;n[r-1]=t}return n.every(e=>e!==void 0)?n:null}function ve({agents:e,defaultAgentId:t,selection:r,onChange:i}){let{t:a}=n(),[o,s]=(0,A.useState)(!1),[c,l]=(0,A.useState)(null),u=(0,A.useRef)(null),d=(0,A.useRef)(null);(0,A.useEffect)(()=>{if(!o)return;function e(e){u.current&&!u.current.contains(e.target)&&s(!1)}function t(e){e.key===`Escape`&&(s(!1),d.current?.focus())}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t)}},[o]);let p=e.length>1,h=e.flatMap(e=>e.presets.map(t=>({agentId:e.id,presetId:t.id,label:p?`${e.title} · ${t.title}`:t.title,hint:t.hint,quality:t.quality,time:t.time,isDefault:t.default===!0})));if(h.length===0)return null;let g=h.find(e=>e.agentId===r.agentId&&e.presetId===r.presetId)??h.find(e=>e.agentId===t&&e.isDefault)??h.find(e=>e.isDefault)??h[0],_=_e(h,p);if(_){let e=_.indexOf(g)+1,t=c??e,n=(e,t)=>`${e.label} · ${a(`webchat.level`,{value:t,max:_.length})}`;return(0,W.jsxDEV)(`ul`,{"aria-label":a(`webchat.agentPicker`),className:`flex shrink-0 items-center`,onPointerLeave:()=>l(null),children:_.map((e,r)=>{let a=r+1;return(0,W.jsxDEV)(`li`,{children:(0,W.jsxDEV)(`button`,{type:`button`,...e===g?{"aria-current":!0}:{},"aria-label":n(e,a),className:`flex rounded p-1 focus-visible:outline-2 focus-visible:outline-ring`,onPointerEnter:()=>l(a),onFocus:()=>l(a),onBlur:()=>l(null),onClick:()=>i({agentId:e.agentId,presetId:e.presetId}),children:(0,W.jsxDEV)(f,{size:16,"aria-hidden":!0,className:a<=t?`fill-current`:`text-border`,style:a<=t?{color:m(`yellow`)}:void 0},void 0,!1,{fileName:K,lineNumber:181,columnNumber:17},this)},void 0,!1,{fileName:K,lineNumber:166,columnNumber:15},this)},`${e.agentId}/${e.presetId}`,!1,{fileName:K,lineNumber:165,columnNumber:13},this)})},void 0,!1,{fileName:K,lineNumber:157,columnNumber:7},this)}return(0,W.jsxDEV)(`div`,{className:`relative`,ref:u,children:[(0,W.jsxDEV)(`button`,{ref:d,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,W.jsxDEV)(`span`,{className:`max-w-40 truncate`,children:g.label},void 0,!1,{fileName:K,lineNumber:205,columnNumber:9},this),(0,W.jsxDEV)(C,{size:12,className:`shrink-0`},void 0,!1,{fileName:K,lineNumber:206,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:197,columnNumber:7},this),o&&(0,W.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:h.map(e=>{let t=e===g;return(0,W.jsxDEV)(`li`,{children:(0,W.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,W.jsxDEV)(b,{size:12,className:t?`shrink-0 text-primary`:`shrink-0 opacity-0`},void 0,!1,{fileName:K,lineNumber:234,columnNumber:19},this),(0,W.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label},void 0,!1,{fileName:K,lineNumber:235,columnNumber:19},this),(0,W.jsxDEV)(ge,{quality:e.quality,time:e.time,hint:e.hint},void 0,!1,{fileName:K,lineNumber:236,columnNumber:19},this)]},void 0,!0,{fileName:K,lineNumber:225,columnNumber:17},this)},`${e.agentId}/${e.presetId}`,!1,{fileName:K,lineNumber:224,columnNumber:15},this)})},void 0,!1,{fileName:K,lineNumber:214,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:196,columnNumber:5},this)}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatComposer.tsx`;function ye({streaming:e,onSend:t,onStop:r,attachments:i,uploading:a,uploadError:o,uploadProgress:s,canRetryUpload:c,onRetryUpload:d,onPickFiles:f,onRemoveAttachment:m,agents:h,defaultAgentId:g,selection:_,onChooseAgent:v,attachmentsAllowed:y}){let{t:b}=n(),[x,C]=(0,A.useState)(``);function w(){!x.trim()||e||t(x.trim(),i)&&C(``)}return(0,W.jsxDEV)(`div`,{className:`flex shrink-0 flex-col gap-2 border-t border-border p-2`,children:[(i.length>0||a||o)&&(0,W.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1`,"data-chat-attachments":!0,children:[i.map((e,t)=>(0,W.jsxDEV)(`span`,{className:`inline-flex min-w-0 max-w-full items-center gap-1 rounded-md bg-muted px-2 py-1 text-xs`,children:[(0,W.jsxDEV)(T,{size:13,className:`shrink-0 text-muted-foreground`},void 0,!1,{fileName:q,lineNumber:65,columnNumber:15},this),(0,W.jsxDEV)(`span`,{className:`max-w-48 truncate`,children:e.label??e.name},void 0,!1,{fileName:q,lineNumber:66,columnNumber:15},this),(0,W.jsxDEV)(`button`,{type:`button`,"aria-label":b(`webchat.removeAttachment`,{name:e.label??e.name}),className:`shrink-0 rounded p-0.5 text-muted-foreground hover:text-destructive`,onClick:()=>m(t),children:(0,W.jsxDEV)(S,{size:13},void 0,!1,{fileName:q,lineNumber:73,columnNumber:17},this)},void 0,!1,{fileName:q,lineNumber:67,columnNumber:15},this)]},`${e.name}-${t}`,!0,{fileName:q,lineNumber:61,columnNumber:13},this)),a&&(0,W.jsxDEV)(`div`,{className:`flex min-w-32 flex-1 items-center gap-2`,"aria-label":b(`webchat.uploading`),children:[(0,W.jsxDEV)(l,{size:14,className:`shrink-0 animate-spin text-muted-foreground`},void 0,!1,{fileName:q,lineNumber:79,columnNumber:15},this),(0,W.jsxDEV)(`div`,{role:`progressbar`,"aria-label":b(`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,W.jsxDEV)(`div`,{className:`h-full rounded-full bg-primary transition-[width]`,style:{width:`${s}%`}},void 0,!1,{fileName:q,lineNumber:88,columnNumber:17},this)},void 0,!1,{fileName:q,lineNumber:80,columnNumber:15},this),(0,W.jsxDEV)(`span`,{className:`text-xs tabular-nums text-muted-foreground`,children:[s,`%`]},void 0,!0,{fileName:q,lineNumber:93,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:78,columnNumber:13},this),o&&(0,W.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2 text-xs text-destructive`,children:[(0,W.jsxDEV)(`span`,{className:`min-w-0 flex-1`,children:b(o)},void 0,!1,{fileName:q,lineNumber:98,columnNumber:15},this),c&&(0,W.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`,onClick:d,children:[(0,W.jsxDEV)(u,{size:12},void 0,!1,{fileName:q,lineNumber:105,columnNumber:19},this),` `,b(`webchat.retryUpload`)]},void 0,!0,{fileName:q,lineNumber:100,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:97,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:59,columnNumber:9},this),(0,W.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,W.jsxDEV)(`textarea`,{className:`w-full resize-none rounded-lg border border-border bg-background px-3 py-2 text-sm max-h-32`,rows:1,value:x,placeholder:b(`webchat.placeholder`),onChange:e=>C(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),w())}},void 0,!1,{fileName:q,lineNumber:115,columnNumber:9},this),(0,W.jsxDEV)(`div`,{className:`flex items-center gap-1`,children:[y&&(0,W.jsxDEV)(`label`,{"aria-label":b(`webchat.attach`),className:`shrink-0 cursor-pointer rounded-lg p-1.5 text-muted-foreground hover:bg-muted hover:text-primary ${a?`pointer-events-none opacity-60`:``}`,children:[(0,W.jsxDEV)(O,{size:18},void 0,!1,{fileName:q,lineNumber:135,columnNumber:15},this),(0,W.jsxDEV)(`input`,{type:`file`,multiple:!0,className:`hidden`,disabled:a,onChange:e=>{e.target.files?.length&&f(e.target.files),e.currentTarget.value=``}},void 0,!1,{fileName:q,lineNumber:136,columnNumber:15},this)]},void 0,!0,{fileName:q,lineNumber:131,columnNumber:13},this),(0,W.jsxDEV)(ve,{agents:h,defaultAgentId:g,selection:_,onChange:v},void 0,!1,{fileName:q,lineNumber:148,columnNumber:11},this),(0,W.jsxDEV)(`div`,{className:`flex-1`},void 0,!1,{fileName:q,lineNumber:149,columnNumber:11},this),e?(0,W.jsxDEV)(`button`,{"aria-label":b(`webchat.stop`),className:`shrink-0 rounded-lg p-1.5 hover:bg-muted`,onClick:r,children:(0,W.jsxDEV)(p,{size:18},void 0,!1,{fileName:q,lineNumber:156,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:151,columnNumber:13},this):(0,W.jsxDEV)(`button`,{"aria-label":b(`webchat.send`),className:`shrink-0 rounded-lg p-1.5 hover:bg-muted`,onClick:w,children:(0,W.jsxDEV)(k,{size:18},void 0,!1,{fileName:q,lineNumber:164,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:159,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:129,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:114,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:57,columnNumber:5},this)}var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatThreadList.tsx`;function be({threads:e,activeId:t,onOpen:r,onNew:i,onTogglePrivate:a,className:o=`w-[220px] shrink-0`}){let{t:s}=n();return(0,W.jsxDEV)(`aside`,{"aria-label":s(`webchat.threads`),className:`${o} border-r border-border flex flex-col`,children:[(0,W.jsxDEV)(`button`,{className:`flex items-center gap-2 px-3 py-2 text-sm hover:bg-muted`,onClick:i,children:[(0,W.jsxDEV)(d,{size:16},void 0,!1,{fileName:J,lineNumber:29,columnNumber:9},this),` `,s(`webchat.newConversation`)]},void 0,!0,{fileName:J,lineNumber:28,columnNumber:7},this),(0,W.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:e.map(e=>{let n=e.convId===t;return(0,W.jsxDEV)(`div`,{className:`flex items-center gap-1 pl-1 pr-2 ${n?`bg-muted`:`hover:bg-muted`}`,children:[(0,W.jsxDEV)(`button`,{onClick:()=>r(e.convId),className:`min-w-0 flex-1 py-2 pl-2 text-left text-sm ${n?`font-medium`:``}`,children:[(0,W.jsxDEV)(`span`,{className:`block truncate`,children:e.title||s(`webchat.newConversation`)},void 0,!1,{fileName:J,lineNumber:43,columnNumber:17},this),(e.mine||e.ownerName)&&(0,W.jsxDEV)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.mine?s(`webchat.you`):e.ownerName},void 0,!1,{fileName:J,lineNumber:48,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:39,columnNumber:15},this),e.mine&&(0,W.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,W.jsxDEV)(v,{name:e.private?`lucide:shield`:`lucide:globe`,size:14},void 0,!1,{fileName:J,lineNumber:64,columnNumber:19},this)},void 0,!1,{fileName:J,lineNumber:54,columnNumber:17},this)]},e.convId,!0,{fileName:J,lineNumber:35,columnNumber:13},this)})},void 0,!1,{fileName:J,lineNumber:31,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:27,columnNumber:5},this)}var xe=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/SuggestionChips.tsx`;function Se({items:e,onPick:t}){let{t:r}=n();return e?.length?(0,W.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,W.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:xe,lineNumber:24,columnNumber:9},this))},void 0,!1,{fileName:xe,lineNumber:22,columnNumber:5},this):null}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/plugin-webchat/src/ui/ChatWidget.tsx`,Ce=25*1024*1024;function X(e){return Array.from(e.dataTransfer.types).includes(`Files`)}function we({children:e,onFiles:t,className:r}){let{t:i}=n(),[o,s]=(0,A.useState)(!1),c=(0,A.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,W.jsxDEV)(`div`,{className:r,onDragEnter:l,onDragLeave:u,onDragOver:e=>{X(e)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:d,children:[e,o&&(0,W.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,W.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,W.jsxDEV)(a,{size:34},void 0,!1,{fileName:Y,lineNumber:83,columnNumber:13},this),(0,W.jsxDEV)(`span`,{className:`mt-3 text-base font-medium`,children:i(`webchat.dropFiles`)},void 0,!1,{fileName:Y,lineNumber:84,columnNumber:13},this),(0,W.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 Te(){let{t:e}=n(),t=ne(),r=oe(),[i,a]=(0,A.useState)(`bubble`),[s,l]=(0,A.useState)(!1),[u,f]=(0,A.useState)([]),[p,m]=(0,A.useState)(!1),[h,v]=(0,A.useState)(0),[b,x]=(0,A.useState)(null),[C,T]=(0,A.useState)([]),O=c(`sm`,640),k=O&&i===`modal`,j=(0,A.useCallback)(()=>{a(Q(O))},[O]),M=(0,A.useRef)(null),N=(0,A.useRef)(`bubble`);(0,A.useEffect)(()=>{if(i!==`modal`)return;let e=e=>{e.key===`Escape`&&a($(`modal`,O,-1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,O]),(0,A.useEffect)(()=>{Z(O).includes(i)||a(Q(O))},[i,O]),(0,A.useEffect)(()=>{i===`panel`&&N.current===`modal`&&M.current?.focus(),N.current=i},[i]),(0,A.useEffect)(()=>{(i===`bubble`||k)&&l(!1)},[i,k]),(0,A.useEffect)(()=>{if(i!==`modal`)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[i]);let P=i!==`bubble`;(0,A.useEffect)(()=>{P&&t.loadThreads()},[P,t.loadThreads]);let{convId:F,newConversation:I}=t;(0,A.useEffect)(()=>{P&&F===null&&I()},[P,F,I]);function L(){t.newConversation(),f([]),x(null),T([]),l(!1)}let R=(0,A.useCallback)(async e=>{if(!e.length)return;x(null),T([]),m(!0),v(0);let t=[],n=[],r=null;for(let i of e){if(i.size>Ce){r??=`webchat.uploadTooLarge`;continue}try{v(0);let e=await g(i,v);e?t.push({...e,label:i.name}):(n.push(i),r??=`webchat.uploadFailed`)}catch{n.push(i),r??=`webchat.uploadFailed`}}t.length&&f(e=>[...e,...t]),m(!1),v(0),T(n),r&&x(r)},[]),ee=(0,A.useCallback)(()=>{C.length&&R(C)},[R,C]),z=(0,A.useCallback)((e,n)=>{let i=r(),a=n.length?t.send(e,i,n):t.send(e,i);return a&&(f([]),x(null),T([])),a},[t,r]),te=t.messages.length>0||t.pending!==null,B=t.threads.find(e=>e.convId===t.convId)?.title,V=(0,W.jsxDEV)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-border px-3 py-2`,children:[(0,W.jsxDEV)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:B||e(`webchat.title`)},void 0,!1,{fileName:Y,lineNumber:295,columnNumber:7},this),(0,W.jsxDEV)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[!k&&(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.threads`),"aria-expanded":s,className:`rounded p-1 hover:bg-muted`,onClick:()=>l(e=>!e),children:(0,W.jsxDEV)(w,{size:16},void 0,!1,{fileName:Y,lineNumber:307,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:301,columnNumber:11},this),te&&(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.newConversation`),className:`rounded p-1 hover:bg-muted`,onClick:L,children:(0,W.jsxDEV)(d,{size:16},void 0,!1,{fileName:Y,lineNumber:316,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:315,columnNumber:11},this),Z(O).includes(`panel`)&&(0,W.jsxDEV)(`button`,{ref:M,"aria-label":e(i===`modal`?`webchat.collapse`:`webchat.expand`),className:`rounded p-1 hover:bg-muted`,onClick:()=>a($(i,O,i===`modal`?-1:1)),children:i===`modal`?(0,W.jsxDEV)(D,{size:16},void 0,!1,{fileName:Y,lineNumber:328,columnNumber:33},this):(0,W.jsxDEV)(E,{size:16},void 0,!1,{fileName:Y,lineNumber:328,columnNumber:59},this)},void 0,!1,{fileName:Y,lineNumber:322,columnNumber:11},this),(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.close`),className:`rounded p-1 hover:bg-muted`,onClick:()=>a(`bubble`),children:(0,W.jsxDEV)(S,{size:16},void 0,!1,{fileName:Y,lineNumber:336,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:331,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:296,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:294,columnNumber:5},this),H=(0,W.jsxDEV)(be,{threads:t.threads,activeId:t.convId,onOpen:e=>{t.open(e),f([]),x(null),T([]),l(!1)},onNew:L,onTogglePrivate:t.togglePrivate,className:k?`w-[220px] shrink-0`:`w-full`},void 0,!1,{fileName:Y,lineNumber:345,columnNumber:5},this),U=(0,W.jsxDEV)(le,{onNavigate:j,children:(0,W.jsxDEV)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[t.error&&(0,W.jsxDEV)(`div`,{className:`px-3 py-2 text-sm text-destructive`,children:e(`webchat.error`,{message:t.error})},void 0,!1,{fileName:Y,lineNumber:367,columnNumber:11},this),(0,W.jsxDEV)(pe,{messages:t.messages,pending:t.pending,pendingReasoning:t.pendingReasoning,trailing:t.messages.length===0?(0,W.jsxDEV)(Se,{items:t.starters,onPick:e=>z(e,u)},void 0,!1,{fileName:Y,lineNumber:375,columnNumber:15},this):(0,W.jsxDEV)(Se,{items:t.suggestions,onPick:e=>z(e,u)},void 0,!1,{fileName:Y,lineNumber:377,columnNumber:15},this)},void 0,!1,{fileName:Y,lineNumber:369,columnNumber:9},this),(0,W.jsxDEV)(ye,{streaming:t.pending!==null,attachments:u,uploading:p,uploadProgress:h,uploadError:b,canRetryUpload:C.length>0&&!p,onRetryUpload:ee,onPickFiles:e=>void R(Array.from(e)),onRemoveAttachment:e=>f(t=>t.filter((t,n)=>n!==e)),agents:t.agents,defaultAgentId:t.defaultAgentId,selection:t.selection,onChooseAgent:t.chooseAgent,attachmentsAllowed:t.attachmentsAllowed,onSend:z,onStop:t.stop},void 0,!1,{fileName:Y,lineNumber:381,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:365,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:362,columnNumber:5},this);return i===`bubble`?(0,W.jsxDEV)(`button`,{"aria-label":e(`webchat.open`),onClick:()=>a(Q(O)),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,W.jsxDEV)(o,{size:24},void 0,!1,{fileName:Y,lineNumber:427,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:405,columnNumber:7},this):i===`panel`?(0,W.jsxDEV)(we,{onFiles:R,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:[V,s?H:U]},void 0,!0,{fileName:Y,lineNumber:434,columnNumber:7},this):(0,W.jsxDEV)(_,{open:!0,modal:!1,onOpenChange:e=>!e&&a($(`modal`,O,-1)),children:[(0,W.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:456,columnNumber:7},this),(0,W.jsxDEV)(y,{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,W.jsxDEV)(we,{onFiles:R,className:`h-full`,children:(0,W.jsxDEV)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[V,(0,W.jsxDEV)(`div`,{className:`flex min-h-0 flex-1`,children:[(k||s)&&H,(k||!s)&&U]},void 0,!0,{fileName:Y,lineNumber:469,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:467,columnNumber:11},this)},void 0,!1,{fileName:Y,lineNumber:466,columnNumber:9},this)},void 0,!1,{fileName:Y,lineNumber:462,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:453,columnNumber:5},this)}export{Te as ChatWidget,Te as default,Z as chatModes,Q as restingMode,$ as stepMode};
@@ -1 +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{t as r}from"./react-vendor-CzSUaSLk.js";import{L as i,Oi as a,Or as o,Vt as s,Yn as c,g as l}from"./src-1AsWJbID.js";import{n as u}from"./input-BFMNMo6y.js";import{l as d}from"./phone-input-BZ9vGYpI.js";import{o as f,s as p}from"./shelf-Cj_pNvd-.js";var m=e(t(),1),h=r(),g=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SettingsForm.tsx`;function _(e){let{t}=n(),r=(0,m.useMemo)(()=>f(e.fields),[e.fields]),_=(0,m.useMemo)(()=>p(e.fields),[e.fields]),[v,y]=(0,m.useState)(!1),[b,x]=(0,m.useState)(null),{values:S,setValues:C,errors:w,setErrors:T,bridge:E}=l({fm:_,mode:`edit`,recordCtx:e.recordCtx,initial:{}});function D(e){let t={};for(let[n,i]of r)t[n]=e[n]??i.default??(i.prim!==`checkbox`&&``);return t}(0,m.useEffect)(()=>{C({}),T({});let n=!0;return e.load().then(e=>n&&C(D(e))).catch(()=>n&&x(t(`common.loadError`))),()=>{n=!1}},[`${e.recordCtx.library}/${e.recordCtx.shelf}/${e.recordCtx.recordId}`]);async function O(){y(!0),T({});let n=a.loading(t(`save.saving`)),r=await e.save(S);if(y(!1),r.ok){C(D(r.row)),a.success(t(`save.done`),{id:n});return}if(r.status===422&&r.issues){let e={};for(let n of r.issues)n.field&&(e[n.field]=t(`validation.${n.code}`,n.params));T(e)}a.error(t(`save.failed`),{id:n})}return(0,h.jsxDEV)(`div`,{className:`flex flex-col h-full`,children:[(0,h.jsxDEV)(s,{overline:e.overline,title:e.title,actions:(0,h.jsxDEV)(d,{onClick:O,disabled:v,children:[(0,h.jsxDEV)(u,{size:16},void 0,!1,{fileName:g,lineNumber:102,columnNumber:13},this),(0,h.jsxDEV)(`span`,{className:`hidden sm:inline`,children:t(`actions.save`)},void 0,!1,{fileName:g,lineNumber:103,columnNumber:13},this)]},void 0,!0,{fileName:g,lineNumber:101,columnNumber:11},this)},void 0,!1,{fileName:g,lineNumber:97,columnNumber:7},this),(0,h.jsxDEV)(o,{children:[b&&(0,h.jsxDEV)(c,{tone:`danger`,className:`mb-5`,children:b},void 0,!1,{fileName:g,lineNumber:110,columnNumber:11},this),(0,h.jsxDEV)(`div`,{className:`flex flex-col gap-5`,children:(0,h.jsxDEV)(i,{items:e.fields,ctx:{bridge:E}},void 0,!1,{fileName:g,lineNumber:116,columnNumber:11},this)},void 0,!1,{fileName:g,lineNumber:115,columnNumber:9},this),e.footer]},void 0,!0,{fileName:g,lineNumber:108,columnNumber:7},this)]},void 0,!0,{fileName:g,lineNumber:96,columnNumber:5},this)}export{_ as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./input-BFMNMo6y.js";var t=e(`file-text`,[[`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:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]);export{t};