teodor-new-chat-ui 3.0.42 → 3.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -6870,8 +6870,8 @@ function Ji(e) {
6870
6870
  return e ? "open" : "closed";
6871
6871
  }
6872
6872
  var Mx = yu;
6873
- const Il = Mx, Nl = Cu, ci = new URL("data:video/mp2t;base64,aW1wb3J0IHsgcGFyc2UgfSBmcm9tICdtYXJrZWQnOwoKY29uc29sZS5sb2coJ1tNYXJrZG93bldvcmtlcl0gd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKLy8gU2lnbmFsIHRvIHRoZSBtYWluIHRocmVhZCB0aGF0IHRoZSB3b3JrZXIgaXMgcmVhZHkgdG8gcmVjZWl2ZSB3b3JrLgovLyBUaGlzIGhlbHBzIGNhbGxlcnMgYXZvaWQgcG9zdGluZyBtZXNzYWdlcyBiZWZvcmUgdGhlIHdvcmtlciBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nLgo7KHNlbGYgYXMgYW55KS5wb3N0TWVzc2FnZT8uKHsgX193b3JrZXJfcmVhZHk6IHRydWUgfSk7CgpzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXY6IE1lc3NhZ2VFdmVudCkgPT4gewogIGNvbnN0IHsgaWQsIHNvdXJjZSB9ID0gZXYuZGF0YSBhcyB7IGlkOiBzdHJpbmc7IHNvdXJjZTogc3RyaW5nIH07CiAgdHJ5IHsKICAgIGNvbnNvbGUubG9nKCdbTWFya2Rvd25Xb3JrZXJdIHJlY2VpdmVkIHdvcmsnLCBpZCwgJ3NvdXJjZUxlbicsIHNvdXJjZT8ubGVuZ3RoID8/IDApOwogICAgY29uc3QgaHRtbCA9IHBhcnNlKHNvdXJjZSk7CiAgICBjb25zb2xlLmxvZygnW01hcmtkb3duV29ya2VyXSBwYXJzZWQgaHRtbCBsZW5ndGgnLCBodG1sPy5sZW5ndGggPz8gMCwgJ2ZvcicsIGlkKTsKICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIEhUTUwgZm9yIHRoZSBjYWxsZXIgdG8gY2FjaGUgYW5kIHJlbmRlcgogICAgLy8gS2VlcCB0aGUgcGF5bG9hZCBzbWFsbDogc2VuZCBpZCArIGh0bWwKICAgIC8vIE1hcmtlZCBvdXRwdXQgc2hvdWxkIGJlIHNhZmUtZW5vdWdoIGZvciBpbnRlcm5hbCBVSXM7IGNhbGxlcnMgbWF5IGZ1cnRoZXIgc2FuaXRpemUgaWYgcmVxdWlyZWQuCiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWwgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBjb25zb2xlLmVycm9yKCdbTWFya2Rvd25Xb3JrZXJdIHJlbmRlciBlcnJvcicsIGVycik7CiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWw6IGA8cHJlPkVycm9yIHJlbmRlcmluZyBtYXJrZG93bjogJHtTdHJpbmcoZXJyKX08L3ByZT5gIH0pOwogIH0KfSk7Cg==", import.meta.url).toString();
6874
- console.log("[MarkdownContent] worker url", ci);
6873
+ const Il = Mx, Nl = Cu, ci = new URL("data:video/mp2t;base64,aW1wb3J0IHsgcGFyc2UgfSBmcm9tICdtYXJrZWQnOwoKY29uc29sZS5sb2coJ1tNYXJrZG93bldvcmtlcl0gd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKLy8gU2lnbmFsIHRvIHRoZSBtYWluIHRocmVhZCB0aGF0IHRoZSB3b3JrZXIgaXMgcmVhZHkgdG8gcmVjZWl2ZSB3b3JrLgovLyBUaGlzIGhlbHBzIGNhbGxlcnMgYXZvaWQgcG9zdGluZyBtZXNzYWdlcyBiZWZvcmUgdGhlIHdvcmtlciBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nLgo7KHNlbGYgYXMgYW55KS5wb3N0TWVzc2FnZT8uKHsgX193b3JrZXJfcmVhZHk6IHRydWUgfSk7CgpzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXY6IE1lc3NhZ2VFdmVudCkgPT4gewogIGNvbnN0IHsgaWQsIHNvdXJjZSB9ID0gZXYuZGF0YSBhcyB7IGlkOiBzdHJpbmc7IHNvdXJjZTogc3RyaW5nIH07CiAgdHJ5IHsKICAgIGNvbnNvbGUubG9nKCdbTWFya2Rvd25Xb3JrZXJdIHJlY2VpdmVkIHdvcmsnLCBpZCwgJ3NvdXJjZUxlbicsIHNvdXJjZT8ubGVuZ3RoID8/IDApOwogICAgY29uc3QgaHRtbCA9IHBhcnNlKHNvdXJjZSk7CiAgICBjb25zb2xlLmxvZygnW01hcmtkb3duV29ya2VyXSBwYXJzZWQgaHRtbCBsZW5ndGgnLCBodG1sPy5sZW5ndGggPz8gMCwgJ2ZvcicsIGlkKTsKICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIEhUTUwgZm9yIHRoZSBjYWxsZXIgdG8gY2FjaGUgYW5kIHJlbmRlcgogICAgLy8gS2VlcCB0aGUgcGF5bG9hZCBzbWFsbDogc2VuZCBpZCArIGh0bWwKICAgIC8vIE1hcmtlZCBvdXRwdXQgc2hvdWxkIGJlIHNhZmUtZW5vdWdoIGZvciBpbnRlcm5hbCBVSXM7IGNhbGxlcnMgbWF5IGZ1cnRoZXIgc2FuaXRpemUgaWYgcmVxdWlyZWQuCiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWwgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBjb25zb2xlLmVycm9yKCdbTWFya2Rvd25Xb3JrZXJdIHJlbmRlciBlcnJvcicsIGVycik7CiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWw6IGA8cHJlPkVycm9yIHJlbmRlcmluZyBtYXJrZG93bjogJHtTdHJpbmcoZXJyKX08L3ByZT5gIH0pOwogIH0KfSk7Cg==", import.meta.url);
6874
+ console.log("[MarkdownContent] worker url", String(ci));
6875
6875
  const ui = [];
6876
6876
  let di = !1;
6877
6877
  const Dx = {
@@ -6905,8 +6905,24 @@ try {
6905
6905
  } catch (e) {
6906
6906
  console.warn("[MarkdownContent] worker constructor failed, will try fetch+blob fallback", e), (async () => {
6907
6907
  try {
6908
- const t = await fetch(ci), n = await t.text();
6909
- if (t.ok || console.warn("[MarkdownContent] fetch worker non-ok", t.status, t.statusText), n.trim().startsWith("<")) {
6908
+ const t = String(ci);
6909
+ let n = "";
6910
+ if (t.includes("data:"))
6911
+ try {
6912
+ const s = t.indexOf("data:"), a = t.slice(s).replace(/^data:[^;]+;base64,/, "");
6913
+ n = atob(a);
6914
+ } catch (s) {
6915
+ console.warn("[MarkdownContent] failed to decode embedded data URI", s);
6916
+ }
6917
+ else {
6918
+ const s = await fetch(t);
6919
+ n = await s.text(), s.ok || console.warn("[MarkdownContent] fetch worker non-ok", s.status, s.statusText);
6920
+ }
6921
+ if (!n) {
6922
+ console.warn("[MarkdownContent] worker fetch returned empty content; aborting worker init.");
6923
+ return;
6924
+ }
6925
+ if (n.trim().startsWith("<")) {
6910
6926
  console.warn("[MarkdownContent] worker fetch returned HTML; dev server may be redirecting. Aborting worker init.");
6911
6927
  return;
6912
6928
  }
package/dist/index.umd.js CHANGED
@@ -30,7 +30,7 @@ Check the top-level render call using <`+_e+">.")}return J}}function ku(I,J){{if
30
30
  `+i):r.stack=i}catch{}}throw r}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=wn(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:i}=n;r!==void 0&&ba.assertOptions(r,{silentJSONParsing:Zt.transitional(Zt.boolean),forcedJSONParsing:Zt.transitional(Zt.boolean),clarifyTimeoutError:Zt.transitional(Zt.boolean)},!1),a!=null&&(G.isFunction(a)?n.paramsSerializer={serialize:a}:ba.assertOptions(a,{encode:Zt.function,serialize:Zt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ba.assertOptions(n,{baseUrl:Zt.spelling("baseURL"),withXsrfToken:Zt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=i&&G.merge(i.common,i[n.method]);i&&G.forEach(["delete","get","head","post","put","patch","common"],g=>{delete i[g]}),n.headers=vt.concat(o,i);const s=[];let l=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(n)===!1||(l=l&&f.synchronous,s.unshift(f.fulfilled,f.rejected))});const c=[];this.interceptors.response.forEach(function(f){c.push(f.fulfilled,f.rejected)});let d,u=0,p;if(!l){const g=[N_.bind(this),void 0];for(g.unshift(...s),g.push(...c),p=g.length,d=Promise.resolve(n);u<p;)d=d.then(g[u++],g[u++]);return d}p=s.length;let m=n;for(;u<p;){const g=s[u++],f=s[u++];try{m=g(m)}catch(E){f.call(this,E);break}}try{d=N_.call(this,m)}catch(g){return Promise.reject(g)}for(u=0,p=c.length;u<p;)d=d.then(c[u++],c[u++]);return d}getUri(e){e=wn(this.defaults,e);const n=m_(e.baseURL,e.url,e.allowAbsoluteUrls);return i_(n,e.params,e.paramsSerializer)}};G.forEach(["delete","get","head","options"],function(e){Mn.prototype[e]=function(n,r){return this.request(wn(r||{},{method:e,url:n,data:(r||{}).data}))}}),G.forEach(["post","put","patch"],function(e){function n(r){return function(i,o,s){return this.request(wn(s||{},{method:e,headers:r?{"Content-Type":"multipart/form-data"}:{},url:i,data:o}))}}Mn.prototype[e]=n(),Mn.prototype[e+"Form"]=n(!0)});let dv=class BR{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(i){n=i});const r=this;this.promise.then(a=>{if(!r._listeners)return;let i=r._listeners.length;for(;i-- >0;)r._listeners[i](a);r._listeners=null}),this.promise.then=a=>{let i;const o=new Promise(s=>{r.subscribe(s),i=s}).then(a);return o.cancel=function(){r.unsubscribe(i)},o},e(function(i,o,s){r.reason||(r.reason=new Zn(i,o,s),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=r=>{e.abort(r)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new BR(function(a){e=a}),cancel:e}}};function uv(t){return function(n){return t.apply(null,n)}}function _v(t){return G.isObject(t)&&t.isAxiosError===!0}const to={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(to).forEach(([t,e])=>{to[e]=t});function I_(t){const e=new Mn(t),n=Vu(Mn.prototype.request,e);return G.extend(n,Mn.prototype,e,{allOwnKeys:!0}),G.extend(n,e,null,{allOwnKeys:!0}),n.create=function(a){return I_(wn(t,a))},n}const st=I_(Or);st.Axios=Mn,st.CanceledError=Zn,st.CancelToken=dv,st.isCancel=d_,st.VERSION=O_,st.toFormData=ma,st.AxiosError=Pe,st.Cancel=st.CanceledError,st.all=function(e){return Promise.all(e)},st.spread=uv,st.isAxiosError=_v,st.mergeConfig=wn,st.AxiosHeaders=vt,st.formToJSON=t=>l_(G.isHTMLForm(t)?new FormData(t):t),st.getAdapter=v_.getAdapter,st.HttpStatusCode=to,st.default=st;const{Axios:u0,AxiosError:_0,CanceledError:p0,isCancel:m0,CancelToken:g0,VERSION:E0,all:f0,Cancel:S0,isAxiosError:b0,spread:T0,toFormData:h0,AxiosHeaders:R0,HttpStatusCode:C0,formToJSON:v0,getAdapter:N0,mergeConfig:O0}=st,no={};function Jn(){var t;try{return typeof window<"u"&&((t=window.localStorage)==null?void 0:t.getItem("chat-debug"))==="1"}catch{return!1}}const pv=no==null?void 0:no.VITE_API_BASE_URL,mv=typeof window<"u"?window.__API_BASE_URL__:void 0,A_=pv??mv,ro=A_?A_.replace(/\/+$/,""):void 0;!ro&&typeof window<"u"&&console.warn("VITE_API_BASE_URL is not set. The API client will need to be configured via apiConfig prop.");let Ta=null;const ao=new Set;function x_(){return Ta}function io(t){Ta=t,ao.forEach(e=>e(t))}function D_(t){return ao.add(t),()=>ao.delete(t)}const Pt=st.create({...ro?{baseURL:ro}:{},timeout:3e4,withCredentials:!0});Pt.interceptors.request.use(t=>(Ta&&(t.headers.Authorization=`Bearer ${Ta}`),t)),Pt.interceptors.response.use(t=>t,t=>Promise.reject(t));async function kt(t,e){return Pt.defaults.baseURL?(await Pt.get(t,e)).data:Promise.reject(new Error("API base URL is not configured"))}async function Ir(t,e,n){return Pt.defaults.baseURL?(await Pt.post(t,e,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function w_(t,e,n){return Pt.defaults.baseURL?(await Pt.put(t,e,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function M_(t,e){return Pt.defaults.baseURL?(await Pt.delete(t,e)).data:Promise.reject(new Error("API base URL is not configured"))}function Tt(t){return t&&typeof t=="object"&&"data"in t?t.data:t}class ha{get baseUrl(){const e=Pt.defaults.baseURL||"";return String(e).replace(/\/+$|^\s+|\s+$/g,"")}updateConfig(e){e.baseUrl&&(Pt.defaults.baseURL=String(e.baseUrl).replace(/\/+$/g,"")),e.authToken!==void 0&&io(e.authToken)}getAuthToken(){return x_()}setAuthToken(e){io(e)}onTokenChange(e){return D_(e)}async listThreads(){const e=await kt("/chat/threads"),n=Tt(e);return(n==null?void 0:n.items)??(e==null?void 0:e.items)??[]}async createThread(e){const r=await Ir("/chat/threads",e?{title:e}:void 0);return Tt(r)}async updateThread(e,n){const r=await w_(`/chat/threads/${e}`,{title:n});return Tt(r)}async deleteThread(e){const n=await M_(`/chat/threads/${e}`);return Tt(n)}async threadInfo(e){const n=await kt(`/chat/threads/${e}/info`);return Tt(n)}async listAgents(){const e=await kt("/chat/agents"),n=Tt(e);return(n==null?void 0:n.items)??[]}async getAgent(e){const n=await kt(`/chat/agents/${e}`);return Tt(n)}async getAgentSchema(e){const n=await kt(`/chat/agents/${e}/schema`);return Tt(n)}async getMessages(e){const n=await kt(`/chat/threads/${e.threadId}/messages`,{params:{thread_id:e.threadId,checkpoint_id:e.checkpointId,checkpoint_ns:e.checkpointNs,limit:e.limit,before_id:e.beforeId??void 0}});return Tt(n)}async getState(e){const n=await kt(`/chat/threads/${e.threadId}/state`,{params:{thread_id:e.threadId,checkpoint_id:e.checkpointId,checkpoint_ns:e.checkpointNs}});return Tt(n)}async getStateHistory(e){const n=await kt(`/chat/threads/${e.threadId}/state/history`,{params:{thread_id:e.threadId,checkpoint_id:e.checkpointId,checkpoint_ns:e.checkpointNs}});return Tt(n)}async listCheckpoints(e){const n=await kt(`/chat/threads/${e}/checkpoints`,{params:{thread_id:e}});return Tt(n)}async uploadExcel(e,n="/upload_excel",r={}){const a=new FormData,i=e.name.replace(/\.[^.]+$/,"").toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||`excel_${Date.now()}`,o=(r.tableName??i).trim();a.append("file",e,e.name),a.append("table_name",o),r.sheetName&&a.append("sheet_name",r.sheetName),Jn()&&console.debug("[api.uploadExcel] ->",n,{name:e.name,size:e.size,tableName:o,sheetName:r.sheetName});const s=await Ir(n,a,{headers:{Accept:"application/json"},maxBodyLength:1/0}),l=Tt(s);return Jn()&&console.debug("[api.uploadExcel] <-",l),l}async uploadImage(e,n="/upload"){const r=new FormData;r.append("file",e,e.name),Jn()&&console.debug("[api.uploadImage] ->",n,{name:e.name,type:e.type,size:e.size});const a=await Ir(n,r,{headers:{Accept:"application/json"},maxBodyLength:1/0}),i=Tt(a);if(Jn()&&console.debug("[api.uploadImage] <-",i),!(i!=null&&i.url))throw new Error("Invalid upload response: missing url");return{url:i.url,mimeType:i.mimeType??e.type,name:i.name??e.name,size:i.size??e.size}}async uploadFile(e,n,r,a){const i={file_data:e,filename:n,mime_type:r};a&&(i.thread_id=a),Jn()&&console.debug("[api.uploadFile] ->","/chat/files/upload",i);const o=await Ir("/chat/files/upload",i,{headers:{Accept:"application/json"}}),s=Tt(o);if(Jn()&&console.debug("[api.uploadFile] <-",s),!(s!=null&&s.id))throw new Error("Invalid upload response: missing id");return s}}const Jt=new ha;function L_(t={}){const e=t.baseUrl??"/api/chat",n=t.streamPath??"/runs/stream",[r,a]=A.useState(t.token??null),i=A.useRef(t.headers??{}),[o,s]=A.useState(!1),[l,c]=A.useState(null),[d,u]=A.useState(""),[p,m]=A.useState(null),g=A.useRef(null),f=A.useCallback(h=>{a(h)},[]),E=A.useCallback(()=>{var h;(h=g.current)==null||h.abort(),g.current=null,s(!1)},[]),S=A.useCallback(()=>{u(""),m(null),c(null)},[]),T=A.useCallback((h,v,R)=>{g.current&&(g.current.abort(),g.current=null),s(!0),c(null),t.autoAppendAssistant!==!1&&u("");const C=new AbortController;return g.current=C,(async()=>{var D,L,P,Y,q;const N=(()=>{var w;try{return typeof window<"u"&&((w=window.localStorage)==null?void 0:w.getItem("chat-debug"))==="1"}catch{return!1}})(),y=w=>{var B;try{const O=JSON.parse(JSON.stringify(w));return(B=O==null?void 0:O.payload)!=null&&B.files_info&&Array.isArray(O.payload.files_info)&&(O.payload.files_info=O.payload.files_info.map(M=>({...M,data:M!=null&&M.data?`<base64 ${String(M.data).length} chars>`:M==null?void 0:M.data}))),O}catch{return w}};try{let w={};try{if(r)w={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const H=window.__AUTH_TOKEN__,X=((D=window.localStorage)==null?void 0:D.getItem("authToken"))||null;let ae=null;try{const Q=(L=window.localStorage)==null?void 0:L.getItem("chat-settings");Q&&(ae=((P=JSON.parse(Q))==null?void 0:P.apiKey)||null)}catch{}const z=H||X||ae||null;z&&(w={Authorization:`Bearer ${z}`})}}catch{}N&&console.debug("[use-chat] POST",e+n,y(h));const B=await fetch(e+n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",...w,...i.current},body:JSON.stringify(h),signal:C.signal});if(!B.ok||!B.body){const F=await B.text().catch(()=>"");throw N&&console.debug("[use-chat] non-OK response",B.status,F==null?void 0:F.slice(0,500)),new Error(`stream ${B.status}${F?": "+F:""}`)}try{const F=B.headers.get("X-Thread-Id")||B.headers.get("x-thread-id"),H=B.headers.get("X-Thread-Created")||B.headers.get("x-thread-created"),X=F??null,ae=String(H??"").toLowerCase()==="true";try{(Y=R==null?void 0:R.onOpen)==null||Y.call(R,{threadId:X,created:ae})}catch(z){N&&console.debug("[use-chat] onOpen handler threw:",z)}}catch(F){N&&console.debug("[use-chat] failed to read headers:",F)}const O=B.body.getReader(),M=new TextDecoder;let k="";for(;;){const{value:F,done:H}=await O.read();if(H)break;k+=M.decode(F,{stream:!0});let X;for(;(X=k.indexOf(`
31
31
 
32
32
  `))>=0;){const ae=k.slice(0,X);k=k.slice(X+2);const z=Ev(ae);if(!z)continue;let Q;try{Q=JSON.parse(z)}catch{N&&console.debug("[use-chat] skip malformed SSE data:",z==null?void 0:z.slice(0,200));continue}const le=gv(Q)?Q.data:Q;if(N&&console.debug("[use-chat] event:",le==null?void 0:le.type,le),v==null||v(le),le.type==="token")t.autoAppendAssistant!==!1&&u(Se=>Se+le.content);else if(le.type==="message_delta"){const Se=le.delta.filter(V=>V.type==="text").map(V=>V.text).join("");Se&&t.autoAppendAssistant!==!1&&u(V=>V+Se)}else le.type==="checkpoint"?m(le.checkpointId):le.type==="error"&&c(le.message)}}}catch(w){if((w==null?void 0:w.name)==="AbortError")return;const B=(w==null?void 0:w.message)||String(w);N&&console.debug("[use-chat] error:",B),c(B),(q=R==null?void 0:R.onError)==null||q.call(R,B)}finally{s(!1),g.current=null}})(),{close:()=>C.abort()}},[e,r,t.autoAppendAssistant]);return A.useEffect(()=>()=>{var h;return(h=g.current)==null?void 0:h.abort()},[]),{isStreaming:o,error:l,assistantText:d,lastCheckpointId:p,stream:T,stop:E,clear:S,setToken:f}}function gv(t){return!!t&&typeof t=="object"&&t.protocolVersion==="v1"&&"data"in t}function Ev(t){const e=t.split(/\r?\n/),n=[];for(const r of e)if(r&&!r.startsWith(":")&&r.startsWith("data:")){const a=r.slice(5);n.push(a.startsWith(" ")?a.slice(1):a)}return n.length===0?null:n.join(`
33
- `)}const fv={messages:[],assemblingId:null,lastCheckpointId:null,toolIndex:{},lastBranch:null};function Sv(t,e){var n,r;switch(e.type){case"reset":return{messages:oo(((n=e.payload)==null?void 0:n.messages)??[]),assemblingId:null,lastCheckpointId:null,toolIndex:{},lastBranch:null};case"seed":return{...t,messages:oo(e.payload.messages)};case"prepend":{const a=oo(e.payload.messages);if(!a.length)return t;const i=new Set(t.messages.map(s=>s.id)),o=a.filter(s=>!i.has(s.id));return o.length?{...t,messages:[...o,...t.messages]}:t}case"user_message":{const a=e.payload.message;if(t.assemblingId){const i=t.messages.findIndex(o=>o.id===t.assemblingId&&o.role==="assistant");if(i>=0){const o=t.messages.slice(0,i),s=t.messages.slice(i);return{...t,messages:[...o,a,...s]}}}return{...t,messages:[...t.messages,a]}}case"event":{const a=e.payload.ev;if(a.type==="message_start"&&a.role==="assistant"){const i=a.id,o=Rv(a.model),s={id:i,role:"assistant",name:o||void 0,model:a.model,createdAt:new Date().toISOString(),content:[]};return{...t,assemblingId:i,messages:[...t.messages,s]}}if(a.type==="token"){const i=t.assemblingId??so(t.messages);return i?{...t,messages:bv(t.messages,i,a.content)}:t}if(a.type==="message_delta"){const i=t.assemblingId??so(t.messages);return i?{...t,messages:k_(t.messages,i,a.delta)}:t}if(a.type==="message_end"){const i=t.assemblingId??so(t.messages);if(!i)return{...t,assemblingId:null};const o=t.messages,s=o.findIndex(l=>l.id===i&&l.role==="assistant");if(s>=0&&!((r=o[s].content)==null?void 0:r.some(d=>{var u;return(d==null?void 0:d.type)==="text"&&((u=d.text)==null?void 0:u.trim())}))){const d=[...o.slice(0,s),...o.slice(s+1)];return{...t,assemblingId:null,messages:d}}return{...t,assemblingId:null}}if(a.type==="tool_start"){const i=`tool-${a.id}`,o={type:"tool_call",id:a.id,name:a.name,args:a.args},s={id:i,role:"tool",name:a.name,createdAt:new Date().toISOString(),content:[o]};return{...t,messages:[...t.messages,s],toolIndex:{...t.toolIndex,[a.id]:i}}}if(a.type==="tool_result"){const i=t.toolIndex[a.id]??`tool-${a.id}`,o={type:"tool_result",toolCallId:a.id,output:a.output,error:a.error},s=t.messages.find(d=>d.id===i),l={id:i,role:"tool",content:[o],createdAt:new Date().toISOString()},c=s?k_(t.messages,i,[o]):[...t.messages,l];return{...t,messages:c}}if(a.type==="checkpoint"){const i=hv(t.messages,a.checkpointId);return{...t,lastCheckpointId:a.checkpointId,messages:i}}if(a.type==="branch"){const i=a.checkpointId??t.lastCheckpointId;return{...t,lastBranch:a,lastCheckpointId:i??null}}if(a.type==="error"){const i={id:`err-${Date.now()}`,role:"system",content:[{type:"text",text:`Error: ${a.message}`}],createdAt:new Date().toISOString()};return{...t,messages:[...t.messages,i]}}return t}default:return t}}function P_(t=[]){const[e,n]=A.useReducer(Sv,{...fv,messages:t}),r=A.useCallback(i=>{n({type:"event",payload:{ev:i}})},[]),a=A.useMemo(()=>({reset:i=>n({type:"reset",payload:{messages:i}}),seed:i=>n({type:"seed",payload:{messages:i}}),prepend:i=>n({type:"prepend",payload:{messages:i}}),pushUser:i=>n({type:"user_message",payload:{message:i}}),onEvent:r}),[r]);return{state:e,dispatch:n,...a}}function oo(t){return t.filter(e=>{if(e.role!=="assistant")return!0;const n=(e.content||[]).some(a=>{var i;return a&&a.type==="text"&&((i=a.text)==null?void 0:i.trim())}),r=(e.content||[]).some(a=>a&&a.type==="image_url");return!!(n||r)})}function so(t){for(let e=t.length-1;e>=0;e--)if(t[e].role==="assistant")return t[e].id;return null}function bv(t,e,n){return t.map(r=>{if(r.id!==e)return r;const a=r.content.slice(),i=a[a.length-1];return i&&i.type==="text"?i.text+=n:a.push({type:"text",text:n}),{...r,content:a}})}function k_(t,e,n){return t.map(r=>r.id===e?{...r,content:Tv(r.content,n)}:r)}function Tv(t,e){const n=t.slice();for(const r of e)if(r.type==="text"){const a=n[n.length-1];(a==null?void 0:a.type)==="text"?a.text+=r.text:n.push({type:"text",text:r.text})}else n.push(r);return n}function hv(t,e){for(let n=t.length-1;n>=0;n--)if(t[n].role==="assistant"){const a={...t[n],checkpointId:e};return[...t.slice(0,n),a,...t.slice(n+1)]}return t}function Rv(t){if(!t)return null;const e=t.split("/");return e[e.length-1]||null}function Cv(t,e){const n=t==null?void 0:t.checkpoints,r=Array.isArray(n)?n.slice():n?Object.values(n):[],a=o=>o&&typeof o=="object"&&typeof o.checkpointId=="string"&&typeof o.createdAt=="string",i=r.filter(a).map(o=>({checkpointId:o.checkpointId,checkpointNs:o.checkpointNs??"",createdAt:o.createdAt,messagesLen:o.messagesLen??0,preview:o.preview??"",role:o.role??null,parentId:o.parentId??null,editedMessageId:o.editedMessageId??null,branchLabel:o.branchLabel??null}));return{threadId:(t==null?void 0:t.threadId)??e??null,checkpoints:i}}async function lo(t){return await new Promise((e,n)=>{const r=new FileReader;r.onload=()=>e(String(r.result)),r.onerror=a=>n(a),r.readAsDataURL(t)})}async function vv(t){return await new Promise((e,n)=>{const r=new FileReader;r.onload=()=>{try{const a=r.result,i=new Uint8Array(a);let o="";const s=i.byteLength;for(let l=0;l<s;l++)o+=String.fromCharCode(i[l]);e(btoa(o))}catch(a){n(a)}},r.onerror=a=>n(a),r.readAsArrayBuffer(t)})}async function Nv(t,e,n){try{return await lo(e)}catch{return null}}async function Ov(t,e=[],n,r,a,i){const o=[],s=[];for(const l of e){let c=null;try{c=await Nv(t,l,i)}catch{c=null}if(l.type&&l.type.startsWith("image/"))if(c){const d={type:"image_url",url:c,mimeType:l.type,alt:l.name};o.push(d)}else try{const d=await lo(l),u={type:"image_url",url:String(d),mimeType:l.type,alt:l.name};o.push(u)}catch{}else if(c){const d={type:"file",url:c,mimeType:l.type||void 0,name:l.name,size:l.size};o.push(d)}else try{const d=await lo(l),u={type:"file",url:String(d),mimeType:l.type||void 0,name:l.name,size:l.size};o.push(u)}catch{}try{const d=await vv(l);s.push({filename:l.name,data:d,mime_type:l.type||"application/octet-stream"})}catch{}}return{contentParts:o,filesInfo:s}}const U_=A.createContext(null);function Ar({children:t,apiConfig:e,onError:n,onThreadChange:r,initialThreadId:a=null,historyPageSize:i,autoLoadInitial:o=!0,enableFileAgentRouting:s=!1,fileAgentId:l="invoice_reader"}){const c=Jt;A.useEffect(()=>{e&&c.updateConfig({baseUrl:e.baseUrl,authToken:e.apiKey})},[c,e]);const{isStreaming:d,error:u,stream:p,stop:m,setToken:g}=L_({baseUrl:c.baseUrl,token:null,headers:e==null?void 0:e.headers,streamPath:"/chat/runs/stream"}),[f,E]=A.useState(()=>typeof c.getAuthToken=="function"?c.getAuthToken():null);A.useEffect(()=>{g(typeof c.getAuthToken=="function"?c.getAuthToken():null);const j=c.onTokenChange(ee=>{E(ee),g(ee)});return()=>{j()}},[c,g]);const S=A.useCallback(j=>{c.setAuthToken(j)},[c]),{state:T,seed:h,prepend:v,pushUser:R,onEvent:C,reset:N}=P_(),y=i&&i>0?i:6,[D,L]=A.useState(!1),[P,Y]=A.useState(!1),[q,w]=A.useState(null),[B,O]=A.useState(void 0),M=A.useCallback((j,ee)=>{const de=Array.isArray(j==null?void 0:j.messages)?j.messages:[];ee==="replace"?h(de):ee==="prepend"&&de.length&&v(de),w((j==null?void 0:j.nextCursor)??null),L(!!(j!=null&&j.hasMore)),O(Ue=>(j==null?void 0:j.checkpointId)??Ue??void 0)},[h,v]),[k,F]=A.useState([]),[H,X]=A.useState(null),ae=A.useCallback(async()=>{const j=await c.listThreads();F(j)},[c]),[z,Q]=A.useState(!1),le=A.useCallback(async j=>{const ee=(j==null?void 0:j.maxAttempts)??5,de=(j==null?void 0:j.baseDelayMs)??500,Ue=(j==null?void 0:j.timeoutMs)??2e3;if(!c.baseUrl)return!1;const $e=c.baseUrl.replace(/\/+$/,""),et=["/health","/api/health","/","/api/v2/health","/api/v2/chat/health"],We=async re=>{try{const he=new AbortController,ve=setTimeout(()=>he.abort(),Ue),Ye=await fetch(re,{method:"GET",signal:he.signal});return clearTimeout(ve),Ye.ok}catch{return!1}},Z=async re=>{try{const he=new AbortController,ve=setTimeout(()=>he.abort(),Ue),Ye=await fetch(re,{method:"HEAD",signal:he.signal});return clearTimeout(ve),Ye.ok}catch{return!1}};for(let re=0;re<ee;re++){console.debug(`[ChatProvider] health-check attempt ${re+1}/${ee}`);for(const ve of et){let Ye=ve;$e.endsWith("/api")&&ve.startsWith("/api")&&(Ye=ve.replace(/^\/api/,"")||"/");const it=Ye==="/"?$e+"/":$e+Ye;if(console.debug(`[ChatProvider] checking ${it}`),await We(it)||ve==="/"&&await Z($e+"/"))return Q(!0),!0}const he=de*Math.pow(2,re);await new Promise(ve=>setTimeout(ve,he))}return Q(!1),!1},[c.baseUrl]);A.useEffect(()=>{let j=!0;if(!c.baseUrl){console.debug("[ChatProvider] skipping initial refreshThreads: api.baseUrl not configured");return}return(async()=>{try{const ee=await le();if(!j)return;ee?ae().catch(()=>{}):console.warn("[ChatProvider] backend health-check failed — skipping initial loads")}catch{}})(),()=>{j=!1}},[ae,c.baseUrl,le]),A.useEffect(()=>{r==null||r(H)},[H,r]);const Se=A.useRef(null);A.useEffect(()=>{if(a&&o){if(!c.baseUrl){console.debug("[ChatProvider] skipping initial load: api.baseUrl not configured");return}if(!z){console.debug("[ChatProvider] deferring initial load until backend health-check passes");return}Se.current!==a&&(Se.current=a,U(a).catch(()=>{}))}},[a,o,c.baseUrl,z]);const V=A.useRef(null),U=A.useCallback(async(j,ee,de)=>{if(!c.baseUrl){console.debug("[ChatProvider] skipping loadThread: api.baseUrl not configured");return}if(V.current!==j){V.current=j;try{L(!1),w(null),O(void 0);const Ue=await c.getMessages({threadId:j,checkpointId:ee,checkpointNs:de,limit:y});X(j),M(Ue,"replace")}finally{V.current=null}}},[c,M]),W=A.useCallback(async j=>{const ee=await c.listCheckpoints(j);return Cv(ee,j)},[c]),te=A.useCallback(async j=>{if(!H)throw new Error("No active thread");L(!1),w(null),O(void 0);const ee=await c.getMessages({threadId:H,checkpointId:j,limit:y});M(ee,"replace")},[c,H,M,y]),ce=A.useCallback(async()=>{if(!H)throw new Error("No active thread");await U(H)},[H,U]),ie=A.useRef(!1);A.useEffect(()=>{const j=ie.current;if(ie.current=d,j&&!d&&H){const ee=T.lastCheckpointId??void 0;(async()=>{try{const de=await c.getMessages({threadId:H,checkpointId:ee,limit:y});M(de,"replace")}catch{}try{await ae()}catch{}})()}},[d,H,T.lastCheckpointId,c,M,ae]);const we=A.useCallback(async j=>{const ee=await c.createThread(j);return await ae(),await U(ee.threadId),ee.threadId},[c,ae,U]),be=A.useCallback(async j=>{await c.deleteThread(j),await ae(),H===j&&(X(null),N([]),L(!1),w(null),O(void 0))},[c,ae,H,N]),Ie=A.useCallback(async(j,ee)=>{await c.updateThread(j,ee),await ae()},[c,ae]),Ee=A.useCallback(async(j,ee)=>{var Xt;const de=(ee==null?void 0:ee.attachments)||[],{contentParts:Ue,filesInfo:$e}=await Ov(c,de,e==null?void 0:e.uploadPath,s,l,H),et=[];j&&et.push({type:"text",text:j});for(const rt of Ue)et.push(rt);const We={id:((Xt=crypto.randomUUID)==null?void 0:Xt.call(crypto))||`user-${Date.now()}`,role:"user",content:et,createdAt:new Date().toISOString(),checkpointId:(ee==null?void 0:ee.checkpointId)??T.lastCheckpointId??void 0};R(We);const Z={...We,content:We.content.filter(rt=>rt.type==="text"||rt.type==="image_url")},re={...(ee==null?void 0:ee.payloadExtras)??{}},he=!!re.edit,ve=re.originalMessageId,Ye=typeof ve=="string"?ve:void 0,it=de&&de.length>0,Mt={...H?{threadId:H}:{},payload:{messages:[Z],attachments:We.content.filter(rt=>rt.type==="file").map(rt=>({type:"file",url:rt.url,mimeType:rt.mimeType,name:rt.name,size:rt.size})),files_info:$e,...s&&it&&l?{agent_id:l}:{},...re},checkpointId:(ee==null?void 0:ee.checkpointId)??T.lastCheckpointId??void 0,checkpointNs:ee==null?void 0:ee.checkpointNs,nodeFilter:ee==null?void 0:ee.nodeFilter,config:ee==null?void 0:ee.config,edit:he,originalMessageId:Ye};p(Mt,rt=>C(rt),{onError:rt=>console.warn("stream error",rt),onOpen:({threadId:rt,created:xn})=>{!H&&rt&&(X(rt),xn&&ae().catch(()=>{}))}})},[H,R,p,C,T.lastCheckpointId,c,e==null?void 0:e.uploadPath,ae,X,s,l]),Te=A.useCallback(async j=>{if(!H)throw new Error("No active thread");if(P||!D)return;const ee=q;if(ee){Y(!0);try{const de=await c.getMessages({threadId:H,checkpointId:B,limit:(j==null?void 0:j.limit)??y,beforeId:ee});M(de,"prepend")}finally{Y(!1)}}},[c,H,B,q,D,P,M]),oe={baseUrl:c.baseUrl,token:f,setToken:S,api:c,threads:k,currentThreadId:H,setCurrentThreadId:X,messages:T.messages,isStreaming:d,error:u,lastCheckpointId:T.lastCheckpointId,streamingAssistantId:T.assemblingId,hasMoreHistory:D,isLoadingHistory:P,loadOlderMessages:Te,historyPageSize:y,listCheckpoints:W,navigateToCheckpoint:te,returnToLatest:ce,refreshThreads:ae,createThread:we,deleteThread:be,renameThread:Ie,loadThread:U,send:Ee,stop:m};return _.jsx(U_.Provider,{value:oe,children:t})}function Ra(){const t=A.useContext(U_);if(!t)throw new Error("useChat must be used within ChatProvider");return t}const Ca=0,fn=1,er=2,F_=4;function B_(t){return()=>t}function yv(t){t()}function G_(t,e){return n=>t(e(n))}function Y_(t,e){return()=>t(e)}function Iv(t,e){return n=>t(e,n)}function co(t){return t!==void 0}function Av(...t){return()=>{t.map(yv)}}function tr(){}function va(t,e){return e(t),t}function xv(t,e){return e(t)}function tt(...t){return t}function Qe(t,e){return t(fn,e)}function ke(t,e){t(Ca,e)}function uo(t){t(er)}function lt(t){return t(F_)}function Re(t,e){return Qe(t,Iv(e,Ca))}function qt(t,e){const n=t(fn,r=>{n(),e(r)});return n}function H_(t){let e,n;return r=>a=>{e=a,n&&clearTimeout(n),n=setTimeout(()=>{r(e)},t)}}function q_(t,e){return t===e}function nt(t=q_){let e;return n=>r=>{t(e,r)||(e=r,n(r))}}function xe(t){return e=>n=>{t(n)&&e(n)}}function me(t){return e=>G_(e,t)}function en(t){return e=>()=>{e(t)}}function K(t,...e){const n=Dv(...e);return(r,a)=>{switch(r){case er:uo(t);return;case fn:return Qe(t,n(a))}}}function tn(t,e){return n=>r=>{n(e=t(e,r))}}function Ln(t){return e=>n=>{t>0?t--:e(n)}}function un(t){let e=null,n;return r=>a=>{e=a,!n&&(n=setTimeout(()=>{n=void 0,r(e)},t))}}function Fe(...t){const e=new Array(t.length);let n=0,r=null;const a=Math.pow(2,t.length)-1;return t.forEach((i,o)=>{const s=Math.pow(2,o);Qe(i,l=>{const c=n;n=n|s,e[o]=l,c!==a&&n===a&&r&&(r(),r=null)})}),i=>o=>{const s=()=>{i([o].concat(e))};n===a?s():r=s}}function Dv(...t){return e=>t.reduceRight(xv,e)}function wv(t){let e,n;const r=()=>e==null?void 0:e();return function(a,i){switch(a){case fn:return i?n===i?void 0:(r(),n=i,e=Qe(t,i),e):(r(),tr);case er:r(),n=null;return}}}function ne(t){let e=t;const n=qe();return(r,a)=>{switch(r){case Ca:e=a;break;case fn:{a(e);break}case F_:return e}return n(r,a)}}function Et(t,e){return va(ne(e),n=>Re(t,n))}function qe(){const t=[];return(e,n)=>{switch(e){case Ca:t.slice().forEach(r=>{r(n)});return;case er:t.splice(0,t.length);return;case fn:return t.push(n),()=>{const r=t.indexOf(n);r>-1&&t.splice(r,1)}}}}function At(t){return va(qe(),e=>Re(t,e))}function ze(t,e=[],{singleton:n}={singleton:!0}){return{constructor:t,dependencies:e,id:Mv(),singleton:n}}const Mv=()=>Symbol();function Lv(t){const e=new Map,n=({constructor:r,dependencies:a,id:i,singleton:o})=>{if(o&&e.has(i))return e.get(i);const s=r(a.map(l=>n(l)));return o&&e.set(i,s),s};return n(t)}function dt(...t){const e=qe(),n=new Array(t.length);let r=0;const a=Math.pow(2,t.length)-1;return t.forEach((i,o)=>{const s=Math.pow(2,o);Qe(i,l=>{n[o]=l,r=r|s,r===a&&ke(e,n)})}),function(i,o){switch(i){case er:{uo(e);return}case fn:return r===a&&o(n),Qe(e,o)}}}function ye(t,e=q_){return K(t,nt(e))}function _o(...t){return function(e,n){switch(e){case er:return;case fn:return Av(...t.map(r=>Qe(r,n)))}}}var Nt=(t=>(t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t))(Nt||{});const Pv={0:"debug",3:"error",1:"log",2:"warn"},kv=()=>typeof globalThis>"u"?window:globalThis,Sn=ze(()=>{const t=ne(3);return{log:ne((e,n,r=1)=>{var a;const i=(a=kv().VIRTUOSO_LOG_LEVEL)!=null?a:lt(t);r>=i&&console[Pv[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",e,n)}),logLevel:t}},[],{singleton:!0});function Pn(t,e,n){return po(t,e,n).callbackRef}function po(t,e,n){const r=A.useRef(null);let a=o=>{};const i=A.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(o=>{const s=()=>{const l=o[0].target;l.offsetParent!==null&&t(l)};n?s():requestAnimationFrame(s)}):null,[t,n]);return a=o=>{o&&e?(i==null||i.observe(o),r.current=o):(r.current&&(i==null||i.unobserve(r.current)),r.current=null)},{callbackRef:a,ref:r}}function Uv(t,e,n,r,a,i,o,s,l){const c=A.useCallback(d=>{const u=Fv(d.children,e,s?"offsetWidth":"offsetHeight",a);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const m=p.lastElementChild.dataset.viewportType==="window";let g;m&&(g=p.ownerDocument.defaultView);const f=o?s?o.scrollLeft:o.scrollTop:m?s?g.scrollX||g.document.documentElement.scrollLeft:g.scrollY||g.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,E=o?s?o.scrollWidth:o.scrollHeight:m?s?g.document.documentElement.scrollWidth:g.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,S=o?s?o.offsetWidth:o.offsetHeight:m?s?g.innerWidth:g.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:E,scrollTop:Math.max(f,0),viewportHeight:S}),i==null||i(s?V_("column-gap",getComputedStyle(d).columnGap,a):V_("row-gap",getComputedStyle(d).rowGap,a)),u!==null&&t(u)},[t,e,a,i,o,r,s]);return po(c,n,l)}function Fv(t,e,n,r){const a=t.length;if(a===0)return null;const i=[];for(let o=0;o<a;o++){const s=t.item(o);if(s.dataset.index===void 0)continue;const l=parseInt(s.dataset.index),c=parseFloat(s.dataset.knownSize),d=e(s,n);if(d===0&&r("Zero-sized element, this should not happen",{child:s},Nt.ERROR),d===c)continue;const u=i[i.length-1];i.length===0||u.size!==d||u.endIndex!==l-1?i.push({endIndex:l,size:d,startIndex:l}):i[i.length-1].endIndex++}return i}function V_(t,e,n){return e!=="normal"&&!(e!=null&&e.endsWith("px"))&&n(`${t} was not resolved to pixel value correctly`,e,Nt.WARN),e==="normal"?0:parseInt(e??"0",10)}function z_(t,e,n){const r=A.useRef(null),a=A.useCallback(l=>{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let u,p;if(e){const m=e.getBoundingClientRect(),g=c.top-m.top;p=m.height-Math.max(0,g),u=g+e.scrollTop}else{const m=o.current.ownerDocument.defaultView;p=m.innerHeight-Math.max(0,c.top),u=c.top+m.scrollY}r.current={offsetTop:u,visibleHeight:p,visibleWidth:d},t(r.current)},[t,e]),{callbackRef:i,ref:o}=po(a,!0,n),s=A.useCallback(()=>{a(o.current)},[a,o]);return A.useEffect(()=>{var l;if(e){e.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(e),()=>{e.removeEventListener("scroll",s),c.unobserve(e)}}else{const c=(l=o.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,e,o]),i}const ht=ze(()=>{const t=qe(),e=qe(),n=ne(0),r=qe(),a=ne(0),i=qe(),o=qe(),s=ne(0),l=ne(0),c=ne(0),d=ne(0),u=qe(),p=qe(),m=ne(!1),g=ne(!1),f=ne(!1);return Re(K(t,me(({scrollTop:E})=>E)),e),Re(K(t,me(({scrollHeight:E})=>E)),o),Re(e,a),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:g,scrollBy:p,scrollContainerState:t,scrollHeight:o,scrollingInProgress:m,scrollTo:u,scrollTop:e,skipAnimationFrameInResizeObserver:f,smoothScrollTargetReached:r,statefulScrollTop:a,viewportHeight:i}},[],{singleton:!0}),xr={lvl:0};function $_(t,e){const n=t.length;if(n===0)return[];let{index:r,value:a}=e(t[0]);const i=[];for(let o=1;o<n;o++){const{index:s,value:l}=e(t[o]);i.push({end:s-1,start:r,value:a}),r=s,a=l}return i.push({end:1/0,start:r,value:a}),i}function Ze(t){return t===xr}function Dr(t,e){if(!Ze(t))return e===t.k?t.v:e<t.k?Dr(t.l,e):Dr(t.r,e)}function Vt(t,e,n="k"){if(Ze(t))return[-1/0,void 0];if(Number(t[n])===e)return[t.k,t.v];if(Number(t[n])<e){const r=Vt(t.r,e,n);return r[0]===-1/0?[t.k,t.v]:r}return Vt(t.l,e,n)}function xt(t,e,n){return Ze(t)?Q_(e,n,1):e===t.k?ut(t,{k:e,v:n}):e<t.k?j_(ut(t,{l:xt(t.l,e,n)})):j_(ut(t,{r:xt(t.r,e,n)}))}function nr(){return xr}function Na(t,e,n){if(Ze(t))return[];const r=Vt(t,e)[0];return Bv(go(t,r,n))}function mo(t,e){if(Ze(t))return xr;const{k:n,l:r,r:a}=t;if(e===n){if(Ze(r))return a;if(Ze(a))return r;{const[i,o]=K_(r);return Oa(ut(t,{k:i,l:W_(r),v:o}))}}else return e<n?Oa(ut(t,{l:mo(r,e)})):Oa(ut(t,{r:mo(a,e)}))}function kn(t){return Ze(t)?[]:[...kn(t.l),{k:t.k,v:t.v},...kn(t.r)]}function go(t,e,n){if(Ze(t))return[];const{k:r,l:a,r:i,v:o}=t;let s=[];return r>e&&(s=s.concat(go(a,e,n))),r>=e&&r<=n&&s.push({k:r,v:o}),r<=n&&(s=s.concat(go(i,e,n))),s}function Oa(t){const{l:e,lvl:n,r}=t;if(r.lvl>=n-1&&e.lvl>=n-1)return t;if(n>r.lvl+1){if(Eo(e))return X_(ut(t,{lvl:n-1}));if(!Ze(e)&&!Ze(e.r))return ut(e.r,{l:ut(e,{r:e.r.l}),lvl:n,r:ut(t,{l:e.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(Eo(t))return fo(ut(t,{lvl:n-1}));if(!Ze(r)&&!Ze(r.l)){const a=r.l,i=Eo(a)?r.lvl-1:r.lvl;return ut(a,{l:ut(t,{lvl:n-1,r:a.l}),lvl:a.lvl+1,r:fo(ut(r,{l:a.r,lvl:i}))})}else throw new Error("Unexpected empty nodes")}}function ut(t,e){return Q_(e.k!==void 0?e.k:t.k,e.v!==void 0?e.v:t.v,e.lvl!==void 0?e.lvl:t.lvl,e.l!==void 0?e.l:t.l,e.r!==void 0?e.r:t.r)}function W_(t){return Ze(t.r)?t.l:Oa(ut(t,{r:W_(t.r)}))}function Eo(t){return Ze(t)||t.lvl>t.r.lvl}function K_(t){return Ze(t.r)?[t.k,t.v]:K_(t.r)}function Q_(t,e,n,r=xr,a=xr){return{k:t,l:r,lvl:n,r:a,v:e}}function j_(t){return fo(X_(t))}function X_(t){const{l:e}=t;return!Ze(e)&&e.lvl===t.lvl?ut(e,{r:ut(t,{l:e.r})}):t}function fo(t){const{lvl:e,r:n}=t;return!Ze(n)&&!Ze(n.r)&&n.lvl===e&&n.r.lvl===e?ut(n,{l:ut(t,{r:n.l}),lvl:e+1}):t}function Bv(t){return $_(t,({k:e,v:n})=>({index:e,value:n}))}function Z_(t,e){return!!(t&&t.startIndex===e.startIndex&&t.endIndex===e.endIndex)}function wr(t,e){return!!(t&&t[0]===e[0]&&t[1]===e[1])}const So=ze(()=>({recalcInProgress:ne(!1)}),[],{singleton:!0});function J_(t,e,n){return t[ya(t,e,n)]}function ya(t,e,n,r=0){let a=t.length-1;for(;r<=a;){const i=Math.floor((r+a)/2),o=t[i],s=n(o,e);if(s===0)return i;if(s===-1){if(a-r<2)return i-1;a=i-1}else{if(a===r)return i;r=i+1}}throw new Error(`Failed binary finding record in array - ${t.join(",")}, searched for ${e}`)}function Gv(t,e,n,r){const a=ya(t,e,r),i=ya(t,n,r,a);return t.slice(a,i+1)}function bn(t,e){return Math.round(t.getBoundingClientRect()[e])}function Ia(t){return!Ze(t.groupOffsetTree)}function bo({index:t},e){return e===t?0:e<t?-1:1}function Yv(){return{groupIndices:[],groupOffsetTree:nr(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:nr()}}function Hv(t,e){let n=Ze(t)?0:1/0;for(const r of e){const{endIndex:a,size:i,startIndex:o}=r;if(n=Math.min(n,o),Ze(t)){t=xt(t,0,i);continue}const s=Na(t,o-1,a+1);if(s.some(Qv(r)))continue;let l=!1,c=!1;for(const{end:d,start:u,value:p}of s)l?(a>=u||i===p)&&(t=mo(t,u)):(c=p!==i,l=!0),d>a&&a>=u&&p!==i&&(t=xt(t,a+1,p));c&&(t=xt(t,o,i))}return[t,n]}function qv(t){return typeof t.groupIndex<"u"}function Vv({offset:t},e){return e===t?0:e<t?-1:1}function Mr(t,e,n){if(e.length===0)return 0;const{index:r,offset:a,size:i}=J_(e,t,bo),o=t-r,s=i*o+(o-1)*n+a;return s>0?s+n:s}function ep(t,e){if(!Ia(e))return t;let n=0;for(;e.groupIndices[n]<=t+n;)n++;return t+n}function tp(t,e,n){if(qv(t))return e.groupIndices[t.groupIndex]+1;{const r=t.index==="LAST"?n:t.index;let a=ep(r,e);return a=Math.max(0,a,Math.min(n,a)),a}}function zv(t,e,n,r=0){return r>0&&(e=Math.max(e,J_(t,r,bo).offset)),$_(Gv(t,e,n,Vv),Kv)}function $v(t,[e,n,r,a]){e.length>0&&r("received item sizes",e,Nt.DEBUG);const i=t.sizeTree;let o=i,s=0;if(n.length>0&&Ze(i)&&e.length===2){const p=e[0].size,m=e[1].size;o=n.reduce((g,f)=>xt(xt(g,f,p),f+1,m),o)}else[o,s]=Hv(o,e);if(o===i)return t;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:u}=To(t.offsetTree,s,o,a);return{groupIndices:n,groupOffsetTree:n.reduce((p,m)=>xt(p,m,Mr(m,u,a)),nr()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:u,sizeTree:o}}function Wv(t){return kn(t).map(({k:e,v:n},r,a)=>{const i=a[r+1];return{endIndex:i?i.k-1:1/0,size:n,startIndex:e}})}function np(t,e){let n=0,r=0;for(;n<t;)n+=e[r+1]-e[r]-1,r++;return r-(n===t?0:1)}function To(t,e,n,r){let a=t,i=0,o=0,s=0,l=0;if(e!==0){l=ya(a,e-1,bo),s=a[l].offset;const c=Vt(n,e-1);i=c[0],o=c[1],a.length&&a[l].size===Vt(n,e)[1]&&(l-=1),a=a.slice(0,l+1)}else a=[];for(const{start:c,value:d}of Na(n,e,1/0)){const u=c-i,p=u*o+s+u*r;a.push({index:c,offset:p,size:d}),i=c,s=p,o=d}return{lastIndex:i,lastOffset:s,lastSize:o,offsetTree:a}}function Kv(t){return{index:t.index,value:t}}function Qv(t){const{endIndex:e,size:n,startIndex:r}=t;return a=>a.start===r&&(a.end===e||a.end===1/0)&&a.value===n}const jv={offsetHeight:"height",offsetWidth:"width"},nn=ze(([{log:t},{recalcInProgress:e}])=>{const n=qe(),r=qe(),a=Et(r,0),i=qe(),o=qe(),s=ne(0),l=ne([]),c=ne(void 0),d=ne(void 0),u=ne((R,C)=>bn(R,jv[C])),p=ne(void 0),m=ne(0),g=Yv(),f=Et(K(n,Fe(l,t,m),tn($v,g),nt()),g),E=Et(K(l,nt(),tn((R,C)=>({current:C,prev:R.current}),{current:[],prev:[]}),me(({prev:R})=>R)),[]);Re(K(l,xe(R=>R.length>0),Fe(f,m),me(([R,C,N])=>{const y=R.reduce((D,L,P)=>xt(D,L,Mr(L,C.offsetTree,N)||P),nr());return{...C,groupIndices:R,groupOffsetTree:y}})),f),Re(K(r,Fe(f),xe(([R,{lastIndex:C}])=>R<C),me(([R,{lastIndex:C,lastSize:N}])=>[{endIndex:C,size:N,startIndex:R}])),n),Re(c,d);const S=Et(K(c,me(R=>R===void 0)),!0);Re(K(d,xe(R=>R!==void 0&&Ze(lt(f).sizeTree)),me(R=>[{endIndex:0,size:R,startIndex:0}])),n);const T=At(K(n,Fe(f),tn(({sizes:R},[C,N])=>({changed:N!==R,sizes:N}),{changed:!1,sizes:g}),me(R=>R.changed)));Qe(K(s,tn((R,C)=>({diff:R.prev-C,prev:C}),{diff:0,prev:0}),me(R=>R.diff)),R=>{const{groupIndices:C}=lt(f);if(R>0)ke(e,!0),ke(i,R+np(R,C));else if(R<0){const N=lt(E);N.length>0&&(R-=np(-R,N)),ke(o,R)}}),Qe(K(s,Fe(t)),([R,C])=>{R<0&&C("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Nt.ERROR)});const h=At(i);Re(K(i,Fe(f),me(([R,C])=>{const N=C.groupIndices.length>0,y=[],D=C.lastSize;if(N){const L=Dr(C.sizeTree,0);let P=0,Y=0;for(;P<R;){const w=C.groupIndices[Y],B=C.groupIndices.length===Y+1?1/0:C.groupIndices[Y+1]-w-1;y.push({endIndex:w,size:L,startIndex:w}),y.push({endIndex:w+1+B-1,size:D,startIndex:w+1}),Y++,P+=B+1}const q=kn(C.sizeTree);return P!==R&&q.shift(),q.reduce((w,{k:B,v:O})=>{let M=w.ranges;return w.prevSize!==0&&(M=[...w.ranges,{endIndex:B+R-1,size:w.prevSize,startIndex:w.prevIndex}]),{prevIndex:B+R,prevSize:O,ranges:M}},{prevIndex:R,prevSize:0,ranges:y}).ranges}return kn(C.sizeTree).reduce((L,{k:P,v:Y})=>({prevIndex:P+R,prevSize:Y,ranges:[...L.ranges,{endIndex:P+R-1,size:L.prevSize,startIndex:L.prevIndex}]}),{prevIndex:0,prevSize:D,ranges:[]}).ranges})),n);const v=At(K(o,Fe(f,m),me(([R,{offsetTree:C},N])=>{const y=-R;return Mr(y,C,N)})));return Re(K(o,Fe(f,m),me(([R,C,N])=>{if(C.groupIndices.length>0){if(Ze(C.sizeTree))return C;let y=nr();const D=lt(E);let L=0,P=0,Y=0;for(;L<-R;){Y=D[P];const q=D[P+1]-Y-1;P++,L+=q+1}if(y=kn(C.sizeTree).reduce((q,{k:w,v:B})=>xt(q,Math.max(0,w+R),B),y),L!==-R){const q=Dr(C.sizeTree,Y);y=xt(y,0,q);const w=Vt(C.sizeTree,-R+1)[1];y=xt(y,1,w)}return{...C,sizeTree:y,...To(C.offsetTree,0,y,N)}}else{const y=kn(C.sizeTree).reduce((D,{k:L,v:P})=>xt(D,Math.max(0,L+R),P),nr());return{...C,sizeTree:y,...To(C.offsetTree,0,y,N)}}})),f),{beforeUnshiftWith:h,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:m,groupIndices:l,itemSize:u,listRefresh:T,shiftWith:o,shiftWithOffset:v,sizeRanges:n,sizes:f,statefulTotalCount:a,totalCount:r,trackItemSizes:S,unshiftWith:i}},tt(Sn,So),{singleton:!0});function Xv(t){return t.reduce((e,n)=>(e.groupIndices.push(e.totalCount),e.totalCount+=n+1,e),{groupIndices:[],totalCount:0})}const rp=ze(([{groupIndices:t,sizes:e,totalCount:n},{headerHeight:r,scrollTop:a}])=>{const i=qe(),o=qe(),s=At(K(i,me(Xv)));return Re(K(s,me(l=>l.totalCount)),n),Re(K(s,me(l=>l.groupIndices)),t),Re(K(dt(a,e,r),xe(([l,c])=>Ia(c)),me(([l,c,d])=>Vt(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),nt(),me(l=>[l])),o),{groupCounts:i,topItemsIndexes:o}},tt(nn,ht)),Tn=ze(([{log:t}])=>{const e=ne(!1),n=At(K(e,xe(r=>r),nt()));return Qe(e,r=>{r&&lt(t)("props updated",{},Nt.DEBUG)}),{didMount:n,propsReady:e}},tt(Sn),{singleton:!0}),Zv=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function ap(t){const e=typeof t=="number"?{index:t}:t;return e.align||(e.align="start"),(!e.behavior||!Zv)&&(e.behavior="auto"),e.offset||(e.offset=0),e}const Lr=ze(([{gap:t,listRefresh:e,sizes:n,totalCount:r},{fixedFooterHeight:a,fixedHeaderHeight:i,footerHeight:o,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:u},{log:p}])=>{const m=qe(),g=qe(),f=ne(0);let E=null,S=null,T=null;function h(){E&&(E(),E=null),T&&(T(),T=null),S&&(clearTimeout(S),S=null),ke(l,!1)}return Re(K(m,Fe(n,u,r,f,s,o,p),Fe(t,i,a),me(([[v,R,C,N,y,D,L,P],Y,q,w])=>{const B=ap(v),{align:O,behavior:M,offset:k}=B,F=N-1,H=tp(B,R,F);let X=Mr(H,R.offsetTree,Y)+D;O==="end"?(X+=q+Vt(R.sizeTree,H)[1]-C+w,H===F&&(X+=L)):O==="center"?X+=(q+Vt(R.sizeTree,H)[1]-C+w)/2:X-=y,k&&(X+=k);const ae=z=>{h(),z?(P("retrying to scroll to",{location:v},Nt.DEBUG),ke(m,v)):(ke(g,!0),P("list did not change, scroll successful",{},Nt.DEBUG))};if(h(),M==="smooth"){let z=!1;T=Qe(e,Q=>{z=z||Q}),E=qt(d,()=>{ae(z)})}else E=qt(K(e,Jv(150)),ae);return S=setTimeout(()=>{h()},1200),ke(l,!0),P("scrolling from index to",{behavior:M,index:H,top:X},Nt.DEBUG),{behavior:M,top:X}})),c),{scrollTargetReached:g,scrollToIndex:m,topListHeight:f}},tt(nn,ht,Sn),{singleton:!0});function Jv(t){return e=>{const n=setTimeout(()=>{e(!1)},t);return r=>{r&&(e(!0),clearTimeout(n))}}}function ho(t,e){t==0?e():requestAnimationFrame(()=>{ho(t-1,e)})}function Ro(t,e){const n=e-1;return typeof t=="number"?t:t.index==="LAST"?n:t.index}const Pr=ze(([{defaultItemSize:t,listRefresh:e,sizes:n},{scrollTop:r},{scrollTargetReached:a,scrollToIndex:i},{didMount:o}])=>{const s=ne(!0),l=ne(0),c=ne(!0);return Re(K(o,Fe(l),xe(([d,u])=>!!u),en(!1)),s),Re(K(o,Fe(l),xe(([d,u])=>!!u),en(!1)),c),Qe(K(dt(e,o),Fe(s,n,t,c),xe(([[,d],u,{sizeTree:p},m,g])=>d&&(!Ze(p)||co(m))&&!u&&!g),Fe(l)),([,d])=>{qt(a,()=>{ke(c,!0)}),ho(4,()=>{qt(r,()=>{ke(s,!0)}),ke(i,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},tt(nn,ht,Lr,Tn),{singleton:!0});function ip(t,e){return Math.abs(t-e)<1.01}const kr="up",Ur="down",eN="none",tN={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},nN=0,Fr=ze(([{footerHeight:t,headerHeight:e,scrollBy:n,scrollContainerState:r,scrollTop:a,viewportHeight:i}])=>{const o=ne(!1),s=ne(!0),l=qe(),c=qe(),d=ne(4),u=ne(nN),p=Et(K(_o(K(ye(a),Ln(1),en(!0)),K(ye(a),Ln(1),en(!1),H_(100))),nt()),!1),m=Et(K(_o(K(n,en(!0)),K(n,en(!1),H_(200))),nt()),!1);Re(K(dt(ye(a),ye(u)),me(([T,h])=>T<=h),nt()),s),Re(K(s,un(50)),c);const g=At(K(dt(r,ye(i),ye(e),ye(t),ye(d)),tn((T,[{scrollHeight:h,scrollTop:v},R,C,N,y])=>{const D=v+R-h>-y,L={scrollHeight:h,scrollTop:v,viewportHeight:R};if(D){let Y,q;return v>T.state.scrollTop?(Y="SCROLLED_DOWN",q=T.state.scrollTop-v):(Y="SIZE_DECREASED",q=T.state.scrollTop-v||T.scrollTopDelta),{atBottom:!0,atBottomBecause:Y,scrollTopDelta:q,state:L}}let P;return L.scrollHeight>T.state.scrollHeight?P="SIZE_INCREASED":R<T.state.viewportHeight?P="VIEWPORT_HEIGHT_DECREASING":v<T.state.scrollTop?P="SCROLLING_UPWARDS":P="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:P,state:L}},tN),nt((T,h)=>T&&T.atBottom===h.atBottom))),f=Et(K(r,tn((T,{scrollHeight:h,scrollTop:v,viewportHeight:R})=>{if(ip(T.scrollHeight,h))return{changed:!1,jump:0,scrollHeight:h,scrollTop:v};{const C=h-(v+R)<1;return T.scrollTop!==v&&C?{changed:!0,jump:T.scrollTop-v,scrollHeight:h,scrollTop:v}:{changed:!0,jump:0,scrollHeight:h,scrollTop:v}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),xe(T=>T.changed),me(T=>T.jump)),0);Re(K(g,me(T=>T.atBottom)),o),Re(K(o,un(50)),l);const E=ne(Ur);Re(K(r,me(({scrollTop:T})=>T),nt(),tn((T,h)=>lt(m)?{direction:T.direction,prevScrollTop:h}:{direction:h<T.prevScrollTop?kr:Ur,prevScrollTop:h},{direction:Ur,prevScrollTop:0}),me(T=>T.direction)),E),Re(K(r,un(50),en(eN)),E);const S=ne(0);return Re(K(p,xe(T=>!T),en(0)),S),Re(K(a,un(100),Fe(p),xe(([T,h])=>!!h),tn(([T,h],[v])=>[h,v],[0,0]),me(([T,h])=>h-T)),S),{atBottomState:g,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:u,isAtBottom:o,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:f,scrollDirection:E,scrollVelocity:S}},tt(ht)),Aa="top",xa="bottom",op="none";function sp(t,e,n){return typeof t=="number"?n===kr&&e===Aa||n===Ur&&e===xa?t:0:n===kr?e===Aa?t.main:t.reverse:e===xa?t.main:t.reverse}function lp(t,e){var n;return typeof t=="number"?t:(n=t[e])!=null?n:0}const Co=ze(([{deviation:t,fixedHeaderHeight:e,headerHeight:n,scrollTop:r,viewportHeight:a}])=>{const i=qe(),o=ne(0),s=ne(0),l=ne(0),c=Et(K(dt(ye(r),ye(a),ye(n),ye(i,wr),ye(l),ye(o),ye(e),ye(t),ye(s)),me(([d,u,p,[m,g],f,E,S,T,h])=>{const v=d-T,R=E+S,C=Math.max(p-v,0);let N=op;const y=lp(h,Aa),D=lp(h,xa);return m-=T,m+=p+S,g+=p+S,g-=T,m>d+R-y&&(N=kr),g<d-C+u+D&&(N=Ur),N!==op?[Math.max(v-p-sp(f,Aa,N)-y,0),v-C-S+u+sp(f,xa,N)+D]:null}),xe(d=>d!=null),nt(wr)),[0,0]);return{increaseViewportBy:s,listBoundary:i,overscan:l,topListHeight:o,visibleRange:c}},tt(ht),{singleton:!0});function rN(t,e,n){if(Ia(e)){const r=ep(t,e);return[{index:Vt(e.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:t,offset:0,size:0}]}const vo={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Da(t,e,n,r,a,i){const{lastIndex:o,lastOffset:s,lastSize:l}=a;let c=0,d=0;if(t.length>0){c=t[0].offset;const f=t[t.length-1];d=f.offset+f.size}const u=n-o,p=s+u*l+(u-1)*r,m=c,g=p-d;return{bottom:d,firstItemIndex:i,items:dp(t,a,i),offsetBottom:g,offsetTop:c,top:m,topItems:dp(e,a,i),topListHeight:e.reduce((f,E)=>E.size+f,0),totalCount:n}}function cp(t,e,n,r,a,i){let o=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-o>=t)break;o++}const s=t+o,l=Ro(e,s),c=Array.from({length:s}).map((d,u)=>({data:i[u+l],index:u+l,offset:0,size:0}));return Da(c,[],s,a,n,r)}function dp(t,e,n){if(t.length===0)return[];if(!Ia(e))return t.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=t[0].index,a=t[t.length-1].index,i=[],o=Na(e.groupOffsetTree,r,a);let s,l=0;for(const c of t){(!s||s.end<c.index)&&(s=o.shift(),l=e.groupIndices.indexOf(s.start));let d;c.index===s.start?d={index:l,type:"group"}:d={groupIndex:l,index:c.index-(l+1)+n},i.push({...d,data:c.data,offset:c.offset,originalIndex:c.index,size:c.size})}return i}const Un=ze(([{data:t,firstItemIndex:e,gap:n,sizes:r,totalCount:a},i,{listBoundary:o,topListHeight:s,visibleRange:l},{initialTopMostItemIndex:c,scrolledToInitialItem:d},{topListHeight:u},p,{didMount:m},{recalcInProgress:g}])=>{const f=ne([]),E=ne(0),S=qe();Re(i.topItemsIndexes,f);const T=Et(K(dt(m,g,ye(l,wr),ye(a),ye(r),ye(c),d,ye(f),ye(e),ye(n),t),xe(([C,N,,y,,,,,,,D])=>{const L=D&&D.length!==y;return C&&!N&&!L}),me(([,,[C,N],y,D,L,P,Y,q,w,B])=>{const O=D,{offsetTree:M,sizeTree:k}=O,F=lt(E);if(y===0)return{...vo,totalCount:y};if(C===0&&N===0)return F===0?{...vo,totalCount:y}:cp(F,L,D,q,w,B||[]);if(Ze(k))return F>0?null:Da(rN(Ro(L,y),O,B),[],y,w,O,q);const H=[];if(Y.length>0){const le=Y[0],Se=Y[Y.length-1];let V=0;for(const U of Na(k,le,Se)){const W=U.value,te=Math.max(U.start,le),ce=Math.min(U.end,Se);for(let ie=te;ie<=ce;ie++)H.push({data:B==null?void 0:B[ie],index:ie,offset:V,size:W}),V+=W}}if(!P)return Da([],H,y,w,O,q);const X=Y.length>0?Y[Y.length-1]+1:0,ae=zv(M,C,N,X);if(ae.length===0)return null;const z=y-1,Q=va([],le=>{for(const Se of ae){const V=Se.value;let U=V.offset,W=Se.start;const te=V.size;if(V.offset<C){W+=Math.floor((C-V.offset+w)/(te+w));const ie=W-Se.start;U+=ie*te+ie*w}W<X&&(U+=(X-W)*te,W=X);const ce=Math.min(Se.end,z);for(let ie=W;ie<=ce&&!(U>=N);ie++)le.push({data:B==null?void 0:B[ie],index:ie,offset:U,size:te}),U+=te+w}});return Da(Q,H,y,w,O,q)}),xe(C=>C!==null),nt()),vo);Re(K(t,xe(co),me(C=>C==null?void 0:C.length)),a),Re(K(T,me(C=>C.topListHeight)),u),Re(u,s),Re(K(T,me(C=>[C.top,C.bottom])),o),Re(K(T,me(C=>C.items)),S);const h=At(K(T,xe(({items:C})=>C.length>0),Fe(a,t),xe(([{items:C},N])=>C[C.length-1].originalIndex===N-1),me(([,C,N])=>[C-1,N]),nt(wr),me(([C])=>C))),v=At(K(T,un(200),xe(({items:C,topItems:N})=>C.length>0&&C[0].originalIndex===N.length),me(({items:C})=>C[0].index),nt())),R=At(K(T,xe(({items:C})=>C.length>0),me(({items:C})=>{let N=0,y=C.length-1;for(;C[N].type==="group"&&N<y;)N++;for(;C[y].type==="group"&&y>N;)y--;return{endIndex:C[y].index,startIndex:C[N].index}}),nt(Z_)));return{endReached:h,initialItemCount:E,itemsRendered:S,listState:T,rangeChanged:R,startReached:v,topItemsIndexes:f,...p}},tt(nn,rp,Co,Pr,Lr,Fr,Tn,So),{singleton:!0}),up=ze(([{fixedFooterHeight:t,fixedHeaderHeight:e,footerHeight:n,headerHeight:r},{listState:a}])=>{const i=qe(),o=Et(K(dt(n,t,r,e,a),me(([s,l,c,d,u])=>s+l+c+d+u.offsetBottom+u.bottom)),0);return Re(ye(o),i),{totalListHeight:o,totalListHeightChanged:i}},tt(ht,Un),{singleton:!0}),aN=ze(([{viewportHeight:t},{totalListHeight:e}])=>{const n=ne(!1),r=Et(K(dt(n,t,e),xe(([a])=>a),me(([,a,i])=>Math.max(0,a-i)),un(0),nt()),0);return{alignToBottom:n,paddingTopAddition:r}},tt(ht,up),{singleton:!0}),_p=ze(()=>({context:ne(null)})),iN=({itemBottom:t,itemTop:e,locationParams:{align:n,behavior:r,...a},viewportBottom:i,viewportTop:o})=>e<o?{...a,align:n??"start",behavior:r}:t>i?{...a,align:n??"end",behavior:r}:null,pp=ze(([{gap:t,sizes:e,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:a,headerHeight:i,scrollingInProgress:o,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=qe();return Re(K(d,Fe(e,l,n,i,a,r,s),Fe(t),me(([[u,p,m,g,f,E,S,T],h])=>{const{align:v,behavior:R,calculateViewLocation:C=iN,done:N,...y}=u,D=tp(u,p,g-1),L=Mr(D,p.offsetTree,h)+f+E,P=L+Vt(p.sizeTree,D)[1],Y=T+E,q=T+m-S,w=C({itemBottom:P,itemTop:L,locationParams:{align:v,behavior:R,...y},viewportBottom:q,viewportTop:Y});return w?N&&qt(K(o,xe(B=>!B),Ln(lt(o)?1:2)),N):N&&N(),w}),xe(u=>u!==null)),c),{scrollIntoView:d}},tt(nn,ht,Lr,Un,Sn),{singleton:!0});function mp(t){return t?t==="smooth"?"smooth":"auto":!1}const oN=(t,e)=>typeof t=="function"?mp(t(e)):e&&mp(t),sN=ze(([{listRefresh:t,totalCount:e,fixedItemSize:n,data:r},{atBottomState:a,isAtBottom:i},{scrollToIndex:o},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:u},{context:p},{scrollIntoView:m}])=>{const g=ne(!1),f=qe();let E=null;function S(R){ke(o,{align:"end",behavior:R,index:"LAST"})}Qe(K(dt(K(ye(e),Ln(1)),l),Fe(ye(g),i,s,u),me(([[R,C],N,y,D,L])=>{let P=C&&D,Y="auto";return P&&(Y=oN(N,y||L),P=P&&!!Y),{followOutputBehavior:Y,shouldFollow:P,totalCount:R}}),xe(({shouldFollow:R})=>R)),({followOutputBehavior:R,totalCount:C})=>{E&&(E(),E=null),lt(n)?requestAnimationFrame(()=>{lt(d)("following output to ",{totalCount:C},Nt.DEBUG),S(R)}):E=qt(t,()=>{lt(d)("following output to ",{totalCount:C},Nt.DEBUG),S(R),E=null})});function T(R){const C=qt(a,N=>{R&&!N.atBottom&&N.notAtBottomBecause==="SIZE_INCREASED"&&!E&&(lt(d)("scrolling to bottom due to increased size",{},Nt.DEBUG),S("auto"))});setTimeout(C,100)}Qe(K(dt(ye(g),e,c),xe(([R,,C])=>R&&C),tn(({value:R},[,C])=>({refreshed:R===C,value:C}),{refreshed:!1,value:0}),xe(({refreshed:R})=>R),Fe(g,e)),([,R])=>{lt(s)&&T(R!==!1)}),Qe(f,()=>{T(lt(g)!==!1)}),Qe(dt(ye(g),a),([R,C])=>{R&&!C.atBottom&&C.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&S("auto")});const h=ne(null),v=qe();return Re(_o(K(ye(r),me(R=>{var C;return(C=R==null?void 0:R.length)!=null?C:0})),K(ye(e))),v),Qe(K(dt(K(v,Ln(1)),l),Fe(ye(h),s,u,p),me(([[R,C],N,y,D,L])=>C&&y&&(N==null?void 0:N({context:L,totalCount:R,scrollingInProgress:D}))),xe(R=>!!R),un(0)),R=>{E&&(E(),E=null),lt(n)?requestAnimationFrame(()=>{lt(d)("scrolling into view",{}),ke(m,R)}):E=qt(t,()=>{lt(d)("scrolling into view",{}),ke(m,R),E=null})}),{autoscrollToBottom:f,followOutput:g,scrollIntoViewOnChange:h}},tt(nn,Fr,Lr,Pr,Tn,Sn,ht,_p,pp)),lN=ze(([{data:t,firstItemIndex:e,gap:n,sizes:r},{initialTopMostItemIndex:a},{initialItemCount:i,listState:o},{didMount:s}])=>(Re(K(s,Fe(i),xe(([,l])=>l!==0),Fe(a,r,e,n,t),me(([[,l],c,d,u,p,m=[]])=>cp(l,c,d,u,p,m))),o),{}),tt(nn,Pr,Un,Tn),{singleton:!0}),cN=ze(([{didMount:t},{scrollTo:e},{listState:n}])=>{const r=ne(0);return Qe(K(t,Fe(r),xe(([,a])=>a!==0),me(([,a])=>({top:a}))),a=>{qt(K(n,Ln(1),xe(i=>i.items.length>1)),()=>{requestAnimationFrame(()=>{ke(e,a)})})}),{initialScrollTop:r}},tt(Tn,ht,Un),{singleton:!0}),gp=ze(([{scrollVelocity:t}])=>{const e=ne(!1),n=qe(),r=ne(!1);return Re(K(t,Fe(r,e,n),xe(([a,i])=>!!i),me(([a,i,o,s])=>{const{enter:l,exit:c}=i;if(o){if(c(a,s))return!1}else if(l(a,s))return!0;return o}),nt()),e),Qe(K(dt(e,t,n),Fe(r)),([[a,i,o],s])=>{a&&s&&s.change&&s.change(i,o)}),{isSeeking:e,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:t}},tt(Fr),{singleton:!0}),No=ze(([{scrollContainerState:t,scrollTo:e}])=>{const n=qe(),r=qe(),a=qe(),i=ne(!1),o=ne(void 0);return Re(K(dt(n,r),me(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),t),Re(K(e,Fe(r),me(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),a),{customScrollParent:o,useWindowScroll:i,windowScrollContainerState:n,windowScrollTo:a,windowViewportRect:r}},tt(ht)),dN=ze(([{sizeRanges:t,sizes:e},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:a},{didMount:i},{useWindowScroll:o,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=qe(),d=ne(void 0),u=ne(null),p=ne(null);return Re(s,u),Re(l,p),Qe(K(c,Fe(e,r,o,u,p,n)),([m,g,f,E,S,T,h])=>{const v=Wv(g.sizeTree);E&&S!==null&&T!==null&&(f=S.scrollTop-T.offsetTop),f-=h,m({ranges:v,scrollTop:f})}),Re(K(d,xe(co),me(uN)),a),Re(K(i,Fe(d),xe(([,m])=>m!==void 0),nt(),me(([,m])=>m.ranges)),t),{getState:c,restoreStateFrom:d}},tt(nn,ht,Pr,Tn,No));function uN(t){return{align:"start",index:0,offset:t.scrollTop}}const _N=ze(([{topItemsIndexes:t}])=>{const e=ne(0);return Re(K(e,xe(n=>n>=0),me(n=>Array.from({length:n}).map((r,a)=>a))),t),{topItemCount:e}},tt(Un));function Ep(t){let e=!1,n;return()=>(e||(e=!0,n=t()),n)}const pN=Ep(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),mN=ze(([{deviation:t,scrollBy:e,scrollingInProgress:n,scrollTop:r},{isAtBottom:a,isScrolling:i,lastJumpDueToItemResize:o,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:u,sizes:p},{log:m},{recalcInProgress:g}])=>{const f=At(K(l,Fe(o),tn(([,S,T,h],[{bottom:v,items:R,offsetBottom:C,totalCount:N},y])=>{const D=v+C;let L=0;return T===N&&S.length>0&&R.length>0&&(R[0].originalIndex===0&&S[0].originalIndex===0||(L=D-h,L!==0&&(L+=y))),[L,R,N,D]},[0,[],0,0]),xe(([S])=>S!==0),Fe(r,s,n,a,m,g),xe(([,S,T,h,,,v])=>!v&&!h&&S!==0&&T===kr),me(([[S],,,,,T])=>(T("Upward scrolling compensation",{amount:S},Nt.DEBUG),S))));function E(S){S>0?(ke(e,{behavior:"auto",top:-S}),ke(t,0)):(ke(t,0),ke(e,{behavior:"auto",top:-S}))}return Qe(K(f,Fe(t,i)),([S,T,h])=>{h&&pN()?ke(t,T-S):E(-S)}),Qe(K(dt(Et(i,!1),t,g),xe(([S,T,h])=>!S&&!h&&T!==0),me(([S,T])=>T),un(1)),E),Re(K(u,me(S=>({top:-S}))),e),Qe(K(c,Fe(p,d),me(([S,{groupIndices:T,lastSize:h,sizeTree:v},R])=>{function C(N){return N*(h+R)}if(T.length===0)return C(S);{let N=0;const y=Dr(v,0);let D=0,L=0;for(;D<S;){D++,N+=y;let P=T.length===L+1?1/0:T[L+1]-T[L]-1;D+P>S&&(N-=y,P=S-D+1),D+=P,N+=C(P),L++}return N}})),S=>{ke(t,S),requestAnimationFrame(()=>{ke(e,{top:S}),requestAnimationFrame(()=>{ke(t,0),ke(g,!1)})})}),{deviation:t}},tt(ht,Fr,Un,nn,Sn,So)),gN=ze(([t,e,n,r,a,i,o,s,l,c,d])=>({...t,...e,...n,...r,...a,...i,...o,...s,...l,...c,...d}),tt(Co,lN,Tn,gp,up,cN,aN,No,pp,Sn,_p)),fp=ze(([{data:t,defaultItemSize:e,firstItemIndex:n,fixedItemSize:r,gap:a,groupIndices:i,itemSize:o,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:u},{initialItemFinalLocationReached:p,initialTopMostItemIndex:m,scrolledToInitialItem:g},f,E,S,{listState:T,topItemsIndexes:h,...v},{scrollToIndex:R},C,{topItemCount:N},{groupCounts:y},D])=>(Re(v.rangeChanged,D.scrollSeekRangeChanged),Re(K(D.windowViewportRect,me(L=>L.visibleHeight)),f.viewportHeight),{data:t,defaultItemHeight:e,firstItemIndex:n,fixedItemHeight:r,gap:a,groupCounts:y,initialItemFinalLocationReached:p,initialTopMostItemIndex:m,scrolledToInitialItem:g,sizeRanges:s,topItemCount:N,topItemsIndexes:h,totalCount:d,...S,groupIndices:i,itemSize:o,listState:T,scrollToIndex:R,statefulTotalCount:c,trackItemSizes:u,...v,...D,...f,sizes:l,...E}),tt(nn,Pr,ht,dN,sN,Un,Lr,mN,_N,rp,gN));function EN(t,e){const n={},r={};let a=0;const i=t.length;for(;a<i;)r[t[a]]=1,a+=1;for(const o in e)Object.hasOwn(r,o)||(n[o]=e[o]);return n}const wa=typeof document<"u"?A.useLayoutEffect:A.useEffect;function Sp(t,e,n){const r=Object.keys(e.required||{}),a=Object.keys(e.optional||{}),i=Object.keys(e.methods||{}),o=Object.keys(e.events||{}),s=A.createContext({});function l(E,S){E.propsReady&&ke(E.propsReady,!1);for(const T of r){const h=E[e.required[T]];ke(h,S[T])}for(const T of a)if(T in S){const h=E[e.optional[T]];ke(h,S[T])}E.propsReady&&ke(E.propsReady,!0)}function c(E){return i.reduce((S,T)=>(S[T]=h=>{const v=E[e.methods[T]];ke(v,h)},S),{})}function d(E){return o.reduce((S,T)=>(S[T]=wv(E[e.events[T]]),S),{})}const u=A.forwardRef((E,S)=>{const{children:T,...h}=E,[v]=A.useState(()=>va(Lv(t),N=>{l(N,h)})),[R]=A.useState(Y_(d,v));wa(()=>{for(const N of o)N in h&&Qe(R[N],h[N]);return()=>{Object.values(R).map(uo)}},[h,R,v]),wa(()=>{l(v,h)}),A.useImperativeHandle(S,B_(c(v)));const C=n;return _.jsx(s.Provider,{value:v,children:n?_.jsx(C,{...EN([...r,...a,...o],h),children:T}):T})}),p=E=>{const S=A.useContext(s);return A.useCallback(T=>{ke(S[E],T)},[S,E])},m=E=>{const S=A.useContext(s)[E],T=A.useCallback(h=>Qe(S,h),[S]);return A.useSyncExternalStore(T,()=>lt(S),()=>lt(S))},g=E=>{const S=A.useContext(s)[E],[T,h]=A.useState(Y_(lt,S));return wa(()=>Qe(S,v=>{v!==T&&h(B_(v))}),[S,T]),T},f=A.version.startsWith("18")?m:g;return{Component:u,useEmitter:(E,S)=>{const T=A.useContext(s)[E];wa(()=>Qe(T,S),[S,T])},useEmitterValue:f,usePublisher:p}}const bp=A.createContext(void 0),Tp=A.createContext(void 0),hp=typeof document<"u"?A.useLayoutEffect:A.useEffect;function Oo(t){return"self"in t}function fN(t){return"body"in t}function Rp(t,e,n,r=tr,a,i){const o=A.useRef(null),s=A.useRef(null),l=A.useRef(null),c=A.useCallback(p=>{let m,g,f;const E=p.target;if(fN(E)||Oo(E)){const T=Oo(E)?E:E.defaultView;f=i?T.scrollX:T.scrollY,m=i?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight,g=i?T.innerWidth:T.innerHeight}else f=i?E.scrollLeft:E.scrollTop,m=i?E.scrollWidth:E.scrollHeight,g=i?E.offsetWidth:E.offsetHeight;const S=()=>{t({scrollHeight:m,scrollTop:Math.max(f,0),viewportHeight:g})};p.suppressFlushSync?S():En.flushSync(S),s.current!==null&&(f===s.current||f<=0||f===m-g)&&(s.current=null,e(!0),l.current&&(clearTimeout(l.current),l.current=null))},[t,e,i]);A.useEffect(()=>{const p=a||o.current;return r(a||o.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[o,c,n,r,a]);function d(p){const m=o.current;if(!m||(i?"offsetWidth"in m&&m.offsetWidth===0:"offsetHeight"in m&&m.offsetHeight===0))return;const g=p.behavior==="smooth";let f,E,S;Oo(m)?(E=Math.max(bn(m.document.documentElement,i?"width":"height"),i?m.document.documentElement.scrollWidth:m.document.documentElement.scrollHeight),f=i?m.innerWidth:m.innerHeight,S=i?window.scrollX:window.scrollY):(E=m[i?"scrollWidth":"scrollHeight"],f=bn(m,i?"width":"height"),S=m[i?"scrollLeft":"scrollTop"]);const T=E-f;if(p.top=Math.ceil(Math.max(Math.min(T,p.top),0)),ip(f,E)||p.top===S){t({scrollHeight:E,scrollTop:S,viewportHeight:f}),g&&e(!0);return}g?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,e(!0)},1e3)):s.current=null,i&&(p={behavior:p.behavior,left:p.top}),m.scrollTo(p)}function u(p){i&&(p={behavior:p.behavior,left:p.top}),o.current.scrollBy(p)}return{scrollByCallback:u,scrollerRef:o,scrollToCallback:d}}const yo="-webkit-sticky",Cp="sticky",Io=Ep(()=>{if(typeof document>"u")return Cp;const t=document.createElement("div");return t.style.position=yo,t.style.position===yo?yo:Cp});function Ao(t){return t}const SN=ze(()=>{const t=ne(s=>`Item ${s}`),e=ne(s=>`Group ${s}`),n=ne({}),r=ne(Ao),a=ne("div"),i=ne(tr),o=(s,l=null)=>Et(K(n,me(c=>c[s]),nt()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:o("EmptyPlaceholder"),FooterComponent:o("Footer"),GroupComponent:o("Group","div"),groupContent:e,HeaderComponent:o("Header"),HeaderFooterTag:a,ItemComponent:o("Item","div"),itemContent:t,ListComponent:o("List","div"),ScrollerComponent:o("Scroller","div"),scrollerRef:i,ScrollSeekPlaceholder:o("ScrollSeekPlaceholder"),TopItemListComponent:o("TopItemList")}}),bN=ze(([t,e])=>({...t,...e}),tt(fp,SN)),TN=({height:t})=>_.jsx("div",{style:{height:t}}),hN={overflowAnchor:"none",position:Io(),zIndex:1},vp={overflowAnchor:"none"},RN={...vp,display:"inline-block",height:"100%"},Np=A.memo(function({showTopList:t=!1}){const e=Le("listState"),n=Ut("sizeRanges"),r=Le("useWindowScroll"),a=Le("customScrollParent"),i=Ut("windowScrollContainerState"),o=Ut("scrollContainerState"),s=a||r?i:o,l=Le("itemContent"),c=Le("context"),d=Le("groupContent"),u=Le("trackItemSizes"),p=Le("itemSize"),m=Le("log"),g=Ut("gap"),f=Le("horizontalDirection"),{callbackRef:E}=Uv(n,p,u,t?tr:s,m,g,a,f,Le("skipAnimationFrameInResizeObserver")),[S,T]=A.useState(0);xo("deviation",w=>{S!==w&&T(w)});const h=Le("EmptyPlaceholder"),v=Le("ScrollSeekPlaceholder")||TN,R=Le("ListComponent"),C=Le("ItemComponent"),N=Le("GroupComponent"),y=Le("computeItemKey"),D=Le("isSeeking"),L=Le("groupIndices").length>0,P=Le("alignToBottom"),Y=Le("initialItemFinalLocationReached"),q=t?{}:{boxSizing:"border-box",...f?{display:"inline-block",height:"100%",marginLeft:S!==0?S:P?"auto":0,paddingLeft:e.offsetTop,paddingRight:e.offsetBottom,whiteSpace:"nowrap"}:{marginTop:S!==0?S:P?"auto":0,paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},...Y?{}:{visibility:"hidden"}};return!t&&e.totalCount===0&&h?_.jsx(h,{...ft(h,c)}):_.jsx(R,{...ft(R,c),"data-testid":t?"virtuoso-top-item-list":"virtuoso-item-list",ref:E,style:q,children:(t?e.topItems:e.items).map(w=>{const B=w.originalIndex,O=y(B+e.firstItemIndex,w.data,c);return D?A.createElement(v,{...ft(v,c),height:w.size,index:w.index,key:O,type:w.type||"item",...w.type==="group"?{}:{groupIndex:w.groupIndex}}):w.type==="group"?A.createElement(N,{...ft(N,c),"data-index":B,"data-item-index":w.index,"data-known-size":w.size,key:O,style:hN},d(w.index,c)):A.createElement(C,{...ft(C,c),...ON(C,w.data),"data-index":B,"data-item-group-index":w.groupIndex,"data-item-index":w.index,"data-known-size":w.size,key:O,style:f?RN:vp},L?l(w.index,w.groupIndex,w.data,c):l(w.index,w.data,c))})})}),CN={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},vN={outline:"none",overflowX:"auto",position:"relative"},Ma=t=>({height:"100%",position:"absolute",top:0,width:"100%",...t?{display:"flex",flexDirection:"column"}:{}}),NN={position:Io(),top:0,width:"100%",zIndex:1};function ft(t,e){if(typeof t!="string")return{context:e}}function ON(t,e){return{item:typeof t=="string"?void 0:e}}const yN=A.memo(function(){const t=Le("HeaderComponent"),e=Ut("headerHeight"),n=Le("HeaderFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,Le("skipAnimationFrameInResizeObserver")),a=Le("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null}),IN=A.memo(function(){const t=Le("FooterComponent"),e=Ut("footerHeight"),n=Le("HeaderFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,Le("skipAnimationFrameInResizeObserver")),a=Le("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null});function Op({useEmitter:t,useEmitterValue:e,usePublisher:n}){return A.memo(function({children:r,style:a,context:i,...o}){const s=n("scrollContainerState"),l=e("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=e("scrollerRef"),u=e("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:m,scrollToCallback:g}=Rp(s,c,l,d,void 0,u);return t("scrollTo",g),t("scrollBy",p),_.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:m,style:{...u?vN:CN,...a},tabIndex:0,...o,...ft(l,i),children:r})})}function yp({useEmitter:t,useEmitterValue:e,usePublisher:n}){return A.memo(function({children:r,style:a,context:i,...o}){const s=n("windowScrollContainerState"),l=e("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=e("totalListHeight"),u=e("deviation"),p=e("customScrollParent"),m=A.useRef(null),g=e("scrollerRef"),{scrollByCallback:f,scrollerRef:E,scrollToCallback:S}=Rp(s,c,l,g,p);return hp(()=>{var T;return E.current=p||((T=m.current)==null?void 0:T.ownerDocument.defaultView),()=>{E.current=null}},[E,p]),t("windowScrollTo",S),t("scrollBy",f),_.jsx(l,{ref:m,"data-virtuoso-scroller":!0,style:{position:"relative",...a,...d!==0?{height:d+u}:{}},...o,...ft(l,i),children:r})})}const AN=({children:t})=>{const e=A.useContext(bp),n=Ut("viewportHeight"),r=Ut("fixedItemHeight"),a=Le("alignToBottom"),i=Le("horizontalDirection"),o=A.useMemo(()=>G_(n,l=>bn(l,i?"width":"height")),[n,i]),s=Pn(o,!0,Le("skipAnimationFrameInResizeObserver"));return A.useEffect(()=>{e&&(n(e.viewportHeight),r(e.itemHeight))},[e,n,r]),_.jsx("div",{"data-viewport-type":"element",ref:s,style:Ma(a),children:t})},xN=({children:t})=>{const e=A.useContext(bp),n=Ut("windowViewportRect"),r=Ut("fixedItemHeight"),a=Le("customScrollParent"),i=z_(n,a,Le("skipAnimationFrameInResizeObserver")),o=Le("alignToBottom");return A.useEffect(()=>{e&&(r(e.itemHeight),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,r]),_.jsx("div",{"data-viewport-type":"window",ref:i,style:Ma(o),children:t})},DN=({children:t})=>{const e=Le("TopItemListComponent")||"div",n=Le("headerHeight"),r={...NN,marginTop:`${n}px`},a=Le("context");return _.jsx(e,{style:r,...ft(e,a),children:t})},wN=A.memo(function(t){const e=Le("useWindowScroll"),n=Le("topItemsIndexes").length>0,r=Le("customScrollParent"),a=Le("context");return _.jsxs(r||e?PN:LN,{...t,context:a,children:[n&&_.jsx(DN,{children:_.jsx(Np,{showTopList:!0})}),_.jsxs(r||e?xN:AN,{children:[_.jsx(yN,{}),_.jsx(Np,{}),_.jsx(IN,{})]})]})}),{Component:MN,useEmitter:xo,useEmitterValue:Le,usePublisher:Ut}=Sp(bN,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},wN),LN=Op({useEmitter:xo,useEmitterValue:Le,usePublisher:Ut}),PN=yp({useEmitter:xo,useEmitterValue:Le,usePublisher:Ut}),kN=MN;tt(fp,ze(()=>{const t=ne(c=>_.jsxs("td",{children:["Item $",c]})),e=ne(null),n=ne(c=>_.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=ne(null),a=ne(null),i=ne({}),o=ne(Ao),s=ne(tr),l=(c,d=null)=>Et(K(i,me(u=>u[c]),nt()),d);return{components:i,computeItemKey:o,context:e,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:a,fixedHeaderContent:r,itemContent:t,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}})),Io();const Ip={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},UN={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Ap,floor:La,max:Br,min:Do,round:xp}=Math;function Dp(t,e,n){return Array.from({length:e-t+1}).map((r,a)=>({data:n===null?null:n[a+t],index:a+t}))}function FN(t){return{...UN,items:t}}function Pa(t,e){return t&&t.width===e.width&&t.height===e.height}function BN(t,e){return t&&t.column===e.column&&t.row===e.row}const GN=ze(([{increaseViewportBy:t,listBoundary:e,overscan:n,visibleRange:r},{footerHeight:a,headerHeight:i,scrollBy:o,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:u},p,m,{didMount:g,propsReady:f},{customScrollParent:E,useWindowScroll:S,windowScrollContainerState:T,windowScrollTo:h,windowViewportRect:v},R])=>{const C=ne(0),N=ne(0),y=ne(Ip),D=ne({height:0,width:0}),L=ne({height:0,width:0}),P=qe(),Y=qe(),q=ne(0),w=ne(null),B=ne({column:0,row:0}),O=qe(),M=qe(),k=ne(!1),F=ne(0),H=ne(!0),X=ne(!1),ae=ne(!1);Qe(K(g,Fe(F),xe(([U,W])=>!!W)),()=>{ke(H,!1)}),Qe(K(dt(g,H,L,D,F,X),xe(([U,W,te,ce,,ie])=>U&&!W&&te.height!==0&&ce.height!==0&&!ie)),([,,,,U])=>{ke(X,!0),ho(1,()=>{ke(P,U)}),qt(K(c),()=>{ke(e,[0,0]),ke(H,!0)})}),Re(K(M,xe(U=>U!=null&&U.scrollTop>0),en(0)),N),Qe(K(g,Fe(M),xe(([,U])=>U!=null)),([,U])=>{U&&(ke(D,U.viewport),ke(L,U.item),ke(B,U.gap),U.scrollTop>0&&(ke(k,!0),qt(K(c,Ln(1)),W=>{ke(k,!1)}),ke(l,{top:U.scrollTop})))}),Re(K(D,me(({height:U})=>U)),u),Re(K(dt(ye(D,Pa),ye(L,Pa),ye(B,(U,W)=>U&&U.column===W.column&&U.row===W.row),ye(c)),me(([U,W,te,ce])=>({gap:te,item:W,scrollTop:ce,viewport:U}))),O),Re(K(dt(ye(C),r,ye(B,BN),ye(L,Pa),ye(D,Pa),ye(w),ye(N),ye(k),ye(H),ye(F)),xe(([,,,,,,,U])=>!U),me(([U,[W,te],ce,ie,we,be,Ie,,Ee,Te])=>{const{column:oe,row:j}=ce,{height:ee,width:de}=ie,{width:Ue}=we;if(Ie===0&&(U===0||Ue===0))return Ip;if(de===0){const it=Ro(Te,U),Mt=it+Math.max(Ie-1,0);return FN(Dp(it,Mt,be))}const $e=wp(Ue,de,oe);let et,We;Ee?W===0&&te===0&&Ie>0?(et=0,We=Ie-1):(et=$e*La((W+j)/(ee+j)),We=$e*Ap((te+j)/(ee+j))-1,We=Do(U-1,Br(We,$e-1)),et=Do(We,Br(0,et))):(et=0,We=-1);const Z=Dp(et,We,be),{bottom:re,top:he}=Mp(we,ce,ie,Z),ve=Ap(U/$e),Ye=ve*ee+(ve-1)*j-re;return{bottom:re,itemHeight:ee,items:Z,itemWidth:de,offsetBottom:Ye,offsetTop:he,top:he}})),y),Re(K(w,xe(U=>U!==null),me(U=>U.length)),C),Re(K(dt(D,L,y,B),xe(([U,W,{items:te}])=>te.length>0&&W.height!==0&&U.height!==0),me(([U,W,{items:te},ce])=>{const{bottom:ie,top:we}=Mp(U,ce,W,te);return[we,ie]}),nt(wr)),e);const z=ne(!1);Re(K(c,Fe(z),me(([U,W])=>W||U!==0)),z);const Q=At(K(dt(y,C),xe(([{items:U}])=>U.length>0),Fe(z),xe(([[U,W],te])=>{const ce=U.items[U.items.length-1].index===W-1;return(te||U.bottom>0&&U.itemHeight>0&&U.offsetBottom===0&&U.items.length===W)&&ce}),me(([[,U]])=>U-1),nt())),le=At(K(ye(y),xe(({items:U})=>U.length>0&&U[0].index===0),en(0),nt())),Se=At(K(ye(y),Fe(k),xe(([{items:U},W])=>U.length>0&&!W),me(([{items:U}])=>({endIndex:U[U.length-1].index,startIndex:U[0].index})),nt(Z_),un(0)));Re(Se,m.scrollSeekRangeChanged),Re(K(P,Fe(D,L,C,B),me(([U,W,te,ce,ie])=>{const we=ap(U),{align:be,behavior:Ie,offset:Ee}=we;let Te=we.index;Te==="LAST"&&(Te=ce-1),Te=Br(0,Te,Do(ce-1,Te));let oe=wo(W,ie,te,Te);return be==="end"?oe=xp(oe-W.height+te.height):be==="center"&&(oe=xp(oe-W.height/2+te.height/2)),Ee&&(oe+=Ee),{behavior:Ie,top:oe}})),l);const V=Et(K(y,me(U=>U.offsetBottom+U.bottom)),0);return Re(K(v,me(U=>({height:U.visibleHeight,width:U.visibleWidth}))),D),{customScrollParent:E,data:w,deviation:q,footerHeight:a,gap:B,headerHeight:i,increaseViewportBy:t,initialItemCount:N,itemDimensions:L,overscan:n,restoreStateFrom:M,scrollBy:o,scrollContainerState:s,scrollHeight:Y,scrollTo:l,scrollToIndex:P,scrollTop:c,smoothScrollTargetReached:d,totalCount:C,useWindowScroll:S,viewportDimensions:D,windowScrollContainerState:T,windowScrollTo:h,windowViewportRect:v,...m,gridState:y,horizontalDirection:ae,initialTopMostItemIndex:F,totalListHeight:V,...p,endReached:Q,propsReady:f,rangeChanged:Se,startReached:le,stateChanged:O,stateRestoreInProgress:k,...R}},tt(Co,ht,Fr,gp,Tn,No,Sn));function wp(t,e,n){return Br(1,La((t+n)/(La(e)+n)))}function Mp(t,e,n,r){const{height:a}=n;if(a===void 0||r.length===0)return{bottom:0,top:0};const i=wo(t,e,n,r[0].index);return{bottom:wo(t,e,n,r[r.length-1].index)+a,top:i}}function wo(t,e,n,r){const a=wp(t.width,n.width,e.column),i=La(r/a),o=i*n.height+Br(0,i-1)*e.row;return o>0?o+e.row:o}const YN=ze(()=>{const t=ne(u=>`Item ${u}`),e=ne({}),n=ne(null),r=ne("virtuoso-grid-item"),a=ne("virtuoso-grid-list"),i=ne(Ao),o=ne("div"),s=ne(tr),l=(u,p=null)=>Et(K(e,me(m=>m[u]),nt()),p),c=ne(!1),d=ne(!1);return Re(ye(d),c),{components:e,computeItemKey:i,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:o,itemClassName:r,ItemComponent:l("Item","div"),itemContent:t,listClassName:a,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),HN=ze(([t,e])=>({...t,...e}),tt(GN,YN)),qN=A.memo(function(){const t=at("gridState"),e=at("listClassName"),n=at("itemClassName"),r=at("itemContent"),a=at("computeItemKey"),i=at("isSeeking"),o=Ft("scrollHeight"),s=at("ItemComponent"),l=at("ListComponent"),c=at("ScrollSeekPlaceholder"),d=at("context"),u=Ft("itemDimensions"),p=Ft("gap"),m=at("log"),g=at("stateRestoreInProgress"),f=Ft("reportReadyState"),E=Pn(A.useMemo(()=>S=>{const T=S.parentElement.parentElement.scrollHeight;o(T);const h=S.firstChild;if(h){const{height:v,width:R}=h.getBoundingClientRect();u({height:v,width:R})}p({column:Pp("column-gap",getComputedStyle(S).columnGap,m),row:Pp("row-gap",getComputedStyle(S).rowGap,m)})},[o,u,p,m]),!0,!1);return hp(()=>{t.itemHeight>0&&t.itemWidth>0&&f(!0)},[t]),g?null:_.jsx(l,{className:e,ref:E,...ft(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},children:t.items.map(S=>{const T=a(S.index,S.data,d);return i?_.jsx(c,{...ft(c,d),height:t.itemHeight,index:S.index,width:t.itemWidth},T):A.createElement(s,{...ft(s,d),className:n,"data-index":S.index,key:T},r(S.index,S.data,d))})})}),VN=A.memo(function(){const t=at("HeaderComponent"),e=Ft("headerHeight"),n=at("headerFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,!1),a=at("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null}),zN=A.memo(function(){const t=at("FooterComponent"),e=Ft("footerHeight"),n=at("headerFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,!1),a=at("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null}),$N=({children:t})=>{const e=A.useContext(Tp),n=Ft("itemDimensions"),r=Ft("viewportDimensions"),a=Pn(A.useMemo(()=>i=>{r(i.getBoundingClientRect())},[r]),!0,!1);return A.useEffect(()=>{e&&(r({height:e.viewportHeight,width:e.viewportWidth}),n({height:e.itemHeight,width:e.itemWidth}))},[e,r,n]),_.jsx("div",{ref:a,style:Ma(!1),children:t})},WN=({children:t})=>{const e=A.useContext(Tp),n=Ft("windowViewportRect"),r=Ft("itemDimensions"),a=at("customScrollParent"),i=z_(n,a,!1);return A.useEffect(()=>{e&&(r({height:e.itemHeight,width:e.itemWidth}),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:e.viewportWidth}))},[e,n,r]),_.jsx("div",{ref:i,style:Ma(!1),children:t})},KN=A.memo(function({...t}){const e=at("useWindowScroll"),n=at("customScrollParent"),r=n||e?jN:QN,a=n||e?WN:$N,i=at("context");return _.jsx(r,{...t,...ft(r,i),children:_.jsxs(a,{children:[_.jsx(VN,{}),_.jsx(qN,{}),_.jsx(zN,{})]})})}),{useEmitter:Lp,useEmitterValue:at,usePublisher:Ft}=Sp(HN,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},KN),QN=Op({useEmitter:Lp,useEmitterValue:at,usePublisher:Ft}),jN=yp({useEmitter:Lp,useEmitterValue:at,usePublisher:Ft});function Pp(t,e,n){return e!=="normal"&&!(e!=null&&e.endsWith("px"))&&n(`${t} was not resolved to pixel value correctly`,e,Nt.WARN),e==="normal"?0:parseInt(e??"0",10)}function $(...t){return YR.twMerge(GR.clsx(t))}const XN=Tr.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),je=b.forwardRef(({className:t,variant:e,size:n,asChild:r=!1,...a},i)=>{const o=r?It.Slot:"button";return _.jsx(o,{className:$(XN({variant:e,size:n,className:t})),ref:i,...a})});je.displayName="Button";const kp=b.forwardRef(({className:t,...e},n)=>_.jsx("textarea",{className:$("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:n,...e}));kp.displayName="Textarea";function ZN({initialValue:t="",editingMessageId:e=null,placeholder:n="Type your message...",isStreaming:r=!1,disabled:a=!1,maxLength:i=2e4,onSend:o,onCancelEdit:s,className:l="",textareaClassName:c=""}){const[d,u]=A.useState(t),[p,m]=A.useTransition(),g=A.useRef(null);A.useEffect(()=>{u(t??""),g.current&&(g.current.style.height="auto",g.current.style.height=`${g.current.scrollHeight}px`)},[t,e]);const f=A.useCallback(()=>{const C=g.current;C&&(C.style.height="auto",C.style.height=`${C.scrollHeight}px`)},[]);A.useEffect(()=>{f()},[f]);const E=A.useCallback(async C=>{C&&C.preventDefault();const N=(d??"").trim();N&&m(()=>{try{const y=o(N);y&&typeof y.then=="function"?y.then(()=>{u(""),g.current&&(g.current.style.height="auto")}).catch(()=>{}):(u(""),g.current&&(g.current.style.height="auto"))}catch{}})},[d,o]),S=A.useCallback(C=>{u(C.target.value),g.current&&(g.current.style.height="auto",g.current.style.height=`${g.current.scrollHeight}px`)},[]),T=A.useCallback(C=>{C.key==="Enter"&&!C.shiftKey?(C.preventDefault(),E()):C.key==="Escape"&&e&&(C.preventDefault(),s==null||s())},[E,e,s]),R=`resize-none min-h-[44px] max-h-[20rem] w-full transition-colors ${e?"border-[hsl(var(--ring))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] dark:bg-[hsl(var(--card))] dark:text-[hsl(var(--card-foreground))]":""} ${c}`;return _.jsx("form",{onSubmit:C=>void E(C),className:`w-full ${l}`,children:_.jsxs("div",{className:"flex items-end gap-2",children:[_.jsx("div",{className:"flex-1",children:_.jsx(kp,{ref:g,value:d,onChange:S,onKeyDown:T,placeholder:e?"Edit your message...":n,className:R,disabled:a,maxLength:i,rows:1,spellCheck:!1,autoCorrect:"off"})}),_.jsx("div",{children:r?_.jsx(je,{type:"button",onClick:()=>{},size:"icon",variant:"outline",className:"shrink-0",title:"Stop generating",disabled:!0,children:_.jsx(Ce.Square,{size:16})}):_.jsx(je,{type:"submit",size:"icon",className:"shrink-0",title:e?"Save changes":"Send message",disabled:a||!d.trim()||p,children:_.jsx(Ce.Send,{size:16})})})]})})}const JN=A.memo(ZN),eO=Tr.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Up({className:t,variant:e,...n}){return _.jsx("div",{className:$(eO({variant:e}),t),...n})}function ue(t,e,{checkForDefaultPrevented:n=!0}={}){return function(a){if(t==null||t(a),n===!1||!a.defaultPrevented)return e==null?void 0:e(a)}}function tO(t,e){const n=b.createContext(e),r=i=>{const{children:o,...s}=i,l=b.useMemo(()=>s,Object.values(s));return _.jsx(n.Provider,{value:l,children:o})};r.displayName=t+"Provider";function a(i){const o=b.useContext(n);if(o)return o;if(e!==void 0)return e;throw new Error(`\`${i}\` must be used within \`${t}\``)}return[r,a]}function zt(t,e=[]){let n=[];function r(i,o){const s=b.createContext(o),l=n.length;n=[...n,o];const c=u=>{var S;const{scope:p,children:m,...g}=u,f=((S=p==null?void 0:p[t])==null?void 0:S[l])||s,E=b.useMemo(()=>g,Object.values(g));return _.jsx(f.Provider,{value:E,children:m})};c.displayName=i+"Provider";function d(u,p){var f;const m=((f=p==null?void 0:p[t])==null?void 0:f[l])||s,g=b.useContext(m);if(g)return g;if(o!==void 0)return o;throw new Error(`\`${u}\` must be used within \`${i}\``)}return[c,d]}const a=()=>{const i=n.map(o=>b.createContext(o));return function(s){const l=(s==null?void 0:s[t])||i;return b.useMemo(()=>({[`__scope${t}`]:{...s,[t]:l}}),[s,l])}};return a.scopeName=t,[r,nO(a,...e)]}function nO(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=r.reduce((s,{useScope:l,scopeName:c})=>{const u=l(i)[`__scope${c}`];return{...s,...u}},{});return b.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var _t=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},rO=b[" useInsertionEffect ".trim().toString()]||_t;function hn({prop:t,defaultProp:e,onChange:n=()=>{},caller:r}){const[a,i,o]=aO({defaultProp:e,onChange:n}),s=t!==void 0,l=s?t:a;{const d=b.useRef(t!==void 0);b.useEffect(()=>{const u=d.current;u!==s&&console.warn(`${r} is changing from ${u?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=b.useCallback(d=>{var u;if(s){const p=iO(d)?d(t):d;p!==t&&((u=o.current)==null||u.call(o,p))}else i(d)},[s,t,i,o]);return[l,c]}function aO({defaultProp:t,onChange:e}){const[n,r]=b.useState(t),a=b.useRef(n),i=b.useRef(e);return rO(()=>{i.current=e},[e]),b.useEffect(()=>{var o;a.current!==n&&((o=i.current)==null||o.call(i,n),a.current=n)},[n,a]),[n,r,i]}function iO(t){return typeof t=="function"}function Fp(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Mo(...t){return e=>{let n=!1;const r=t.map(a=>{const i=Fp(a,e);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let a=0;a<r.length;a++){const i=r[a];typeof i=="function"?i():Fp(t[a],null)}}}}function Ge(...t){return b.useCallback(Mo(...t),t)}var oO=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],De=oO.reduce((t,e)=>{const n=It.createSlot(`Primitive.${e}`),r=b.forwardRef((a,i)=>{const{asChild:o,...s}=a,l=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(l,{...s,ref:i})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function Bp(t,e){t&&ca.flushSync(()=>t.dispatchEvent(e))}function sO(t,e){return b.useReducer((n,r)=>e[n][r]??n,t)}var Ot=t=>{const{present:e,children:n}=t,r=lO(e),a=typeof n=="function"?n({present:r.isPresent}):b.Children.only(n),i=Ge(r.ref,cO(a));return typeof n=="function"||r.isPresent?b.cloneElement(a,{ref:i}):null};Ot.displayName="Presence";function lO(t){const[e,n]=b.useState(),r=b.useRef(null),a=b.useRef(t),i=b.useRef("none"),o=t?"mounted":"unmounted",[s,l]=sO(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const c=ka(r.current);i.current=s==="mounted"?c:"none"},[s]),_t(()=>{const c=r.current,d=a.current;if(d!==t){const p=i.current,m=ka(c);t?l("MOUNT"):m==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&p!==m?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,l]),_t(()=>{if(e){let c;const d=e.ownerDocument.defaultView??window,u=m=>{const f=ka(r.current).includes(CSS.escape(m.animationName));if(m.target===e&&f&&(l("ANIMATION_END"),!a.current)){const E=e.style.animationFillMode;e.style.animationFillMode="forwards",c=d.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=E)})}},p=m=>{m.target===e&&(i.current=ka(r.current))};return e.addEventListener("animationstart",p),e.addEventListener("animationcancel",u),e.addEventListener("animationend",u),()=>{d.clearTimeout(c),e.removeEventListener("animationstart",p),e.removeEventListener("animationcancel",u),e.removeEventListener("animationend",u)}}else l("ANIMATION_END")},[e,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:b.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function ka(t){return(t==null?void 0:t.animationName)||"none"}function cO(t){var r,a;let e=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var dO=b[" useId ".trim().toString()]||(()=>{}),uO=0;function $t(t){const[e,n]=b.useState(dO());return _t(()=>{n(r=>r??String(uO++))},[t]),t||(e?`radix-${e}`:"")}var Ua="Collapsible",[_O,I0]=zt(Ua),[pO,Lo]=_O(Ua),Gp=b.forwardRef((t,e)=>{const{__scopeCollapsible:n,open:r,defaultOpen:a,disabled:i,onOpenChange:o,...s}=t,[l,c]=hn({prop:r,defaultProp:a??!1,onChange:o,caller:Ua});return _.jsx(pO,{scope:n,disabled:i,contentId:$t(),open:l,onOpenToggle:b.useCallback(()=>c(d=>!d),[c]),children:_.jsx(De.div,{"data-state":ko(l),"data-disabled":i?"":void 0,...s,ref:e})})});Gp.displayName=Ua;var Yp="CollapsibleTrigger",Hp=b.forwardRef((t,e)=>{const{__scopeCollapsible:n,...r}=t,a=Lo(Yp,n);return _.jsx(De.button,{type:"button","aria-controls":a.contentId,"aria-expanded":a.open||!1,"data-state":ko(a.open),"data-disabled":a.disabled?"":void 0,disabled:a.disabled,...r,ref:e,onClick:ue(t.onClick,a.onOpenToggle)})});Hp.displayName=Yp;var Po="CollapsibleContent",mO=b.forwardRef((t,e)=>{const{forceMount:n,...r}=t,a=Lo(Po,t.__scopeCollapsible);return _.jsx(Ot,{present:n||a.open,children:({present:i})=>_.jsx(gO,{...r,ref:e,present:i})})});mO.displayName=Po;var gO=b.forwardRef((t,e)=>{const{__scopeCollapsible:n,present:r,children:a,...i}=t,o=Lo(Po,n),[s,l]=b.useState(r),c=b.useRef(null),d=Ge(e,c),u=b.useRef(0),p=u.current,m=b.useRef(0),g=m.current,f=o.open||s,E=b.useRef(f),S=b.useRef(void 0);return b.useEffect(()=>{const T=requestAnimationFrame(()=>E.current=!1);return()=>cancelAnimationFrame(T)},[]),_t(()=>{const T=c.current;if(T){S.current=S.current||{transitionDuration:T.style.transitionDuration,animationName:T.style.animationName},T.style.transitionDuration="0s",T.style.animationName="none";const h=T.getBoundingClientRect();u.current=h.height,m.current=h.width,E.current||(T.style.transitionDuration=S.current.transitionDuration,T.style.animationName=S.current.animationName),l(r)}},[o.open,r]),_.jsx(De.div,{"data-state":ko(o.open),"data-disabled":o.disabled?"":void 0,id:o.contentId,hidden:!f,...i,ref:d,style:{"--radix-collapsible-content-height":p?`${p}px`:void 0,"--radix-collapsible-content-width":g?`${g}px`:void 0,...t.style},children:f&&a})});function ko(t){return t?"open":"closed"}var EO=Gp;const qp=EO,Vp=Hp,Uo=new URL("data:video/mp2t;base64,aW1wb3J0IHsgcGFyc2UgfSBmcm9tICdtYXJrZWQnOwoKY29uc29sZS5sb2coJ1tNYXJrZG93bldvcmtlcl0gd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKLy8gU2lnbmFsIHRvIHRoZSBtYWluIHRocmVhZCB0aGF0IHRoZSB3b3JrZXIgaXMgcmVhZHkgdG8gcmVjZWl2ZSB3b3JrLgovLyBUaGlzIGhlbHBzIGNhbGxlcnMgYXZvaWQgcG9zdGluZyBtZXNzYWdlcyBiZWZvcmUgdGhlIHdvcmtlciBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nLgo7KHNlbGYgYXMgYW55KS5wb3N0TWVzc2FnZT8uKHsgX193b3JrZXJfcmVhZHk6IHRydWUgfSk7CgpzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXY6IE1lc3NhZ2VFdmVudCkgPT4gewogIGNvbnN0IHsgaWQsIHNvdXJjZSB9ID0gZXYuZGF0YSBhcyB7IGlkOiBzdHJpbmc7IHNvdXJjZTogc3RyaW5nIH07CiAgdHJ5IHsKICAgIGNvbnNvbGUubG9nKCdbTWFya2Rvd25Xb3JrZXJdIHJlY2VpdmVkIHdvcmsnLCBpZCwgJ3NvdXJjZUxlbicsIHNvdXJjZT8ubGVuZ3RoID8/IDApOwogICAgY29uc3QgaHRtbCA9IHBhcnNlKHNvdXJjZSk7CiAgICBjb25zb2xlLmxvZygnW01hcmtkb3duV29ya2VyXSBwYXJzZWQgaHRtbCBsZW5ndGgnLCBodG1sPy5sZW5ndGggPz8gMCwgJ2ZvcicsIGlkKTsKICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIEhUTUwgZm9yIHRoZSBjYWxsZXIgdG8gY2FjaGUgYW5kIHJlbmRlcgogICAgLy8gS2VlcCB0aGUgcGF5bG9hZCBzbWFsbDogc2VuZCBpZCArIGh0bWwKICAgIC8vIE1hcmtlZCBvdXRwdXQgc2hvdWxkIGJlIHNhZmUtZW5vdWdoIGZvciBpbnRlcm5hbCBVSXM7IGNhbGxlcnMgbWF5IGZ1cnRoZXIgc2FuaXRpemUgaWYgcmVxdWlyZWQuCiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWwgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBjb25zb2xlLmVycm9yKCdbTWFya2Rvd25Xb3JrZXJdIHJlbmRlciBlcnJvcicsIGVycik7CiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWw6IGA8cHJlPkVycm9yIHJlbmRlcmluZyBtYXJrZG93bjogJHtTdHJpbmcoZXJyKX08L3ByZT5gIH0pOwogIH0KfSk7Cg==",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:Qn&&Qn.tagName.toUpperCase()==="SCRIPT"&&Qn.src||new URL("index.umd.js",document.baseURI).href).toString();console.log("[MarkdownContent] worker url",Uo);const Fo=[];let Bo=!1,Gr={addEventListener:()=>{},removeEventListener:()=>{},postMessage:()=>{},terminate:()=>{}};function zp(t){Gr=t,Bo=!0;try{for(;Fo.length;){const e=Fo.shift();try{e&&e()}catch{}}}catch(e){console.warn("[MarkdownContent] markWorkerOnline notify failed",e)}}try{const t=new Worker(Uo,{type:"module"});zp(t)}catch(t){console.warn("[MarkdownContent] worker constructor failed, will try fetch+blob fallback",t),(async()=>{try{const e=await fetch(Uo),n=await e.text();if(e.ok||console.warn("[MarkdownContent] fetch worker non-ok",e.status,e.statusText),n.trim().startsWith("<")){console.warn("[MarkdownContent] worker fetch returned HTML; dev server may be redirecting. Aborting worker init.");return}const r=new Blob([n],{type:"application/javascript"}),a=URL.createObjectURL(r);try{const i=new Worker(a,{type:"module"});zp(i)}catch(i){console.error("[MarkdownContent] failed to initialize worker from blob",i)}}catch(e){console.error("[MarkdownContent] fetch worker failed",e)}})()}Gr.addEventListener("error",t=>{console.error("[MarkdownContent] worker error",t)});const Yr=new Map;function fO(t){const e=t.slice(0,64),n=t.length>64?t.slice(-64):"";return`${t.length}:${e}:${n}`}function Hr({content:t,className:e="",fallback:n=_.jsx("div",{"aria-busy":!0,children:"Rendering…"})}){const r=fO(t),[a,i]=A.useState(()=>Yr.get(r)??null);A.useEffect(()=>{if(Yr.has(r)){const g=Yr.get(r)??null;i(g);return}let s=!0,l=!1;const c=g=>{const f=g.data;if(!f||f.id!==r||!s)return;l=!0;const E=f.html??"";Yr.set(r,E),i(E)};Gr.addEventListener("message",c);const d=()=>{try{Gr.postMessage({id:r,source:t})}catch(g){console.error("[MarkdownContent] worker.postMessage threw",g)}};Bo?d():Fo.push(d);const p=((g,f)=>f?g>2e4?1e4:g>8e3?5e3:g>2e3?2e3:600:Math.min(1e4,1e3+Math.floor(g*.5)))(t.length,Bo),m=window.setTimeout(async()=>{if(!l){console.warn("[MarkdownContent] worker timeout (ms="+p+"), falling back to main-thread parse for",r);try{const g=await Promise.resolve().then(()=>CM),f=g&&(g.parse||g.default&&g.default.parse),E=f?f(t):"";Yr.set(r,E),s&&i(E)}catch(g){console.error("[MarkdownContent] fallback parse failed",g)}}},p);return()=>{s=!1,clearTimeout(m),Gr.removeEventListener("message",c)}},[t,r]);const o=A.useRef(null);return A.useEffect(()=>{if(!a)return;const s=o.current;if(!s)return;const l=Array.from(s.querySelectorAll("pre code"));if(!l.length)return;let c=null,d=!1;const u=(m,g)=>{for(const f of m){if(!f.isIntersecting)continue;const E=f.target;if(!c)Promise.resolve().then(()=>WU).then(S=>{if(!d){c=S.default||S;try{l.forEach(T=>{s.contains(T)&&c.highlightElement(T)})}catch{}}}).catch(()=>{});else try{c.highlightElement(E)}catch{}g.unobserve(E)}},p=new IntersectionObserver(u,{root:s,threshold:.1});return l.forEach(m=>p.observe(m)),()=>{d=!0,p.disconnect()}},[a]),a?_.jsx("div",{ref:o,className:$("markdown prose max-w-none break-words dark:prose-invert",e),dangerouslySetInnerHTML:{__html:a}}):_.jsx("div",{className:$("markdown prose max-w-none break-words dark:prose-invert",e),children:n})}async function $p(t,e){return await kt(t,{responseType:"blob",onDownloadProgress:r=>{try{if(e&&r.lengthComputable){const a=r.loaded/r.total;e(a)}}catch{}},maxBodyLength:1/0})}async function Wp(t,e){const n=await $p(`/chat/files/${t}/view`,e),r=URL.createObjectURL(n);window.open(r,"_blank"),setTimeout(()=>URL.revokeObjectURL(r),6e4)}async function SO(t,e){const n=await $p(`/chat/files/${t}/download`,e),r=URL.createObjectURL(n);let a=`file_${t}`;try{const o=await kt(`/chat/files/${t}`);a=(o==null?void 0:o.filename)??a}catch{}const i=document.createElement("a");i.href=r,i.download=a,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),6e4)}const bO=1,TO=1e6;let Go=0;function hO(){return Go=(Go+1)%Number.MAX_SAFE_INTEGER,Go.toString()}const Yo=new Map,Kp=t=>{if(Yo.has(t))return;const e=setTimeout(()=>{Yo.delete(t),qr({type:"REMOVE_TOAST",toastId:t})},TO);Yo.set(t,e)},RO=(t,e)=>{switch(e.type){case"ADD_TOAST":return{...t,toasts:[e.toast,...t.toasts].slice(0,bO)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(n=>n.id===e.toast.id?{...n,...e.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=e;return n?Kp(n):t.toasts.forEach(r=>{Kp(r.id)}),{...t,toasts:t.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(n=>n.id!==e.toastId)}}},Fa=[];let Ba={toasts:[]};function qr(t){Ba=RO(Ba,t),Fa.forEach(e=>{e(Ba)})}function CO({...t}){const e=hO(),n=a=>qr({type:"UPDATE_TOAST",toast:{...a,id:e}}),r=()=>qr({type:"DISMISS_TOAST",toastId:e});return qr({type:"ADD_TOAST",toast:{...t,id:e,open:!0,onOpenChange:a=>{a||r()}}}),{id:e,dismiss:r,update:n}}function Qp(){const[t,e]=b.useState(Ba);return b.useEffect(()=>(Fa.push(e),()=>{const n=Fa.indexOf(e);n>-1&&Fa.splice(n,1)}),[t]),{...t,toast:CO,dismiss:n=>qr({type:"DISMISS_TOAST",toastId:n})}}const Ga="prose prose-sm max-w-none break-words dark:prose-invert prose-headings:break-words prose-p:break-words prose-li:break-words prose-td:break-words prose-th:break-words prose-a:break-all prose-code:break-words prose-blockquote:break-words";function vO({className:t}){const[e,n]=A.useState(0);return A.useEffect(()=>{const r=setInterval(()=>n(a=>(a+1)%4),500);return()=>clearInterval(r)},[]),_.jsxs("span",{"aria-live":"polite",className:$("inline-block text-xs opacity-70 ml-1",t),children:["Is thinking",".".repeat(e)]})}const jp=A.memo(function({message:e,messageIndex:n,isStreamingMessage:r=!1,streamingDebounceMs:a=40,isEditing:i=!1,showActions:o=!0,showTimestamp:s=!0,showAgentName:l=!0,layoutSize:c="desktop",truncateToolMessages:d=!0,toolMessagePreviewLength:u=200,truncateUserMessages:p=!0,userMessagePreviewLength:m=200,customStyles:g={},onEdit:f,onRegenerate:E,onCancelEdit:S,onCopy:T}){const[h,v]=A.useState(!1),[R,C]=A.useState(!1),[N,y]=A.useState(!1),[D,L]=A.useState(!1),{currentThreadId:P}=Ra(),{toast:Y}=Qp(),[q,w]=A.useState({}),B=c==="phone"||c==="half-screen",O=e.role,M=O==="tool",k=A.useMemo(()=>{switch(O){case"user":return"text-[hsl(var(--chat-bubble-user-text))]";case"assistant":return"text-[hsl(var(--chat-bubble-ai-text))]";case"tool":return"text-secondary-foreground";case"system":return"text-muted-foreground";default:return"text-[hsl(var(--chat-bubble-ai-text))]"}},[O]),F=A.useMemo(()=>NO(e.content),[e.content]),H=A.useMemo(()=>xO(e.content),[e.content]),X=A.useMemo(()=>e.content.filter(be=>be.type==="image_url"),[e.content]),ae=A.useMemo(()=>e.content.filter(be=>be.type==="file"),[e.content]),z=wO(F,r?a:0),Q=async()=>{try{const be=M?rr(e.content):F;await navigator.clipboard.writeText(be),v(!0),setTimeout(()=>v(!1),2e3),T==null||T(be)}catch(be){console.error("Failed to copy:",be)}},le=()=>{if(!f)return;const be=M?rr(e.content):F;f(e.id,be)},Se=()=>E==null?void 0:E(n),V=async(be,Ie,Ee)=>{try{const Te=String(Ie.url??"");try{const oe=Te.match(/\/chat\/files\/(\d+)(?:\/(view|download))?/);if(oe){be.preventDefault();const j=oe[1],ee=oe[2]||"view";if(q[Ee])return;w(de=>({...de,[Ee]:!0}));try{const de=Y({title:ee==="download"?"Downloading file...":"Opening file...",description:"",open:!0}),Ue=$e=>{de.update({id:de.id,description:`Progress: ${($e*100).toFixed(0)}%`})};ee==="download"?await SO(j,Ue):await Wp(j,Ue),de.update({id:de.id,title:"Done",description:void 0})}catch(de){console.error("Failed to fetch server file:",de),Y({title:"Failed to fetch file",description:String(de),open:!0})}finally{w(de=>({...de,[Ee]:!1}))}return}}catch{}if(Te.startsWith("data:")){if(be.preventDefault(),q[Ee])return;w(Ue=>({...Ue,[Ee]:!0}));const j=Te.split(",")[1]??"";let ee=Ie.mimeType??"application/octet-stream";const de=Te.substring(5,Te.indexOf(","));de&&de.includes(";")?ee=de.split(";")[0]||ee:de&&!de.includes(";")&&(ee=de||ee);try{const Ue=Y({title:"Uploading file...",description:"",open:!0}),$e=await Jt.uploadFile(j,Ie.name??"file",ee,P??void 0);if($e&&$e.id){const et=$e.id;await Wp(et,We=>Ue.update({id:Ue.id,description:`Progress: ${(We*100).toFixed(0)}%`})),Ue.update({id:Ue.id,title:"Done",description:void 0})}}catch(Ue){console.error("Failed to upload file for viewing:",Ue),Y({title:"Failed to upload file",description:String(Ue),open:!0})}finally{w(Ue=>({...Ue,[Ee]:!1}))}}}finally{w(Te=>({...Te,[Ee]:!1}))}},U=()=>{const Ie=$(B?"h-3 w-3":"h-4 w-4","opacity-60 flex-shrink-0",k);switch(O){case"user":return _.jsx(Ce.User,{className:Ie});case"assistant":return _.jsx(Ce.Bot,{className:Ie});case"tool":return _.jsx(Ce.Wrench,{className:Ie});default:return _.jsx(Ce.Bot,{className:Ie})}},W=()=>{const be="group relative mb-4 flex w-full";switch(O){case"user":return $(be,"justify-end");case"assistant":case"tool":case"system":return $(be,"justify-start");default:return be}},te=()=>{const be=$("rounded-lg px-4 py-3 relative transition-all duration-200 min-w-0 max-w-full break-words",B&&"px-3 py-2 text-sm");switch(O){case"user":return $(be,"w-full md:max-w-[95%]","bg-[hsl(var(--chat-bubble-user))] text-[hsl(var(--chat-bubble-user-text))]","border border-transparent");case"assistant":return $(be,"w-full md:max-w-[95%]","bg-[hsl(var(--chat-bubble-ai))] text-[hsl(var(--chat-bubble-ai-text))]","border border-border/60 dark:border-border/40");case"tool":return $(be,"w-full md:max-w-[95%] bg-secondary/50 text-secondary-foreground border border-dashed");case"system":return $(be,"w-full md:max-w-[85%] bg-accent/40 text-muted-foreground border");default:return $(be,"w-full md:max-w-[95%]","bg-[hsl(var(--chat-bubble-ai))] text-[hsl(var(--chat-bubble-ai-text))]","border border-border/60 dark:border-border/40")}},ce=be=>{if(!be)return"";try{return new Date(be).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return""}},ie=()=>{if(e.model==="reflection"){const Ee=F.trim(),Te=Ho(Ee);if(Te&&typeof Te=="object")return _.jsx(MO,{data:Te})}if(M&&H.name==="get_issues"){const Ee=e.content.find(j=>j.type==="tool_result"),Te=(Ee==null?void 0:Ee.output)??rr(e.content),oe=Jp(Te);if(oe)return _.jsx(LO,{issues:oe})}if(M&&!N){const Ee=rr(e.content).slice(0,80).replace(/\s+/g," ");return _.jsx("div",{className:$("text-xs font-mono opacity-70 flex items-center justify-between gap-2 text-current",B&&"text-[10px]"),children:_.jsxs("span",{className:"truncate max-w-full text-current",children:[Ee,Ee.length>=80?"…":""]})})}if(M&&d){const Ee=rr(e.content),Te=Ee.length>u;return _.jsx(qp,{open:R,onOpenChange:C,children:_.jsxs("div",{className:"font-mono text-sm text-current",children:[_.jsx("pre",{className:$("whitespace-pre-wrap break-words text-current",B&&"text-xs"),children:Te&&!R?Ee.substring(0,u)+"...":Ee}),Te&&_.jsx(Vp,{asChild:!0,children:_.jsx(je,{variant:"ghost",size:"sm",className:"h-6 text-xs text-current",children:R?_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronUp,{className:"h-3 w-3 mr-1"}),"Show less"]}):_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronDown,{className:"h-3 w-3 mr-1"}),"Show more (",Ee.length-u," chars)"]})})})]})})}if(M&&N&&!d){const Ee=PO(e.content);if(Ee&&OO(Ee))return _.jsx(Hr,{content:Ee.trim()});const Te=rr(e.content);return _.jsx("div",{className:"font-mono text-sm text-current",children:_.jsx("pre",{className:$("whitespace-pre-wrap break-words text-current",B&&"text-xs"),children:Te})})}const be=X.length>0&&O!=="tool",Ie=ae.length>0&&O!=="tool";return _.jsxs("div",{children:[r?_.jsxs("div",{className:"relative",children:[(()=>{const Ee=Ho(z);return Ee!==null?_.jsx(Xp,{data:Ee}):_.jsx(Hr,{content:IO(yO(z))})})(),_.jsx(vO,{className:$(k,B?"text-xs":"text-sm")})]}):(()=>{const Ee=Ho(F.trim());if(Ee!==null)return _.jsx(Xp,{data:Ee});if(O==="user"&&p){const Te=F.trim();if(Te.length>m)return _.jsxs(qp,{open:D,onOpenChange:L,children:[_.jsx("div",{className:$("text-sm text-[hsl(var(--chat-bubble-user-text))]",B&&"text-xs"),children:D?_.jsx(Hr,{content:Te}):_.jsxs("pre",{className:$("font-sans whitespace-pre-wrap break-words bg-transparent p-0 m-0 text-[hsl(var(--chat-bubble-user-text))]",B&&"text-xs"),children:[Te.substring(0,m),"..."]})}),_.jsx(Vp,{asChild:!0,children:_.jsx(je,{variant:"ghost",size:"sm",className:"h-6 text-xs !text-[hsl(var(--chat-bubble-user-text))]",children:D?_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronUp,{className:"h-3 w-3 mr-1"})," Show less"]}):_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronDown,{className:"h-3 w-3 mr-1"})," Show more (",Te.length-m," chars)"]})})})]})}return _.jsx(Hr,{content:F.trim()})})(),be&&_.jsx("div",{className:"mt-2 grid grid-cols-2 gap-2",children:X.map((Ee,Te)=>_.jsxs("div",{className:"relative border rounded overflow-hidden",children:[_.jsx("img",{src:Ee.url,alt:Ee.alt??"image",className:"w-full h-auto"}),_.jsxs("div",{className:"absolute top-1 right-1 bg-background/70 rounded px-1 py-0.5 text-[10px] flex items-center gap-1",children:[_.jsx(Ce.Image,{className:"h-3 w-3"}),_.jsx("span",{children:"image"})]})]},Te))}),Ie&&_.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:ae.map((Ee,Te)=>{const oe=Ee,j=oe.name||"file";return _.jsxs("a",{href:oe.url,download:j,onClick:ee=>V(ee,oe,Te),target:"_blank",rel:"noreferrer",className:$("inline-flex items-center gap-2 rounded px-2 py-1 text-xs","bg-gray-100 border border-gray-200 hover:bg-gray-200","dark:bg-background/10 dark:border-border/30 dark:hover:bg-background/20","text-current"),title:j,children:[_.jsx("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-gray-400 dark:bg-gray-500"}),q[Te]?_.jsxs("span",{className:"flex items-center gap-2",children:[_.jsx(Ce.Loader,{className:"h-4 w-4 animate-spin"}),_.jsxs("span",{className:"truncate max-w-[140px]",children:[j," (processing)"]})]}):_.jsx("span",{className:"truncate max-w-[180px]",children:j})]},Te)})})]})},we=A.useMemo(()=>DO(e),[e]);return _.jsx("div",{className:$(W(),g.container),children:_.jsxs("div",{className:$(te(),g.content),children:[(s||l||M)&&_.jsxs("div",{className:$("flex items-center justify-between mb-2 pb-2 border-b border-current/10",B&&"mb-1 pb-1",k,g.header),children:[_.jsxs("div",{className:"flex items-center gap-2",children:[U(),l&&we&&_.jsx("span",{className:$("font-medium",B?"text-xs":"text-sm"),children:we}),M&&H.name&&_.jsxs(Up,{variant:"outline",className:$("text-xs flex items-center gap-1 cursor-pointer",k,"border border-current/40",B&&"text-xs h-4"),onClick:()=>y(be=>!be),children:[_.jsx("span",{children:H.name}),_.jsx("span",{className:"inline-flex items-center",children:N?_.jsx(Ce.ChevronUp,{className:"h-3 w-3"}):_.jsx(Ce.ChevronDown,{className:"h-3 w-3"})})]}),M&&!H.name&&_.jsx(je,{variant:"ghost",size:"sm",className:$("h-6 px-1",k,"hover:bg-foreground/10"),onClick:()=>y(be=>!be),children:_.jsxs("span",{className:"text-xs flex items-center gap-1",children:["Tool Output ",N?_.jsx(Ce.ChevronUp,{className:"h-3 w-3"}):_.jsx(Ce.ChevronDown,{className:"h-3 w-3"})]})})]}),_.jsxs("div",{className:"flex items-center gap-2",children:[s&&_.jsx("span",{className:$("text-xs opacity-60",k,B&&"text-xs"),children:ce(e.createdAt)}),o&&!i&&_.jsxs("div",{className:$("opacity-0 group-hover:opacity-100 transition-opacity","flex items-center gap-1",g.actions),children:[_.jsx(je,{variant:"ghost",size:"sm",onClick:Q,className:$("h-6 w-6 p-0 hover:bg-foreground/10",k,B&&"h-5 w-5"),children:_.jsx(Ce.Copy,{className:$(h?"text-success":k,B?"h-3 w-3":"h-4 w-4")})}),O==="user"&&f&&_.jsx(je,{variant:"ghost",size:"sm",onClick:le,className:$("h-6 w-6 p-0 hover:bg-foreground/10",k,B&&"h-5 w-5"),children:_.jsx(Ce.Edit,{className:$(k,B?"h-3 w-3":"h-4 w-4")})}),O==="assistant"&&E&&_.jsx(je,{variant:"ghost",size:"sm",onClick:Se,className:$("h-6 w-6 p-0 hover:bg-foreground/10",k,B&&"h-5 w-5"),children:_.jsx(Ce.RotateCcw,{className:$(k,B?"h-3 w-3":"h-4 w-4")})})]})]})]}),_.jsx("div",{className:"relative",children:ie()}),M&&N&&(H.toolCallId||H.name)&&_.jsxs("div",{className:$("mt-2 pt-2 border-t border-current/10 text-xs opacity-60",B&&"text-xs"),children:[H.name&&_.jsxs("div",{children:["Function: ",H.name]}),H.toolCallId&&_.jsxs("div",{children:["Call ID: ",H.toolCallId]})]}),!(s||l||M)&&o&&!i&&_.jsxs("div",{className:$("absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity","flex items-center gap-1",g.actions),children:[_.jsx(je,{variant:"ghost",size:"sm",onClick:Q,className:$("h-6 w-6 p-0 hover:bg-background/50 text-current",B&&"h-5 w-5"),children:_.jsx(Ce.Copy,{className:$(h?"text-success":"text-current",B?"h-3 w-3":"h-4 w-4")})}),O==="user"&&f&&_.jsx(je,{variant:"ghost",size:"sm",onClick:le,className:$("h-6 w-6 p-0 hover:bg-background/50 text-current",B&&"h-5 w-5"),children:_.jsx(Ce.Edit,{className:$("text-current",B?"h-3 w-3":"h-4 w-4")})}),O==="assistant"&&E&&_.jsx(je,{variant:"ghost",size:"sm",onClick:Se,className:$("h-6 w-6 p-0 hover:bg-background/50 text-current",B&&"h-5 w-5"),children:_.jsx(Ce.RotateCcw,{className:$("text-current",B?"h-3 w-3":"h-4 w-4")})})]})]})})},(t,e)=>t.message.id===e.message.id&&t.message.content===e.message.content);function NO(t){const e=t.filter(n=>n.type==="text").map(n=>n.text).join("");return e||JSON.stringify(t)}function OO(t){return t.includes(`
33
+ `)}const fv={messages:[],assemblingId:null,lastCheckpointId:null,toolIndex:{},lastBranch:null};function Sv(t,e){var n,r;switch(e.type){case"reset":return{messages:oo(((n=e.payload)==null?void 0:n.messages)??[]),assemblingId:null,lastCheckpointId:null,toolIndex:{},lastBranch:null};case"seed":return{...t,messages:oo(e.payload.messages)};case"prepend":{const a=oo(e.payload.messages);if(!a.length)return t;const i=new Set(t.messages.map(s=>s.id)),o=a.filter(s=>!i.has(s.id));return o.length?{...t,messages:[...o,...t.messages]}:t}case"user_message":{const a=e.payload.message;if(t.assemblingId){const i=t.messages.findIndex(o=>o.id===t.assemblingId&&o.role==="assistant");if(i>=0){const o=t.messages.slice(0,i),s=t.messages.slice(i);return{...t,messages:[...o,a,...s]}}}return{...t,messages:[...t.messages,a]}}case"event":{const a=e.payload.ev;if(a.type==="message_start"&&a.role==="assistant"){const i=a.id,o=Rv(a.model),s={id:i,role:"assistant",name:o||void 0,model:a.model,createdAt:new Date().toISOString(),content:[]};return{...t,assemblingId:i,messages:[...t.messages,s]}}if(a.type==="token"){const i=t.assemblingId??so(t.messages);return i?{...t,messages:bv(t.messages,i,a.content)}:t}if(a.type==="message_delta"){const i=t.assemblingId??so(t.messages);return i?{...t,messages:k_(t.messages,i,a.delta)}:t}if(a.type==="message_end"){const i=t.assemblingId??so(t.messages);if(!i)return{...t,assemblingId:null};const o=t.messages,s=o.findIndex(l=>l.id===i&&l.role==="assistant");if(s>=0&&!((r=o[s].content)==null?void 0:r.some(d=>{var u;return(d==null?void 0:d.type)==="text"&&((u=d.text)==null?void 0:u.trim())}))){const d=[...o.slice(0,s),...o.slice(s+1)];return{...t,assemblingId:null,messages:d}}return{...t,assemblingId:null}}if(a.type==="tool_start"){const i=`tool-${a.id}`,o={type:"tool_call",id:a.id,name:a.name,args:a.args},s={id:i,role:"tool",name:a.name,createdAt:new Date().toISOString(),content:[o]};return{...t,messages:[...t.messages,s],toolIndex:{...t.toolIndex,[a.id]:i}}}if(a.type==="tool_result"){const i=t.toolIndex[a.id]??`tool-${a.id}`,o={type:"tool_result",toolCallId:a.id,output:a.output,error:a.error},s=t.messages.find(d=>d.id===i),l={id:i,role:"tool",content:[o],createdAt:new Date().toISOString()},c=s?k_(t.messages,i,[o]):[...t.messages,l];return{...t,messages:c}}if(a.type==="checkpoint"){const i=hv(t.messages,a.checkpointId);return{...t,lastCheckpointId:a.checkpointId,messages:i}}if(a.type==="branch"){const i=a.checkpointId??t.lastCheckpointId;return{...t,lastBranch:a,lastCheckpointId:i??null}}if(a.type==="error"){const i={id:`err-${Date.now()}`,role:"system",content:[{type:"text",text:`Error: ${a.message}`}],createdAt:new Date().toISOString()};return{...t,messages:[...t.messages,i]}}return t}default:return t}}function P_(t=[]){const[e,n]=A.useReducer(Sv,{...fv,messages:t}),r=A.useCallback(i=>{n({type:"event",payload:{ev:i}})},[]),a=A.useMemo(()=>({reset:i=>n({type:"reset",payload:{messages:i}}),seed:i=>n({type:"seed",payload:{messages:i}}),prepend:i=>n({type:"prepend",payload:{messages:i}}),pushUser:i=>n({type:"user_message",payload:{message:i}}),onEvent:r}),[r]);return{state:e,dispatch:n,...a}}function oo(t){return t.filter(e=>{if(e.role!=="assistant")return!0;const n=(e.content||[]).some(a=>{var i;return a&&a.type==="text"&&((i=a.text)==null?void 0:i.trim())}),r=(e.content||[]).some(a=>a&&a.type==="image_url");return!!(n||r)})}function so(t){for(let e=t.length-1;e>=0;e--)if(t[e].role==="assistant")return t[e].id;return null}function bv(t,e,n){return t.map(r=>{if(r.id!==e)return r;const a=r.content.slice(),i=a[a.length-1];return i&&i.type==="text"?i.text+=n:a.push({type:"text",text:n}),{...r,content:a}})}function k_(t,e,n){return t.map(r=>r.id===e?{...r,content:Tv(r.content,n)}:r)}function Tv(t,e){const n=t.slice();for(const r of e)if(r.type==="text"){const a=n[n.length-1];(a==null?void 0:a.type)==="text"?a.text+=r.text:n.push({type:"text",text:r.text})}else n.push(r);return n}function hv(t,e){for(let n=t.length-1;n>=0;n--)if(t[n].role==="assistant"){const a={...t[n],checkpointId:e};return[...t.slice(0,n),a,...t.slice(n+1)]}return t}function Rv(t){if(!t)return null;const e=t.split("/");return e[e.length-1]||null}function Cv(t,e){const n=t==null?void 0:t.checkpoints,r=Array.isArray(n)?n.slice():n?Object.values(n):[],a=o=>o&&typeof o=="object"&&typeof o.checkpointId=="string"&&typeof o.createdAt=="string",i=r.filter(a).map(o=>({checkpointId:o.checkpointId,checkpointNs:o.checkpointNs??"",createdAt:o.createdAt,messagesLen:o.messagesLen??0,preview:o.preview??"",role:o.role??null,parentId:o.parentId??null,editedMessageId:o.editedMessageId??null,branchLabel:o.branchLabel??null}));return{threadId:(t==null?void 0:t.threadId)??e??null,checkpoints:i}}async function lo(t){return await new Promise((e,n)=>{const r=new FileReader;r.onload=()=>e(String(r.result)),r.onerror=a=>n(a),r.readAsDataURL(t)})}async function vv(t){return await new Promise((e,n)=>{const r=new FileReader;r.onload=()=>{try{const a=r.result,i=new Uint8Array(a);let o="";const s=i.byteLength;for(let l=0;l<s;l++)o+=String.fromCharCode(i[l]);e(btoa(o))}catch(a){n(a)}},r.onerror=a=>n(a),r.readAsArrayBuffer(t)})}async function Nv(t,e,n){try{return await lo(e)}catch{return null}}async function Ov(t,e=[],n,r,a,i){const o=[],s=[];for(const l of e){let c=null;try{c=await Nv(t,l,i)}catch{c=null}if(l.type&&l.type.startsWith("image/"))if(c){const d={type:"image_url",url:c,mimeType:l.type,alt:l.name};o.push(d)}else try{const d=await lo(l),u={type:"image_url",url:String(d),mimeType:l.type,alt:l.name};o.push(u)}catch{}else if(c){const d={type:"file",url:c,mimeType:l.type||void 0,name:l.name,size:l.size};o.push(d)}else try{const d=await lo(l),u={type:"file",url:String(d),mimeType:l.type||void 0,name:l.name,size:l.size};o.push(u)}catch{}try{const d=await vv(l);s.push({filename:l.name,data:d,mime_type:l.type||"application/octet-stream"})}catch{}}return{contentParts:o,filesInfo:s}}const U_=A.createContext(null);function Ar({children:t,apiConfig:e,onError:n,onThreadChange:r,initialThreadId:a=null,historyPageSize:i,autoLoadInitial:o=!0,enableFileAgentRouting:s=!1,fileAgentId:l="invoice_reader"}){const c=Jt;A.useEffect(()=>{e&&c.updateConfig({baseUrl:e.baseUrl,authToken:e.apiKey})},[c,e]);const{isStreaming:d,error:u,stream:p,stop:m,setToken:g}=L_({baseUrl:c.baseUrl,token:null,headers:e==null?void 0:e.headers,streamPath:"/chat/runs/stream"}),[f,E]=A.useState(()=>typeof c.getAuthToken=="function"?c.getAuthToken():null);A.useEffect(()=>{g(typeof c.getAuthToken=="function"?c.getAuthToken():null);const j=c.onTokenChange(ee=>{E(ee),g(ee)});return()=>{j()}},[c,g]);const S=A.useCallback(j=>{c.setAuthToken(j)},[c]),{state:T,seed:h,prepend:v,pushUser:R,onEvent:C,reset:N}=P_(),y=i&&i>0?i:6,[D,L]=A.useState(!1),[P,Y]=A.useState(!1),[q,w]=A.useState(null),[B,O]=A.useState(void 0),M=A.useCallback((j,ee)=>{const de=Array.isArray(j==null?void 0:j.messages)?j.messages:[];ee==="replace"?h(de):ee==="prepend"&&de.length&&v(de),w((j==null?void 0:j.nextCursor)??null),L(!!(j!=null&&j.hasMore)),O(Ue=>(j==null?void 0:j.checkpointId)??Ue??void 0)},[h,v]),[k,F]=A.useState([]),[H,X]=A.useState(null),ae=A.useCallback(async()=>{const j=await c.listThreads();F(j)},[c]),[z,Q]=A.useState(!1),le=A.useCallback(async j=>{const ee=(j==null?void 0:j.maxAttempts)??5,de=(j==null?void 0:j.baseDelayMs)??500,Ue=(j==null?void 0:j.timeoutMs)??2e3;if(!c.baseUrl)return!1;const $e=c.baseUrl.replace(/\/+$/,""),et=["/health","/api/health","/","/api/v2/health","/api/v2/chat/health"],We=async re=>{try{const he=new AbortController,ve=setTimeout(()=>he.abort(),Ue),Ye=await fetch(re,{method:"GET",signal:he.signal});return clearTimeout(ve),Ye.ok}catch{return!1}},Z=async re=>{try{const he=new AbortController,ve=setTimeout(()=>he.abort(),Ue),Ye=await fetch(re,{method:"HEAD",signal:he.signal});return clearTimeout(ve),Ye.ok}catch{return!1}};for(let re=0;re<ee;re++){console.debug(`[ChatProvider] health-check attempt ${re+1}/${ee}`);for(const ve of et){let Ye=ve;$e.endsWith("/api")&&ve.startsWith("/api")&&(Ye=ve.replace(/^\/api/,"")||"/");const it=Ye==="/"?$e+"/":$e+Ye;if(console.debug(`[ChatProvider] checking ${it}`),await We(it)||ve==="/"&&await Z($e+"/"))return Q(!0),!0}const he=de*Math.pow(2,re);await new Promise(ve=>setTimeout(ve,he))}return Q(!1),!1},[c.baseUrl]);A.useEffect(()=>{let j=!0;if(!c.baseUrl){console.debug("[ChatProvider] skipping initial refreshThreads: api.baseUrl not configured");return}return(async()=>{try{const ee=await le();if(!j)return;ee?ae().catch(()=>{}):console.warn("[ChatProvider] backend health-check failed — skipping initial loads")}catch{}})(),()=>{j=!1}},[ae,c.baseUrl,le]),A.useEffect(()=>{r==null||r(H)},[H,r]);const Se=A.useRef(null);A.useEffect(()=>{if(a&&o){if(!c.baseUrl){console.debug("[ChatProvider] skipping initial load: api.baseUrl not configured");return}if(!z){console.debug("[ChatProvider] deferring initial load until backend health-check passes");return}Se.current!==a&&(Se.current=a,U(a).catch(()=>{}))}},[a,o,c.baseUrl,z]);const V=A.useRef(null),U=A.useCallback(async(j,ee,de)=>{if(!c.baseUrl){console.debug("[ChatProvider] skipping loadThread: api.baseUrl not configured");return}if(V.current!==j){V.current=j;try{L(!1),w(null),O(void 0);const Ue=await c.getMessages({threadId:j,checkpointId:ee,checkpointNs:de,limit:y});X(j),M(Ue,"replace")}finally{V.current=null}}},[c,M]),W=A.useCallback(async j=>{const ee=await c.listCheckpoints(j);return Cv(ee,j)},[c]),te=A.useCallback(async j=>{if(!H)throw new Error("No active thread");L(!1),w(null),O(void 0);const ee=await c.getMessages({threadId:H,checkpointId:j,limit:y});M(ee,"replace")},[c,H,M,y]),ce=A.useCallback(async()=>{if(!H)throw new Error("No active thread");await U(H)},[H,U]),ie=A.useRef(!1);A.useEffect(()=>{const j=ie.current;if(ie.current=d,j&&!d&&H){const ee=T.lastCheckpointId??void 0;(async()=>{try{const de=await c.getMessages({threadId:H,checkpointId:ee,limit:y});M(de,"replace")}catch{}try{await ae()}catch{}})()}},[d,H,T.lastCheckpointId,c,M,ae]);const we=A.useCallback(async j=>{const ee=await c.createThread(j);return await ae(),await U(ee.threadId),ee.threadId},[c,ae,U]),be=A.useCallback(async j=>{await c.deleteThread(j),await ae(),H===j&&(X(null),N([]),L(!1),w(null),O(void 0))},[c,ae,H,N]),Ie=A.useCallback(async(j,ee)=>{await c.updateThread(j,ee),await ae()},[c,ae]),Ee=A.useCallback(async(j,ee)=>{var Xt;const de=(ee==null?void 0:ee.attachments)||[],{contentParts:Ue,filesInfo:$e}=await Ov(c,de,e==null?void 0:e.uploadPath,s,l,H),et=[];j&&et.push({type:"text",text:j});for(const rt of Ue)et.push(rt);const We={id:((Xt=crypto.randomUUID)==null?void 0:Xt.call(crypto))||`user-${Date.now()}`,role:"user",content:et,createdAt:new Date().toISOString(),checkpointId:(ee==null?void 0:ee.checkpointId)??T.lastCheckpointId??void 0};R(We);const Z={...We,content:We.content.filter(rt=>rt.type==="text"||rt.type==="image_url")},re={...(ee==null?void 0:ee.payloadExtras)??{}},he=!!re.edit,ve=re.originalMessageId,Ye=typeof ve=="string"?ve:void 0,it=de&&de.length>0,Mt={...H?{threadId:H}:{},payload:{messages:[Z],attachments:We.content.filter(rt=>rt.type==="file").map(rt=>({type:"file",url:rt.url,mimeType:rt.mimeType,name:rt.name,size:rt.size})),files_info:$e,...s&&it&&l?{agent_id:l}:{},...re},checkpointId:(ee==null?void 0:ee.checkpointId)??T.lastCheckpointId??void 0,checkpointNs:ee==null?void 0:ee.checkpointNs,nodeFilter:ee==null?void 0:ee.nodeFilter,config:ee==null?void 0:ee.config,edit:he,originalMessageId:Ye};p(Mt,rt=>C(rt),{onError:rt=>console.warn("stream error",rt),onOpen:({threadId:rt,created:xn})=>{!H&&rt&&(X(rt),xn&&ae().catch(()=>{}))}})},[H,R,p,C,T.lastCheckpointId,c,e==null?void 0:e.uploadPath,ae,X,s,l]),Te=A.useCallback(async j=>{if(!H)throw new Error("No active thread");if(P||!D)return;const ee=q;if(ee){Y(!0);try{const de=await c.getMessages({threadId:H,checkpointId:B,limit:(j==null?void 0:j.limit)??y,beforeId:ee});M(de,"prepend")}finally{Y(!1)}}},[c,H,B,q,D,P,M]),oe={baseUrl:c.baseUrl,token:f,setToken:S,api:c,threads:k,currentThreadId:H,setCurrentThreadId:X,messages:T.messages,isStreaming:d,error:u,lastCheckpointId:T.lastCheckpointId,streamingAssistantId:T.assemblingId,hasMoreHistory:D,isLoadingHistory:P,loadOlderMessages:Te,historyPageSize:y,listCheckpoints:W,navigateToCheckpoint:te,returnToLatest:ce,refreshThreads:ae,createThread:we,deleteThread:be,renameThread:Ie,loadThread:U,send:Ee,stop:m};return _.jsx(U_.Provider,{value:oe,children:t})}function Ra(){const t=A.useContext(U_);if(!t)throw new Error("useChat must be used within ChatProvider");return t}const Ca=0,fn=1,er=2,F_=4;function B_(t){return()=>t}function yv(t){t()}function G_(t,e){return n=>t(e(n))}function Y_(t,e){return()=>t(e)}function Iv(t,e){return n=>t(e,n)}function co(t){return t!==void 0}function Av(...t){return()=>{t.map(yv)}}function tr(){}function va(t,e){return e(t),t}function xv(t,e){return e(t)}function tt(...t){return t}function Qe(t,e){return t(fn,e)}function ke(t,e){t(Ca,e)}function uo(t){t(er)}function lt(t){return t(F_)}function Re(t,e){return Qe(t,Iv(e,Ca))}function qt(t,e){const n=t(fn,r=>{n(),e(r)});return n}function H_(t){let e,n;return r=>a=>{e=a,n&&clearTimeout(n),n=setTimeout(()=>{r(e)},t)}}function q_(t,e){return t===e}function nt(t=q_){let e;return n=>r=>{t(e,r)||(e=r,n(r))}}function xe(t){return e=>n=>{t(n)&&e(n)}}function me(t){return e=>G_(e,t)}function en(t){return e=>()=>{e(t)}}function K(t,...e){const n=Dv(...e);return(r,a)=>{switch(r){case er:uo(t);return;case fn:return Qe(t,n(a))}}}function tn(t,e){return n=>r=>{n(e=t(e,r))}}function Ln(t){return e=>n=>{t>0?t--:e(n)}}function un(t){let e=null,n;return r=>a=>{e=a,!n&&(n=setTimeout(()=>{n=void 0,r(e)},t))}}function Fe(...t){const e=new Array(t.length);let n=0,r=null;const a=Math.pow(2,t.length)-1;return t.forEach((i,o)=>{const s=Math.pow(2,o);Qe(i,l=>{const c=n;n=n|s,e[o]=l,c!==a&&n===a&&r&&(r(),r=null)})}),i=>o=>{const s=()=>{i([o].concat(e))};n===a?s():r=s}}function Dv(...t){return e=>t.reduceRight(xv,e)}function wv(t){let e,n;const r=()=>e==null?void 0:e();return function(a,i){switch(a){case fn:return i?n===i?void 0:(r(),n=i,e=Qe(t,i),e):(r(),tr);case er:r(),n=null;return}}}function ne(t){let e=t;const n=qe();return(r,a)=>{switch(r){case Ca:e=a;break;case fn:{a(e);break}case F_:return e}return n(r,a)}}function Et(t,e){return va(ne(e),n=>Re(t,n))}function qe(){const t=[];return(e,n)=>{switch(e){case Ca:t.slice().forEach(r=>{r(n)});return;case er:t.splice(0,t.length);return;case fn:return t.push(n),()=>{const r=t.indexOf(n);r>-1&&t.splice(r,1)}}}}function At(t){return va(qe(),e=>Re(t,e))}function ze(t,e=[],{singleton:n}={singleton:!0}){return{constructor:t,dependencies:e,id:Mv(),singleton:n}}const Mv=()=>Symbol();function Lv(t){const e=new Map,n=({constructor:r,dependencies:a,id:i,singleton:o})=>{if(o&&e.has(i))return e.get(i);const s=r(a.map(l=>n(l)));return o&&e.set(i,s),s};return n(t)}function dt(...t){const e=qe(),n=new Array(t.length);let r=0;const a=Math.pow(2,t.length)-1;return t.forEach((i,o)=>{const s=Math.pow(2,o);Qe(i,l=>{n[o]=l,r=r|s,r===a&&ke(e,n)})}),function(i,o){switch(i){case er:{uo(e);return}case fn:return r===a&&o(n),Qe(e,o)}}}function ye(t,e=q_){return K(t,nt(e))}function _o(...t){return function(e,n){switch(e){case er:return;case fn:return Av(...t.map(r=>Qe(r,n)))}}}var Nt=(t=>(t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t))(Nt||{});const Pv={0:"debug",3:"error",1:"log",2:"warn"},kv=()=>typeof globalThis>"u"?window:globalThis,Sn=ze(()=>{const t=ne(3);return{log:ne((e,n,r=1)=>{var a;const i=(a=kv().VIRTUOSO_LOG_LEVEL)!=null?a:lt(t);r>=i&&console[Pv[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",e,n)}),logLevel:t}},[],{singleton:!0});function Pn(t,e,n){return po(t,e,n).callbackRef}function po(t,e,n){const r=A.useRef(null);let a=o=>{};const i=A.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(o=>{const s=()=>{const l=o[0].target;l.offsetParent!==null&&t(l)};n?s():requestAnimationFrame(s)}):null,[t,n]);return a=o=>{o&&e?(i==null||i.observe(o),r.current=o):(r.current&&(i==null||i.unobserve(r.current)),r.current=null)},{callbackRef:a,ref:r}}function Uv(t,e,n,r,a,i,o,s,l){const c=A.useCallback(d=>{const u=Fv(d.children,e,s?"offsetWidth":"offsetHeight",a);let p=d.parentElement;for(;!p.dataset.virtuosoScroller;)p=p.parentElement;const m=p.lastElementChild.dataset.viewportType==="window";let g;m&&(g=p.ownerDocument.defaultView);const f=o?s?o.scrollLeft:o.scrollTop:m?s?g.scrollX||g.document.documentElement.scrollLeft:g.scrollY||g.document.documentElement.scrollTop:s?p.scrollLeft:p.scrollTop,E=o?s?o.scrollWidth:o.scrollHeight:m?s?g.document.documentElement.scrollWidth:g.document.documentElement.scrollHeight:s?p.scrollWidth:p.scrollHeight,S=o?s?o.offsetWidth:o.offsetHeight:m?s?g.innerWidth:g.innerHeight:s?p.offsetWidth:p.offsetHeight;r({scrollHeight:E,scrollTop:Math.max(f,0),viewportHeight:S}),i==null||i(s?V_("column-gap",getComputedStyle(d).columnGap,a):V_("row-gap",getComputedStyle(d).rowGap,a)),u!==null&&t(u)},[t,e,a,i,o,r,s]);return po(c,n,l)}function Fv(t,e,n,r){const a=t.length;if(a===0)return null;const i=[];for(let o=0;o<a;o++){const s=t.item(o);if(s.dataset.index===void 0)continue;const l=parseInt(s.dataset.index),c=parseFloat(s.dataset.knownSize),d=e(s,n);if(d===0&&r("Zero-sized element, this should not happen",{child:s},Nt.ERROR),d===c)continue;const u=i[i.length-1];i.length===0||u.size!==d||u.endIndex!==l-1?i.push({endIndex:l,size:d,startIndex:l}):i[i.length-1].endIndex++}return i}function V_(t,e,n){return e!=="normal"&&!(e!=null&&e.endsWith("px"))&&n(`${t} was not resolved to pixel value correctly`,e,Nt.WARN),e==="normal"?0:parseInt(e??"0",10)}function z_(t,e,n){const r=A.useRef(null),a=A.useCallback(l=>{if(!(l!=null&&l.offsetParent))return;const c=l.getBoundingClientRect(),d=c.width;let u,p;if(e){const m=e.getBoundingClientRect(),g=c.top-m.top;p=m.height-Math.max(0,g),u=g+e.scrollTop}else{const m=o.current.ownerDocument.defaultView;p=m.innerHeight-Math.max(0,c.top),u=c.top+m.scrollY}r.current={offsetTop:u,visibleHeight:p,visibleWidth:d},t(r.current)},[t,e]),{callbackRef:i,ref:o}=po(a,!0,n),s=A.useCallback(()=>{a(o.current)},[a,o]);return A.useEffect(()=>{var l;if(e){e.addEventListener("scroll",s);const c=new ResizeObserver(()=>{requestAnimationFrame(s)});return c.observe(e),()=>{e.removeEventListener("scroll",s),c.unobserve(e)}}else{const c=(l=o.current)==null?void 0:l.ownerDocument.defaultView;return c==null||c.addEventListener("scroll",s),c==null||c.addEventListener("resize",s),()=>{c==null||c.removeEventListener("scroll",s),c==null||c.removeEventListener("resize",s)}}},[s,e,o]),i}const ht=ze(()=>{const t=qe(),e=qe(),n=ne(0),r=qe(),a=ne(0),i=qe(),o=qe(),s=ne(0),l=ne(0),c=ne(0),d=ne(0),u=qe(),p=qe(),m=ne(!1),g=ne(!1),f=ne(!1);return Re(K(t,me(({scrollTop:E})=>E)),e),Re(K(t,me(({scrollHeight:E})=>E)),o),Re(e,a),{deviation:n,fixedFooterHeight:c,fixedHeaderHeight:l,footerHeight:d,headerHeight:s,horizontalDirection:g,scrollBy:p,scrollContainerState:t,scrollHeight:o,scrollingInProgress:m,scrollTo:u,scrollTop:e,skipAnimationFrameInResizeObserver:f,smoothScrollTargetReached:r,statefulScrollTop:a,viewportHeight:i}},[],{singleton:!0}),xr={lvl:0};function $_(t,e){const n=t.length;if(n===0)return[];let{index:r,value:a}=e(t[0]);const i=[];for(let o=1;o<n;o++){const{index:s,value:l}=e(t[o]);i.push({end:s-1,start:r,value:a}),r=s,a=l}return i.push({end:1/0,start:r,value:a}),i}function Ze(t){return t===xr}function Dr(t,e){if(!Ze(t))return e===t.k?t.v:e<t.k?Dr(t.l,e):Dr(t.r,e)}function Vt(t,e,n="k"){if(Ze(t))return[-1/0,void 0];if(Number(t[n])===e)return[t.k,t.v];if(Number(t[n])<e){const r=Vt(t.r,e,n);return r[0]===-1/0?[t.k,t.v]:r}return Vt(t.l,e,n)}function xt(t,e,n){return Ze(t)?Q_(e,n,1):e===t.k?ut(t,{k:e,v:n}):e<t.k?j_(ut(t,{l:xt(t.l,e,n)})):j_(ut(t,{r:xt(t.r,e,n)}))}function nr(){return xr}function Na(t,e,n){if(Ze(t))return[];const r=Vt(t,e)[0];return Bv(go(t,r,n))}function mo(t,e){if(Ze(t))return xr;const{k:n,l:r,r:a}=t;if(e===n){if(Ze(r))return a;if(Ze(a))return r;{const[i,o]=K_(r);return Oa(ut(t,{k:i,l:W_(r),v:o}))}}else return e<n?Oa(ut(t,{l:mo(r,e)})):Oa(ut(t,{r:mo(a,e)}))}function kn(t){return Ze(t)?[]:[...kn(t.l),{k:t.k,v:t.v},...kn(t.r)]}function go(t,e,n){if(Ze(t))return[];const{k:r,l:a,r:i,v:o}=t;let s=[];return r>e&&(s=s.concat(go(a,e,n))),r>=e&&r<=n&&s.push({k:r,v:o}),r<=n&&(s=s.concat(go(i,e,n))),s}function Oa(t){const{l:e,lvl:n,r}=t;if(r.lvl>=n-1&&e.lvl>=n-1)return t;if(n>r.lvl+1){if(Eo(e))return X_(ut(t,{lvl:n-1}));if(!Ze(e)&&!Ze(e.r))return ut(e.r,{l:ut(e,{r:e.r.l}),lvl:n,r:ut(t,{l:e.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(Eo(t))return fo(ut(t,{lvl:n-1}));if(!Ze(r)&&!Ze(r.l)){const a=r.l,i=Eo(a)?r.lvl-1:r.lvl;return ut(a,{l:ut(t,{lvl:n-1,r:a.l}),lvl:a.lvl+1,r:fo(ut(r,{l:a.r,lvl:i}))})}else throw new Error("Unexpected empty nodes")}}function ut(t,e){return Q_(e.k!==void 0?e.k:t.k,e.v!==void 0?e.v:t.v,e.lvl!==void 0?e.lvl:t.lvl,e.l!==void 0?e.l:t.l,e.r!==void 0?e.r:t.r)}function W_(t){return Ze(t.r)?t.l:Oa(ut(t,{r:W_(t.r)}))}function Eo(t){return Ze(t)||t.lvl>t.r.lvl}function K_(t){return Ze(t.r)?[t.k,t.v]:K_(t.r)}function Q_(t,e,n,r=xr,a=xr){return{k:t,l:r,lvl:n,r:a,v:e}}function j_(t){return fo(X_(t))}function X_(t){const{l:e}=t;return!Ze(e)&&e.lvl===t.lvl?ut(e,{r:ut(t,{l:e.r})}):t}function fo(t){const{lvl:e,r:n}=t;return!Ze(n)&&!Ze(n.r)&&n.lvl===e&&n.r.lvl===e?ut(n,{l:ut(t,{r:n.l}),lvl:e+1}):t}function Bv(t){return $_(t,({k:e,v:n})=>({index:e,value:n}))}function Z_(t,e){return!!(t&&t.startIndex===e.startIndex&&t.endIndex===e.endIndex)}function wr(t,e){return!!(t&&t[0]===e[0]&&t[1]===e[1])}const So=ze(()=>({recalcInProgress:ne(!1)}),[],{singleton:!0});function J_(t,e,n){return t[ya(t,e,n)]}function ya(t,e,n,r=0){let a=t.length-1;for(;r<=a;){const i=Math.floor((r+a)/2),o=t[i],s=n(o,e);if(s===0)return i;if(s===-1){if(a-r<2)return i-1;a=i-1}else{if(a===r)return i;r=i+1}}throw new Error(`Failed binary finding record in array - ${t.join(",")}, searched for ${e}`)}function Gv(t,e,n,r){const a=ya(t,e,r),i=ya(t,n,r,a);return t.slice(a,i+1)}function bn(t,e){return Math.round(t.getBoundingClientRect()[e])}function Ia(t){return!Ze(t.groupOffsetTree)}function bo({index:t},e){return e===t?0:e<t?-1:1}function Yv(){return{groupIndices:[],groupOffsetTree:nr(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:nr()}}function Hv(t,e){let n=Ze(t)?0:1/0;for(const r of e){const{endIndex:a,size:i,startIndex:o}=r;if(n=Math.min(n,o),Ze(t)){t=xt(t,0,i);continue}const s=Na(t,o-1,a+1);if(s.some(Qv(r)))continue;let l=!1,c=!1;for(const{end:d,start:u,value:p}of s)l?(a>=u||i===p)&&(t=mo(t,u)):(c=p!==i,l=!0),d>a&&a>=u&&p!==i&&(t=xt(t,a+1,p));c&&(t=xt(t,o,i))}return[t,n]}function qv(t){return typeof t.groupIndex<"u"}function Vv({offset:t},e){return e===t?0:e<t?-1:1}function Mr(t,e,n){if(e.length===0)return 0;const{index:r,offset:a,size:i}=J_(e,t,bo),o=t-r,s=i*o+(o-1)*n+a;return s>0?s+n:s}function ep(t,e){if(!Ia(e))return t;let n=0;for(;e.groupIndices[n]<=t+n;)n++;return t+n}function tp(t,e,n){if(qv(t))return e.groupIndices[t.groupIndex]+1;{const r=t.index==="LAST"?n:t.index;let a=ep(r,e);return a=Math.max(0,a,Math.min(n,a)),a}}function zv(t,e,n,r=0){return r>0&&(e=Math.max(e,J_(t,r,bo).offset)),$_(Gv(t,e,n,Vv),Kv)}function $v(t,[e,n,r,a]){e.length>0&&r("received item sizes",e,Nt.DEBUG);const i=t.sizeTree;let o=i,s=0;if(n.length>0&&Ze(i)&&e.length===2){const p=e[0].size,m=e[1].size;o=n.reduce((g,f)=>xt(xt(g,f,p),f+1,m),o)}else[o,s]=Hv(o,e);if(o===i)return t;const{lastIndex:l,lastOffset:c,lastSize:d,offsetTree:u}=To(t.offsetTree,s,o,a);return{groupIndices:n,groupOffsetTree:n.reduce((p,m)=>xt(p,m,Mr(m,u,a)),nr()),lastIndex:l,lastOffset:c,lastSize:d,offsetTree:u,sizeTree:o}}function Wv(t){return kn(t).map(({k:e,v:n},r,a)=>{const i=a[r+1];return{endIndex:i?i.k-1:1/0,size:n,startIndex:e}})}function np(t,e){let n=0,r=0;for(;n<t;)n+=e[r+1]-e[r]-1,r++;return r-(n===t?0:1)}function To(t,e,n,r){let a=t,i=0,o=0,s=0,l=0;if(e!==0){l=ya(a,e-1,bo),s=a[l].offset;const c=Vt(n,e-1);i=c[0],o=c[1],a.length&&a[l].size===Vt(n,e)[1]&&(l-=1),a=a.slice(0,l+1)}else a=[];for(const{start:c,value:d}of Na(n,e,1/0)){const u=c-i,p=u*o+s+u*r;a.push({index:c,offset:p,size:d}),i=c,s=p,o=d}return{lastIndex:i,lastOffset:s,lastSize:o,offsetTree:a}}function Kv(t){return{index:t.index,value:t}}function Qv(t){const{endIndex:e,size:n,startIndex:r}=t;return a=>a.start===r&&(a.end===e||a.end===1/0)&&a.value===n}const jv={offsetHeight:"height",offsetWidth:"width"},nn=ze(([{log:t},{recalcInProgress:e}])=>{const n=qe(),r=qe(),a=Et(r,0),i=qe(),o=qe(),s=ne(0),l=ne([]),c=ne(void 0),d=ne(void 0),u=ne((R,C)=>bn(R,jv[C])),p=ne(void 0),m=ne(0),g=Yv(),f=Et(K(n,Fe(l,t,m),tn($v,g),nt()),g),E=Et(K(l,nt(),tn((R,C)=>({current:C,prev:R.current}),{current:[],prev:[]}),me(({prev:R})=>R)),[]);Re(K(l,xe(R=>R.length>0),Fe(f,m),me(([R,C,N])=>{const y=R.reduce((D,L,P)=>xt(D,L,Mr(L,C.offsetTree,N)||P),nr());return{...C,groupIndices:R,groupOffsetTree:y}})),f),Re(K(r,Fe(f),xe(([R,{lastIndex:C}])=>R<C),me(([R,{lastIndex:C,lastSize:N}])=>[{endIndex:C,size:N,startIndex:R}])),n),Re(c,d);const S=Et(K(c,me(R=>R===void 0)),!0);Re(K(d,xe(R=>R!==void 0&&Ze(lt(f).sizeTree)),me(R=>[{endIndex:0,size:R,startIndex:0}])),n);const T=At(K(n,Fe(f),tn(({sizes:R},[C,N])=>({changed:N!==R,sizes:N}),{changed:!1,sizes:g}),me(R=>R.changed)));Qe(K(s,tn((R,C)=>({diff:R.prev-C,prev:C}),{diff:0,prev:0}),me(R=>R.diff)),R=>{const{groupIndices:C}=lt(f);if(R>0)ke(e,!0),ke(i,R+np(R,C));else if(R<0){const N=lt(E);N.length>0&&(R-=np(-R,N)),ke(o,R)}}),Qe(K(s,Fe(t)),([R,C])=>{R<0&&C("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:s},Nt.ERROR)});const h=At(i);Re(K(i,Fe(f),me(([R,C])=>{const N=C.groupIndices.length>0,y=[],D=C.lastSize;if(N){const L=Dr(C.sizeTree,0);let P=0,Y=0;for(;P<R;){const w=C.groupIndices[Y],B=C.groupIndices.length===Y+1?1/0:C.groupIndices[Y+1]-w-1;y.push({endIndex:w,size:L,startIndex:w}),y.push({endIndex:w+1+B-1,size:D,startIndex:w+1}),Y++,P+=B+1}const q=kn(C.sizeTree);return P!==R&&q.shift(),q.reduce((w,{k:B,v:O})=>{let M=w.ranges;return w.prevSize!==0&&(M=[...w.ranges,{endIndex:B+R-1,size:w.prevSize,startIndex:w.prevIndex}]),{prevIndex:B+R,prevSize:O,ranges:M}},{prevIndex:R,prevSize:0,ranges:y}).ranges}return kn(C.sizeTree).reduce((L,{k:P,v:Y})=>({prevIndex:P+R,prevSize:Y,ranges:[...L.ranges,{endIndex:P+R-1,size:L.prevSize,startIndex:L.prevIndex}]}),{prevIndex:0,prevSize:D,ranges:[]}).ranges})),n);const v=At(K(o,Fe(f,m),me(([R,{offsetTree:C},N])=>{const y=-R;return Mr(y,C,N)})));return Re(K(o,Fe(f,m),me(([R,C,N])=>{if(C.groupIndices.length>0){if(Ze(C.sizeTree))return C;let y=nr();const D=lt(E);let L=0,P=0,Y=0;for(;L<-R;){Y=D[P];const q=D[P+1]-Y-1;P++,L+=q+1}if(y=kn(C.sizeTree).reduce((q,{k:w,v:B})=>xt(q,Math.max(0,w+R),B),y),L!==-R){const q=Dr(C.sizeTree,Y);y=xt(y,0,q);const w=Vt(C.sizeTree,-R+1)[1];y=xt(y,1,w)}return{...C,sizeTree:y,...To(C.offsetTree,0,y,N)}}else{const y=kn(C.sizeTree).reduce((D,{k:L,v:P})=>xt(D,Math.max(0,L+R),P),nr());return{...C,sizeTree:y,...To(C.offsetTree,0,y,N)}}})),f),{beforeUnshiftWith:h,data:p,defaultItemSize:d,firstItemIndex:s,fixedItemSize:c,gap:m,groupIndices:l,itemSize:u,listRefresh:T,shiftWith:o,shiftWithOffset:v,sizeRanges:n,sizes:f,statefulTotalCount:a,totalCount:r,trackItemSizes:S,unshiftWith:i}},tt(Sn,So),{singleton:!0});function Xv(t){return t.reduce((e,n)=>(e.groupIndices.push(e.totalCount),e.totalCount+=n+1,e),{groupIndices:[],totalCount:0})}const rp=ze(([{groupIndices:t,sizes:e,totalCount:n},{headerHeight:r,scrollTop:a}])=>{const i=qe(),o=qe(),s=At(K(i,me(Xv)));return Re(K(s,me(l=>l.totalCount)),n),Re(K(s,me(l=>l.groupIndices)),t),Re(K(dt(a,e,r),xe(([l,c])=>Ia(c)),me(([l,c,d])=>Vt(c.groupOffsetTree,Math.max(l-d,0),"v")[0]),nt(),me(l=>[l])),o),{groupCounts:i,topItemsIndexes:o}},tt(nn,ht)),Tn=ze(([{log:t}])=>{const e=ne(!1),n=At(K(e,xe(r=>r),nt()));return Qe(e,r=>{r&&lt(t)("props updated",{},Nt.DEBUG)}),{didMount:n,propsReady:e}},tt(Sn),{singleton:!0}),Zv=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function ap(t){const e=typeof t=="number"?{index:t}:t;return e.align||(e.align="start"),(!e.behavior||!Zv)&&(e.behavior="auto"),e.offset||(e.offset=0),e}const Lr=ze(([{gap:t,listRefresh:e,sizes:n,totalCount:r},{fixedFooterHeight:a,fixedHeaderHeight:i,footerHeight:o,headerHeight:s,scrollingInProgress:l,scrollTo:c,smoothScrollTargetReached:d,viewportHeight:u},{log:p}])=>{const m=qe(),g=qe(),f=ne(0);let E=null,S=null,T=null;function h(){E&&(E(),E=null),T&&(T(),T=null),S&&(clearTimeout(S),S=null),ke(l,!1)}return Re(K(m,Fe(n,u,r,f,s,o,p),Fe(t,i,a),me(([[v,R,C,N,y,D,L,P],Y,q,w])=>{const B=ap(v),{align:O,behavior:M,offset:k}=B,F=N-1,H=tp(B,R,F);let X=Mr(H,R.offsetTree,Y)+D;O==="end"?(X+=q+Vt(R.sizeTree,H)[1]-C+w,H===F&&(X+=L)):O==="center"?X+=(q+Vt(R.sizeTree,H)[1]-C+w)/2:X-=y,k&&(X+=k);const ae=z=>{h(),z?(P("retrying to scroll to",{location:v},Nt.DEBUG),ke(m,v)):(ke(g,!0),P("list did not change, scroll successful",{},Nt.DEBUG))};if(h(),M==="smooth"){let z=!1;T=Qe(e,Q=>{z=z||Q}),E=qt(d,()=>{ae(z)})}else E=qt(K(e,Jv(150)),ae);return S=setTimeout(()=>{h()},1200),ke(l,!0),P("scrolling from index to",{behavior:M,index:H,top:X},Nt.DEBUG),{behavior:M,top:X}})),c),{scrollTargetReached:g,scrollToIndex:m,topListHeight:f}},tt(nn,ht,Sn),{singleton:!0});function Jv(t){return e=>{const n=setTimeout(()=>{e(!1)},t);return r=>{r&&(e(!0),clearTimeout(n))}}}function ho(t,e){t==0?e():requestAnimationFrame(()=>{ho(t-1,e)})}function Ro(t,e){const n=e-1;return typeof t=="number"?t:t.index==="LAST"?n:t.index}const Pr=ze(([{defaultItemSize:t,listRefresh:e,sizes:n},{scrollTop:r},{scrollTargetReached:a,scrollToIndex:i},{didMount:o}])=>{const s=ne(!0),l=ne(0),c=ne(!0);return Re(K(o,Fe(l),xe(([d,u])=>!!u),en(!1)),s),Re(K(o,Fe(l),xe(([d,u])=>!!u),en(!1)),c),Qe(K(dt(e,o),Fe(s,n,t,c),xe(([[,d],u,{sizeTree:p},m,g])=>d&&(!Ze(p)||co(m))&&!u&&!g),Fe(l)),([,d])=>{qt(a,()=>{ke(c,!0)}),ho(4,()=>{qt(r,()=>{ke(s,!0)}),ke(i,d)})}),{initialItemFinalLocationReached:c,initialTopMostItemIndex:l,scrolledToInitialItem:s}},tt(nn,ht,Lr,Tn),{singleton:!0});function ip(t,e){return Math.abs(t-e)<1.01}const kr="up",Ur="down",eN="none",tN={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},nN=0,Fr=ze(([{footerHeight:t,headerHeight:e,scrollBy:n,scrollContainerState:r,scrollTop:a,viewportHeight:i}])=>{const o=ne(!1),s=ne(!0),l=qe(),c=qe(),d=ne(4),u=ne(nN),p=Et(K(_o(K(ye(a),Ln(1),en(!0)),K(ye(a),Ln(1),en(!1),H_(100))),nt()),!1),m=Et(K(_o(K(n,en(!0)),K(n,en(!1),H_(200))),nt()),!1);Re(K(dt(ye(a),ye(u)),me(([T,h])=>T<=h),nt()),s),Re(K(s,un(50)),c);const g=At(K(dt(r,ye(i),ye(e),ye(t),ye(d)),tn((T,[{scrollHeight:h,scrollTop:v},R,C,N,y])=>{const D=v+R-h>-y,L={scrollHeight:h,scrollTop:v,viewportHeight:R};if(D){let Y,q;return v>T.state.scrollTop?(Y="SCROLLED_DOWN",q=T.state.scrollTop-v):(Y="SIZE_DECREASED",q=T.state.scrollTop-v||T.scrollTopDelta),{atBottom:!0,atBottomBecause:Y,scrollTopDelta:q,state:L}}let P;return L.scrollHeight>T.state.scrollHeight?P="SIZE_INCREASED":R<T.state.viewportHeight?P="VIEWPORT_HEIGHT_DECREASING":v<T.state.scrollTop?P="SCROLLING_UPWARDS":P="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:P,state:L}},tN),nt((T,h)=>T&&T.atBottom===h.atBottom))),f=Et(K(r,tn((T,{scrollHeight:h,scrollTop:v,viewportHeight:R})=>{if(ip(T.scrollHeight,h))return{changed:!1,jump:0,scrollHeight:h,scrollTop:v};{const C=h-(v+R)<1;return T.scrollTop!==v&&C?{changed:!0,jump:T.scrollTop-v,scrollHeight:h,scrollTop:v}:{changed:!0,jump:0,scrollHeight:h,scrollTop:v}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),xe(T=>T.changed),me(T=>T.jump)),0);Re(K(g,me(T=>T.atBottom)),o),Re(K(o,un(50)),l);const E=ne(Ur);Re(K(r,me(({scrollTop:T})=>T),nt(),tn((T,h)=>lt(m)?{direction:T.direction,prevScrollTop:h}:{direction:h<T.prevScrollTop?kr:Ur,prevScrollTop:h},{direction:Ur,prevScrollTop:0}),me(T=>T.direction)),E),Re(K(r,un(50),en(eN)),E);const S=ne(0);return Re(K(p,xe(T=>!T),en(0)),S),Re(K(a,un(100),Fe(p),xe(([T,h])=>!!h),tn(([T,h],[v])=>[h,v],[0,0]),me(([T,h])=>h-T)),S),{atBottomState:g,atBottomStateChange:l,atBottomThreshold:d,atTopStateChange:c,atTopThreshold:u,isAtBottom:o,isAtTop:s,isScrolling:p,lastJumpDueToItemResize:f,scrollDirection:E,scrollVelocity:S}},tt(ht)),Aa="top",xa="bottom",op="none";function sp(t,e,n){return typeof t=="number"?n===kr&&e===Aa||n===Ur&&e===xa?t:0:n===kr?e===Aa?t.main:t.reverse:e===xa?t.main:t.reverse}function lp(t,e){var n;return typeof t=="number"?t:(n=t[e])!=null?n:0}const Co=ze(([{deviation:t,fixedHeaderHeight:e,headerHeight:n,scrollTop:r,viewportHeight:a}])=>{const i=qe(),o=ne(0),s=ne(0),l=ne(0),c=Et(K(dt(ye(r),ye(a),ye(n),ye(i,wr),ye(l),ye(o),ye(e),ye(t),ye(s)),me(([d,u,p,[m,g],f,E,S,T,h])=>{const v=d-T,R=E+S,C=Math.max(p-v,0);let N=op;const y=lp(h,Aa),D=lp(h,xa);return m-=T,m+=p+S,g+=p+S,g-=T,m>d+R-y&&(N=kr),g<d-C+u+D&&(N=Ur),N!==op?[Math.max(v-p-sp(f,Aa,N)-y,0),v-C-S+u+sp(f,xa,N)+D]:null}),xe(d=>d!=null),nt(wr)),[0,0]);return{increaseViewportBy:s,listBoundary:i,overscan:l,topListHeight:o,visibleRange:c}},tt(ht),{singleton:!0});function rN(t,e,n){if(Ia(e)){const r=ep(t,e);return[{index:Vt(e.groupOffsetTree,r)[0],offset:0,size:0},{data:n==null?void 0:n[0],index:r,offset:0,size:0}]}return[{data:n==null?void 0:n[0],index:t,offset:0,size:0}]}const vo={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Da(t,e,n,r,a,i){const{lastIndex:o,lastOffset:s,lastSize:l}=a;let c=0,d=0;if(t.length>0){c=t[0].offset;const f=t[t.length-1];d=f.offset+f.size}const u=n-o,p=s+u*l+(u-1)*r,m=c,g=p-d;return{bottom:d,firstItemIndex:i,items:dp(t,a,i),offsetBottom:g,offsetTop:c,top:m,topItems:dp(e,a,i),topListHeight:e.reduce((f,E)=>E.size+f,0),totalCount:n}}function cp(t,e,n,r,a,i){let o=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-o>=t)break;o++}const s=t+o,l=Ro(e,s),c=Array.from({length:s}).map((d,u)=>({data:i[u+l],index:u+l,offset:0,size:0}));return Da(c,[],s,a,n,r)}function dp(t,e,n){if(t.length===0)return[];if(!Ia(e))return t.map(c=>({...c,index:c.index+n,originalIndex:c.index}));const r=t[0].index,a=t[t.length-1].index,i=[],o=Na(e.groupOffsetTree,r,a);let s,l=0;for(const c of t){(!s||s.end<c.index)&&(s=o.shift(),l=e.groupIndices.indexOf(s.start));let d;c.index===s.start?d={index:l,type:"group"}:d={groupIndex:l,index:c.index-(l+1)+n},i.push({...d,data:c.data,offset:c.offset,originalIndex:c.index,size:c.size})}return i}const Un=ze(([{data:t,firstItemIndex:e,gap:n,sizes:r,totalCount:a},i,{listBoundary:o,topListHeight:s,visibleRange:l},{initialTopMostItemIndex:c,scrolledToInitialItem:d},{topListHeight:u},p,{didMount:m},{recalcInProgress:g}])=>{const f=ne([]),E=ne(0),S=qe();Re(i.topItemsIndexes,f);const T=Et(K(dt(m,g,ye(l,wr),ye(a),ye(r),ye(c),d,ye(f),ye(e),ye(n),t),xe(([C,N,,y,,,,,,,D])=>{const L=D&&D.length!==y;return C&&!N&&!L}),me(([,,[C,N],y,D,L,P,Y,q,w,B])=>{const O=D,{offsetTree:M,sizeTree:k}=O,F=lt(E);if(y===0)return{...vo,totalCount:y};if(C===0&&N===0)return F===0?{...vo,totalCount:y}:cp(F,L,D,q,w,B||[]);if(Ze(k))return F>0?null:Da(rN(Ro(L,y),O,B),[],y,w,O,q);const H=[];if(Y.length>0){const le=Y[0],Se=Y[Y.length-1];let V=0;for(const U of Na(k,le,Se)){const W=U.value,te=Math.max(U.start,le),ce=Math.min(U.end,Se);for(let ie=te;ie<=ce;ie++)H.push({data:B==null?void 0:B[ie],index:ie,offset:V,size:W}),V+=W}}if(!P)return Da([],H,y,w,O,q);const X=Y.length>0?Y[Y.length-1]+1:0,ae=zv(M,C,N,X);if(ae.length===0)return null;const z=y-1,Q=va([],le=>{for(const Se of ae){const V=Se.value;let U=V.offset,W=Se.start;const te=V.size;if(V.offset<C){W+=Math.floor((C-V.offset+w)/(te+w));const ie=W-Se.start;U+=ie*te+ie*w}W<X&&(U+=(X-W)*te,W=X);const ce=Math.min(Se.end,z);for(let ie=W;ie<=ce&&!(U>=N);ie++)le.push({data:B==null?void 0:B[ie],index:ie,offset:U,size:te}),U+=te+w}});return Da(Q,H,y,w,O,q)}),xe(C=>C!==null),nt()),vo);Re(K(t,xe(co),me(C=>C==null?void 0:C.length)),a),Re(K(T,me(C=>C.topListHeight)),u),Re(u,s),Re(K(T,me(C=>[C.top,C.bottom])),o),Re(K(T,me(C=>C.items)),S);const h=At(K(T,xe(({items:C})=>C.length>0),Fe(a,t),xe(([{items:C},N])=>C[C.length-1].originalIndex===N-1),me(([,C,N])=>[C-1,N]),nt(wr),me(([C])=>C))),v=At(K(T,un(200),xe(({items:C,topItems:N})=>C.length>0&&C[0].originalIndex===N.length),me(({items:C})=>C[0].index),nt())),R=At(K(T,xe(({items:C})=>C.length>0),me(({items:C})=>{let N=0,y=C.length-1;for(;C[N].type==="group"&&N<y;)N++;for(;C[y].type==="group"&&y>N;)y--;return{endIndex:C[y].index,startIndex:C[N].index}}),nt(Z_)));return{endReached:h,initialItemCount:E,itemsRendered:S,listState:T,rangeChanged:R,startReached:v,topItemsIndexes:f,...p}},tt(nn,rp,Co,Pr,Lr,Fr,Tn,So),{singleton:!0}),up=ze(([{fixedFooterHeight:t,fixedHeaderHeight:e,footerHeight:n,headerHeight:r},{listState:a}])=>{const i=qe(),o=Et(K(dt(n,t,r,e,a),me(([s,l,c,d,u])=>s+l+c+d+u.offsetBottom+u.bottom)),0);return Re(ye(o),i),{totalListHeight:o,totalListHeightChanged:i}},tt(ht,Un),{singleton:!0}),aN=ze(([{viewportHeight:t},{totalListHeight:e}])=>{const n=ne(!1),r=Et(K(dt(n,t,e),xe(([a])=>a),me(([,a,i])=>Math.max(0,a-i)),un(0),nt()),0);return{alignToBottom:n,paddingTopAddition:r}},tt(ht,up),{singleton:!0}),_p=ze(()=>({context:ne(null)})),iN=({itemBottom:t,itemTop:e,locationParams:{align:n,behavior:r,...a},viewportBottom:i,viewportTop:o})=>e<o?{...a,align:n??"start",behavior:r}:t>i?{...a,align:n??"end",behavior:r}:null,pp=ze(([{gap:t,sizes:e,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:a,headerHeight:i,scrollingInProgress:o,scrollTop:s,viewportHeight:l},{scrollToIndex:c}])=>{const d=qe();return Re(K(d,Fe(e,l,n,i,a,r,s),Fe(t),me(([[u,p,m,g,f,E,S,T],h])=>{const{align:v,behavior:R,calculateViewLocation:C=iN,done:N,...y}=u,D=tp(u,p,g-1),L=Mr(D,p.offsetTree,h)+f+E,P=L+Vt(p.sizeTree,D)[1],Y=T+E,q=T+m-S,w=C({itemBottom:P,itemTop:L,locationParams:{align:v,behavior:R,...y},viewportBottom:q,viewportTop:Y});return w?N&&qt(K(o,xe(B=>!B),Ln(lt(o)?1:2)),N):N&&N(),w}),xe(u=>u!==null)),c),{scrollIntoView:d}},tt(nn,ht,Lr,Un,Sn),{singleton:!0});function mp(t){return t?t==="smooth"?"smooth":"auto":!1}const oN=(t,e)=>typeof t=="function"?mp(t(e)):e&&mp(t),sN=ze(([{listRefresh:t,totalCount:e,fixedItemSize:n,data:r},{atBottomState:a,isAtBottom:i},{scrollToIndex:o},{scrolledToInitialItem:s},{didMount:l,propsReady:c},{log:d},{scrollingInProgress:u},{context:p},{scrollIntoView:m}])=>{const g=ne(!1),f=qe();let E=null;function S(R){ke(o,{align:"end",behavior:R,index:"LAST"})}Qe(K(dt(K(ye(e),Ln(1)),l),Fe(ye(g),i,s,u),me(([[R,C],N,y,D,L])=>{let P=C&&D,Y="auto";return P&&(Y=oN(N,y||L),P=P&&!!Y),{followOutputBehavior:Y,shouldFollow:P,totalCount:R}}),xe(({shouldFollow:R})=>R)),({followOutputBehavior:R,totalCount:C})=>{E&&(E(),E=null),lt(n)?requestAnimationFrame(()=>{lt(d)("following output to ",{totalCount:C},Nt.DEBUG),S(R)}):E=qt(t,()=>{lt(d)("following output to ",{totalCount:C},Nt.DEBUG),S(R),E=null})});function T(R){const C=qt(a,N=>{R&&!N.atBottom&&N.notAtBottomBecause==="SIZE_INCREASED"&&!E&&(lt(d)("scrolling to bottom due to increased size",{},Nt.DEBUG),S("auto"))});setTimeout(C,100)}Qe(K(dt(ye(g),e,c),xe(([R,,C])=>R&&C),tn(({value:R},[,C])=>({refreshed:R===C,value:C}),{refreshed:!1,value:0}),xe(({refreshed:R})=>R),Fe(g,e)),([,R])=>{lt(s)&&T(R!==!1)}),Qe(f,()=>{T(lt(g)!==!1)}),Qe(dt(ye(g),a),([R,C])=>{R&&!C.atBottom&&C.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&S("auto")});const h=ne(null),v=qe();return Re(_o(K(ye(r),me(R=>{var C;return(C=R==null?void 0:R.length)!=null?C:0})),K(ye(e))),v),Qe(K(dt(K(v,Ln(1)),l),Fe(ye(h),s,u,p),me(([[R,C],N,y,D,L])=>C&&y&&(N==null?void 0:N({context:L,totalCount:R,scrollingInProgress:D}))),xe(R=>!!R),un(0)),R=>{E&&(E(),E=null),lt(n)?requestAnimationFrame(()=>{lt(d)("scrolling into view",{}),ke(m,R)}):E=qt(t,()=>{lt(d)("scrolling into view",{}),ke(m,R),E=null})}),{autoscrollToBottom:f,followOutput:g,scrollIntoViewOnChange:h}},tt(nn,Fr,Lr,Pr,Tn,Sn,ht,_p,pp)),lN=ze(([{data:t,firstItemIndex:e,gap:n,sizes:r},{initialTopMostItemIndex:a},{initialItemCount:i,listState:o},{didMount:s}])=>(Re(K(s,Fe(i),xe(([,l])=>l!==0),Fe(a,r,e,n,t),me(([[,l],c,d,u,p,m=[]])=>cp(l,c,d,u,p,m))),o),{}),tt(nn,Pr,Un,Tn),{singleton:!0}),cN=ze(([{didMount:t},{scrollTo:e},{listState:n}])=>{const r=ne(0);return Qe(K(t,Fe(r),xe(([,a])=>a!==0),me(([,a])=>({top:a}))),a=>{qt(K(n,Ln(1),xe(i=>i.items.length>1)),()=>{requestAnimationFrame(()=>{ke(e,a)})})}),{initialScrollTop:r}},tt(Tn,ht,Un),{singleton:!0}),gp=ze(([{scrollVelocity:t}])=>{const e=ne(!1),n=qe(),r=ne(!1);return Re(K(t,Fe(r,e,n),xe(([a,i])=>!!i),me(([a,i,o,s])=>{const{enter:l,exit:c}=i;if(o){if(c(a,s))return!1}else if(l(a,s))return!0;return o}),nt()),e),Qe(K(dt(e,t,n),Fe(r)),([[a,i,o],s])=>{a&&s&&s.change&&s.change(i,o)}),{isSeeking:e,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:t}},tt(Fr),{singleton:!0}),No=ze(([{scrollContainerState:t,scrollTo:e}])=>{const n=qe(),r=qe(),a=qe(),i=ne(!1),o=ne(void 0);return Re(K(dt(n,r),me(([{scrollHeight:s,scrollTop:l,viewportHeight:c},{offsetTop:d}])=>({scrollHeight:s,scrollTop:Math.max(0,l-d),viewportHeight:c}))),t),Re(K(e,Fe(r),me(([s,{offsetTop:l}])=>({...s,top:s.top+l}))),a),{customScrollParent:o,useWindowScroll:i,windowScrollContainerState:n,windowScrollTo:a,windowViewportRect:r}},tt(ht)),dN=ze(([{sizeRanges:t,sizes:e},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:a},{didMount:i},{useWindowScroll:o,windowScrollContainerState:s,windowViewportRect:l}])=>{const c=qe(),d=ne(void 0),u=ne(null),p=ne(null);return Re(s,u),Re(l,p),Qe(K(c,Fe(e,r,o,u,p,n)),([m,g,f,E,S,T,h])=>{const v=Wv(g.sizeTree);E&&S!==null&&T!==null&&(f=S.scrollTop-T.offsetTop),f-=h,m({ranges:v,scrollTop:f})}),Re(K(d,xe(co),me(uN)),a),Re(K(i,Fe(d),xe(([,m])=>m!==void 0),nt(),me(([,m])=>m.ranges)),t),{getState:c,restoreStateFrom:d}},tt(nn,ht,Pr,Tn,No));function uN(t){return{align:"start",index:0,offset:t.scrollTop}}const _N=ze(([{topItemsIndexes:t}])=>{const e=ne(0);return Re(K(e,xe(n=>n>=0),me(n=>Array.from({length:n}).map((r,a)=>a))),t),{topItemCount:e}},tt(Un));function Ep(t){let e=!1,n;return()=>(e||(e=!0,n=t()),n)}const pN=Ep(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),mN=ze(([{deviation:t,scrollBy:e,scrollingInProgress:n,scrollTop:r},{isAtBottom:a,isScrolling:i,lastJumpDueToItemResize:o,scrollDirection:s},{listState:l},{beforeUnshiftWith:c,gap:d,shiftWithOffset:u,sizes:p},{log:m},{recalcInProgress:g}])=>{const f=At(K(l,Fe(o),tn(([,S,T,h],[{bottom:v,items:R,offsetBottom:C,totalCount:N},y])=>{const D=v+C;let L=0;return T===N&&S.length>0&&R.length>0&&(R[0].originalIndex===0&&S[0].originalIndex===0||(L=D-h,L!==0&&(L+=y))),[L,R,N,D]},[0,[],0,0]),xe(([S])=>S!==0),Fe(r,s,n,a,m,g),xe(([,S,T,h,,,v])=>!v&&!h&&S!==0&&T===kr),me(([[S],,,,,T])=>(T("Upward scrolling compensation",{amount:S},Nt.DEBUG),S))));function E(S){S>0?(ke(e,{behavior:"auto",top:-S}),ke(t,0)):(ke(t,0),ke(e,{behavior:"auto",top:-S}))}return Qe(K(f,Fe(t,i)),([S,T,h])=>{h&&pN()?ke(t,T-S):E(-S)}),Qe(K(dt(Et(i,!1),t,g),xe(([S,T,h])=>!S&&!h&&T!==0),me(([S,T])=>T),un(1)),E),Re(K(u,me(S=>({top:-S}))),e),Qe(K(c,Fe(p,d),me(([S,{groupIndices:T,lastSize:h,sizeTree:v},R])=>{function C(N){return N*(h+R)}if(T.length===0)return C(S);{let N=0;const y=Dr(v,0);let D=0,L=0;for(;D<S;){D++,N+=y;let P=T.length===L+1?1/0:T[L+1]-T[L]-1;D+P>S&&(N-=y,P=S-D+1),D+=P,N+=C(P),L++}return N}})),S=>{ke(t,S),requestAnimationFrame(()=>{ke(e,{top:S}),requestAnimationFrame(()=>{ke(t,0),ke(g,!1)})})}),{deviation:t}},tt(ht,Fr,Un,nn,Sn,So)),gN=ze(([t,e,n,r,a,i,o,s,l,c,d])=>({...t,...e,...n,...r,...a,...i,...o,...s,...l,...c,...d}),tt(Co,lN,Tn,gp,up,cN,aN,No,pp,Sn,_p)),fp=ze(([{data:t,defaultItemSize:e,firstItemIndex:n,fixedItemSize:r,gap:a,groupIndices:i,itemSize:o,sizeRanges:s,sizes:l,statefulTotalCount:c,totalCount:d,trackItemSizes:u},{initialItemFinalLocationReached:p,initialTopMostItemIndex:m,scrolledToInitialItem:g},f,E,S,{listState:T,topItemsIndexes:h,...v},{scrollToIndex:R},C,{topItemCount:N},{groupCounts:y},D])=>(Re(v.rangeChanged,D.scrollSeekRangeChanged),Re(K(D.windowViewportRect,me(L=>L.visibleHeight)),f.viewportHeight),{data:t,defaultItemHeight:e,firstItemIndex:n,fixedItemHeight:r,gap:a,groupCounts:y,initialItemFinalLocationReached:p,initialTopMostItemIndex:m,scrolledToInitialItem:g,sizeRanges:s,topItemCount:N,topItemsIndexes:h,totalCount:d,...S,groupIndices:i,itemSize:o,listState:T,scrollToIndex:R,statefulTotalCount:c,trackItemSizes:u,...v,...D,...f,sizes:l,...E}),tt(nn,Pr,ht,dN,sN,Un,Lr,mN,_N,rp,gN));function EN(t,e){const n={},r={};let a=0;const i=t.length;for(;a<i;)r[t[a]]=1,a+=1;for(const o in e)Object.hasOwn(r,o)||(n[o]=e[o]);return n}const wa=typeof document<"u"?A.useLayoutEffect:A.useEffect;function Sp(t,e,n){const r=Object.keys(e.required||{}),a=Object.keys(e.optional||{}),i=Object.keys(e.methods||{}),o=Object.keys(e.events||{}),s=A.createContext({});function l(E,S){E.propsReady&&ke(E.propsReady,!1);for(const T of r){const h=E[e.required[T]];ke(h,S[T])}for(const T of a)if(T in S){const h=E[e.optional[T]];ke(h,S[T])}E.propsReady&&ke(E.propsReady,!0)}function c(E){return i.reduce((S,T)=>(S[T]=h=>{const v=E[e.methods[T]];ke(v,h)},S),{})}function d(E){return o.reduce((S,T)=>(S[T]=wv(E[e.events[T]]),S),{})}const u=A.forwardRef((E,S)=>{const{children:T,...h}=E,[v]=A.useState(()=>va(Lv(t),N=>{l(N,h)})),[R]=A.useState(Y_(d,v));wa(()=>{for(const N of o)N in h&&Qe(R[N],h[N]);return()=>{Object.values(R).map(uo)}},[h,R,v]),wa(()=>{l(v,h)}),A.useImperativeHandle(S,B_(c(v)));const C=n;return _.jsx(s.Provider,{value:v,children:n?_.jsx(C,{...EN([...r,...a,...o],h),children:T}):T})}),p=E=>{const S=A.useContext(s);return A.useCallback(T=>{ke(S[E],T)},[S,E])},m=E=>{const S=A.useContext(s)[E],T=A.useCallback(h=>Qe(S,h),[S]);return A.useSyncExternalStore(T,()=>lt(S),()=>lt(S))},g=E=>{const S=A.useContext(s)[E],[T,h]=A.useState(Y_(lt,S));return wa(()=>Qe(S,v=>{v!==T&&h(B_(v))}),[S,T]),T},f=A.version.startsWith("18")?m:g;return{Component:u,useEmitter:(E,S)=>{const T=A.useContext(s)[E];wa(()=>Qe(T,S),[S,T])},useEmitterValue:f,usePublisher:p}}const bp=A.createContext(void 0),Tp=A.createContext(void 0),hp=typeof document<"u"?A.useLayoutEffect:A.useEffect;function Oo(t){return"self"in t}function fN(t){return"body"in t}function Rp(t,e,n,r=tr,a,i){const o=A.useRef(null),s=A.useRef(null),l=A.useRef(null),c=A.useCallback(p=>{let m,g,f;const E=p.target;if(fN(E)||Oo(E)){const T=Oo(E)?E:E.defaultView;f=i?T.scrollX:T.scrollY,m=i?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight,g=i?T.innerWidth:T.innerHeight}else f=i?E.scrollLeft:E.scrollTop,m=i?E.scrollWidth:E.scrollHeight,g=i?E.offsetWidth:E.offsetHeight;const S=()=>{t({scrollHeight:m,scrollTop:Math.max(f,0),viewportHeight:g})};p.suppressFlushSync?S():En.flushSync(S),s.current!==null&&(f===s.current||f<=0||f===m-g)&&(s.current=null,e(!0),l.current&&(clearTimeout(l.current),l.current=null))},[t,e,i]);A.useEffect(()=>{const p=a||o.current;return r(a||o.current),c({suppressFlushSync:!0,target:p}),p.addEventListener("scroll",c,{passive:!0}),()=>{r(null),p.removeEventListener("scroll",c)}},[o,c,n,r,a]);function d(p){const m=o.current;if(!m||(i?"offsetWidth"in m&&m.offsetWidth===0:"offsetHeight"in m&&m.offsetHeight===0))return;const g=p.behavior==="smooth";let f,E,S;Oo(m)?(E=Math.max(bn(m.document.documentElement,i?"width":"height"),i?m.document.documentElement.scrollWidth:m.document.documentElement.scrollHeight),f=i?m.innerWidth:m.innerHeight,S=i?window.scrollX:window.scrollY):(E=m[i?"scrollWidth":"scrollHeight"],f=bn(m,i?"width":"height"),S=m[i?"scrollLeft":"scrollTop"]);const T=E-f;if(p.top=Math.ceil(Math.max(Math.min(T,p.top),0)),ip(f,E)||p.top===S){t({scrollHeight:E,scrollTop:S,viewportHeight:f}),g&&e(!0);return}g?(s.current=p.top,l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{l.current=null,s.current=null,e(!0)},1e3)):s.current=null,i&&(p={behavior:p.behavior,left:p.top}),m.scrollTo(p)}function u(p){i&&(p={behavior:p.behavior,left:p.top}),o.current.scrollBy(p)}return{scrollByCallback:u,scrollerRef:o,scrollToCallback:d}}const yo="-webkit-sticky",Cp="sticky",Io=Ep(()=>{if(typeof document>"u")return Cp;const t=document.createElement("div");return t.style.position=yo,t.style.position===yo?yo:Cp});function Ao(t){return t}const SN=ze(()=>{const t=ne(s=>`Item ${s}`),e=ne(s=>`Group ${s}`),n=ne({}),r=ne(Ao),a=ne("div"),i=ne(tr),o=(s,l=null)=>Et(K(n,me(c=>c[s]),nt()),l);return{components:n,computeItemKey:r,EmptyPlaceholder:o("EmptyPlaceholder"),FooterComponent:o("Footer"),GroupComponent:o("Group","div"),groupContent:e,HeaderComponent:o("Header"),HeaderFooterTag:a,ItemComponent:o("Item","div"),itemContent:t,ListComponent:o("List","div"),ScrollerComponent:o("Scroller","div"),scrollerRef:i,ScrollSeekPlaceholder:o("ScrollSeekPlaceholder"),TopItemListComponent:o("TopItemList")}}),bN=ze(([t,e])=>({...t,...e}),tt(fp,SN)),TN=({height:t})=>_.jsx("div",{style:{height:t}}),hN={overflowAnchor:"none",position:Io(),zIndex:1},vp={overflowAnchor:"none"},RN={...vp,display:"inline-block",height:"100%"},Np=A.memo(function({showTopList:t=!1}){const e=Le("listState"),n=Ut("sizeRanges"),r=Le("useWindowScroll"),a=Le("customScrollParent"),i=Ut("windowScrollContainerState"),o=Ut("scrollContainerState"),s=a||r?i:o,l=Le("itemContent"),c=Le("context"),d=Le("groupContent"),u=Le("trackItemSizes"),p=Le("itemSize"),m=Le("log"),g=Ut("gap"),f=Le("horizontalDirection"),{callbackRef:E}=Uv(n,p,u,t?tr:s,m,g,a,f,Le("skipAnimationFrameInResizeObserver")),[S,T]=A.useState(0);xo("deviation",w=>{S!==w&&T(w)});const h=Le("EmptyPlaceholder"),v=Le("ScrollSeekPlaceholder")||TN,R=Le("ListComponent"),C=Le("ItemComponent"),N=Le("GroupComponent"),y=Le("computeItemKey"),D=Le("isSeeking"),L=Le("groupIndices").length>0,P=Le("alignToBottom"),Y=Le("initialItemFinalLocationReached"),q=t?{}:{boxSizing:"border-box",...f?{display:"inline-block",height:"100%",marginLeft:S!==0?S:P?"auto":0,paddingLeft:e.offsetTop,paddingRight:e.offsetBottom,whiteSpace:"nowrap"}:{marginTop:S!==0?S:P?"auto":0,paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},...Y?{}:{visibility:"hidden"}};return!t&&e.totalCount===0&&h?_.jsx(h,{...ft(h,c)}):_.jsx(R,{...ft(R,c),"data-testid":t?"virtuoso-top-item-list":"virtuoso-item-list",ref:E,style:q,children:(t?e.topItems:e.items).map(w=>{const B=w.originalIndex,O=y(B+e.firstItemIndex,w.data,c);return D?A.createElement(v,{...ft(v,c),height:w.size,index:w.index,key:O,type:w.type||"item",...w.type==="group"?{}:{groupIndex:w.groupIndex}}):w.type==="group"?A.createElement(N,{...ft(N,c),"data-index":B,"data-item-index":w.index,"data-known-size":w.size,key:O,style:hN},d(w.index,c)):A.createElement(C,{...ft(C,c),...ON(C,w.data),"data-index":B,"data-item-group-index":w.groupIndex,"data-item-index":w.index,"data-known-size":w.size,key:O,style:f?RN:vp},L?l(w.index,w.groupIndex,w.data,c):l(w.index,w.data,c))})})}),CN={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},vN={outline:"none",overflowX:"auto",position:"relative"},Ma=t=>({height:"100%",position:"absolute",top:0,width:"100%",...t?{display:"flex",flexDirection:"column"}:{}}),NN={position:Io(),top:0,width:"100%",zIndex:1};function ft(t,e){if(typeof t!="string")return{context:e}}function ON(t,e){return{item:typeof t=="string"?void 0:e}}const yN=A.memo(function(){const t=Le("HeaderComponent"),e=Ut("headerHeight"),n=Le("HeaderFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,Le("skipAnimationFrameInResizeObserver")),a=Le("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null}),IN=A.memo(function(){const t=Le("FooterComponent"),e=Ut("footerHeight"),n=Le("HeaderFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,Le("skipAnimationFrameInResizeObserver")),a=Le("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null});function Op({useEmitter:t,useEmitterValue:e,usePublisher:n}){return A.memo(function({children:r,style:a,context:i,...o}){const s=n("scrollContainerState"),l=e("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=e("scrollerRef"),u=e("horizontalDirection")||!1,{scrollByCallback:p,scrollerRef:m,scrollToCallback:g}=Rp(s,c,l,d,void 0,u);return t("scrollTo",g),t("scrollBy",p),_.jsx(l,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:m,style:{...u?vN:CN,...a},tabIndex:0,...o,...ft(l,i),children:r})})}function yp({useEmitter:t,useEmitterValue:e,usePublisher:n}){return A.memo(function({children:r,style:a,context:i,...o}){const s=n("windowScrollContainerState"),l=e("ScrollerComponent"),c=n("smoothScrollTargetReached"),d=e("totalListHeight"),u=e("deviation"),p=e("customScrollParent"),m=A.useRef(null),g=e("scrollerRef"),{scrollByCallback:f,scrollerRef:E,scrollToCallback:S}=Rp(s,c,l,g,p);return hp(()=>{var T;return E.current=p||((T=m.current)==null?void 0:T.ownerDocument.defaultView),()=>{E.current=null}},[E,p]),t("windowScrollTo",S),t("scrollBy",f),_.jsx(l,{ref:m,"data-virtuoso-scroller":!0,style:{position:"relative",...a,...d!==0?{height:d+u}:{}},...o,...ft(l,i),children:r})})}const AN=({children:t})=>{const e=A.useContext(bp),n=Ut("viewportHeight"),r=Ut("fixedItemHeight"),a=Le("alignToBottom"),i=Le("horizontalDirection"),o=A.useMemo(()=>G_(n,l=>bn(l,i?"width":"height")),[n,i]),s=Pn(o,!0,Le("skipAnimationFrameInResizeObserver"));return A.useEffect(()=>{e&&(n(e.viewportHeight),r(e.itemHeight))},[e,n,r]),_.jsx("div",{"data-viewport-type":"element",ref:s,style:Ma(a),children:t})},xN=({children:t})=>{const e=A.useContext(bp),n=Ut("windowViewportRect"),r=Ut("fixedItemHeight"),a=Le("customScrollParent"),i=z_(n,a,Le("skipAnimationFrameInResizeObserver")),o=Le("alignToBottom");return A.useEffect(()=>{e&&(r(e.itemHeight),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:100}))},[e,n,r]),_.jsx("div",{"data-viewport-type":"window",ref:i,style:Ma(o),children:t})},DN=({children:t})=>{const e=Le("TopItemListComponent")||"div",n=Le("headerHeight"),r={...NN,marginTop:`${n}px`},a=Le("context");return _.jsx(e,{style:r,...ft(e,a),children:t})},wN=A.memo(function(t){const e=Le("useWindowScroll"),n=Le("topItemsIndexes").length>0,r=Le("customScrollParent"),a=Le("context");return _.jsxs(r||e?PN:LN,{...t,context:a,children:[n&&_.jsx(DN,{children:_.jsx(Np,{showTopList:!0})}),_.jsxs(r||e?xN:AN,{children:[_.jsx(yN,{}),_.jsx(Np,{}),_.jsx(IN,{})]})]})}),{Component:MN,useEmitter:xo,useEmitterValue:Le,usePublisher:Ut}=Sp(bN,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedItemHeight:"fixedItemHeight",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},wN),LN=Op({useEmitter:xo,useEmitterValue:Le,usePublisher:Ut}),PN=yp({useEmitter:xo,useEmitterValue:Le,usePublisher:Ut}),kN=MN;tt(fp,ze(()=>{const t=ne(c=>_.jsxs("td",{children:["Item $",c]})),e=ne(null),n=ne(c=>_.jsxs("td",{colSpan:1e3,children:["Group ",c]})),r=ne(null),a=ne(null),i=ne({}),o=ne(Ao),s=ne(tr),l=(c,d=null)=>Et(K(i,me(u=>u[c]),nt()),d);return{components:i,computeItemKey:o,context:e,EmptyPlaceholder:l("EmptyPlaceholder"),FillerRow:l("FillerRow"),fixedFooterContent:a,fixedHeaderContent:r,itemContent:t,groupContent:n,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder"),TableBodyComponent:l("TableBody","tbody"),TableComponent:l("Table","table"),TableFooterComponent:l("TableFoot","tfoot"),TableHeadComponent:l("TableHead","thead"),TableRowComponent:l("TableRow","tr"),GroupComponent:l("Group","tr")}})),Io();const Ip={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},UN={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Ap,floor:La,max:Br,min:Do,round:xp}=Math;function Dp(t,e,n){return Array.from({length:e-t+1}).map((r,a)=>({data:n===null?null:n[a+t],index:a+t}))}function FN(t){return{...UN,items:t}}function Pa(t,e){return t&&t.width===e.width&&t.height===e.height}function BN(t,e){return t&&t.column===e.column&&t.row===e.row}const GN=ze(([{increaseViewportBy:t,listBoundary:e,overscan:n,visibleRange:r},{footerHeight:a,headerHeight:i,scrollBy:o,scrollContainerState:s,scrollTo:l,scrollTop:c,smoothScrollTargetReached:d,viewportHeight:u},p,m,{didMount:g,propsReady:f},{customScrollParent:E,useWindowScroll:S,windowScrollContainerState:T,windowScrollTo:h,windowViewportRect:v},R])=>{const C=ne(0),N=ne(0),y=ne(Ip),D=ne({height:0,width:0}),L=ne({height:0,width:0}),P=qe(),Y=qe(),q=ne(0),w=ne(null),B=ne({column:0,row:0}),O=qe(),M=qe(),k=ne(!1),F=ne(0),H=ne(!0),X=ne(!1),ae=ne(!1);Qe(K(g,Fe(F),xe(([U,W])=>!!W)),()=>{ke(H,!1)}),Qe(K(dt(g,H,L,D,F,X),xe(([U,W,te,ce,,ie])=>U&&!W&&te.height!==0&&ce.height!==0&&!ie)),([,,,,U])=>{ke(X,!0),ho(1,()=>{ke(P,U)}),qt(K(c),()=>{ke(e,[0,0]),ke(H,!0)})}),Re(K(M,xe(U=>U!=null&&U.scrollTop>0),en(0)),N),Qe(K(g,Fe(M),xe(([,U])=>U!=null)),([,U])=>{U&&(ke(D,U.viewport),ke(L,U.item),ke(B,U.gap),U.scrollTop>0&&(ke(k,!0),qt(K(c,Ln(1)),W=>{ke(k,!1)}),ke(l,{top:U.scrollTop})))}),Re(K(D,me(({height:U})=>U)),u),Re(K(dt(ye(D,Pa),ye(L,Pa),ye(B,(U,W)=>U&&U.column===W.column&&U.row===W.row),ye(c)),me(([U,W,te,ce])=>({gap:te,item:W,scrollTop:ce,viewport:U}))),O),Re(K(dt(ye(C),r,ye(B,BN),ye(L,Pa),ye(D,Pa),ye(w),ye(N),ye(k),ye(H),ye(F)),xe(([,,,,,,,U])=>!U),me(([U,[W,te],ce,ie,we,be,Ie,,Ee,Te])=>{const{column:oe,row:j}=ce,{height:ee,width:de}=ie,{width:Ue}=we;if(Ie===0&&(U===0||Ue===0))return Ip;if(de===0){const it=Ro(Te,U),Mt=it+Math.max(Ie-1,0);return FN(Dp(it,Mt,be))}const $e=wp(Ue,de,oe);let et,We;Ee?W===0&&te===0&&Ie>0?(et=0,We=Ie-1):(et=$e*La((W+j)/(ee+j)),We=$e*Ap((te+j)/(ee+j))-1,We=Do(U-1,Br(We,$e-1)),et=Do(We,Br(0,et))):(et=0,We=-1);const Z=Dp(et,We,be),{bottom:re,top:he}=Mp(we,ce,ie,Z),ve=Ap(U/$e),Ye=ve*ee+(ve-1)*j-re;return{bottom:re,itemHeight:ee,items:Z,itemWidth:de,offsetBottom:Ye,offsetTop:he,top:he}})),y),Re(K(w,xe(U=>U!==null),me(U=>U.length)),C),Re(K(dt(D,L,y,B),xe(([U,W,{items:te}])=>te.length>0&&W.height!==0&&U.height!==0),me(([U,W,{items:te},ce])=>{const{bottom:ie,top:we}=Mp(U,ce,W,te);return[we,ie]}),nt(wr)),e);const z=ne(!1);Re(K(c,Fe(z),me(([U,W])=>W||U!==0)),z);const Q=At(K(dt(y,C),xe(([{items:U}])=>U.length>0),Fe(z),xe(([[U,W],te])=>{const ce=U.items[U.items.length-1].index===W-1;return(te||U.bottom>0&&U.itemHeight>0&&U.offsetBottom===0&&U.items.length===W)&&ce}),me(([[,U]])=>U-1),nt())),le=At(K(ye(y),xe(({items:U})=>U.length>0&&U[0].index===0),en(0),nt())),Se=At(K(ye(y),Fe(k),xe(([{items:U},W])=>U.length>0&&!W),me(([{items:U}])=>({endIndex:U[U.length-1].index,startIndex:U[0].index})),nt(Z_),un(0)));Re(Se,m.scrollSeekRangeChanged),Re(K(P,Fe(D,L,C,B),me(([U,W,te,ce,ie])=>{const we=ap(U),{align:be,behavior:Ie,offset:Ee}=we;let Te=we.index;Te==="LAST"&&(Te=ce-1),Te=Br(0,Te,Do(ce-1,Te));let oe=wo(W,ie,te,Te);return be==="end"?oe=xp(oe-W.height+te.height):be==="center"&&(oe=xp(oe-W.height/2+te.height/2)),Ee&&(oe+=Ee),{behavior:Ie,top:oe}})),l);const V=Et(K(y,me(U=>U.offsetBottom+U.bottom)),0);return Re(K(v,me(U=>({height:U.visibleHeight,width:U.visibleWidth}))),D),{customScrollParent:E,data:w,deviation:q,footerHeight:a,gap:B,headerHeight:i,increaseViewportBy:t,initialItemCount:N,itemDimensions:L,overscan:n,restoreStateFrom:M,scrollBy:o,scrollContainerState:s,scrollHeight:Y,scrollTo:l,scrollToIndex:P,scrollTop:c,smoothScrollTargetReached:d,totalCount:C,useWindowScroll:S,viewportDimensions:D,windowScrollContainerState:T,windowScrollTo:h,windowViewportRect:v,...m,gridState:y,horizontalDirection:ae,initialTopMostItemIndex:F,totalListHeight:V,...p,endReached:Q,propsReady:f,rangeChanged:Se,startReached:le,stateChanged:O,stateRestoreInProgress:k,...R}},tt(Co,ht,Fr,gp,Tn,No,Sn));function wp(t,e,n){return Br(1,La((t+n)/(La(e)+n)))}function Mp(t,e,n,r){const{height:a}=n;if(a===void 0||r.length===0)return{bottom:0,top:0};const i=wo(t,e,n,r[0].index);return{bottom:wo(t,e,n,r[r.length-1].index)+a,top:i}}function wo(t,e,n,r){const a=wp(t.width,n.width,e.column),i=La(r/a),o=i*n.height+Br(0,i-1)*e.row;return o>0?o+e.row:o}const YN=ze(()=>{const t=ne(u=>`Item ${u}`),e=ne({}),n=ne(null),r=ne("virtuoso-grid-item"),a=ne("virtuoso-grid-list"),i=ne(Ao),o=ne("div"),s=ne(tr),l=(u,p=null)=>Et(K(e,me(m=>m[u]),nt()),p),c=ne(!1),d=ne(!1);return Re(ye(d),c),{components:e,computeItemKey:i,context:n,FooterComponent:l("Footer"),HeaderComponent:l("Header"),headerFooterTag:o,itemClassName:r,ItemComponent:l("Item","div"),itemContent:t,listClassName:a,ListComponent:l("List","div"),readyStateChanged:c,reportReadyState:d,ScrollerComponent:l("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:l("ScrollSeekPlaceholder","div")}}),HN=ze(([t,e])=>({...t,...e}),tt(GN,YN)),qN=A.memo(function(){const t=at("gridState"),e=at("listClassName"),n=at("itemClassName"),r=at("itemContent"),a=at("computeItemKey"),i=at("isSeeking"),o=Ft("scrollHeight"),s=at("ItemComponent"),l=at("ListComponent"),c=at("ScrollSeekPlaceholder"),d=at("context"),u=Ft("itemDimensions"),p=Ft("gap"),m=at("log"),g=at("stateRestoreInProgress"),f=Ft("reportReadyState"),E=Pn(A.useMemo(()=>S=>{const T=S.parentElement.parentElement.scrollHeight;o(T);const h=S.firstChild;if(h){const{height:v,width:R}=h.getBoundingClientRect();u({height:v,width:R})}p({column:Pp("column-gap",getComputedStyle(S).columnGap,m),row:Pp("row-gap",getComputedStyle(S).rowGap,m)})},[o,u,p,m]),!0,!1);return hp(()=>{t.itemHeight>0&&t.itemWidth>0&&f(!0)},[t]),g?null:_.jsx(l,{className:e,ref:E,...ft(l,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},children:t.items.map(S=>{const T=a(S.index,S.data,d);return i?_.jsx(c,{...ft(c,d),height:t.itemHeight,index:S.index,width:t.itemWidth},T):A.createElement(s,{...ft(s,d),className:n,"data-index":S.index,key:T},r(S.index,S.data,d))})})}),VN=A.memo(function(){const t=at("HeaderComponent"),e=Ft("headerHeight"),n=at("headerFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,!1),a=at("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null}),zN=A.memo(function(){const t=at("FooterComponent"),e=Ft("footerHeight"),n=at("headerFooterTag"),r=Pn(A.useMemo(()=>i=>{e(bn(i,"height"))},[e]),!0,!1),a=at("context");return t?_.jsx(n,{ref:r,children:_.jsx(t,{...ft(t,a)})}):null}),$N=({children:t})=>{const e=A.useContext(Tp),n=Ft("itemDimensions"),r=Ft("viewportDimensions"),a=Pn(A.useMemo(()=>i=>{r(i.getBoundingClientRect())},[r]),!0,!1);return A.useEffect(()=>{e&&(r({height:e.viewportHeight,width:e.viewportWidth}),n({height:e.itemHeight,width:e.itemWidth}))},[e,r,n]),_.jsx("div",{ref:a,style:Ma(!1),children:t})},WN=({children:t})=>{const e=A.useContext(Tp),n=Ft("windowViewportRect"),r=Ft("itemDimensions"),a=at("customScrollParent"),i=z_(n,a,!1);return A.useEffect(()=>{e&&(r({height:e.itemHeight,width:e.itemWidth}),n({offsetTop:0,visibleHeight:e.viewportHeight,visibleWidth:e.viewportWidth}))},[e,n,r]),_.jsx("div",{ref:i,style:Ma(!1),children:t})},KN=A.memo(function({...t}){const e=at("useWindowScroll"),n=at("customScrollParent"),r=n||e?jN:QN,a=n||e?WN:$N,i=at("context");return _.jsx(r,{...t,...ft(r,i),children:_.jsxs(a,{children:[_.jsx(VN,{}),_.jsx(qN,{}),_.jsx(zN,{})]})})}),{useEmitter:Lp,useEmitterValue:at,usePublisher:Ft}=Sp(HN,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},KN),QN=Op({useEmitter:Lp,useEmitterValue:at,usePublisher:Ft}),jN=yp({useEmitter:Lp,useEmitterValue:at,usePublisher:Ft});function Pp(t,e,n){return e!=="normal"&&!(e!=null&&e.endsWith("px"))&&n(`${t} was not resolved to pixel value correctly`,e,Nt.WARN),e==="normal"?0:parseInt(e??"0",10)}function $(...t){return YR.twMerge(GR.clsx(t))}const XN=Tr.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),je=b.forwardRef(({className:t,variant:e,size:n,asChild:r=!1,...a},i)=>{const o=r?It.Slot:"button";return _.jsx(o,{className:$(XN({variant:e,size:n,className:t})),ref:i,...a})});je.displayName="Button";const kp=b.forwardRef(({className:t,...e},n)=>_.jsx("textarea",{className:$("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),ref:n,...e}));kp.displayName="Textarea";function ZN({initialValue:t="",editingMessageId:e=null,placeholder:n="Type your message...",isStreaming:r=!1,disabled:a=!1,maxLength:i=2e4,onSend:o,onCancelEdit:s,className:l="",textareaClassName:c=""}){const[d,u]=A.useState(t),[p,m]=A.useTransition(),g=A.useRef(null);A.useEffect(()=>{u(t??""),g.current&&(g.current.style.height="auto",g.current.style.height=`${g.current.scrollHeight}px`)},[t,e]);const f=A.useCallback(()=>{const C=g.current;C&&(C.style.height="auto",C.style.height=`${C.scrollHeight}px`)},[]);A.useEffect(()=>{f()},[f]);const E=A.useCallback(async C=>{C&&C.preventDefault();const N=(d??"").trim();N&&m(()=>{try{const y=o(N);y&&typeof y.then=="function"?y.then(()=>{u(""),g.current&&(g.current.style.height="auto")}).catch(()=>{}):(u(""),g.current&&(g.current.style.height="auto"))}catch{}})},[d,o]),S=A.useCallback(C=>{u(C.target.value),g.current&&(g.current.style.height="auto",g.current.style.height=`${g.current.scrollHeight}px`)},[]),T=A.useCallback(C=>{C.key==="Enter"&&!C.shiftKey?(C.preventDefault(),E()):C.key==="Escape"&&e&&(C.preventDefault(),s==null||s())},[E,e,s]),R=`resize-none min-h-[44px] max-h-[20rem] w-full transition-colors ${e?"border-[hsl(var(--ring))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] dark:bg-[hsl(var(--card))] dark:text-[hsl(var(--card-foreground))]":""} ${c}`;return _.jsx("form",{onSubmit:C=>void E(C),className:`w-full ${l}`,children:_.jsxs("div",{className:"flex items-end gap-2",children:[_.jsx("div",{className:"flex-1",children:_.jsx(kp,{ref:g,value:d,onChange:S,onKeyDown:T,placeholder:e?"Edit your message...":n,className:R,disabled:a,maxLength:i,rows:1,spellCheck:!1,autoCorrect:"off"})}),_.jsx("div",{children:r?_.jsx(je,{type:"button",onClick:()=>{},size:"icon",variant:"outline",className:"shrink-0",title:"Stop generating",disabled:!0,children:_.jsx(Ce.Square,{size:16})}):_.jsx(je,{type:"submit",size:"icon",className:"shrink-0",title:e?"Save changes":"Send message",disabled:a||!d.trim()||p,children:_.jsx(Ce.Send,{size:16})})})]})})}const JN=A.memo(ZN),eO=Tr.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Up({className:t,variant:e,...n}){return _.jsx("div",{className:$(eO({variant:e}),t),...n})}function ue(t,e,{checkForDefaultPrevented:n=!0}={}){return function(a){if(t==null||t(a),n===!1||!a.defaultPrevented)return e==null?void 0:e(a)}}function tO(t,e){const n=b.createContext(e),r=i=>{const{children:o,...s}=i,l=b.useMemo(()=>s,Object.values(s));return _.jsx(n.Provider,{value:l,children:o})};r.displayName=t+"Provider";function a(i){const o=b.useContext(n);if(o)return o;if(e!==void 0)return e;throw new Error(`\`${i}\` must be used within \`${t}\``)}return[r,a]}function zt(t,e=[]){let n=[];function r(i,o){const s=b.createContext(o),l=n.length;n=[...n,o];const c=u=>{var S;const{scope:p,children:m,...g}=u,f=((S=p==null?void 0:p[t])==null?void 0:S[l])||s,E=b.useMemo(()=>g,Object.values(g));return _.jsx(f.Provider,{value:E,children:m})};c.displayName=i+"Provider";function d(u,p){var f;const m=((f=p==null?void 0:p[t])==null?void 0:f[l])||s,g=b.useContext(m);if(g)return g;if(o!==void 0)return o;throw new Error(`\`${u}\` must be used within \`${i}\``)}return[c,d]}const a=()=>{const i=n.map(o=>b.createContext(o));return function(s){const l=(s==null?void 0:s[t])||i;return b.useMemo(()=>({[`__scope${t}`]:{...s,[t]:l}}),[s,l])}};return a.scopeName=t,[r,nO(a,...e)]}function nO(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(i){const o=r.reduce((s,{useScope:l,scopeName:c})=>{const u=l(i)[`__scope${c}`];return{...s,...u}},{});return b.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}var _t=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},rO=b[" useInsertionEffect ".trim().toString()]||_t;function hn({prop:t,defaultProp:e,onChange:n=()=>{},caller:r}){const[a,i,o]=aO({defaultProp:e,onChange:n}),s=t!==void 0,l=s?t:a;{const d=b.useRef(t!==void 0);b.useEffect(()=>{const u=d.current;u!==s&&console.warn(`${r} is changing from ${u?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,r])}const c=b.useCallback(d=>{var u;if(s){const p=iO(d)?d(t):d;p!==t&&((u=o.current)==null||u.call(o,p))}else i(d)},[s,t,i,o]);return[l,c]}function aO({defaultProp:t,onChange:e}){const[n,r]=b.useState(t),a=b.useRef(n),i=b.useRef(e);return rO(()=>{i.current=e},[e]),b.useEffect(()=>{var o;a.current!==n&&((o=i.current)==null||o.call(i,n),a.current=n)},[n,a]),[n,r,i]}function iO(t){return typeof t=="function"}function Fp(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Mo(...t){return e=>{let n=!1;const r=t.map(a=>{const i=Fp(a,e);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let a=0;a<r.length;a++){const i=r[a];typeof i=="function"?i():Fp(t[a],null)}}}}function Ge(...t){return b.useCallback(Mo(...t),t)}var oO=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],De=oO.reduce((t,e)=>{const n=It.createSlot(`Primitive.${e}`),r=b.forwardRef((a,i)=>{const{asChild:o,...s}=a,l=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(l,{...s,ref:i})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function Bp(t,e){t&&ca.flushSync(()=>t.dispatchEvent(e))}function sO(t,e){return b.useReducer((n,r)=>e[n][r]??n,t)}var Ot=t=>{const{present:e,children:n}=t,r=lO(e),a=typeof n=="function"?n({present:r.isPresent}):b.Children.only(n),i=Ge(r.ref,cO(a));return typeof n=="function"||r.isPresent?b.cloneElement(a,{ref:i}):null};Ot.displayName="Presence";function lO(t){const[e,n]=b.useState(),r=b.useRef(null),a=b.useRef(t),i=b.useRef("none"),o=t?"mounted":"unmounted",[s,l]=sO(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const c=ka(r.current);i.current=s==="mounted"?c:"none"},[s]),_t(()=>{const c=r.current,d=a.current;if(d!==t){const p=i.current,m=ka(c);t?l("MOUNT"):m==="none"||(c==null?void 0:c.display)==="none"?l("UNMOUNT"):l(d&&p!==m?"ANIMATION_OUT":"UNMOUNT"),a.current=t}},[t,l]),_t(()=>{if(e){let c;const d=e.ownerDocument.defaultView??window,u=m=>{const f=ka(r.current).includes(CSS.escape(m.animationName));if(m.target===e&&f&&(l("ANIMATION_END"),!a.current)){const E=e.style.animationFillMode;e.style.animationFillMode="forwards",c=d.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=E)})}},p=m=>{m.target===e&&(i.current=ka(r.current))};return e.addEventListener("animationstart",p),e.addEventListener("animationcancel",u),e.addEventListener("animationend",u),()=>{d.clearTimeout(c),e.removeEventListener("animationstart",p),e.removeEventListener("animationcancel",u),e.removeEventListener("animationend",u)}}else l("ANIMATION_END")},[e,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:b.useCallback(c=>{r.current=c?getComputedStyle(c):null,n(c)},[])}}function ka(t){return(t==null?void 0:t.animationName)||"none"}function cO(t){var r,a;let e=(r=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(a=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:a.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var dO=b[" useId ".trim().toString()]||(()=>{}),uO=0;function $t(t){const[e,n]=b.useState(dO());return _t(()=>{n(r=>r??String(uO++))},[t]),t||(e?`radix-${e}`:"")}var Ua="Collapsible",[_O,I0]=zt(Ua),[pO,Lo]=_O(Ua),Gp=b.forwardRef((t,e)=>{const{__scopeCollapsible:n,open:r,defaultOpen:a,disabled:i,onOpenChange:o,...s}=t,[l,c]=hn({prop:r,defaultProp:a??!1,onChange:o,caller:Ua});return _.jsx(pO,{scope:n,disabled:i,contentId:$t(),open:l,onOpenToggle:b.useCallback(()=>c(d=>!d),[c]),children:_.jsx(De.div,{"data-state":ko(l),"data-disabled":i?"":void 0,...s,ref:e})})});Gp.displayName=Ua;var Yp="CollapsibleTrigger",Hp=b.forwardRef((t,e)=>{const{__scopeCollapsible:n,...r}=t,a=Lo(Yp,n);return _.jsx(De.button,{type:"button","aria-controls":a.contentId,"aria-expanded":a.open||!1,"data-state":ko(a.open),"data-disabled":a.disabled?"":void 0,disabled:a.disabled,...r,ref:e,onClick:ue(t.onClick,a.onOpenToggle)})});Hp.displayName=Yp;var Po="CollapsibleContent",mO=b.forwardRef((t,e)=>{const{forceMount:n,...r}=t,a=Lo(Po,t.__scopeCollapsible);return _.jsx(Ot,{present:n||a.open,children:({present:i})=>_.jsx(gO,{...r,ref:e,present:i})})});mO.displayName=Po;var gO=b.forwardRef((t,e)=>{const{__scopeCollapsible:n,present:r,children:a,...i}=t,o=Lo(Po,n),[s,l]=b.useState(r),c=b.useRef(null),d=Ge(e,c),u=b.useRef(0),p=u.current,m=b.useRef(0),g=m.current,f=o.open||s,E=b.useRef(f),S=b.useRef(void 0);return b.useEffect(()=>{const T=requestAnimationFrame(()=>E.current=!1);return()=>cancelAnimationFrame(T)},[]),_t(()=>{const T=c.current;if(T){S.current=S.current||{transitionDuration:T.style.transitionDuration,animationName:T.style.animationName},T.style.transitionDuration="0s",T.style.animationName="none";const h=T.getBoundingClientRect();u.current=h.height,m.current=h.width,E.current||(T.style.transitionDuration=S.current.transitionDuration,T.style.animationName=S.current.animationName),l(r)}},[o.open,r]),_.jsx(De.div,{"data-state":ko(o.open),"data-disabled":o.disabled?"":void 0,id:o.contentId,hidden:!f,...i,ref:d,style:{"--radix-collapsible-content-height":p?`${p}px`:void 0,"--radix-collapsible-content-width":g?`${g}px`:void 0,...t.style},children:f&&a})});function ko(t){return t?"open":"closed"}var EO=Gp;const qp=EO,Vp=Hp,Uo=new URL("data:video/mp2t;base64,aW1wb3J0IHsgcGFyc2UgfSBmcm9tICdtYXJrZWQnOwoKY29uc29sZS5sb2coJ1tNYXJrZG93bldvcmtlcl0gd29ya2VyIHNjcmlwdCBsb2FkZWQnKTsKLy8gU2lnbmFsIHRvIHRoZSBtYWluIHRocmVhZCB0aGF0IHRoZSB3b3JrZXIgaXMgcmVhZHkgdG8gcmVjZWl2ZSB3b3JrLgovLyBUaGlzIGhlbHBzIGNhbGxlcnMgYXZvaWQgcG9zdGluZyBtZXNzYWdlcyBiZWZvcmUgdGhlIHdvcmtlciBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nLgo7KHNlbGYgYXMgYW55KS5wb3N0TWVzc2FnZT8uKHsgX193b3JrZXJfcmVhZHk6IHRydWUgfSk7CgpzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXY6IE1lc3NhZ2VFdmVudCkgPT4gewogIGNvbnN0IHsgaWQsIHNvdXJjZSB9ID0gZXYuZGF0YSBhcyB7IGlkOiBzdHJpbmc7IHNvdXJjZTogc3RyaW5nIH07CiAgdHJ5IHsKICAgIGNvbnNvbGUubG9nKCdbTWFya2Rvd25Xb3JrZXJdIHJlY2VpdmVkIHdvcmsnLCBpZCwgJ3NvdXJjZUxlbicsIHNvdXJjZT8ubGVuZ3RoID8/IDApOwogICAgY29uc3QgaHRtbCA9IHBhcnNlKHNvdXJjZSk7CiAgICBjb25zb2xlLmxvZygnW01hcmtkb3duV29ya2VyXSBwYXJzZWQgaHRtbCBsZW5ndGgnLCBodG1sPy5sZW5ndGggPz8gMCwgJ2ZvcicsIGlkKTsKICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIEhUTUwgZm9yIHRoZSBjYWxsZXIgdG8gY2FjaGUgYW5kIHJlbmRlcgogICAgLy8gS2VlcCB0aGUgcGF5bG9hZCBzbWFsbDogc2VuZCBpZCArIGh0bWwKICAgIC8vIE1hcmtlZCBvdXRwdXQgc2hvdWxkIGJlIHNhZmUtZW5vdWdoIGZvciBpbnRlcm5hbCBVSXM7IGNhbGxlcnMgbWF5IGZ1cnRoZXIgc2FuaXRpemUgaWYgcmVxdWlyZWQuCiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWwgfSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBjb25zb2xlLmVycm9yKCdbTWFya2Rvd25Xb3JrZXJdIHJlbmRlciBlcnJvcicsIGVycik7CiAgICAoc2VsZiBhcyBhbnkpLnBvc3RNZXNzYWdlKHsgaWQsIGh0bWw6IGA8cHJlPkVycm9yIHJlbmRlcmluZyBtYXJrZG93bjogJHtTdHJpbmcoZXJyKX08L3ByZT5gIH0pOwogIH0KfSk7Cg==",typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:Qn&&Qn.tagName.toUpperCase()==="SCRIPT"&&Qn.src||new URL("index.umd.js",document.baseURI).href);console.log("[MarkdownContent] worker url",String(Uo));const Fo=[];let Bo=!1,Gr={addEventListener:()=>{},removeEventListener:()=>{},postMessage:()=>{},terminate:()=>{}};function zp(t){Gr=t,Bo=!0;try{for(;Fo.length;){const e=Fo.shift();try{e&&e()}catch{}}}catch(e){console.warn("[MarkdownContent] markWorkerOnline notify failed",e)}}try{const t=new Worker(Uo,{type:"module"});zp(t)}catch(t){console.warn("[MarkdownContent] worker constructor failed, will try fetch+blob fallback",t),(async()=>{try{const e=String(Uo);let n="";if(e.includes("data:"))try{const i=e.indexOf("data:"),s=e.slice(i).replace(/^data:[^;]+;base64,/,"");n=atob(s)}catch(i){console.warn("[MarkdownContent] failed to decode embedded data URI",i)}else{const i=await fetch(e);n=await i.text(),i.ok||console.warn("[MarkdownContent] fetch worker non-ok",i.status,i.statusText)}if(!n){console.warn("[MarkdownContent] worker fetch returned empty content; aborting worker init.");return}if(n.trim().startsWith("<")){console.warn("[MarkdownContent] worker fetch returned HTML; dev server may be redirecting. Aborting worker init.");return}const r=new Blob([n],{type:"application/javascript"}),a=URL.createObjectURL(r);try{const i=new Worker(a,{type:"module"});zp(i)}catch(i){console.error("[MarkdownContent] failed to initialize worker from blob",i)}}catch(e){console.error("[MarkdownContent] fetch worker failed",e)}})()}Gr.addEventListener("error",t=>{console.error("[MarkdownContent] worker error",t)});const Yr=new Map;function fO(t){const e=t.slice(0,64),n=t.length>64?t.slice(-64):"";return`${t.length}:${e}:${n}`}function Hr({content:t,className:e="",fallback:n=_.jsx("div",{"aria-busy":!0,children:"Rendering…"})}){const r=fO(t),[a,i]=A.useState(()=>Yr.get(r)??null);A.useEffect(()=>{if(Yr.has(r)){const g=Yr.get(r)??null;i(g);return}let s=!0,l=!1;const c=g=>{const f=g.data;if(!f||f.id!==r||!s)return;l=!0;const E=f.html??"";Yr.set(r,E),i(E)};Gr.addEventListener("message",c);const d=()=>{try{Gr.postMessage({id:r,source:t})}catch(g){console.error("[MarkdownContent] worker.postMessage threw",g)}};Bo?d():Fo.push(d);const p=((g,f)=>f?g>2e4?1e4:g>8e3?5e3:g>2e3?2e3:600:Math.min(1e4,1e3+Math.floor(g*.5)))(t.length,Bo),m=window.setTimeout(async()=>{if(!l){console.warn("[MarkdownContent] worker timeout (ms="+p+"), falling back to main-thread parse for",r);try{const g=await Promise.resolve().then(()=>CM),f=g&&(g.parse||g.default&&g.default.parse),E=f?f(t):"";Yr.set(r,E),s&&i(E)}catch(g){console.error("[MarkdownContent] fallback parse failed",g)}}},p);return()=>{s=!1,clearTimeout(m),Gr.removeEventListener("message",c)}},[t,r]);const o=A.useRef(null);return A.useEffect(()=>{if(!a)return;const s=o.current;if(!s)return;const l=Array.from(s.querySelectorAll("pre code"));if(!l.length)return;let c=null,d=!1;const u=(m,g)=>{for(const f of m){if(!f.isIntersecting)continue;const E=f.target;if(!c)Promise.resolve().then(()=>WU).then(S=>{if(!d){c=S.default||S;try{l.forEach(T=>{s.contains(T)&&c.highlightElement(T)})}catch{}}}).catch(()=>{});else try{c.highlightElement(E)}catch{}g.unobserve(E)}},p=new IntersectionObserver(u,{root:s,threshold:.1});return l.forEach(m=>p.observe(m)),()=>{d=!0,p.disconnect()}},[a]),a?_.jsx("div",{ref:o,className:$("markdown prose max-w-none break-words dark:prose-invert",e),dangerouslySetInnerHTML:{__html:a}}):_.jsx("div",{className:$("markdown prose max-w-none break-words dark:prose-invert",e),children:n})}async function $p(t,e){return await kt(t,{responseType:"blob",onDownloadProgress:r=>{try{if(e&&r.lengthComputable){const a=r.loaded/r.total;e(a)}}catch{}},maxBodyLength:1/0})}async function Wp(t,e){const n=await $p(`/chat/files/${t}/view`,e),r=URL.createObjectURL(n);window.open(r,"_blank"),setTimeout(()=>URL.revokeObjectURL(r),6e4)}async function SO(t,e){const n=await $p(`/chat/files/${t}/download`,e),r=URL.createObjectURL(n);let a=`file_${t}`;try{const o=await kt(`/chat/files/${t}`);a=(o==null?void 0:o.filename)??a}catch{}const i=document.createElement("a");i.href=r,i.download=a,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(r),6e4)}const bO=1,TO=1e6;let Go=0;function hO(){return Go=(Go+1)%Number.MAX_SAFE_INTEGER,Go.toString()}const Yo=new Map,Kp=t=>{if(Yo.has(t))return;const e=setTimeout(()=>{Yo.delete(t),qr({type:"REMOVE_TOAST",toastId:t})},TO);Yo.set(t,e)},RO=(t,e)=>{switch(e.type){case"ADD_TOAST":return{...t,toasts:[e.toast,...t.toasts].slice(0,bO)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(n=>n.id===e.toast.id?{...n,...e.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=e;return n?Kp(n):t.toasts.forEach(r=>{Kp(r.id)}),{...t,toasts:t.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(n=>n.id!==e.toastId)}}},Fa=[];let Ba={toasts:[]};function qr(t){Ba=RO(Ba,t),Fa.forEach(e=>{e(Ba)})}function CO({...t}){const e=hO(),n=a=>qr({type:"UPDATE_TOAST",toast:{...a,id:e}}),r=()=>qr({type:"DISMISS_TOAST",toastId:e});return qr({type:"ADD_TOAST",toast:{...t,id:e,open:!0,onOpenChange:a=>{a||r()}}}),{id:e,dismiss:r,update:n}}function Qp(){const[t,e]=b.useState(Ba);return b.useEffect(()=>(Fa.push(e),()=>{const n=Fa.indexOf(e);n>-1&&Fa.splice(n,1)}),[t]),{...t,toast:CO,dismiss:n=>qr({type:"DISMISS_TOAST",toastId:n})}}const Ga="prose prose-sm max-w-none break-words dark:prose-invert prose-headings:break-words prose-p:break-words prose-li:break-words prose-td:break-words prose-th:break-words prose-a:break-all prose-code:break-words prose-blockquote:break-words";function vO({className:t}){const[e,n]=A.useState(0);return A.useEffect(()=>{const r=setInterval(()=>n(a=>(a+1)%4),500);return()=>clearInterval(r)},[]),_.jsxs("span",{"aria-live":"polite",className:$("inline-block text-xs opacity-70 ml-1",t),children:["Is thinking",".".repeat(e)]})}const jp=A.memo(function({message:e,messageIndex:n,isStreamingMessage:r=!1,streamingDebounceMs:a=40,isEditing:i=!1,showActions:o=!0,showTimestamp:s=!0,showAgentName:l=!0,layoutSize:c="desktop",truncateToolMessages:d=!0,toolMessagePreviewLength:u=200,truncateUserMessages:p=!0,userMessagePreviewLength:m=200,customStyles:g={},onEdit:f,onRegenerate:E,onCancelEdit:S,onCopy:T}){const[h,v]=A.useState(!1),[R,C]=A.useState(!1),[N,y]=A.useState(!1),[D,L]=A.useState(!1),{currentThreadId:P}=Ra(),{toast:Y}=Qp(),[q,w]=A.useState({}),B=c==="phone"||c==="half-screen",O=e.role,M=O==="tool",k=A.useMemo(()=>{switch(O){case"user":return"text-[hsl(var(--chat-bubble-user-text))]";case"assistant":return"text-[hsl(var(--chat-bubble-ai-text))]";case"tool":return"text-secondary-foreground";case"system":return"text-muted-foreground";default:return"text-[hsl(var(--chat-bubble-ai-text))]"}},[O]),F=A.useMemo(()=>NO(e.content),[e.content]),H=A.useMemo(()=>xO(e.content),[e.content]),X=A.useMemo(()=>e.content.filter(be=>be.type==="image_url"),[e.content]),ae=A.useMemo(()=>e.content.filter(be=>be.type==="file"),[e.content]),z=wO(F,r?a:0),Q=async()=>{try{const be=M?rr(e.content):F;await navigator.clipboard.writeText(be),v(!0),setTimeout(()=>v(!1),2e3),T==null||T(be)}catch(be){console.error("Failed to copy:",be)}},le=()=>{if(!f)return;const be=M?rr(e.content):F;f(e.id,be)},Se=()=>E==null?void 0:E(n),V=async(be,Ie,Ee)=>{try{const Te=String(Ie.url??"");try{const oe=Te.match(/\/chat\/files\/(\d+)(?:\/(view|download))?/);if(oe){be.preventDefault();const j=oe[1],ee=oe[2]||"view";if(q[Ee])return;w(de=>({...de,[Ee]:!0}));try{const de=Y({title:ee==="download"?"Downloading file...":"Opening file...",description:"",open:!0}),Ue=$e=>{de.update({id:de.id,description:`Progress: ${($e*100).toFixed(0)}%`})};ee==="download"?await SO(j,Ue):await Wp(j,Ue),de.update({id:de.id,title:"Done",description:void 0})}catch(de){console.error("Failed to fetch server file:",de),Y({title:"Failed to fetch file",description:String(de),open:!0})}finally{w(de=>({...de,[Ee]:!1}))}return}}catch{}if(Te.startsWith("data:")){if(be.preventDefault(),q[Ee])return;w(Ue=>({...Ue,[Ee]:!0}));const j=Te.split(",")[1]??"";let ee=Ie.mimeType??"application/octet-stream";const de=Te.substring(5,Te.indexOf(","));de&&de.includes(";")?ee=de.split(";")[0]||ee:de&&!de.includes(";")&&(ee=de||ee);try{const Ue=Y({title:"Uploading file...",description:"",open:!0}),$e=await Jt.uploadFile(j,Ie.name??"file",ee,P??void 0);if($e&&$e.id){const et=$e.id;await Wp(et,We=>Ue.update({id:Ue.id,description:`Progress: ${(We*100).toFixed(0)}%`})),Ue.update({id:Ue.id,title:"Done",description:void 0})}}catch(Ue){console.error("Failed to upload file for viewing:",Ue),Y({title:"Failed to upload file",description:String(Ue),open:!0})}finally{w(Ue=>({...Ue,[Ee]:!1}))}}}finally{w(Te=>({...Te,[Ee]:!1}))}},U=()=>{const Ie=$(B?"h-3 w-3":"h-4 w-4","opacity-60 flex-shrink-0",k);switch(O){case"user":return _.jsx(Ce.User,{className:Ie});case"assistant":return _.jsx(Ce.Bot,{className:Ie});case"tool":return _.jsx(Ce.Wrench,{className:Ie});default:return _.jsx(Ce.Bot,{className:Ie})}},W=()=>{const be="group relative mb-4 flex w-full";switch(O){case"user":return $(be,"justify-end");case"assistant":case"tool":case"system":return $(be,"justify-start");default:return be}},te=()=>{const be=$("rounded-lg px-4 py-3 relative transition-all duration-200 min-w-0 max-w-full break-words",B&&"px-3 py-2 text-sm");switch(O){case"user":return $(be,"w-full md:max-w-[95%]","bg-[hsl(var(--chat-bubble-user))] text-[hsl(var(--chat-bubble-user-text))]","border border-transparent");case"assistant":return $(be,"w-full md:max-w-[95%]","bg-[hsl(var(--chat-bubble-ai))] text-[hsl(var(--chat-bubble-ai-text))]","border border-border/60 dark:border-border/40");case"tool":return $(be,"w-full md:max-w-[95%] bg-secondary/50 text-secondary-foreground border border-dashed");case"system":return $(be,"w-full md:max-w-[85%] bg-accent/40 text-muted-foreground border");default:return $(be,"w-full md:max-w-[95%]","bg-[hsl(var(--chat-bubble-ai))] text-[hsl(var(--chat-bubble-ai-text))]","border border-border/60 dark:border-border/40")}},ce=be=>{if(!be)return"";try{return new Date(be).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return""}},ie=()=>{if(e.model==="reflection"){const Ee=F.trim(),Te=Ho(Ee);if(Te&&typeof Te=="object")return _.jsx(MO,{data:Te})}if(M&&H.name==="get_issues"){const Ee=e.content.find(j=>j.type==="tool_result"),Te=(Ee==null?void 0:Ee.output)??rr(e.content),oe=Jp(Te);if(oe)return _.jsx(LO,{issues:oe})}if(M&&!N){const Ee=rr(e.content).slice(0,80).replace(/\s+/g," ");return _.jsx("div",{className:$("text-xs font-mono opacity-70 flex items-center justify-between gap-2 text-current",B&&"text-[10px]"),children:_.jsxs("span",{className:"truncate max-w-full text-current",children:[Ee,Ee.length>=80?"…":""]})})}if(M&&d){const Ee=rr(e.content),Te=Ee.length>u;return _.jsx(qp,{open:R,onOpenChange:C,children:_.jsxs("div",{className:"font-mono text-sm text-current",children:[_.jsx("pre",{className:$("whitespace-pre-wrap break-words text-current",B&&"text-xs"),children:Te&&!R?Ee.substring(0,u)+"...":Ee}),Te&&_.jsx(Vp,{asChild:!0,children:_.jsx(je,{variant:"ghost",size:"sm",className:"h-6 text-xs text-current",children:R?_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronUp,{className:"h-3 w-3 mr-1"}),"Show less"]}):_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronDown,{className:"h-3 w-3 mr-1"}),"Show more (",Ee.length-u," chars)"]})})})]})})}if(M&&N&&!d){const Ee=PO(e.content);if(Ee&&OO(Ee))return _.jsx(Hr,{content:Ee.trim()});const Te=rr(e.content);return _.jsx("div",{className:"font-mono text-sm text-current",children:_.jsx("pre",{className:$("whitespace-pre-wrap break-words text-current",B&&"text-xs"),children:Te})})}const be=X.length>0&&O!=="tool",Ie=ae.length>0&&O!=="tool";return _.jsxs("div",{children:[r?_.jsxs("div",{className:"relative",children:[(()=>{const Ee=Ho(z);return Ee!==null?_.jsx(Xp,{data:Ee}):_.jsx(Hr,{content:IO(yO(z))})})(),_.jsx(vO,{className:$(k,B?"text-xs":"text-sm")})]}):(()=>{const Ee=Ho(F.trim());if(Ee!==null)return _.jsx(Xp,{data:Ee});if(O==="user"&&p){const Te=F.trim();if(Te.length>m)return _.jsxs(qp,{open:D,onOpenChange:L,children:[_.jsx("div",{className:$("text-sm text-[hsl(var(--chat-bubble-user-text))]",B&&"text-xs"),children:D?_.jsx(Hr,{content:Te}):_.jsxs("pre",{className:$("font-sans whitespace-pre-wrap break-words bg-transparent p-0 m-0 text-[hsl(var(--chat-bubble-user-text))]",B&&"text-xs"),children:[Te.substring(0,m),"..."]})}),_.jsx(Vp,{asChild:!0,children:_.jsx(je,{variant:"ghost",size:"sm",className:"h-6 text-xs !text-[hsl(var(--chat-bubble-user-text))]",children:D?_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronUp,{className:"h-3 w-3 mr-1"})," Show less"]}):_.jsxs(_.Fragment,{children:[_.jsx(Ce.ChevronDown,{className:"h-3 w-3 mr-1"})," Show more (",Te.length-m," chars)"]})})})]})}return _.jsx(Hr,{content:F.trim()})})(),be&&_.jsx("div",{className:"mt-2 grid grid-cols-2 gap-2",children:X.map((Ee,Te)=>_.jsxs("div",{className:"relative border rounded overflow-hidden",children:[_.jsx("img",{src:Ee.url,alt:Ee.alt??"image",className:"w-full h-auto"}),_.jsxs("div",{className:"absolute top-1 right-1 bg-background/70 rounded px-1 py-0.5 text-[10px] flex items-center gap-1",children:[_.jsx(Ce.Image,{className:"h-3 w-3"}),_.jsx("span",{children:"image"})]})]},Te))}),Ie&&_.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:ae.map((Ee,Te)=>{const oe=Ee,j=oe.name||"file";return _.jsxs("a",{href:oe.url,download:j,onClick:ee=>V(ee,oe,Te),target:"_blank",rel:"noreferrer",className:$("inline-flex items-center gap-2 rounded px-2 py-1 text-xs","bg-gray-100 border border-gray-200 hover:bg-gray-200","dark:bg-background/10 dark:border-border/30 dark:hover:bg-background/20","text-current"),title:j,children:[_.jsx("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-gray-400 dark:bg-gray-500"}),q[Te]?_.jsxs("span",{className:"flex items-center gap-2",children:[_.jsx(Ce.Loader,{className:"h-4 w-4 animate-spin"}),_.jsxs("span",{className:"truncate max-w-[140px]",children:[j," (processing)"]})]}):_.jsx("span",{className:"truncate max-w-[180px]",children:j})]},Te)})})]})},we=A.useMemo(()=>DO(e),[e]);return _.jsx("div",{className:$(W(),g.container),children:_.jsxs("div",{className:$(te(),g.content),children:[(s||l||M)&&_.jsxs("div",{className:$("flex items-center justify-between mb-2 pb-2 border-b border-current/10",B&&"mb-1 pb-1",k,g.header),children:[_.jsxs("div",{className:"flex items-center gap-2",children:[U(),l&&we&&_.jsx("span",{className:$("font-medium",B?"text-xs":"text-sm"),children:we}),M&&H.name&&_.jsxs(Up,{variant:"outline",className:$("text-xs flex items-center gap-1 cursor-pointer",k,"border border-current/40",B&&"text-xs h-4"),onClick:()=>y(be=>!be),children:[_.jsx("span",{children:H.name}),_.jsx("span",{className:"inline-flex items-center",children:N?_.jsx(Ce.ChevronUp,{className:"h-3 w-3"}):_.jsx(Ce.ChevronDown,{className:"h-3 w-3"})})]}),M&&!H.name&&_.jsx(je,{variant:"ghost",size:"sm",className:$("h-6 px-1",k,"hover:bg-foreground/10"),onClick:()=>y(be=>!be),children:_.jsxs("span",{className:"text-xs flex items-center gap-1",children:["Tool Output ",N?_.jsx(Ce.ChevronUp,{className:"h-3 w-3"}):_.jsx(Ce.ChevronDown,{className:"h-3 w-3"})]})})]}),_.jsxs("div",{className:"flex items-center gap-2",children:[s&&_.jsx("span",{className:$("text-xs opacity-60",k,B&&"text-xs"),children:ce(e.createdAt)}),o&&!i&&_.jsxs("div",{className:$("opacity-0 group-hover:opacity-100 transition-opacity","flex items-center gap-1",g.actions),children:[_.jsx(je,{variant:"ghost",size:"sm",onClick:Q,className:$("h-6 w-6 p-0 hover:bg-foreground/10",k,B&&"h-5 w-5"),children:_.jsx(Ce.Copy,{className:$(h?"text-success":k,B?"h-3 w-3":"h-4 w-4")})}),O==="user"&&f&&_.jsx(je,{variant:"ghost",size:"sm",onClick:le,className:$("h-6 w-6 p-0 hover:bg-foreground/10",k,B&&"h-5 w-5"),children:_.jsx(Ce.Edit,{className:$(k,B?"h-3 w-3":"h-4 w-4")})}),O==="assistant"&&E&&_.jsx(je,{variant:"ghost",size:"sm",onClick:Se,className:$("h-6 w-6 p-0 hover:bg-foreground/10",k,B&&"h-5 w-5"),children:_.jsx(Ce.RotateCcw,{className:$(k,B?"h-3 w-3":"h-4 w-4")})})]})]})]}),_.jsx("div",{className:"relative",children:ie()}),M&&N&&(H.toolCallId||H.name)&&_.jsxs("div",{className:$("mt-2 pt-2 border-t border-current/10 text-xs opacity-60",B&&"text-xs"),children:[H.name&&_.jsxs("div",{children:["Function: ",H.name]}),H.toolCallId&&_.jsxs("div",{children:["Call ID: ",H.toolCallId]})]}),!(s||l||M)&&o&&!i&&_.jsxs("div",{className:$("absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity","flex items-center gap-1",g.actions),children:[_.jsx(je,{variant:"ghost",size:"sm",onClick:Q,className:$("h-6 w-6 p-0 hover:bg-background/50 text-current",B&&"h-5 w-5"),children:_.jsx(Ce.Copy,{className:$(h?"text-success":"text-current",B?"h-3 w-3":"h-4 w-4")})}),O==="user"&&f&&_.jsx(je,{variant:"ghost",size:"sm",onClick:le,className:$("h-6 w-6 p-0 hover:bg-background/50 text-current",B&&"h-5 w-5"),children:_.jsx(Ce.Edit,{className:$("text-current",B?"h-3 w-3":"h-4 w-4")})}),O==="assistant"&&E&&_.jsx(je,{variant:"ghost",size:"sm",onClick:Se,className:$("h-6 w-6 p-0 hover:bg-background/50 text-current",B&&"h-5 w-5"),children:_.jsx(Ce.RotateCcw,{className:$("text-current",B?"h-3 w-3":"h-4 w-4")})})]})]})})},(t,e)=>t.message.id===e.message.id&&t.message.content===e.message.content);function NO(t){const e=t.filter(n=>n.type==="text").map(n=>n.text).join("");return e||JSON.stringify(t)}function OO(t){return t.includes(`
34
34
  `)||t.includes("```")||/[-*] /.test(t)||/#+\s/.test(t)}function yO(t){let e=t;try{(e.match(/```/g)||[]).length%2===1&&(e+="\n```"),(e.replace(/```[\s\S]*?```/g,"").match(new RegExp("(?<!`)`(?!`)","g"))||[]).length%2===1&&(e+="`")}catch{}return e}function IO(t){let e=t;try{const n=[],r=[],a="\0F",i="\0I";let o=e.replace(/```[\s\S]*?```/g,s=>(n.push(s),`${a}${n.length-1}\0`));o=o.replace(/`[^`]*`/g,s=>(r.push(s),`${i}${r.length-1}\0`)),o=o.replace(/\b([A-Za-z0-9_&\/-]+)\b(\s+\1\b)+/g,"$1").replace(/\b([A-Za-z0-9_&\/-]+\s+[A-Za-z0-9_&\/-]+)\b(\s+\1\b)+/g,"$1").replace(/([\.,;:!\?\-])\1+/g,"$1").replace(/([:;!\?\)])([A-Za-z])/g,"$1 $2").replace(/\s{3,}/g," "),o=o.replace(/\u0000F(\d+)\u0000/g,(s,l)=>n[Number(l)]??""),o=o.replace(/\u0000I(\d+)\u0000/g,(s,l)=>r[Number(l)]??""),e=o}catch{}return e}function Ho(t){const e=t==null?void 0:t.trim();if(!e||!(e.startsWith("{")||e.startsWith("[")))return null;try{return JSON.parse(e)}catch{return null}}function Xp({data:t}){if(Array.isArray(t))return t.every(n=>n===null||["string","number","boolean"].includes(typeof n))?_.jsx("div",{className:Ga,children:_.jsx("ul",{className:"list-disc pl-5",children:t.map((n,r)=>_.jsx("li",{children:String(n)},r))})}):_.jsx("pre",{className:"font-mono text-xs bg-background/50 rounded border p-2 whitespace-pre-wrap break-words",children:Vr(t)});if(t&&typeof t=="object"){const e=Array.isArray(t.distilled_facts)?t.distilled_facts:null,n=Array.isArray(t.follow_up_queries)?t.follow_up_queries:null,r=typeof t.is_sufficient=="boolean"?t.is_sufficient:void 0;if(e||n||typeof r=="boolean")return _.jsxs("div",{className:Ga,children:[typeof r=="boolean"&&_.jsxs("p",{children:[_.jsx("strong",{children:"Is sufficient:"})," ",r?"Yes":"No"]}),n&&n.length>0&&_.jsxs("div",{children:[_.jsx("p",{children:_.jsx("strong",{children:"Follow-up queries:"})}),_.jsx("ul",{className:"list-disc pl-5",children:n.map((i,o)=>_.jsx("li",{children:String(i)},o))})]}),e&&e.length>0&&_.jsxs("div",{children:[_.jsx("p",{children:_.jsx("strong",{children:"Facts:"})}),_.jsx("ul",{className:"list-disc pl-5",children:e.map((i,o)=>_.jsx("li",{children:String(i)},o))})]})]});const a=Object.entries(t);return _.jsx("div",{className:Ga,children:_.jsx("dl",{className:"mt-0",children:a.map(([i,o])=>_.jsxs("div",{className:"mb-1",children:[_.jsxs("dt",{className:"inline font-medium mr-1",children:[i,":"]}),_.jsx("dd",{className:"inline",children:AO(o)})]},i))})})}return _.jsx("pre",{className:"font-mono text-xs bg-background/50 rounded border p-2 whitespace-pre-wrap break-words",children:Vr(t)})}function AO(t){if(t==null)return String(t);const e=typeof t;if(e==="string"||e==="number"||e==="boolean")return String(t);if(Array.isArray(t)&&t.every(r=>r===null||["string","number","boolean"].includes(typeof r)))return t.join(", ");try{return _.jsx("code",{className:"text-xs",children:JSON.stringify(Ya(t))})}catch{return String(t)}}function Zp(t){return!!(t&&typeof t=="object"&&(t.type==="file"||t.mimeType||t.filename||t.sourceType==="base64"))}function Ya(t){if(typeof t=="string")return t.length>2e3?t.slice(0,2e3)+"... [truncated]":t;if(t&&typeof t=="object"){if(Array.isArray(t)){const n=t.map(Ya).filter(r=>r!==void 0);return n.length?n:void 0}if(Zp(t))return;const e={};for(const n of Object.keys(t)){const r=t[n];if(n==="data"&&typeof r=="string"&&r.length>100)e[n]=`[base64 ${r.length} chars omitted]`;else{const a=Ya(r);a!==void 0&&(e[n]=a)}}return Object.keys(e).length?e:void 0}return t}function Vr(t){if(typeof t=="string")return t;if(Zp(t))return"";try{const e=Ya(t);return e===void 0?"":typeof e=="string"?e:JSON.stringify(e,null,2)}catch{return""}}function xO(t){const e=t.find(r=>r.type==="tool_call"),n=t.find(r=>r.type==="tool_result");return{name:e==null?void 0:e.name,toolCallId:(n==null?void 0:n.toolCallId)??(e==null?void 0:e.id)}}function DO(t){return t.name&&t.name.trim()?t.name:t.model&&t.model.includes("/")?t.model.split("/").pop()||null:t.model||null}function wO(t,e){const[n,r]=A.useState(t);return A.useEffect(()=>{if(!e){r(t);return}const a=setTimeout(()=>r(t),e);return()=>clearTimeout(a)},[t,e]),n}function MO({data:t}){return _.jsx("dl",{className:"grid grid-cols-1 gap-y-2",children:Object.entries(t).map(([e,n])=>_.jsxs("div",{className:"flex",children:[_.jsxs("dt",{className:"font-semibold mr-2",children:[e,":"]}),_.jsx("dd",{className:"flex-1 break-words",children:Array.isArray(n)?n.map((r,a)=>_.jsxs("div",{className:"ml-4 break-words",children:["- ",String(r)]},a)):String(n)})]},e))})}function Jp(t){if(!t)return null;if(typeof t=="object"&&!Array.isArray(t)){if(t.desirability||t.feasibility||t.viability||t.other)return{desirability:Array.isArray(t.desirability)?t.desirability:[],feasibility:Array.isArray(t.feasibility)?t.feasibility:[],viability:Array.isArray(t.viability)?t.viability:[],other:Array.isArray(t.other)?t.other:[]};if(t.output&&typeof t.output!="object")t=t.output;else if(t.output&&typeof t.output=="object")return Jp(t.output)}const e=String(t),n={desirability:[],feasibility:[],viability:[],other:[]};let r=e;const a=Math.min(...["desirability=","feasibility=","viability=","other="].map(o=>{const s=r.toLowerCase().indexOf(o);return s===-1?Number.MAX_SAFE_INTEGER:s}));a!==Number.MAX_SAFE_INTEGER&&(r=r.slice(a));for(const o of Object.keys(n)){const l=new RegExp(o+"\\s*=\\s*\\[([\\s\\S]*?)\\]","i").exec(r);if(!l)continue;const c=l[1],d=/Issue\(([\s\S]*?)\)(?:,|$)/g;let u=null;for(;(u=d.exec(c))!==null;){const p=u[1],m=/title\s*=\s*(['"])([\s\S]*?)\1/.exec(p),g=/description\s*=\s*(['"])([\s\S]*?)\1/.exec(p),f=m?m[2].trim():"",E=g?g[2].trim():"";n[o].push({title:f,description:E})}}return Object.values(n).some(o=>o.length>0)?n:null}function LO({issues:t}){const e=[{key:"desirability",title:"Desirability"},{key:"feasibility",title:"Feasibility"},{key:"viability",title:"Viability"},{key:"other",title:"Other"}];return _.jsx("div",{className:Ga,children:e.map(n=>{const r=t[n.key];return!r||!r.length?null:_.jsxs("div",{className:"mb-4",children:[_.jsxs("h4",{className:"font-semibold mb-2",children:[n.title," (",r.length,")"]}),_.jsx("ol",{className:"list-decimal pl-5 space-y-2",children:r.map((a,i)=>_.jsxs("li",{children:[_.jsx("div",{className:"font-medium",children:a.title}),_.jsx("div",{className:"text-sm text-muted-foreground",children:a.description})]},i))})]},n.key)})})}function rr(t){const e=t.filter(n=>n.type==="tool_result");if(e.length)try{return e.length===1?Vr(e[0].output):Vr(e.map(n=>({toolCallId:n.toolCallId,output:n.output})))}catch{}return Vr(t)}function PO(t){const e=t.find(r=>r.type==="tool_result");if(!e)return null;const n=e.output;return typeof n=="string"?n:null}const Ha=1e4;function kO(t){if(typeof t!="string")return String(t);const e=[/<script[^>]*>.*?<\/script>/gi,/<iframe[^>]*>.*?<\/iframe>/gi,/javascript:/gi,/vbscript:/gi,/on\w+\s*=/gi,/<object[^>]*>.*?<\/object>/gi,/<embed[^>]*>.*?<\/embed>/gi,/<form[^>]*>.*?<\/form>/gi];let n=t;for(const a of e)n=n.replace(a,"");return/<[^>]+>/.test(n)&&!/<(?!\/?(?:code|strong|em|b|i|br|p|ul|ol|li|h[1-6])\b)[^>]+>/i.test(n)?n.replace(/<code>(.*?)<\/code>/gi,"`$1`").replace(/<strong>(.*?)<\/strong>/gi,"**$1**").replace(/<b>(.*?)<\/b>/gi,"**$1**").replace(/<em>(.*?)<\/em>/gi,"*$1*").replace(/<i>(.*?)<\/i>/gi,"*$1*").replace(/<br\s*\/?>/gi,`
35
35
  `).replace(/<p>(.*?)<\/p>/gi,`$1
36
36
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "teodor-new-chat-ui",
3
- "version": "3.0.42",
3
+ "version": "3.0.44",
4
4
  "description": "React chat UI components with streaming support, tool calls, and modern design",
5
5
  "main": "dist/index.umd.js",
6
6
  "module": "dist/index.esm.js",