teodor-new-chat-ui 4.0.13 → 4.0.14
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 +2 -2
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -2740,7 +2740,7 @@ function qg({
|
|
|
2740
2740
|
console.log("[ThreadProvider] Load already in progress for thread:", M);
|
|
2741
2741
|
return;
|
|
2742
2742
|
}
|
|
2743
|
-
S.current = M, w(!0);
|
|
2743
|
+
d((le) => le === M ? le : M), S.current = M, w(!0);
|
|
2744
2744
|
try {
|
|
2745
2745
|
const le = await i.getMessages({
|
|
2746
2746
|
threadId: M,
|
|
@@ -2753,7 +2753,7 @@ function qg({
|
|
|
2753
2753
|
}
|
|
2754
2754
|
}, `loadThread-${M}`);
|
|
2755
2755
|
},
|
|
2756
|
-
[i, N, k]
|
|
2756
|
+
[i, N, k, d]
|
|
2757
2757
|
), W = Fe(async () => {
|
|
2758
2758
|
console.log("[ThreadProvider] 🔄 clearCurrentThread called"), await N(async () => {
|
|
2759
2759
|
u && (C.current = u), k == null || k.onThreadCleared(), d(null), g(void 0), b(void 0);
|
package/dist/index.umd.js
CHANGED
|
@@ -32,7 +32,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
32
32
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[ol]=this[ol]={accessors:{}}).accessors,o=this.prototype;function s(i){const a=pr(i);r[a]||(Tm(o,i),r[a]=!0)}return P.isArray(t)?t.forEach(s):s(t),this}};wt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),P.reduceDescriptors(wt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}}),P.freezeMethods(wt);function Ls(e,t){const n=this||hr,r=t||n,o=wt.from(r.headers);let s=r.data;return P.forEach(e,function(a){s=a.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function sl(e){return!!(e&&e.__CANCEL__)}function Vn(e,t,n){Ee.call(this,e??"canceled",Ee.ERR_CANCELED,t,n),this.name="CanceledError"}P.inherits(Vn,Ee,{__CANCEL__:!0});function il(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Ee("Request failed with status code "+n.status,[Ee.ERR_BAD_REQUEST,Ee.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Em(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function km(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,s=0,i;return t=t!==void 0?t:1e3,function(c){const u=Date.now(),d=r[s];i||(i=u),n[o]=c,r[o]=u;let f=s,h=0;for(;f!==o;)h+=n[f++],f=f%e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),u-i<t)return;const m=d&&u-d;return m?Math.round(h*1e3/m):void 0}}function Im(e,t){let n=0,r=1e3/t,o,s;const i=(u,d=Date.now())=>{n=d,o=null,s&&(clearTimeout(s),s=null),e(...u)};return[(...u)=>{const d=Date.now(),f=d-n;f>=r?i(u,d):(o=u,s||(s=setTimeout(()=>{s=null,i(o)},r-f)))},()=>o&&i(o)]}const eo=(e,t,n=3)=>{let r=0;const o=km(50,250);return Im(s=>{const i=s.loaded,a=s.lengthComputable?s.total:void 0,c=i-r,u=o(c),d=i<=a;r=i;const f={loaded:i,total:a,progress:a?i/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a&&d?(a-i)/u:void 0,event:s,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},al=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},ll=e=>(...t)=>P.asap(()=>e(...t)),Nm=dt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,dt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(dt.origin),dt.navigator&&/(msie|trident)/i.test(dt.navigator.userAgent)):()=>!0,Am=dt.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];P.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),P.isString(r)&&i.push("path="+r),P.isString(o)&&i.push("domain="+o),s===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function _m(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function jm(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function cl(e,t,n){let r=!_m(t);return e&&(r||n==!1)?jm(e,t):t}const ul=e=>e instanceof wt?{...e}:e;function En(e,t){t=t||{};const n={};function r(u,d,f,h){return P.isPlainObject(u)&&P.isPlainObject(d)?P.merge.call({caseless:h},u,d):P.isPlainObject(d)?P.merge({},d):P.isArray(d)?d.slice():d}function o(u,d,f,h){if(P.isUndefined(d)){if(!P.isUndefined(u))return r(void 0,u,f,h)}else return r(u,d,f,h)}function s(u,d){if(!P.isUndefined(d))return r(void 0,d)}function i(u,d){if(P.isUndefined(d)){if(!P.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function a(u,d,f){if(f in t)return r(u,d);if(f in e)return r(void 0,u)}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(u,d,f)=>o(ul(u),ul(d),f,!0)};return P.forEach(Object.keys({...e,...t}),function(d){const f=c[d]||o,h=f(e[d],t[d],d);P.isUndefined(h)&&f!==a||(n[d]=h)}),n}const dl=e=>{const t=En({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:s,headers:i,auth:a}=t;if(t.headers=i=wt.from(i),t.url=el(cl(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),P.isFormData(n)){if(dt.hasStandardBrowserEnv||dt.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(P.isFunction(n.getHeaders)){const c=n.getHeaders(),u=["content-type","content-length"];Object.entries(c).forEach(([d,f])=>{u.includes(d.toLowerCase())&&i.set(d,f)})}}if(dt.hasStandardBrowserEnv&&(r&&P.isFunction(r)&&(r=r(t)),r||r!==!1&&Nm(t.url))){const c=o&&s&&Am.read(s);c&&i.set(o,c)}return t},Rm=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,r){const o=dl(e);let s=o.data;const i=wt.from(o.headers).normalize();let{responseType:a,onUploadProgress:c,onDownloadProgress:u}=o,d,f,h,m,w;function v(){m&&m(),w&&w(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let g=new XMLHttpRequest;g.open(o.method.toUpperCase(),o.url,!0),g.timeout=o.timeout;function x(){if(!g)return;const S=wt.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),C={data:!a||a==="text"||a==="json"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:S,config:e,request:g};il(function(I){n(I),v()},function(I){r(I),v()},C),g=null}"onloadend"in g?g.onloadend=x:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(x)},g.onabort=function(){g&&(r(new Ee("Request aborted",Ee.ECONNABORTED,e,g)),g=null)},g.onerror=function(k){const C=k&&k.message?k.message:"Network Error",T=new Ee(C,Ee.ERR_NETWORK,e,g);T.event=k||null,r(T),g=null},g.ontimeout=function(){let k=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const C=o.transitional||nl;o.timeoutErrorMessage&&(k=o.timeoutErrorMessage),r(new Ee(k,C.clarifyTimeoutError?Ee.ETIMEDOUT:Ee.ECONNABORTED,e,g)),g=null},s===void 0&&i.setContentType(null),"setRequestHeader"in g&&P.forEach(i.toJSON(),function(k,C){g.setRequestHeader(C,k)}),P.isUndefined(o.withCredentials)||(g.withCredentials=!!o.withCredentials),a&&a!=="json"&&(g.responseType=o.responseType),u&&([h,w]=eo(u,!0),g.addEventListener("progress",h)),c&&g.upload&&([f,m]=eo(c),g.upload.addEventListener("progress",f),g.upload.addEventListener("loadend",m)),(o.cancelToken||o.signal)&&(d=S=>{g&&(r(!S||S.type?new Vn(null,e,g):S),g.abort(),g=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));const b=Em(o.url);if(b&&dt.protocols.indexOf(b)===-1){r(new Ee("Unsupported protocol "+b+":",Ee.ERR_BAD_REQUEST,e));return}g.send(s||null)})},Pm=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const s=function(u){if(!o){o=!0,a();const d=u instanceof Error?u:this.reason;r.abort(d instanceof Ee?d:new Vn(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,s(new Ee(`timeout ${t} of ms exceeded`,Ee.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(s):u.removeEventListener("abort",s)}),e=null)};e.forEach(u=>u.addEventListener("abort",s));const{signal:c}=r;return c.unsubscribe=()=>P.asap(a),c}},Om=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,o;for(;r<n;)o=r+t,yield e.slice(r,o),r=o},Mm=async function*(e,t){for await(const n of Dm(e))yield*Om(n,t)},Dm=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},fl=(e,t,n,r)=>{const o=Mm(e,t);let s=0,i,a=c=>{i||(i=!0,r&&r(c))};return new ReadableStream({async pull(c){try{const{done:u,value:d}=await o.next();if(u){a(),c.close();return}let f=d.byteLength;if(n){let h=s+=f;n(h)}c.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(c){return a(c),o.return()}},{highWaterMark:2})},hl=64*1024,{isFunction:to}=P,Lm=(({Request:e,Response:t})=>({Request:e,Response:t}))(P.global),{ReadableStream:pl,TextEncoder:ml}=P.global,gl=(e,...t)=>{try{return!!e(...t)}catch{return!1}},$m=e=>{e=P.merge.call({skipUndefined:!0},Lm,e);const{fetch:t,Request:n,Response:r}=e,o=t?to(t):typeof fetch=="function",s=to(n),i=to(r);if(!o)return!1;const a=o&&to(pl),c=o&&(typeof ml=="function"?(w=>v=>w.encode(v))(new ml):async w=>new Uint8Array(await new n(w).arrayBuffer())),u=s&&a&&gl(()=>{let w=!1;const v=new n(dt.origin,{body:new pl,method:"POST",get duplex(){return w=!0,"half"}}).headers.has("Content-Type");return w&&!v}),d=i&&a&&gl(()=>P.isReadableStream(new r("").body)),f={stream:d&&(w=>w.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(w=>{!f[w]&&(f[w]=(v,g)=>{let x=v&&v[w];if(x)return x.call(v);throw new Ee(`Response type '${w}' is not supported`,Ee.ERR_NOT_SUPPORT,g)})});const h=async w=>{if(w==null)return 0;if(P.isBlob(w))return w.size;if(P.isSpecCompliantForm(w))return(await new n(dt.origin,{method:"POST",body:w}).arrayBuffer()).byteLength;if(P.isArrayBufferView(w)||P.isArrayBuffer(w))return w.byteLength;if(P.isURLSearchParams(w)&&(w=w+""),P.isString(w))return(await c(w)).byteLength},m=async(w,v)=>{const g=P.toFiniteNumber(w.getContentLength());return g??h(v)};return async w=>{let{url:v,method:g,data:x,signal:b,cancelToken:S,timeout:k,onDownloadProgress:C,onUploadProgress:T,responseType:I,headers:N,withCredentials:_="same-origin",fetchOptions:j}=dl(w),R=t||fetch;I=I?(I+"").toLowerCase():"text";let z=Pm([b,S&&S.toAbortSignal()],k),H=null;const O=z&&z.unsubscribe&&(()=>{z.unsubscribe()});let W;try{if(T&&u&&g!=="get"&&g!=="head"&&(W=await m(N,x))!==0){let U=new n(v,{method:"POST",body:x,duplex:"half"}),J;if(P.isFormData(x)&&(J=U.headers.get("content-type"))&&N.setContentType(J),U.body){const[Q,ce]=al(W,eo(ll(T)));x=fl(U.body,hl,Q,ce)}}P.isString(_)||(_=_?"include":"omit");const K=s&&"credentials"in n.prototype,G={...j,signal:z,method:g.toUpperCase(),headers:N.normalize().toJSON(),body:x,duplex:"half",credentials:K?_:void 0};H=s&&new n(v,G);let $=await(s?R(H,j):R(v,G));const A=d&&(I==="stream"||I==="response");if(d&&(C||A&&O)){const U={};["status","statusText","headers"].forEach(we=>{U[we]=$[we]});const J=P.toFiniteNumber($.headers.get("content-length")),[Q,ce]=C&&al(J,eo(ll(C),!0))||[];$=new r(fl($.body,hl,Q,()=>{ce&&ce(),O&&O()}),U)}I=I||"text";let D=await f[P.findKey(f,I)||"text"]($,w);return!A&&O&&O(),await new Promise((U,J)=>{il(U,J,{data:D,headers:wt.from($.headers),status:$.status,statusText:$.statusText,config:w,request:H})})}catch(K){throw O&&O(),K&&K.name==="TypeError"&&/Load failed|fetch/i.test(K.message)?Object.assign(new Ee("Network Error",Ee.ERR_NETWORK,w,H),{cause:K.cause||K}):Ee.from(K,K&&K.code,w,H)}}},Fm=new Map,xl=e=>{let t=e?e.env:{};const{fetch:n,Request:r,Response:o}=t,s=[r,o,n];let i=s.length,a=i,c,u,d=Fm;for(;a--;)c=s[a],u=d.get(c),u===void 0&&d.set(c,u=a?new Map:$m(t)),d=u;return u};xl();const $s={http:am,xhr:Rm,fetch:{get:xl}};P.forEach($s,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const vl=e=>`- ${e}`,zm=e=>P.isFunction(e)||e===null||e===!1,wl={getAdapter:(e,t)=>{e=P.isArray(e)?e:[e];const{length:n}=e;let r,o;const s={};for(let i=0;i<n;i++){r=e[i];let a;if(o=r,!zm(r)&&(o=$s[(a=String(r)).toLowerCase()],o===void 0))throw new Ee(`Unknown adapter '${a}'`);if(o&&(P.isFunction(o)||(o=o.get(t))))break;s[a||"#"+i]=o}if(!o){const i=Object.entries(s).map(([c,u])=>`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since :
|
|
33
33
|
`+i.map(vl).join(`
|
|
34
34
|
`):" "+vl(i[0]):"as no adapter specified";throw new Ee("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o},adapters:$s};function Fs(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Vn(null,e)}function bl(e){return Fs(e),e.headers=wt.from(e.headers),e.data=Ls.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),wl.getAdapter(e.adapter||hr.adapter,e)(e).then(function(r){return Fs(e),r.data=Ls.call(e,e.transformResponse,r),r.headers=wt.from(r.headers),r},function(r){return sl(r)||(Fs(e),r&&r.response&&(r.response.data=Ls.call(e,e.transformResponse,r.response),r.response.headers=wt.from(r.response.headers))),Promise.reject(r)})}const yl="1.12.2",no={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{no[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Sl={};no.transitional=function(t,n,r){function o(s,i){return"[Axios v"+yl+"] Transitional option '"+s+"'"+i+(r?". "+r:"")}return(s,i,a)=>{if(t===!1)throw new Ee(o(i," has been removed"+(n?" in "+n:"")),Ee.ERR_DEPRECATED);return n&&!Sl[i]&&(Sl[i]=!0,console.warn(o(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,i,a):!0}},no.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Bm(e,t,n){if(typeof e!="object")throw new Ee("options must be an object",Ee.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const a=e[s],c=a===void 0||i(a,s,e);if(c!==!0)throw new Ee("option "+s+" must be "+c,Ee.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ee("Unknown option "+s,Ee.ERR_BAD_OPTION)}}const ro={assertOptions:Bm,validators:no},Vt=ro.validators;let kn=class{constructor(t){this.defaults=t||{},this.interceptors={request:new tl,response:new tl}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const s=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
35
|
-
`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=En(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&ro.assertOptions(r,{silentJSONParsing:Vt.transitional(Vt.boolean),forcedJSONParsing:Vt.transitional(Vt.boolean),clarifyTimeoutError:Vt.transitional(Vt.boolean)},!1),o!=null&&(P.isFunction(o)?n.paramsSerializer={serialize:o}:ro.assertOptions(o,{encode:Vt.function,serialize:Vt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ro.assertOptions(n,{baseUrl:Vt.spelling("baseURL"),withXsrfToken:Vt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=s&&P.merge(s.common,s[n.method]);s&&P.forEach(["delete","get","head","post","put","patch","common"],w=>{delete s[w]}),n.headers=wt.concat(i,s);const a=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,a.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,f=0,h;if(!c){const w=[bl.bind(this),void 0];for(w.unshift(...a),w.push(...u),h=w.length,d=Promise.resolve(n);f<h;)d=d.then(w[f++],w[f++]);return d}h=a.length;let m=n;for(;f<h;){const w=a[f++],v=a[f++];try{m=w(m)}catch(g){v.call(this,g);break}}try{d=bl.call(this,m)}catch(w){return Promise.reject(w)}for(f=0,h=u.length;f<h;)d=d.then(u[f++],u[f++]);return d}getUri(t){t=En(this.defaults,t);const n=cl(t.baseURL,t.url,t.allowAbsoluteUrls);return el(n,t.params,t.paramsSerializer)}};P.forEach(["delete","get","head","options"],function(t){kn.prototype[t]=function(n,r){return this.request(En(r||{},{method:t,url:n,data:(r||{}).data}))}}),P.forEach(["post","put","patch"],function(t){function n(r){return function(s,i,a){return this.request(En(a||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}kn.prototype[t]=n(),kn.prototype[t+"Form"]=n(!0)});let Hm=class vp{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const r=this;this.promise.then(o=>{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const i=new Promise(a=>{r.subscribe(a),s=a}).then(o);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s,i,a){r.reason||(r.reason=new Vn(s,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new vp(function(o){t=o}),cancel:t}}};function Um(e){return function(n){return e.apply(null,n)}}function Wm(e){return P.isObject(e)&&e.isAxiosError===!0}const zs={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(zs).forEach(([e,t])=>{zs[t]=e});function Cl(e){const t=new kn(e),n=Fa(kn.prototype.request,t);return P.extend(n,kn.prototype,t,{allOwnKeys:!0}),P.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return Cl(En(e,o))},n}const et=Cl(hr);et.Axios=kn,et.CanceledError=Vn,et.CancelToken=Hm,et.isCancel=sl,et.VERSION=yl,et.toFormData=Zr,et.AxiosError=Ee,et.Cancel=et.CanceledError,et.all=function(t){return Promise.all(t)},et.spread=Um,et.isAxiosError=Wm,et.mergeConfig=En,et.AxiosHeaders=wt,et.formToJSON=e=>rl(P.isHTMLForm(e)?new FormData(e):e),et.getAdapter=wl.getAdapter,et.HttpStatusCode=zs,et.default=et;const{Axios:TC,AxiosError:EC,CanceledError:kC,isCancel:IC,CancelToken:NC,VERSION:AC,all:_C,Cancel:jC,isAxiosError:RC,spread:PC,toFormData:OC,AxiosHeaders:MC,HttpStatusCode:DC,formToJSON:LC,getAdapter:$C,mergeConfig:FC}=et,Tl=typeof window<"u"?window.__API_BASE_URL__:void 0,El=Tl?Tl.replace(/\/+$/,""):void 0;let oo=null;const Bs=new Set;function kl(){return oo}function Hs(e){oo=e,Bs.forEach(t=>t(e))}function Il(e){return Bs.add(e),()=>Bs.delete(e)}const _t=et.create({...El?{baseURL:El}:{},timeout:3e4,withCredentials:!0});_t.interceptors.request.use(e=>(oo&&(e.headers.Authorization=`Bearer ${oo}`),e)),_t.interceptors.response.use(e=>e,e=>Promise.reject(e));async function St(e,t){return _t.defaults.baseURL?(await _t.get(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}async function Us(e,t,n){return _t.defaults.baseURL?(await _t.post(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function Nl(e,t,n){return _t.defaults.baseURL?(await _t.put(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function Al(e,t){return _t.defaults.baseURL?(await _t.delete(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}function Ct(e){return e&&typeof e=="object"&&"data"in e?e.data:e}class _l{get baseUrl(){const t=_t.defaults.baseURL||"";return String(t).replace(/\/+$|^\s+|\s+$/g,"")}updateConfig(t){t.baseUrl&&(_t.defaults.baseURL=String(t.baseUrl).replace(/\/+$/g,"")),t.authToken!==void 0&&Hs(t.authToken)}getAuthToken(){return kl()}setAuthToken(t){Hs(t)}onTokenChange(t){return Il(t)}async listThreads(){const t=await St("/chat/threads"),n=Ct(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async createThread(t){const r=await Us("/chat/threads",t?{title:t}:void 0);return Ct(r)}async updateThread(t,n){const r=await Nl(`/chat/threads/${t}`,{title:n});return Ct(r)}async deleteThread(t){const n=await Al(`/chat/threads/${t}`);return Ct(n)}async threadInfo(t){const n=await St(`/chat/threads/${t}/info`);return Ct(n)}async listAgents(){const t=await St("/chat/agents"),n=Ct(t);return(n==null?void 0:n.items)??[]}async getAgent(t){const n=await St(`/chat/agents/${t}`);return Ct(n)}async getAgentSchema(t){const n=await St(`/chat/agents/${t}/schema`);return Ct(n)}async getMessages(t){const n=await St(`/chat/threads/${t.threadId}/messages`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs,limit:t.limit,before_id:t.beforeId??void 0}});return Ct(n)}async getState(t){const n=await St(`/chat/threads/${t.threadId}/state`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return Ct(n)}async getStateHistory(t){const n=await St(`/chat/threads/${t.threadId}/state/history`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return Ct(n)}async listCheckpoints(t){const n=await St(`/chat/threads/${t}/checkpoints`,{params:{thread_id:t}});return Ct(n)}async resume(t){const n=await Us("/chat/runs/resume",{thread_id:t.threadId,value:t.value});return Ct(n)}}const cn=new _l,jl=y.createContext(null);function Vm({children:e,apiConfig:t}){const n=cn;y.useEffect(()=>{t&&n.updateConfig({baseUrl:t.baseUrl,authToken:t.apiKey})},[n,t]);const r={token:n.getAuthToken(),setToken:o=>n.setAuthToken(o),api:n,baseUrl:n.baseUrl};return l.jsx(jl.Provider,{value:r,children:e})}function so(){const e=y.useContext(jl);if(!e)throw new Error("useApi must be used within ApiProvider");return e}const Rl=y.createContext(null),Pl=y.createContext(null);function Km(e,t){switch(t.type){case"STREAM_START":return{...e,isStreaming:!0,error:null,streamingAssistantId:t.assistantId??null};case"STREAM_END":return{...e,isStreaming:!1,streamingAssistantId:null};case"STREAM_ERROR":return{...e,isStreaming:!1,error:t.error};case"UPDATE_CHECKPOINT":return{...e,lastCheckpointId:t.checkpointId,lastCheckpointNs:t.checkpointNs??e.lastCheckpointNs};case"UPDATE_ASSEMBLING_ID":return{...e,streamingAssistantId:t.assistantId};case"CLEAR_ERROR":return{...e,error:null};default:return e}}const qm={isStreaming:!1,error:null,streamingAssistantId:null,lastCheckpointId:null,lastCheckpointNs:null};function Gm({children:e}){const[t,n]=y.useReducer(Km,qm);return l.jsx(Pl.Provider,{value:n,children:l.jsx(Rl.Provider,{value:t,children:e})})}function Ol(){const e=y.useContext(Rl);if(!e)throw new Error("useStream must be used within StreamProvider");return e}function Ym(){const e=y.useContext(Pl);if(!e)throw new Error("useStreamDispatch must be used within StreamProvider");return e}function Xm(e,t){const n=e==null?void 0:e.checkpoints,r=Array.isArray(n)?n.slice():n?Object.values(n):[],o=i=>i&&typeof i=="object"&&i!==null&&"checkpointId"in i&&"createdAt"in i&&typeof i.checkpointId=="string"&&typeof i.createdAt=="string",s=r.filter(o).map(i=>{const a=i;return{checkpointId:a.checkpointId,checkpointNs:a.checkpointNs??"",createdAt:a.createdAt,messagesLen:a.messagesLen??0,preview:a.preview??"",role:a.role??null,parentId:a.parentId??null,editedMessageId:a.editedMessageId??null,branchLabel:a.branchLabel??null,lastMessageId:a.lastMessageId??null,hasMessages:typeof a.hasMessages=="boolean"?a.hasMessages:void 0}});return{threadId:(e==null?void 0:e.threadId)??t??null,checkpoints:s}}async function Jm(e){return await new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{try{const o=r.result,s=new Uint8Array(o);let i="";const a=s.byteLength;for(let c=0;c<a;c++)i+=String.fromCharCode(s[c]);t(btoa(i))}catch(o){n(o)}},r.onerror=o=>n(o),r.readAsArrayBuffer(e)})}async function Zm(e,t=[],n,r,o,s){const i=[],a=[];for(const c of t)try{const u=await Jm(c);a.push({filename:c.name,data:u,mime_type:c.type||"application/octet-stream"})}catch{}return{contentParts:i,filesInfo:a}}const Ml=y.createContext(null),Qm=y.createContext(null);function eg({children:e,initialThreadId:t=null,autoLoadInitial:n=!0,disableAutoRestore:r=!1,onThreadChange:o,onError:s}){const{api:i}=so(),[a,c]=y.useState([]),[u,d]=y.useState(t),[f,h]=y.useState(!1),[m,w]=y.useState(!1),[v,g]=y.useState(void 0),[x,b]=y.useState(void 0),S=y.useRef(!1),k=y.useRef([]),C=y.useRef(null),T=y.useRef(null);y.useRef(!1);const I=y.useRef(u);y.useEffect(()=>{I.current=u},[u]);const N=y.useContext(Qm),_=y.useCallback((D,U)=>new Promise((J,Q)=>{const ce=async()=>{S.current=!0;try{console.log(`[ThreadProvider] Executing operation: ${U||"unnamed"}`),await D(),J()}catch(we){console.error(`[ThreadProvider] Operation "${U}" failed:`,we),Q(we)}finally{S.current=!1;const we=k.current.shift();we&&we().catch(()=>{})}};S.current?(k.current.push(ce),console.log(`[ThreadProvider] Queued operation: ${U||"unnamed"}`)):ce().catch(we=>{Q(we)})}),[]),j=y.useCallback(async()=>{h(!0);try{const D=await i.listThreads();c(D)}catch(D){console.error("[ThreadProvider] Failed to refresh threads:",D),s==null||s(String(D))}finally{h(!1)}},[i,s]),R=y.useCallback(async D=>{const U=await i.createThread(D),J=typeof U=="string"?U:U.threadId;return await j(),d(J),J},[i,j]),z=y.useCallback(async D=>{await i.deleteThread(D),u===D&&(d(null),N==null||N.onThreadCleared()),await j()},[i,u,j,N]),H=y.useCallback(async(D,U)=>{try{await i.updateThread(D,U),c(J=>J.map(Q=>Q.threadId===D?{...Q,title:U}:Q))}catch(J){throw await j(),J}},[i,j]),O=y.useCallback(async(D,U,J,Q=!1)=>{await _(async()=>{if(T.current===D&&!Q){console.log("[ThreadProvider] Skipping load for thread:",D),T.current=null;return}if(C.current===D&&!Q){console.log("[ThreadProvider] Load already in progress for thread:",D);return}C.current=D,w(!0);try{const ce=await i.getMessages({threadId:D,checkpointId:U,checkpointNs:J});N==null||N.onThreadLoaded(D,ce),g((ce==null?void 0:ce.checkpointId)??void 0),b((ce==null?void 0:ce.checkpointNs)??void 0)}finally{C.current=null,w(!1)}},`loadThread-${D}`)},[i,_,N]),W=y.useCallback(async()=>{console.log("[ThreadProvider] 🔄 clearCurrentThread called"),await _(async()=>{u&&(T.current=u),N==null||N.onThreadCleared(),d(null),g(void 0),b(void 0);try{localStorage.removeItem("lastThreadId")}catch(D){console.warn("[ThreadProvider] Failed to clear localStorage:",D)}},"clearCurrentThread")},[u,_,N]),K=y.useCallback(async D=>{const U=await i.listCheckpoints(D);return Xm(U,D)},[i]),G=y.useCallback(async(D,U)=>{if(!u)throw new Error("No active thread");await O(u,D,U??void 0,!0)},[u,O]),$=y.useCallback(async()=>{if(!u)throw new Error("No active thread");await O(u,void 0,void 0,!0)},[u,O]);y.useEffect(()=>{if(o==null||o(u),u)try{localStorage.setItem("lastThreadId",u)}catch(D){console.warn("[ThreadProvider] Failed to persist thread ID:",D)}},[u,o]),y.useEffect(()=>{let D=!0;return(async()=>{try{if(await j(),!D)return;if(!r&&!t)try{const J=localStorage.getItem("lastThreadId");J&&(d(J),n&&await O(J))}catch(J){console.warn("[ThreadProvider] Failed to restore from localStorage:",J)}else t&&n&&await O(t)}catch(J){console.error("[ThreadProvider] Initialization failed:",J),s==null||s(String(J))}})(),()=>{D=!1}},[]);const A={threads:a,currentThreadId:u,isLoadingThreads:f,isLoadingThread:m,setCurrentThreadId:d,createThread:R,deleteThread:z,renameThread:H,refreshThreads:j,loadThread:O,clearCurrentThread:W,listCheckpoints:K,navigateToCheckpoint:G,returnToLatest:$};return l.jsx(Ml.Provider,{value:A,children:e})}function mr(){const e=y.useContext(Ml);if(!e)throw new Error("useThreads must be used within ThreadProvider");return e}function tg(e){return e.type!=="thread_info"&&e.type!=="token"}const ng={messages:[],assemblingId:null,lastCheckpointId:null,lastCheckpointNs:null,toolIndex:{},lastBranch:null};function rg(e,t){var n;switch(t.type){case"reset":{console.log("[MessageReducer] 🔄 RESET action received"),console.log("[MessageReducer] 📊 Before reset - messages count:",e.messages.length);const r={messages:Ws(((n=t.payload)==null?void 0:n.messages)??[]),assemblingId:null,lastCheckpointId:null,lastCheckpointNs:null,toolIndex:{},lastBranch:null};return console.log("[MessageReducer] 📊 After reset - messages count:",r.messages.length),r}case"seed":{const r=Ws(t.payload.messages),o={...e,messages:r,assemblingId:null};return Object.prototype.hasOwnProperty.call(t.payload,"checkpointId")&&(o.lastCheckpointId=t.payload.checkpointId??null),Object.prototype.hasOwnProperty.call(t.payload,"checkpointNs")&&(o.lastCheckpointNs=t.payload.checkpointNs??null),console.log("[MessageReducer] seed action (REPLACE mode):",{incomingCount:t.payload.messages.length,sanitizedCount:r.length,previousCount:e.messages.length,checkpointId:o.lastCheckpointId}),o}case"prepend":{const r=Ws(t.payload.messages);if(!r.length)return console.log("[MessageReducer] No incoming messages after sanitize - skipping"),e;const o=new Set(e.messages.map(i=>i.id)),s=r.filter(i=>!o.has(i.id));return console.log("[MessageReducer] After dedup:",{uniqueCount:s.length,duplicates:r.length-s.length,finalTotal:s.length+e.messages.length}),s.length?{...e,messages:[...s,...e.messages]}:(console.log("[MessageReducer] All messages were duplicates - skipping"),e)}case"user_message":{const r=t.payload.message;return e.messages.some(o=>o.id===r.id)?e:{...e,messages:[...e.messages,r]}}case"event":return Ll(e,t.payload.ev);case"batch":{const{events:r}=t.payload;return r.length?r.reduce((o,s)=>Ll(o,s),e):e}case"interrupt_response":{const{interruptId:r}=t.payload,o=e.messages.map(s=>({...s,content:s.content.filter(i=>i.type!=="interrupt")}));return{...e,messages:o,pendingInterrupt:null}}default:return e}}function Dl(e=[]){const[t,n]=y.useReducer(rg,{...ng,messages:e}),r=y.useRef([]),o=y.useRef(null),s=y.useRef(null),i=y.useCallback(()=>{o.current!==null&&typeof window<"u"&&window.cancelAnimationFrame(o.current),s.current!==null&&clearTimeout(s.current),o.current=null,s.current=null;const d=r.current;d.length&&(r.current=[],n({type:"batch",payload:{events:d}}))},[]),a=y.useCallback(()=>{typeof window<"u"&&typeof window.requestAnimationFrame=="function"?o.current===null&&(o.current=window.requestAnimationFrame(()=>i())):s.current===null&&(s.current=setTimeout(i,8))},[i]),c=y.useCallback(d=>{r.current.push(d),a()},[a]);y.useEffect(()=>()=>{o.current!==null&&typeof window<"u"&&window.cancelAnimationFrame(o.current),s.current!==null&&clearTimeout(s.current),r.current=[]},[]);const u=y.useMemo(()=>({reset:d=>n({type:"reset",payload:{messages:d}}),seed:(d,f)=>n({type:"seed",payload:{messages:d,...f??{}}}),prepend:d=>n({type:"prepend",payload:{messages:d}}),pushUser:d=>n({type:"user_message",payload:{message:d}}),onEvent:c}),[c]);return{state:t,dispatch:n,...u}}function Ll(e,t){var n,r;if(t.type==="message_start"&&t.role==="assistant"){const o=t.id,s=lg(t.model);if(e.messages.some(c=>c.id===o))return{...e,assemblingId:o};const a={id:o,role:"assistant",name:s||void 0,model:t.model,createdAt:new Date().toISOString(),content:[]};return{...e,assemblingId:o,messages:[...e.messages,a]}}if(t.type==="message_delta"){const o=e.assemblingId??Vs(e.messages);return o?{...e,messages:Ks(e.messages,o,t.delta)}:e}if(t.type==="message_end"){const o=e.assemblingId??Vs(e.messages);if(!o)return{...e,assemblingId:null};const s=e.messages,i=s.findIndex(a=>a.id===o&&a.role==="assistant");if(i>=0&&!((n=s[i].content)==null?void 0:n.some(u=>{var d;return(u==null?void 0:u.type)==="text"&&((d=u.text)==null?void 0:d.trim())}))){const u=[...s.slice(0,i),...s.slice(i+1)];return{...e,assemblingId:null,messages:u}}return e}if(t.type==="tool_start"){const o=t.id??t.call_id,s=t.name??t.tool??"tool";if(!o)return e;const i=`tool-${o}`,a={type:"tool_call",id:o,name:s,args:t.args};if(e.messages.find(d=>d.id===i))return{...e,toolIndex:{...e.toolIndex,[o]:i}};const u={id:i,role:"tool",name:s,createdAt:new Date().toISOString(),content:[a]};return{...e,messages:[...e.messages,u],toolIndex:{...e.toolIndex,[o]:i}}}if(t.type==="tool_end"){const o=t.id??t.call_id;if(!o)return e;const s=e.toolIndex[o]??`tool-${o}`,i={type:"tool_end",toolCallId:o,output:t.output,error:t.error},a=e.messages.find(d=>d.id===s),c={id:s,role:"tool",name:t.name??((r=e.messages.find(d=>d.id===s))==null?void 0:r.name),content:[i],createdAt:new Date().toISOString()},u=a?Ks(e.messages,s,[i]):[...e.messages,c];return{...e,messages:u,toolIndex:{...e.toolIndex,[o]:s}}}if(t.type==="checkpoint"){const o=t.checkpointNs??e.lastCheckpointNs??null,s=ag(e.messages,t.checkpointId,o);return{...e,lastCheckpointId:t.checkpointId,lastCheckpointNs:o,messages:s}}if(t.type==="branch"){const o=t.checkpointId??e.lastCheckpointId,s=t.checkpointNs??e.lastCheckpointNs;return{...e,lastBranch:t,lastCheckpointId:o??null,lastCheckpointNs:s??null}}if(t.type==="error"){const o={id:`err-${Date.now()}`,role:"system",content:[{type:"text",text:`Error: ${t.message}`}],createdAt:new Date().toISOString()};return{...e,messages:[...e.messages,o]}}if(t.type==="interrupt"){const o=e.assemblingId??Vs(e.messages),s={type:"interrupt",value:t.value};if(o)return{...e,assemblingId:null,messages:Ks(e.messages,o,[s]),pendingInterrupt:{id:t.id,value:t.value}};const i={id:`interrupt-${t.id}`,role:"system",createdAt:new Date().toISOString(),content:[s]};return{...e,messages:[...e.messages,i],pendingInterrupt:{id:t.id,value:t.value}}}return e}function Ws(e){return e.filter(t=>{if(t.role!=="assistant")return!0;const n=(t.content||[]).some(o=>{var s;return o&&o.type==="text"&&((s=o.text)==null?void 0:s.trim())}),r=(t.content||[]).some(o=>o&&o.type==="image_url");return!!(n||r)})}function og(e,t,n){return t<0||t>=e.length?e:[...e.slice(0,t),n,...e.slice(t+1)]}function Vs(e){for(let t=e.length-1;t>=0;t--)if(e[t].role==="assistant")return e[t].id;return null}function sg(e,t,n){const r=e.findIndex(i=>i.id===t);if(r===-1)return e;const o=e[r],s=n(o);return s===o?e:[...e.slice(0,r),s,...e.slice(r+1)]}function Ks(e,t,n){return sg(e,t,r=>({...r,content:ig(r.content,n)}))}function ig(e,t){const n=e.slice();for(const r of t)if(r.type==="text"){const o=n[n.length-1];(o==null?void 0:o.type)==="text"?o.text+=r.text:n.push({type:"text",text:r.text})}else n.push(r);return n}function ag(e,t,n){for(let r=e.length-1;r>=0;r--)if(e[r].role==="assistant"){const s={...e[r],checkpointId:t,checkpointNs:n??void 0};return og(e,r,s)}return e}function lg(e){if(!e)return null;const t=e.split("/");return t[t.length-1]||null}const cg={MODE:"library"};function ug(){var i;const e=typeof globalThis<"u"?globalThis.process:void 0,t=typeof((i=e==null?void 0:e.env)==null?void 0:i.NODE_ENV)=="string"?e.env.NODE_ENV:void 0;if(t)return t==="production";const n=typeof{url:typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:Ns&&Ns.tagName.toUpperCase()==="SCRIPT"&&Ns.src||new URL("index.umd.js",document.baseURI).href}<"u"?cg:void 0,r=typeof(n==null?void 0:n.MODE)=="string"?n.MODE:void 0,o=typeof(n==null?void 0:n.NODE_ENV)=="string"?n.NODE_ENV:void 0;return(r??o)==="production"}function dg(){return!ug()}function fg({onThreadInfo:e,onMessageEvent:t,onUnhandledEvent:n,onSequenceGap:r}){const o=y.useRef(null),s=y.useCallback(a=>{const c=a.seq;if(c!=null){const u=o.current;if(u!==null){if(c<=u){dg()&&console.debug("[StreamEventCoordinator] drop out-of-order seq",{prev:u,seq:c,type:a.type});return}c>u+1&&(r==null||r({from:u,to:c}))}o.current=c}if(a.type==="thread_info"){e==null||e(a);return}if(tg(a)){t(a);return}n==null||n(a)},[t,r,e,n]),i=y.useCallback(()=>{o.current=null},[]);return{handleEvent:s,reset:i}}function $l(e={}){const t=y.useMemo(()=>{const j=(e.baseUrl??"/api/chat").replace(/\/+$/,"");return j.endsWith("/chat")?j:`${j}/chat`},[e.baseUrl]),n=e.streamPath??"/runs/stream",[r,o]=y.useState(e.token??null),s=y.useRef(e.headers??{}),[i,a]=y.useState(!1),[c,u]=y.useState(null),[d,f]=y.useState(""),[h,m]=y.useState(null),[w,v]=y.useState(0),[g,x]=y.useState(!1),b=y.useRef(null),S=y.useRef(!0),k=y.useRef(0),C=y.useCallback(_=>{o(_)},[]),T=y.useCallback(()=>{var _;(_=b.current)==null||_.abort(),b.current=null,a(!1),x(!1)},[]),I=y.useCallback(()=>{f(""),m(null),u(null)},[]),N=y.useCallback((_,j,R)=>{b.current&&(b.current.abort(),b.current=null),a(!0),u(null),e.autoAppendAssistant!==!1&&f("");const z=new AbortController;return b.current=z,(async()=>{var O,W,K,G,$,A,D,U;const H=J=>{var Q;try{const ce=JSON.parse(JSON.stringify(J));return(Q=ce==null?void 0:ce.payload)!=null&&Q.files_info&&Array.isArray(ce.payload.files_info)&&(ce.payload.files_info=ce.payload.files_info.map(we=>({...we,data:we!=null&&we.data?`<base64 ${String(we.data).length} chars>`:we==null?void 0:we.data}))),ce}catch{return J}};try{let J={};try{if(r)J={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const _e=window.__AUTH_TOKEN__,Be=((O=window.localStorage)==null?void 0:O.getItem("authToken"))||null;let qe=null;try{const nt=(W=window.localStorage)==null?void 0:W.getItem("chat-settings");nt&&(qe=((K=JSON.parse(nt))==null?void 0:K.apiKey)||null)}catch{}const $e=_e||Be||qe||null;$e&&(J={Authorization:`Bearer ${$e}`})}}catch{}console.debug("[use-chat] POST",t+n,H(_));const Q=await fetch(t+n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",...J,...s.current},body:JSON.stringify(_),signal:z.signal});if(!Q.ok||!Q.body){const xe=await Q.text().catch(()=>"");throw console.debug("[use-chat] non-OK response",Q.status,xe==null?void 0:xe.slice(0,500)),new Error(`stream ${Q.status}${xe?": "+xe:""}`)}x(!0);const ce=Q.body.getReader(),we=new TextDecoder;let ke="",q=[],M=k.current,X=null;const ee=()=>{if(q.length){const xe=q.join("");q=[],S.current&&f(_e=>_e+xe)}X=null},L=()=>{typeof window<"u"&&X==null&&(X=requestAnimationFrame(ee))};let F=Date.now();const me=setInterval(()=>{var xe;if(Date.now()-F>2e4){const _e="Stream idle timeout";u(_e),z.abort(),(xe=R==null?void 0:R.onError)==null||xe.call(R,_e)}},5e3),Re=1024*1024;try{const xe=Q.headers.get("X-Thread-Id")||Q.headers.get("x-thread-id"),_e=Q.headers.get("X-Thread-Created")||Q.headers.get("x-thread-created"),Be=xe??null,qe=String(_e??"").toLowerCase()==="true";for((G=R==null?void 0:R.onOpen)==null||G.call(R,{threadId:Be,created:qe});;){const{value:$e,done:nt}=await ce.read();if(nt)break;ke+=we.decode($e,{stream:!0}),ke.length>Re&&(ke="",console.warn("Stream buffer reset: exceeded 1MB"));let at;for(;(at=ke.indexOf(`
|
|
35
|
+
`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=En(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&ro.assertOptions(r,{silentJSONParsing:Vt.transitional(Vt.boolean),forcedJSONParsing:Vt.transitional(Vt.boolean),clarifyTimeoutError:Vt.transitional(Vt.boolean)},!1),o!=null&&(P.isFunction(o)?n.paramsSerializer={serialize:o}:ro.assertOptions(o,{encode:Vt.function,serialize:Vt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ro.assertOptions(n,{baseUrl:Vt.spelling("baseURL"),withXsrfToken:Vt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=s&&P.merge(s.common,s[n.method]);s&&P.forEach(["delete","get","head","post","put","patch","common"],w=>{delete s[w]}),n.headers=wt.concat(i,s);const a=[];let c=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(c=c&&v.synchronous,a.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let d,f=0,h;if(!c){const w=[bl.bind(this),void 0];for(w.unshift(...a),w.push(...u),h=w.length,d=Promise.resolve(n);f<h;)d=d.then(w[f++],w[f++]);return d}h=a.length;let m=n;for(;f<h;){const w=a[f++],v=a[f++];try{m=w(m)}catch(g){v.call(this,g);break}}try{d=bl.call(this,m)}catch(w){return Promise.reject(w)}for(f=0,h=u.length;f<h;)d=d.then(u[f++],u[f++]);return d}getUri(t){t=En(this.defaults,t);const n=cl(t.baseURL,t.url,t.allowAbsoluteUrls);return el(n,t.params,t.paramsSerializer)}};P.forEach(["delete","get","head","options"],function(t){kn.prototype[t]=function(n,r){return this.request(En(r||{},{method:t,url:n,data:(r||{}).data}))}}),P.forEach(["post","put","patch"],function(t){function n(r){return function(s,i,a){return this.request(En(a||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}kn.prototype[t]=n(),kn.prototype[t+"Form"]=n(!0)});let Hm=class vp{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const r=this;this.promise.then(o=>{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const i=new Promise(a=>{r.subscribe(a),s=a}).then(o);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s,i,a){r.reason||(r.reason=new Vn(s,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new vp(function(o){t=o}),cancel:t}}};function Um(e){return function(n){return e.apply(null,n)}}function Wm(e){return P.isObject(e)&&e.isAxiosError===!0}const zs={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(zs).forEach(([e,t])=>{zs[t]=e});function Cl(e){const t=new kn(e),n=Fa(kn.prototype.request,t);return P.extend(n,kn.prototype,t,{allOwnKeys:!0}),P.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return Cl(En(e,o))},n}const et=Cl(hr);et.Axios=kn,et.CanceledError=Vn,et.CancelToken=Hm,et.isCancel=sl,et.VERSION=yl,et.toFormData=Zr,et.AxiosError=Ee,et.Cancel=et.CanceledError,et.all=function(t){return Promise.all(t)},et.spread=Um,et.isAxiosError=Wm,et.mergeConfig=En,et.AxiosHeaders=wt,et.formToJSON=e=>rl(P.isHTMLForm(e)?new FormData(e):e),et.getAdapter=wl.getAdapter,et.HttpStatusCode=zs,et.default=et;const{Axios:TC,AxiosError:EC,CanceledError:kC,isCancel:IC,CancelToken:NC,VERSION:AC,all:_C,Cancel:jC,isAxiosError:RC,spread:PC,toFormData:OC,AxiosHeaders:MC,HttpStatusCode:DC,formToJSON:LC,getAdapter:$C,mergeConfig:FC}=et,Tl=typeof window<"u"?window.__API_BASE_URL__:void 0,El=Tl?Tl.replace(/\/+$/,""):void 0;let oo=null;const Bs=new Set;function kl(){return oo}function Hs(e){oo=e,Bs.forEach(t=>t(e))}function Il(e){return Bs.add(e),()=>Bs.delete(e)}const _t=et.create({...El?{baseURL:El}:{},timeout:3e4,withCredentials:!0});_t.interceptors.request.use(e=>(oo&&(e.headers.Authorization=`Bearer ${oo}`),e)),_t.interceptors.response.use(e=>e,e=>Promise.reject(e));async function St(e,t){return _t.defaults.baseURL?(await _t.get(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}async function Us(e,t,n){return _t.defaults.baseURL?(await _t.post(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function Nl(e,t,n){return _t.defaults.baseURL?(await _t.put(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function Al(e,t){return _t.defaults.baseURL?(await _t.delete(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}function Ct(e){return e&&typeof e=="object"&&"data"in e?e.data:e}class _l{get baseUrl(){const t=_t.defaults.baseURL||"";return String(t).replace(/\/+$|^\s+|\s+$/g,"")}updateConfig(t){t.baseUrl&&(_t.defaults.baseURL=String(t.baseUrl).replace(/\/+$/g,"")),t.authToken!==void 0&&Hs(t.authToken)}getAuthToken(){return kl()}setAuthToken(t){Hs(t)}onTokenChange(t){return Il(t)}async listThreads(){const t=await St("/chat/threads"),n=Ct(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async createThread(t){const r=await Us("/chat/threads",t?{title:t}:void 0);return Ct(r)}async updateThread(t,n){const r=await Nl(`/chat/threads/${t}`,{title:n});return Ct(r)}async deleteThread(t){const n=await Al(`/chat/threads/${t}`);return Ct(n)}async threadInfo(t){const n=await St(`/chat/threads/${t}/info`);return Ct(n)}async listAgents(){const t=await St("/chat/agents"),n=Ct(t);return(n==null?void 0:n.items)??[]}async getAgent(t){const n=await St(`/chat/agents/${t}`);return Ct(n)}async getAgentSchema(t){const n=await St(`/chat/agents/${t}/schema`);return Ct(n)}async getMessages(t){const n=await St(`/chat/threads/${t.threadId}/messages`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs,limit:t.limit,before_id:t.beforeId??void 0}});return Ct(n)}async getState(t){const n=await St(`/chat/threads/${t.threadId}/state`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return Ct(n)}async getStateHistory(t){const n=await St(`/chat/threads/${t.threadId}/state/history`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return Ct(n)}async listCheckpoints(t){const n=await St(`/chat/threads/${t}/checkpoints`,{params:{thread_id:t}});return Ct(n)}async resume(t){const n=await Us("/chat/runs/resume",{thread_id:t.threadId,value:t.value});return Ct(n)}}const cn=new _l,jl=y.createContext(null);function Vm({children:e,apiConfig:t}){const n=cn;y.useEffect(()=>{t&&n.updateConfig({baseUrl:t.baseUrl,authToken:t.apiKey})},[n,t]);const r={token:n.getAuthToken(),setToken:o=>n.setAuthToken(o),api:n,baseUrl:n.baseUrl};return l.jsx(jl.Provider,{value:r,children:e})}function so(){const e=y.useContext(jl);if(!e)throw new Error("useApi must be used within ApiProvider");return e}const Rl=y.createContext(null),Pl=y.createContext(null);function Km(e,t){switch(t.type){case"STREAM_START":return{...e,isStreaming:!0,error:null,streamingAssistantId:t.assistantId??null};case"STREAM_END":return{...e,isStreaming:!1,streamingAssistantId:null};case"STREAM_ERROR":return{...e,isStreaming:!1,error:t.error};case"UPDATE_CHECKPOINT":return{...e,lastCheckpointId:t.checkpointId,lastCheckpointNs:t.checkpointNs??e.lastCheckpointNs};case"UPDATE_ASSEMBLING_ID":return{...e,streamingAssistantId:t.assistantId};case"CLEAR_ERROR":return{...e,error:null};default:return e}}const qm={isStreaming:!1,error:null,streamingAssistantId:null,lastCheckpointId:null,lastCheckpointNs:null};function Gm({children:e}){const[t,n]=y.useReducer(Km,qm);return l.jsx(Pl.Provider,{value:n,children:l.jsx(Rl.Provider,{value:t,children:e})})}function Ol(){const e=y.useContext(Rl);if(!e)throw new Error("useStream must be used within StreamProvider");return e}function Ym(){const e=y.useContext(Pl);if(!e)throw new Error("useStreamDispatch must be used within StreamProvider");return e}function Xm(e,t){const n=e==null?void 0:e.checkpoints,r=Array.isArray(n)?n.slice():n?Object.values(n):[],o=i=>i&&typeof i=="object"&&i!==null&&"checkpointId"in i&&"createdAt"in i&&typeof i.checkpointId=="string"&&typeof i.createdAt=="string",s=r.filter(o).map(i=>{const a=i;return{checkpointId:a.checkpointId,checkpointNs:a.checkpointNs??"",createdAt:a.createdAt,messagesLen:a.messagesLen??0,preview:a.preview??"",role:a.role??null,parentId:a.parentId??null,editedMessageId:a.editedMessageId??null,branchLabel:a.branchLabel??null,lastMessageId:a.lastMessageId??null,hasMessages:typeof a.hasMessages=="boolean"?a.hasMessages:void 0}});return{threadId:(e==null?void 0:e.threadId)??t??null,checkpoints:s}}async function Jm(e){return await new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{try{const o=r.result,s=new Uint8Array(o);let i="";const a=s.byteLength;for(let c=0;c<a;c++)i+=String.fromCharCode(s[c]);t(btoa(i))}catch(o){n(o)}},r.onerror=o=>n(o),r.readAsArrayBuffer(e)})}async function Zm(e,t=[],n,r,o,s){const i=[],a=[];for(const c of t)try{const u=await Jm(c);a.push({filename:c.name,data:u,mime_type:c.type||"application/octet-stream"})}catch{}return{contentParts:i,filesInfo:a}}const Ml=y.createContext(null),Qm=y.createContext(null);function eg({children:e,initialThreadId:t=null,autoLoadInitial:n=!0,disableAutoRestore:r=!1,onThreadChange:o,onError:s}){const{api:i}=so(),[a,c]=y.useState([]),[u,d]=y.useState(t),[f,h]=y.useState(!1),[m,w]=y.useState(!1),[v,g]=y.useState(void 0),[x,b]=y.useState(void 0),S=y.useRef(!1),k=y.useRef([]),C=y.useRef(null),T=y.useRef(null);y.useRef(!1);const I=y.useRef(u);y.useEffect(()=>{I.current=u},[u]);const N=y.useContext(Qm),_=y.useCallback((D,U)=>new Promise((J,Q)=>{const ce=async()=>{S.current=!0;try{console.log(`[ThreadProvider] Executing operation: ${U||"unnamed"}`),await D(),J()}catch(we){console.error(`[ThreadProvider] Operation "${U}" failed:`,we),Q(we)}finally{S.current=!1;const we=k.current.shift();we&&we().catch(()=>{})}};S.current?(k.current.push(ce),console.log(`[ThreadProvider] Queued operation: ${U||"unnamed"}`)):ce().catch(we=>{Q(we)})}),[]),j=y.useCallback(async()=>{h(!0);try{const D=await i.listThreads();c(D)}catch(D){console.error("[ThreadProvider] Failed to refresh threads:",D),s==null||s(String(D))}finally{h(!1)}},[i,s]),R=y.useCallback(async D=>{const U=await i.createThread(D),J=typeof U=="string"?U:U.threadId;return await j(),d(J),J},[i,j]),z=y.useCallback(async D=>{await i.deleteThread(D),u===D&&(d(null),N==null||N.onThreadCleared()),await j()},[i,u,j,N]),H=y.useCallback(async(D,U)=>{try{await i.updateThread(D,U),c(J=>J.map(Q=>Q.threadId===D?{...Q,title:U}:Q))}catch(J){throw await j(),J}},[i,j]),O=y.useCallback(async(D,U,J,Q=!1)=>{await _(async()=>{if(T.current===D&&!Q){console.log("[ThreadProvider] Skipping load for thread:",D),T.current=null;return}if(C.current===D&&!Q){console.log("[ThreadProvider] Load already in progress for thread:",D);return}d(ce=>ce===D?ce:D),C.current=D,w(!0);try{const ce=await i.getMessages({threadId:D,checkpointId:U,checkpointNs:J});N==null||N.onThreadLoaded(D,ce),g((ce==null?void 0:ce.checkpointId)??void 0),b((ce==null?void 0:ce.checkpointNs)??void 0)}finally{C.current=null,w(!1)}},`loadThread-${D}`)},[i,_,N,d]),W=y.useCallback(async()=>{console.log("[ThreadProvider] 🔄 clearCurrentThread called"),await _(async()=>{u&&(T.current=u),N==null||N.onThreadCleared(),d(null),g(void 0),b(void 0);try{localStorage.removeItem("lastThreadId")}catch(D){console.warn("[ThreadProvider] Failed to clear localStorage:",D)}},"clearCurrentThread")},[u,_,N]),K=y.useCallback(async D=>{const U=await i.listCheckpoints(D);return Xm(U,D)},[i]),G=y.useCallback(async(D,U)=>{if(!u)throw new Error("No active thread");await O(u,D,U??void 0,!0)},[u,O]),$=y.useCallback(async()=>{if(!u)throw new Error("No active thread");await O(u,void 0,void 0,!0)},[u,O]);y.useEffect(()=>{if(o==null||o(u),u)try{localStorage.setItem("lastThreadId",u)}catch(D){console.warn("[ThreadProvider] Failed to persist thread ID:",D)}},[u,o]),y.useEffect(()=>{let D=!0;return(async()=>{try{if(await j(),!D)return;if(!r&&!t)try{const J=localStorage.getItem("lastThreadId");J&&(d(J),n&&await O(J))}catch(J){console.warn("[ThreadProvider] Failed to restore from localStorage:",J)}else t&&n&&await O(t)}catch(J){console.error("[ThreadProvider] Initialization failed:",J),s==null||s(String(J))}})(),()=>{D=!1}},[]);const A={threads:a,currentThreadId:u,isLoadingThreads:f,isLoadingThread:m,setCurrentThreadId:d,createThread:R,deleteThread:z,renameThread:H,refreshThreads:j,loadThread:O,clearCurrentThread:W,listCheckpoints:K,navigateToCheckpoint:G,returnToLatest:$};return l.jsx(Ml.Provider,{value:A,children:e})}function mr(){const e=y.useContext(Ml);if(!e)throw new Error("useThreads must be used within ThreadProvider");return e}function tg(e){return e.type!=="thread_info"&&e.type!=="token"}const ng={messages:[],assemblingId:null,lastCheckpointId:null,lastCheckpointNs:null,toolIndex:{},lastBranch:null};function rg(e,t){var n;switch(t.type){case"reset":{console.log("[MessageReducer] 🔄 RESET action received"),console.log("[MessageReducer] 📊 Before reset - messages count:",e.messages.length);const r={messages:Ws(((n=t.payload)==null?void 0:n.messages)??[]),assemblingId:null,lastCheckpointId:null,lastCheckpointNs:null,toolIndex:{},lastBranch:null};return console.log("[MessageReducer] 📊 After reset - messages count:",r.messages.length),r}case"seed":{const r=Ws(t.payload.messages),o={...e,messages:r,assemblingId:null};return Object.prototype.hasOwnProperty.call(t.payload,"checkpointId")&&(o.lastCheckpointId=t.payload.checkpointId??null),Object.prototype.hasOwnProperty.call(t.payload,"checkpointNs")&&(o.lastCheckpointNs=t.payload.checkpointNs??null),console.log("[MessageReducer] seed action (REPLACE mode):",{incomingCount:t.payload.messages.length,sanitizedCount:r.length,previousCount:e.messages.length,checkpointId:o.lastCheckpointId}),o}case"prepend":{const r=Ws(t.payload.messages);if(!r.length)return console.log("[MessageReducer] No incoming messages after sanitize - skipping"),e;const o=new Set(e.messages.map(i=>i.id)),s=r.filter(i=>!o.has(i.id));return console.log("[MessageReducer] After dedup:",{uniqueCount:s.length,duplicates:r.length-s.length,finalTotal:s.length+e.messages.length}),s.length?{...e,messages:[...s,...e.messages]}:(console.log("[MessageReducer] All messages were duplicates - skipping"),e)}case"user_message":{const r=t.payload.message;return e.messages.some(o=>o.id===r.id)?e:{...e,messages:[...e.messages,r]}}case"event":return Ll(e,t.payload.ev);case"batch":{const{events:r}=t.payload;return r.length?r.reduce((o,s)=>Ll(o,s),e):e}case"interrupt_response":{const{interruptId:r}=t.payload,o=e.messages.map(s=>({...s,content:s.content.filter(i=>i.type!=="interrupt")}));return{...e,messages:o,pendingInterrupt:null}}default:return e}}function Dl(e=[]){const[t,n]=y.useReducer(rg,{...ng,messages:e}),r=y.useRef([]),o=y.useRef(null),s=y.useRef(null),i=y.useCallback(()=>{o.current!==null&&typeof window<"u"&&window.cancelAnimationFrame(o.current),s.current!==null&&clearTimeout(s.current),o.current=null,s.current=null;const d=r.current;d.length&&(r.current=[],n({type:"batch",payload:{events:d}}))},[]),a=y.useCallback(()=>{typeof window<"u"&&typeof window.requestAnimationFrame=="function"?o.current===null&&(o.current=window.requestAnimationFrame(()=>i())):s.current===null&&(s.current=setTimeout(i,8))},[i]),c=y.useCallback(d=>{r.current.push(d),a()},[a]);y.useEffect(()=>()=>{o.current!==null&&typeof window<"u"&&window.cancelAnimationFrame(o.current),s.current!==null&&clearTimeout(s.current),r.current=[]},[]);const u=y.useMemo(()=>({reset:d=>n({type:"reset",payload:{messages:d}}),seed:(d,f)=>n({type:"seed",payload:{messages:d,...f??{}}}),prepend:d=>n({type:"prepend",payload:{messages:d}}),pushUser:d=>n({type:"user_message",payload:{message:d}}),onEvent:c}),[c]);return{state:t,dispatch:n,...u}}function Ll(e,t){var n,r;if(t.type==="message_start"&&t.role==="assistant"){const o=t.id,s=lg(t.model);if(e.messages.some(c=>c.id===o))return{...e,assemblingId:o};const a={id:o,role:"assistant",name:s||void 0,model:t.model,createdAt:new Date().toISOString(),content:[]};return{...e,assemblingId:o,messages:[...e.messages,a]}}if(t.type==="message_delta"){const o=e.assemblingId??Vs(e.messages);return o?{...e,messages:Ks(e.messages,o,t.delta)}:e}if(t.type==="message_end"){const o=e.assemblingId??Vs(e.messages);if(!o)return{...e,assemblingId:null};const s=e.messages,i=s.findIndex(a=>a.id===o&&a.role==="assistant");if(i>=0&&!((n=s[i].content)==null?void 0:n.some(u=>{var d;return(u==null?void 0:u.type)==="text"&&((d=u.text)==null?void 0:d.trim())}))){const u=[...s.slice(0,i),...s.slice(i+1)];return{...e,assemblingId:null,messages:u}}return e}if(t.type==="tool_start"){const o=t.id??t.call_id,s=t.name??t.tool??"tool";if(!o)return e;const i=`tool-${o}`,a={type:"tool_call",id:o,name:s,args:t.args};if(e.messages.find(d=>d.id===i))return{...e,toolIndex:{...e.toolIndex,[o]:i}};const u={id:i,role:"tool",name:s,createdAt:new Date().toISOString(),content:[a]};return{...e,messages:[...e.messages,u],toolIndex:{...e.toolIndex,[o]:i}}}if(t.type==="tool_end"){const o=t.id??t.call_id;if(!o)return e;const s=e.toolIndex[o]??`tool-${o}`,i={type:"tool_end",toolCallId:o,output:t.output,error:t.error},a=e.messages.find(d=>d.id===s),c={id:s,role:"tool",name:t.name??((r=e.messages.find(d=>d.id===s))==null?void 0:r.name),content:[i],createdAt:new Date().toISOString()},u=a?Ks(e.messages,s,[i]):[...e.messages,c];return{...e,messages:u,toolIndex:{...e.toolIndex,[o]:s}}}if(t.type==="checkpoint"){const o=t.checkpointNs??e.lastCheckpointNs??null,s=ag(e.messages,t.checkpointId,o);return{...e,lastCheckpointId:t.checkpointId,lastCheckpointNs:o,messages:s}}if(t.type==="branch"){const o=t.checkpointId??e.lastCheckpointId,s=t.checkpointNs??e.lastCheckpointNs;return{...e,lastBranch:t,lastCheckpointId:o??null,lastCheckpointNs:s??null}}if(t.type==="error"){const o={id:`err-${Date.now()}`,role:"system",content:[{type:"text",text:`Error: ${t.message}`}],createdAt:new Date().toISOString()};return{...e,messages:[...e.messages,o]}}if(t.type==="interrupt"){const o=e.assemblingId??Vs(e.messages),s={type:"interrupt",value:t.value};if(o)return{...e,assemblingId:null,messages:Ks(e.messages,o,[s]),pendingInterrupt:{id:t.id,value:t.value}};const i={id:`interrupt-${t.id}`,role:"system",createdAt:new Date().toISOString(),content:[s]};return{...e,messages:[...e.messages,i],pendingInterrupt:{id:t.id,value:t.value}}}return e}function Ws(e){return e.filter(t=>{if(t.role!=="assistant")return!0;const n=(t.content||[]).some(o=>{var s;return o&&o.type==="text"&&((s=o.text)==null?void 0:s.trim())}),r=(t.content||[]).some(o=>o&&o.type==="image_url");return!!(n||r)})}function og(e,t,n){return t<0||t>=e.length?e:[...e.slice(0,t),n,...e.slice(t+1)]}function Vs(e){for(let t=e.length-1;t>=0;t--)if(e[t].role==="assistant")return e[t].id;return null}function sg(e,t,n){const r=e.findIndex(i=>i.id===t);if(r===-1)return e;const o=e[r],s=n(o);return s===o?e:[...e.slice(0,r),s,...e.slice(r+1)]}function Ks(e,t,n){return sg(e,t,r=>({...r,content:ig(r.content,n)}))}function ig(e,t){const n=e.slice();for(const r of t)if(r.type==="text"){const o=n[n.length-1];(o==null?void 0:o.type)==="text"?o.text+=r.text:n.push({type:"text",text:r.text})}else n.push(r);return n}function ag(e,t,n){for(let r=e.length-1;r>=0;r--)if(e[r].role==="assistant"){const s={...e[r],checkpointId:t,checkpointNs:n??void 0};return og(e,r,s)}return e}function lg(e){if(!e)return null;const t=e.split("/");return t[t.length-1]||null}const cg={MODE:"library"};function ug(){var i;const e=typeof globalThis<"u"?globalThis.process:void 0,t=typeof((i=e==null?void 0:e.env)==null?void 0:i.NODE_ENV)=="string"?e.env.NODE_ENV:void 0;if(t)return t==="production";const n=typeof{url:typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:Ns&&Ns.tagName.toUpperCase()==="SCRIPT"&&Ns.src||new URL("index.umd.js",document.baseURI).href}<"u"?cg:void 0,r=typeof(n==null?void 0:n.MODE)=="string"?n.MODE:void 0,o=typeof(n==null?void 0:n.NODE_ENV)=="string"?n.NODE_ENV:void 0;return(r??o)==="production"}function dg(){return!ug()}function fg({onThreadInfo:e,onMessageEvent:t,onUnhandledEvent:n,onSequenceGap:r}){const o=y.useRef(null),s=y.useCallback(a=>{const c=a.seq;if(c!=null){const u=o.current;if(u!==null){if(c<=u){dg()&&console.debug("[StreamEventCoordinator] drop out-of-order seq",{prev:u,seq:c,type:a.type});return}c>u+1&&(r==null||r({from:u,to:c}))}o.current=c}if(a.type==="thread_info"){e==null||e(a);return}if(tg(a)){t(a);return}n==null||n(a)},[t,r,e,n]),i=y.useCallback(()=>{o.current=null},[]);return{handleEvent:s,reset:i}}function $l(e={}){const t=y.useMemo(()=>{const j=(e.baseUrl??"/api/chat").replace(/\/+$/,"");return j.endsWith("/chat")?j:`${j}/chat`},[e.baseUrl]),n=e.streamPath??"/runs/stream",[r,o]=y.useState(e.token??null),s=y.useRef(e.headers??{}),[i,a]=y.useState(!1),[c,u]=y.useState(null),[d,f]=y.useState(""),[h,m]=y.useState(null),[w,v]=y.useState(0),[g,x]=y.useState(!1),b=y.useRef(null),S=y.useRef(!0),k=y.useRef(0),C=y.useCallback(_=>{o(_)},[]),T=y.useCallback(()=>{var _;(_=b.current)==null||_.abort(),b.current=null,a(!1),x(!1)},[]),I=y.useCallback(()=>{f(""),m(null),u(null)},[]),N=y.useCallback((_,j,R)=>{b.current&&(b.current.abort(),b.current=null),a(!0),u(null),e.autoAppendAssistant!==!1&&f("");const z=new AbortController;return b.current=z,(async()=>{var O,W,K,G,$,A,D,U;const H=J=>{var Q;try{const ce=JSON.parse(JSON.stringify(J));return(Q=ce==null?void 0:ce.payload)!=null&&Q.files_info&&Array.isArray(ce.payload.files_info)&&(ce.payload.files_info=ce.payload.files_info.map(we=>({...we,data:we!=null&&we.data?`<base64 ${String(we.data).length} chars>`:we==null?void 0:we.data}))),ce}catch{return J}};try{let J={};try{if(r)J={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const _e=window.__AUTH_TOKEN__,Be=((O=window.localStorage)==null?void 0:O.getItem("authToken"))||null;let qe=null;try{const nt=(W=window.localStorage)==null?void 0:W.getItem("chat-settings");nt&&(qe=((K=JSON.parse(nt))==null?void 0:K.apiKey)||null)}catch{}const $e=_e||Be||qe||null;$e&&(J={Authorization:`Bearer ${$e}`})}}catch{}console.debug("[use-chat] POST",t+n,H(_));const Q=await fetch(t+n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",...J,...s.current},body:JSON.stringify(_),signal:z.signal});if(!Q.ok||!Q.body){const xe=await Q.text().catch(()=>"");throw console.debug("[use-chat] non-OK response",Q.status,xe==null?void 0:xe.slice(0,500)),new Error(`stream ${Q.status}${xe?": "+xe:""}`)}x(!0);const ce=Q.body.getReader(),we=new TextDecoder;let ke="",q=[],M=k.current,X=null;const ee=()=>{if(q.length){const xe=q.join("");q=[],S.current&&f(_e=>_e+xe)}X=null},L=()=>{typeof window<"u"&&X==null&&(X=requestAnimationFrame(ee))};let F=Date.now();const me=setInterval(()=>{var xe;if(Date.now()-F>2e4){const _e="Stream idle timeout";u(_e),z.abort(),(xe=R==null?void 0:R.onError)==null||xe.call(R,_e)}},5e3),Re=1024*1024;try{const xe=Q.headers.get("X-Thread-Id")||Q.headers.get("x-thread-id"),_e=Q.headers.get("X-Thread-Created")||Q.headers.get("x-thread-created"),Be=xe??null,qe=String(_e??"").toLowerCase()==="true";for((G=R==null?void 0:R.onOpen)==null||G.call(R,{threadId:Be,created:qe});;){const{value:$e,done:nt}=await ce.read();if(nt)break;ke+=we.decode($e,{stream:!0}),ke.length>Re&&(ke="",console.warn("Stream buffer reset: exceeded 1MB"));let at;for(;(at=ke.indexOf(`
|
|
36
36
|
|
|
37
37
|
`))>=0;){const ie=ke.slice(0,at);ke=ke.slice(at+2);const te=pg(ie);if(!te)continue;let pe;try{pe=JSON.parse(te)}catch{console.debug("[use-chat] malformed SSE:",te.slice(0,200));continue}const de=hg(pe)?pe.data:pe;F=Date.now();const Ne=de.seq;if(Ne!==void 0){if(Ne<=M){console.debug("[use-chat] drop duplicate/out-of-order event",{seq:Ne,lastProcessedSeq:M,type:de.type});continue}M>0&&Ne>M+1&&(($=R==null?void 0:R.onGap)==null||$.call(R,{from:M,to:Ne})),M=Ne,k.current=Ne,v(Ne)}if(j==null||j(de),de.type==="token"&&e.autoAppendAssistant!==!1)q.push(de.content),L();else if(de.type==="message_delta"){const Fe=de.delta.filter(Xe=>Xe.type==="text").map(Xe=>Xe.text).join("");Fe&&e.autoAppendAssistant!==!1&&(q.push(Fe),L())}else X!==null&&cancelAnimationFrame(X),ee(),de.type==="checkpoint"?m(de.checkpointId):de.type==="error"&&u(de.message)}}ee()}catch(xe){if(xe.name!=="AbortError"){const _e=xe.message||String(xe);u(_e),(A=R==null?void 0:R.onError)==null||A.call(R,_e)}}finally{try{await ce.cancel()}catch{}finally{(D=ce.releaseLock)==null||D.call(ce)}X!==null&&typeof window<"u"&&window.cancelAnimationFrame(X),clearInterval(me),a(!1),x(!1),b.current=null}}catch(J){if(J.name!=="AbortError"){const Q=J.message||String(J);u(Q),(U=R==null?void 0:R.onError)==null||U.call(R,Q)}}finally{a(!1),x(!1),b.current=null}})(),{close:()=>z.abort()}},[t,n,r,e.autoAppendAssistant]);return y.useEffect(()=>()=>{var _;S.current=!1,(_=b.current)==null||_.abort()},[]),{isStreaming:i,error:c,assistantText:d,lastCheckpointId:h,lastSeq:w,connected:g,stream:N,stop:T,clear:I,setToken:C}}function hg(e){return!!e&&typeof e=="object"&&e.protocolVersion==="v1"&&"data"in e}function pg(e){const t=e.split(/\r?\n/),n=[];for(const r of t)if(r&&!r.startsWith(":")&&r.startsWith("data:")){const o=r.slice(5);n.push(o.startsWith(" ")?o.slice(1):o)}return n.length===0?null:n.join(`
|
|
38
38
|
`)}const Fl=y.createContext(null);function mg({children:e,enableFileAgentRouting:t=!1,fileAgentId:n="invoice_reader"}){const{api:r,baseUrl:o}=so(),s=y.useMemo(()=>{const L=(o??"").replace(/\/+$/,"");return L?L.endsWith("/chat")?L:`${L}/chat`:"/api/chat"},[o]),{currentThreadId:i,setCurrentThreadId:a,isLoadingThread:c}=mr(),u=Ym(),{state:d,dispatch:f,seed:h,prepend:m,pushUser:w,onEvent:v,reset:g}=Dl(),[x,b]=y.useState(!1),[S,k]=y.useState(!1),[C,T]=y.useState(null),[I,N]=y.useState(void 0),[_,j]=y.useState(void 0),R=20,z=y.useRef(i);y.useEffect(()=>{z.current=i},[i]);const H=y.useRef(null),O=y.useRef(!1),W=y.useCallback(()=>{O.current=!0},[]),{isStreaming:K,error:G,stream:$,stop:A,setToken:D}=$l({baseUrl:s,token:null});y.useEffect(()=>{const L=r.getAuthToken();D(L)},[r,D]),y.useEffect(()=>{u(K?{type:"STREAM_START",assistantId:d.assemblingId??void 0}:{type:"STREAM_END"})},[K,d.assemblingId,u]),y.useEffect(()=>{u(G?{type:"STREAM_ERROR",error:G}:{type:"CLEAR_ERROR"})},[G,u]),y.useEffect(()=>{d.lastCheckpointId&&u({type:"UPDATE_CHECKPOINT",checkpointId:d.lastCheckpointId,checkpointNs:d.lastCheckpointNs??void 0})},[d.lastCheckpointId,d.lastCheckpointNs,u]),y.useEffect(()=>{u({type:"UPDATE_ASSEMBLING_ID",assistantId:d.assemblingId})},[d.assemblingId,u]);const U=y.useCallback((L,F)=>{const me=Array.isArray(L==null?void 0:L.messages)?L.messages:[];F==="replace"?(console.log("[MessagesProvider] Replacing messages, count:",me.length),h(me,{checkpointId:(L==null?void 0:L.checkpointId)??null,checkpointNs:(L==null?void 0:L.checkpointNs)??null})):F==="prepend"&&me.length&&(console.log("[MessagesProvider] Prepending messages, count:",me.length),m(me)),T((L==null?void 0:L.nextCursor)??null),b(!!(L!=null&&L.hasMore)),N(Re=>(L==null?void 0:L.checkpointId)??Re??void 0),j(Re=>(L==null?void 0:L.checkpointNs)??Re??void 0)},[h,m]),J=y.useCallback(L=>{const F=L.threadId,me=!!L.created,Re=!!L.ready;if(i!==F){const xe=!i&&d.messages.length<=1;xe&&(H.current=F),a(F),(Re||me||xe)&&W();return}(Re||me)&&W()},[i,d.messages.length,a,W]),Q=y.useCallback(({from:L,to:F})=>{const me=z.current;me&&console.warn(`[MessagesProvider] Stream sequence gap detected (${L} -> ${F}) for thread ${me}`)},[]),{handleEvent:ce,reset:we}=fg({onThreadInfo:J,onMessageEvent:v,onUnhandledEvent:L=>{console.warn(`[MessagesProvider] Unhandled stream event type: ${L.type}`,L)},onSequenceGap:Q}),ke=y.useCallback(async L=>{if(!i)throw new Error("No active thread");if(S||!x)return;const F=C;if(F){k(!0);try{const me=await r.getMessages({threadId:i,checkpointId:I,checkpointNs:_,limit:(L==null?void 0:L.limit)??R,beforeId:F});U(me,"prepend")}finally{k(!1)}}},[r,i,I,_,C,x,S,U,R]),q=y.useCallback(()=>{console.log("[MessagesProvider] Clearing messages"),g([]),b(!1),k(!1),T(null),N(void 0),j(void 0)},[g]),M=y.useCallback(async(L,F)=>{var ie;!i&&!(F!=null&&F.payloadExtras)&&console.warn("[MessagesProvider] No thread ID - message will create new thread");const me=(F==null?void 0:F.attachments)||[],{contentParts:Re,filesInfo:xe}=await Zm(r,me),_e=[...Re];L&&L.trim()&&_e.push({type:"text",text:L.trim()});const Be={id:((ie=crypto.randomUUID)==null?void 0:ie.call(crypto))||`user-${Date.now()}`,role:"user",content:_e,createdAt:new Date().toISOString(),checkpointId:(F==null?void 0:F.checkpointId)??d.lastCheckpointId??void 0,checkpointNs:(F==null?void 0:F.checkpointNs)??d.lastCheckpointNs??void 0};w(Be);const qe={...Be,content:_e},$e={...(F==null?void 0:F.payloadExtras)??{}},nt=me&&me.length>0,at={...i?{threadId:i}:{},payload:{messages:[qe],files_info:xe,...t&&nt&&n?{active_agent:n}:{},...$e},checkpointId:(F==null?void 0:F.checkpointId)??d.lastCheckpointId??void 0,checkpointNs:(F==null?void 0:F.checkpointNs)??d.lastCheckpointNs??void 0,nodeFilter:F==null?void 0:F.nodeFilter,config:F==null?void 0:F.config};we(),W(),$(at,te=>{ce(te)},{onError:te=>console.warn("[MessagesProvider] Stream error:",te),onOpen:({threadId:te,created:pe})=>{if(!i&&te){const de=d.messages.length<=1;de&&(H.current=te),a(te),(pe||de)&&W()}},onGap:Q})},[i,w,$,ce,we,Q,d.lastCheckpointId,d.lastCheckpointNs,d.messages.length,r,W,a,t,n]),X=y.useCallback(async(L,F,me)=>{const Re=z.current;if(!Re)throw new Error("No active thread to handle interrupt");try{console.log(`[MessagesProvider] Handling interrupt ${L}: ${F?"approved":"rejected"}`);const xe=F?me??!0:!1;await r.resume({threadId:Re,value:xe}),console.log(`[MessagesProvider] Interrupt ${L} handled successfully`)}catch(xe){throw console.error(`[MessagesProvider] Failed to handle interrupt ${L}:`,xe),xe}},[r]),ee={messages:d.messages,assemblingId:d.assemblingId,lastUserMessage:null,hasMoreHistory:x,isLoadingHistory:S,send:M,stop:A,loadOlderMessages:ke,clearMessages:q,handleInterrupt:X};return l.jsx(Fl.Provider,{value:ee,children:e})}function gg(e){return l.jsx(mg,{...e})}function qs(){const e=y.useContext(Fl);if(!e)throw new Error("useMessages must be used within MessagesProvider");return e}function io({children:e,apiConfig:t,initialThreadId:n=null,autoLoadInitial:r=!0,disableAutoRestore:o=!1,enableFileAgentRouting:s=!1,fileAgentId:i="invoice_reader",onError:a,onThreadChange:c}){return l.jsx(Vm,{apiConfig:t,children:l.jsx(Gm,{children:l.jsx(eg,{initialThreadId:n,autoLoadInitial:r,disableAutoRestore:o,onError:a,onThreadChange:c,children:l.jsx(gg,{enableFileAgentRouting:s,fileAgentId:i,children:e})})})})}function Z(...e){return bp.twMerge(wp.clsx(e))}const xg=Kr.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"}}),Le=p.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...o},s)=>{const i=r?Cn.Slot:"button";return l.jsx(i,{className:Z(xg({variant:t,size:n,className:e})),ref:s,...o})});Le.displayName="Button";const zl=p.forwardRef(({className:e,...t},n)=>l.jsx("textarea",{className:Z("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",e),ref:n,...t}));zl.displayName="Textarea";function vg({initialValue:e="",editingMessageId:t=null,placeholder:n="Type your message...",isStreaming:r=!1,disabled:o=!1,maxLength:s=2e4,onSend:i,onCancelEdit:a,onStop:c,className:u="",textareaClassName:d="",allowEmptySend:f=!1}){const[h,m]=y.useState(e),[w,v]=y.useTransition(),g=y.useRef(null);y.useEffect(()=>{m(e??""),g.current&&(g.current.style.height="auto",g.current.style.height=`${g.current.scrollHeight}px`)},[e,t]);const x=y.useCallback(()=>{const N=g.current;N&&(N.style.height="auto",N.style.height=`${N.scrollHeight}px`)},[]);y.useEffect(()=>{x()},[x]);const b=y.useCallback(async N=>{N&&N.preventDefault();const _=(h??"").trim();!_&&!f||v(()=>{try{const j=i(_);j&&typeof j.then=="function"?j.then(()=>{m(""),g.current&&(g.current.style.height="auto")}).catch(()=>{}):(m(""),g.current&&(g.current.style.height="auto"))}catch{}})},[h,i,f]),S=y.useCallback(N=>{m(N.target.value),g.current&&(g.current.style.height="auto",g.current.style.height=`${g.current.scrollHeight}px`)},[]),k=y.useCallback(N=>{N.key==="Enter"&&!N.shiftKey?(N.preventDefault(),b()):N.key==="Escape"&&t&&(N.preventDefault(),a==null||a())},[b,t,a]),I=`resize-none min-h-[44px] max-h-[20rem] w-full transition-colors ${t?"border-[hsl(var(--ring))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] dark:bg-[hsl(var(--card))] dark:text-[hsl(var(--card-foreground))]":""} ${d}`;return l.jsx("form",{onSubmit:N=>void b(N),className:`w-full ${u}`,children:l.jsxs("div",{className:"flex items-end gap-2",children:[l.jsx("div",{className:"flex-1",children:l.jsx(zl,{ref:g,value:h,onChange:S,onKeyDown:k,placeholder:t?"Edit your message...":n,className:I,disabled:o,maxLength:s,rows:1,spellCheck:!1,autoCorrect:"off"})}),l.jsx("div",{children:r?l.jsx(Le,{type:"button",onClick:()=>{c==null||c()},size:"icon",variant:"outline",className:"shrink-0",title:"Stop generating",disabled:o||!c,children:l.jsx(ne.Square,{size:16})}):l.jsx(Le,{type:"submit",size:"icon",className:"shrink-0",title:t?"Save changes":"Send message",disabled:o||!h.trim()&&!f||w,children:l.jsx(ne.Send,{size:16})})})]})})}const wg=y.memo(vg),ao=0,un=1,Kn=2,Bl=4;function Hl(e){return()=>e}function bg(e){e()}function Ul(e,t){return n=>e(t(n))}function Wl(e,t){return()=>e(t)}function yg(e,t){return n=>e(t,n)}function Gs(e){return e!==void 0}function Sg(...e){return()=>{e.map(bg)}}function qn(){}function lo(e,t){return t(e),e}function Cg(e,t){return t(e)}function Ge(...e){return e}function He(e,t){return e(un,t)}function Ie(e,t){e(ao,t)}function Ys(e){e(Kn)}function tt(e){return e(Bl)}function ue(e,t){return He(e,yg(t,ao))}function Ft(e,t){const n=e(un,r=>{n(),t(r)});return n}function Vl(e){let t,n;return r=>o=>{t=o,n&&clearTimeout(n),n=setTimeout(()=>{r(t)},e)}}function Kl(e,t){return e===t}function Ye(e=Kl){let t;return n=>r=>{e(t,r)||(t=r,n(r))}}function be(e){return t=>n=>{e(n)&&t(n)}}function oe(e){return t=>Ul(t,e)}function Kt(e){return t=>()=>{t(e)}}function B(e,...t){const n=Tg(...t);return(r,o)=>{switch(r){case Kn:Ys(e);return;case un:return He(e,n(o))}}}function qt(e,t){return n=>r=>{n(t=e(t,r))}}function In(e){return t=>n=>{e>0?e--:t(n)}}function on(e){let t=null,n;return r=>o=>{t=o,!n&&(n=setTimeout(()=>{n=void 0,r(t)},e))}}function Ae(...e){const t=new Array(e.length);let n=0,r=null;const o=Math.pow(2,e.length)-1;return e.forEach((s,i)=>{const a=Math.pow(2,i);He(s,c=>{const u=n;n=n|a,t[i]=c,u!==o&&n===o&&r&&(r(),r=null)})}),s=>i=>{const a=()=>{s([i].concat(t))};n===o?a():r=a}}function Tg(...e){return t=>e.reduceRight(Cg,t)}function Eg(e){let t,n;const r=()=>t==null?void 0:t();return function(o,s){switch(o){case un:return s?n===s?void 0:(r(),n=s,t=He(e,s),t):(r(),qn);case Kn:r(),n=null;return}}}function Y(e){let t=e;const n=Oe();return(r,o)=>{switch(r){case ao:t=o;break;case un:{o(t);break}case Bl:return t}return n(r,o)}}function ft(e,t){return lo(Y(t),n=>ue(e,n))}function Oe(){const e=[];return(t,n)=>{switch(t){case ao:e.slice().forEach(r=>{r(n)});return;case Kn:e.splice(0,e.length);return;case un:return e.push(n),()=>{const r=e.indexOf(n);r>-1&&e.splice(r,1)}}}}function Tt(e){return lo(Oe(),t=>ue(e,t))}function ze(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:kg(),singleton:n}}const kg=()=>Symbol();function Ig(e){const t=new Map,n=({constructor:r,dependencies:o,id:s,singleton:i})=>{if(i&&t.has(s))return t.get(s);const a=r(o.map(c=>n(c)));return i&&t.set(s,a),a};return n(e)}function ot(...e){const t=Oe(),n=new Array(e.length);let r=0;const o=Math.pow(2,e.length)-1;return e.forEach((s,i)=>{const a=Math.pow(2,i);He(s,c=>{n[i]=c,r=r|a,r===o&&Ie(t,n)})}),function(s,i){switch(s){case Kn:{Ys(t);return}case un:return r===o&&i(n),He(t,i)}}}function ve(e,t=Kl){return B(e,Ye(t))}function Xs(...e){return function(t,n){switch(t){case Kn:return;case un:return Sg(...e.map(r=>He(r,n)))}}}var bt=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(bt||{});const Ng={0:"debug",3:"error",1:"log",2:"warn"},Ag=()=>typeof globalThis>"u"?window:globalThis,dn=ze(()=>{const e=Y(3);return{log:Y((t,n,r=1)=>{var o;const s=(o=Ag().VIRTUOSO_LOG_LEVEL)!=null?o:tt(e);r>=s&&console[Ng[r]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function Nn(e,t,n){return Js(e,t,n).callbackRef}function Js(e,t,n){const r=y.useRef(null);let o=i=>{};const s=y.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(i=>{const a=()=>{const c=i[0].target;c.offsetParent!==null&&e(c)};n?a():requestAnimationFrame(a)}):null,[e,n]);return o=i=>{i&&t?(s==null||s.observe(i),r.current=i):(r.current&&(s==null||s.unobserve(r.current)),r.current=null)},{callbackRef:o,ref:r}}function _g(e,t,n,r,o,s,i,a,c){const u=y.useCallback(d=>{const f=jg(d.children,t,a?"offsetWidth":"offsetHeight",o);let h=d.parentElement;for(;!h.dataset.virtuosoScroller;)h=h.parentElement;const m=h.lastElementChild.dataset.viewportType==="window";let w;m&&(w=h.ownerDocument.defaultView);const v=i?a?i.scrollLeft:i.scrollTop:m?a?w.scrollX||w.document.documentElement.scrollLeft:w.scrollY||w.document.documentElement.scrollTop:a?h.scrollLeft:h.scrollTop,g=i?a?i.scrollWidth:i.scrollHeight:m?a?w.document.documentElement.scrollWidth:w.document.documentElement.scrollHeight:a?h.scrollWidth:h.scrollHeight,x=i?a?i.offsetWidth:i.offsetHeight:m?a?w.innerWidth:w.innerHeight:a?h.offsetWidth:h.offsetHeight;r({scrollHeight:g,scrollTop:Math.max(v,0),viewportHeight:x}),s==null||s(a?ql("column-gap",getComputedStyle(d).columnGap,o):ql("row-gap",getComputedStyle(d).rowGap,o)),f!==null&&e(f)},[e,t,o,s,i,r,a]);return Js(u,n,c)}function jg(e,t,n,r){const o=e.length;if(o===0)return null;const s=[];for(let i=0;i<o;i++){const a=e.item(i);if(a.dataset.index===void 0)continue;const c=parseInt(a.dataset.index),u=parseFloat(a.dataset.knownSize),d=t(a,n);if(d===0&&r("Zero-sized element, this should not happen",{child:a},bt.ERROR),d===u)continue;const f=s[s.length-1];s.length===0||f.size!==d||f.endIndex!==c-1?s.push({endIndex:c,size:d,startIndex:c}):s[s.length-1].endIndex++}return s}function ql(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,bt.WARN),t==="normal"?0:parseInt(t??"0",10)}function Gl(e,t,n){const r=y.useRef(null),o=y.useCallback(c=>{if(!(c!=null&&c.offsetParent))return;const u=c.getBoundingClientRect(),d=u.width;let f,h;if(t){const m=t.getBoundingClientRect(),w=u.top-m.top;h=m.height-Math.max(0,w),f=w+t.scrollTop}else{const m=i.current.ownerDocument.defaultView;h=m.innerHeight-Math.max(0,u.top),f=u.top+m.scrollY}r.current={offsetTop:f,visibleHeight:h,visibleWidth:d},e(r.current)},[e,t]),{callbackRef:s,ref:i}=Js(o,!0,n),a=y.useCallback(()=>{o(i.current)},[o,i]);return y.useEffect(()=>{var c;if(t){t.addEventListener("scroll",a);const u=new ResizeObserver(()=>{requestAnimationFrame(a)});return u.observe(t),()=>{t.removeEventListener("scroll",a),u.unobserve(t)}}else{const u=(c=i.current)==null?void 0:c.ownerDocument.defaultView;return u==null||u.addEventListener("scroll",a),u==null||u.addEventListener("resize",a),()=>{u==null||u.removeEventListener("scroll",a),u==null||u.removeEventListener("resize",a)}}},[a,t,i]),s}const mt=ze(()=>{const e=Oe(),t=Oe(),n=Y(0),r=Oe(),o=Y(0),s=Oe(),i=Oe(),a=Y(0),c=Y(0),u=Y(0),d=Y(0),f=Oe(),h=Oe(),m=Y(!1),w=Y(!1),v=Y(!1);return ue(B(e,oe(({scrollTop:g})=>g)),t),ue(B(e,oe(({scrollHeight:g})=>g)),i),ue(t,o),{deviation:n,fixedFooterHeight:u,fixedHeaderHeight:c,footerHeight:d,headerHeight:a,horizontalDirection:w,scrollBy:h,scrollContainerState:e,scrollHeight:i,scrollingInProgress:m,scrollTo:f,scrollTop:t,skipAnimationFrameInResizeObserver:v,smoothScrollTargetReached:r,statefulScrollTop:o,viewportHeight:s}},[],{singleton:!0}),gr={lvl:0};function Yl(e,t){const n=e.length;if(n===0)return[];let{index:r,value:o}=t(e[0]);const s=[];for(let i=1;i<n;i++){const{index:a,value:c}=t(e[i]);s.push({end:a-1,start:r,value:o}),r=a,o=c}return s.push({end:1/0,start:r,value:o}),s}function We(e){return e===gr}function xr(e,t){if(!We(e))return t===e.k?e.v:t<e.k?xr(e.l,t):xr(e.r,t)}function zt(e,t,n="k"){if(We(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){const r=zt(e.r,t,n);return r[0]===-1/0?[e.k,e.v]:r}return zt(e.l,t,n)}function Et(e,t,n){return We(e)?Zl(t,n,1):t===e.k?it(e,{k:t,v:n}):t<e.k?Ql(it(e,{l:Et(e.l,t,n)})):Ql(it(e,{r:Et(e.r,t,n)}))}function Gn(){return gr}function co(e,t,n){if(We(e))return[];const r=zt(e,t)[0];return Rg(Qs(e,r,n))}function Zs(e,t){if(We(e))return gr;const{k:n,l:r,r:o}=e;if(t===n){if(We(r))return o;if(We(o))return r;{const[s,i]=Jl(r);return uo(it(e,{k:s,l:Xl(r),v:i}))}}else return t<n?uo(it(e,{l:Zs(r,t)})):uo(it(e,{r:Zs(o,t)}))}function An(e){return We(e)?[]:[...An(e.l),{k:e.k,v:e.v},...An(e.r)]}function Qs(e,t,n){if(We(e))return[];const{k:r,l:o,r:s,v:i}=e;let a=[];return r>t&&(a=a.concat(Qs(o,t,n))),r>=t&&r<=n&&a.push({k:r,v:i}),r<=n&&(a=a.concat(Qs(s,t,n))),a}function uo(e){const{l:t,lvl:n,r}=e;if(r.lvl>=n-1&&t.lvl>=n-1)return e;if(n>r.lvl+1){if(ei(t))return ec(it(e,{lvl:n-1}));if(!We(t)&&!We(t.r))return it(t.r,{l:it(t,{r:t.r.l}),lvl:n,r:it(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(ei(e))return ti(it(e,{lvl:n-1}));if(!We(r)&&!We(r.l)){const o=r.l,s=ei(o)?r.lvl-1:r.lvl;return it(o,{l:it(e,{lvl:n-1,r:o.l}),lvl:o.lvl+1,r:ti(it(r,{l:o.r,lvl:s}))})}else throw new Error("Unexpected empty nodes")}}function it(e,t){return Zl(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function Xl(e){return We(e.r)?e.l:uo(it(e,{r:Xl(e.r)}))}function ei(e){return We(e)||e.lvl>e.r.lvl}function Jl(e){return We(e.r)?[e.k,e.v]:Jl(e.r)}function Zl(e,t,n,r=gr,o=gr){return{k:e,l:r,lvl:n,r:o,v:t}}function Ql(e){return ti(ec(e))}function ec(e){const{l:t}=e;return!We(t)&&t.lvl===e.lvl?it(t,{r:it(e,{l:t.r})}):e}function ti(e){const{lvl:t,r:n}=e;return!We(n)&&!We(n.r)&&n.lvl===t&&n.r.lvl===t?it(n,{l:it(e,{r:n.l}),lvl:t+1}):e}function Rg(e){return Yl(e,({k:t,v:n})=>({index:t,value:n}))}function tc(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function vr(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const ni=ze(()=>({recalcInProgress:Y(!1)}),[],{singleton:!0});function nc(e,t,n){return e[fo(e,t,n)]}function fo(e,t,n,r=0){let o=e.length-1;for(;r<=o;){const s=Math.floor((r+o)/2),i=e[s],a=n(i,t);if(a===0)return s;if(a===-1){if(o-r<2)return s-1;o=s-1}else{if(o===r)return s;r=s+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function Pg(e,t,n,r){const o=fo(e,t,r),s=fo(e,n,r,o);return e.slice(o,s+1)}function fn(e,t){return Math.round(e.getBoundingClientRect()[t])}function ho(e){return!We(e.groupOffsetTree)}function ri({index:e},t){return t===e?0:t<e?-1:1}function Og(){return{groupIndices:[],groupOffsetTree:Gn(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:Gn()}}function Mg(e,t){let n=We(e)?0:1/0;for(const r of t){const{endIndex:o,size:s,startIndex:i}=r;if(n=Math.min(n,i),We(e)){e=Et(e,0,s);continue}const a=co(e,i-1,o+1);if(a.some(Hg(r)))continue;let c=!1,u=!1;for(const{end:d,start:f,value:h}of a)c?(o>=f||s===h)&&(e=Zs(e,f)):(u=h!==s,c=!0),d>o&&o>=f&&h!==s&&(e=Et(e,o+1,h));u&&(e=Et(e,i,s))}return[e,n]}function Dg(e){return typeof e.groupIndex<"u"}function Lg({offset:e},t){return t===e?0:t<e?-1:1}function wr(e,t,n){if(t.length===0)return 0;const{index:r,offset:o,size:s}=nc(t,e,ri),i=e-r,a=s*i+(i-1)*n+o;return a>0?a+n:a}function rc(e,t){if(!ho(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function oc(e,t,n){if(Dg(e))return t.groupIndices[e.groupIndex]+1;{const r=e.index==="LAST"?n:e.index;let o=rc(r,t);return o=Math.max(0,o,Math.min(n,o)),o}}function $g(e,t,n,r=0){return r>0&&(t=Math.max(t,nc(e,r,ri).offset)),Yl(Pg(e,t,n,Lg),Bg)}function Fg(e,[t,n,r,o]){t.length>0&&r("received item sizes",t,bt.DEBUG);const s=e.sizeTree;let i=s,a=0;if(n.length>0&&We(s)&&t.length===2){const h=t[0].size,m=t[1].size;i=n.reduce((w,v)=>Et(Et(w,v,h),v+1,m),i)}else[i,a]=Mg(i,t);if(i===s)return e;const{lastIndex:c,lastOffset:u,lastSize:d,offsetTree:f}=oi(e.offsetTree,a,i,o);return{groupIndices:n,groupOffsetTree:n.reduce((h,m)=>Et(h,m,wr(m,f,o)),Gn()),lastIndex:c,lastOffset:u,lastSize:d,offsetTree:f,sizeTree:i}}function zg(e){return An(e).map(({k:t,v:n},r,o)=>{const s=o[r+1];return{endIndex:s?s.k-1:1/0,size:n,startIndex:t}})}function sc(e,t){let n=0,r=0;for(;n<e;)n+=t[r+1]-t[r]-1,r++;return r-(n===e?0:1)}function oi(e,t,n,r){let o=e,s=0,i=0,a=0,c=0;if(t!==0){c=fo(o,t-1,ri),a=o[c].offset;const u=zt(n,t-1);s=u[0],i=u[1],o.length&&o[c].size===zt(n,t)[1]&&(c-=1),o=o.slice(0,c+1)}else o=[];for(const{start:u,value:d}of co(n,t,1/0)){const f=u-s,h=f*i+a+f*r;o.push({index:u,offset:h,size:d}),s=u,a=h,i=d}return{lastIndex:s,lastOffset:a,lastSize:i,offsetTree:o}}function Bg(e){return{index:e.index,value:e}}function Hg(e){const{endIndex:t,size:n,startIndex:r}=e;return o=>o.start===r&&(o.end===t||o.end===1/0)&&o.value===n}const Ug={offsetHeight:"height",offsetWidth:"width"},Gt=ze(([{log:e},{recalcInProgress:t}])=>{const n=Oe(),r=Oe(),o=ft(r,0),s=Oe(),i=Oe(),a=Y(0),c=Y([]),u=Y(void 0),d=Y(void 0),f=Y((C,T)=>fn(C,Ug[T])),h=Y(void 0),m=Y(0),w=Og(),v=ft(B(n,Ae(c,e,m),qt(Fg,w),Ye()),w),g=ft(B(c,Ye(),qt((C,T)=>({current:T,prev:C.current}),{current:[],prev:[]}),oe(({prev:C})=>C)),[]);ue(B(c,be(C=>C.length>0),Ae(v,m),oe(([C,T,I])=>{const N=C.reduce((_,j,R)=>Et(_,j,wr(j,T.offsetTree,I)||R),Gn());return{...T,groupIndices:C,groupOffsetTree:N}})),v),ue(B(r,Ae(v),be(([C,{lastIndex:T}])=>C<T),oe(([C,{lastIndex:T,lastSize:I}])=>[{endIndex:T,size:I,startIndex:C}])),n),ue(u,d);const x=ft(B(u,oe(C=>C===void 0)),!0);ue(B(d,be(C=>C!==void 0&&We(tt(v).sizeTree)),oe(C=>[{endIndex:0,size:C,startIndex:0}])),n);const b=Tt(B(n,Ae(v),qt(({sizes:C},[T,I])=>({changed:I!==C,sizes:I}),{changed:!1,sizes:w}),oe(C=>C.changed)));He(B(a,qt((C,T)=>({diff:C.prev-T,prev:T}),{diff:0,prev:0}),oe(C=>C.diff)),C=>{const{groupIndices:T}=tt(v);if(C>0)Ie(t,!0),Ie(s,C+sc(C,T));else if(C<0){const I=tt(g);I.length>0&&(C-=sc(-C,I)),Ie(i,C)}}),He(B(a,Ae(e)),([C,T])=>{C<0&&T("`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:a},bt.ERROR)});const S=Tt(s);ue(B(s,Ae(v),oe(([C,T])=>{const I=T.groupIndices.length>0,N=[],_=T.lastSize;if(I){const j=xr(T.sizeTree,0);let R=0,z=0;for(;R<C;){const O=T.groupIndices[z],W=T.groupIndices.length===z+1?1/0:T.groupIndices[z+1]-O-1;N.push({endIndex:O,size:j,startIndex:O}),N.push({endIndex:O+1+W-1,size:_,startIndex:O+1}),z++,R+=W+1}const H=An(T.sizeTree);return R!==C&&H.shift(),H.reduce((O,{k:W,v:K})=>{let G=O.ranges;return O.prevSize!==0&&(G=[...O.ranges,{endIndex:W+C-1,size:O.prevSize,startIndex:O.prevIndex}]),{prevIndex:W+C,prevSize:K,ranges:G}},{prevIndex:C,prevSize:0,ranges:N}).ranges}return An(T.sizeTree).reduce((j,{k:R,v:z})=>({prevIndex:R+C,prevSize:z,ranges:[...j.ranges,{endIndex:R+C-1,size:j.prevSize,startIndex:j.prevIndex}]}),{prevIndex:0,prevSize:_,ranges:[]}).ranges})),n);const k=Tt(B(i,Ae(v,m),oe(([C,{offsetTree:T},I])=>{const N=-C;return wr(N,T,I)})));return ue(B(i,Ae(v,m),oe(([C,T,I])=>{if(T.groupIndices.length>0){if(We(T.sizeTree))return T;let N=Gn();const _=tt(g);let j=0,R=0,z=0;for(;j<-C;){z=_[R];const H=_[R+1]-z-1;R++,j+=H+1}if(N=An(T.sizeTree).reduce((H,{k:O,v:W})=>Et(H,Math.max(0,O+C),W),N),j!==-C){const H=xr(T.sizeTree,z);N=Et(N,0,H);const O=zt(T.sizeTree,-C+1)[1];N=Et(N,1,O)}return{...T,sizeTree:N,...oi(T.offsetTree,0,N,I)}}else{const N=An(T.sizeTree).reduce((_,{k:j,v:R})=>Et(_,Math.max(0,j+C),R),Gn());return{...T,sizeTree:N,...oi(T.offsetTree,0,N,I)}}})),v),{beforeUnshiftWith:S,data:h,defaultItemSize:d,firstItemIndex:a,fixedItemSize:u,gap:m,groupIndices:c,itemSize:f,listRefresh:b,shiftWith:i,shiftWithOffset:k,sizeRanges:n,sizes:v,statefulTotalCount:o,totalCount:r,trackItemSizes:x,unshiftWith:s}},Ge(dn,ni),{singleton:!0});function Wg(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const ic=ze(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:r,scrollTop:o}])=>{const s=Oe(),i=Oe(),a=Tt(B(s,oe(Wg)));return ue(B(a,oe(c=>c.totalCount)),n),ue(B(a,oe(c=>c.groupIndices)),e),ue(B(ot(o,t,r),be(([c,u])=>ho(u)),oe(([c,u,d])=>zt(u.groupOffsetTree,Math.max(c-d,0),"v")[0]),Ye(),oe(c=>[c])),i),{groupCounts:s,topItemsIndexes:i}},Ge(Gt,mt)),hn=ze(([{log:e}])=>{const t=Y(!1),n=Tt(B(t,be(r=>r),Ye()));return He(t,r=>{r&&tt(e)("props updated",{},bt.DEBUG)}),{didMount:n,propsReady:t}},Ge(dn),{singleton:!0}),Vg=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function ac(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!Vg)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const br=ze(([{gap:e,listRefresh:t,sizes:n,totalCount:r},{fixedFooterHeight:o,fixedHeaderHeight:s,footerHeight:i,headerHeight:a,scrollingInProgress:c,scrollTo:u,smoothScrollTargetReached:d,viewportHeight:f},{log:h}])=>{const m=Oe(),w=Oe(),v=Y(0);let g=null,x=null,b=null;function S(){g&&(g(),g=null),b&&(b(),b=null),x&&(clearTimeout(x),x=null),Ie(c,!1)}return ue(B(m,Ae(n,f,r,v,a,i,h),Ae(e,s,o),oe(([[k,C,T,I,N,_,j,R],z,H,O])=>{const W=ac(k),{align:K,behavior:G,offset:$}=W,A=I-1,D=oc(W,C,A);let U=wr(D,C.offsetTree,z)+_;K==="end"?(U+=H+zt(C.sizeTree,D)[1]-T+O,D===A&&(U+=j)):K==="center"?U+=(H+zt(C.sizeTree,D)[1]-T+O)/2:U-=N,$&&(U+=$);const J=Q=>{S(),Q?(R("retrying to scroll to",{location:k},bt.DEBUG),Ie(m,k)):(Ie(w,!0),R("list did not change, scroll successful",{},bt.DEBUG))};if(S(),G==="smooth"){let Q=!1;b=He(t,ce=>{Q=Q||ce}),g=Ft(d,()=>{J(Q)})}else g=Ft(B(t,Kg(150)),J);return x=setTimeout(()=>{S()},1200),Ie(c,!0),R("scrolling from index to",{behavior:G,index:D,top:U},bt.DEBUG),{behavior:G,top:U}})),u),{scrollTargetReached:w,scrollToIndex:m,topListHeight:v}},Ge(Gt,mt,dn),{singleton:!0});function Kg(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return r=>{r&&(t(!0),clearTimeout(n))}}}function si(e,t){e==0?t():requestAnimationFrame(()=>{si(e-1,t)})}function ii(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const yr=ze(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:r},{scrollTargetReached:o,scrollToIndex:s},{didMount:i}])=>{const a=Y(!0),c=Y(0),u=Y(!0);return ue(B(i,Ae(c),be(([d,f])=>!!f),Kt(!1)),a),ue(B(i,Ae(c),be(([d,f])=>!!f),Kt(!1)),u),He(B(ot(t,i),Ae(a,n,e,u),be(([[,d],f,{sizeTree:h},m,w])=>d&&(!We(h)||Gs(m))&&!f&&!w),Ae(c)),([,d])=>{Ft(o,()=>{Ie(u,!0)}),si(4,()=>{Ft(r,()=>{Ie(a,!0)}),Ie(s,d)})}),{initialItemFinalLocationReached:u,initialTopMostItemIndex:c,scrolledToInitialItem:a}},Ge(Gt,mt,br,hn),{singleton:!0});function lc(e,t){return Math.abs(e-t)<1.01}const Sr="up",Cr="down",qg="none",Gg={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},Yg=0,Tr=ze(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:r,scrollTop:o,viewportHeight:s}])=>{const i=Y(!1),a=Y(!0),c=Oe(),u=Oe(),d=Y(4),f=Y(Yg),h=ft(B(Xs(B(ve(o),In(1),Kt(!0)),B(ve(o),In(1),Kt(!1),Vl(100))),Ye()),!1),m=ft(B(Xs(B(n,Kt(!0)),B(n,Kt(!1),Vl(200))),Ye()),!1);ue(B(ot(ve(o),ve(f)),oe(([b,S])=>b<=S),Ye()),a),ue(B(a,on(50)),u);const w=Tt(B(ot(r,ve(s),ve(t),ve(e),ve(d)),qt((b,[{scrollHeight:S,scrollTop:k},C,T,I,N])=>{const _=k+C-S>-N,j={scrollHeight:S,scrollTop:k,viewportHeight:C};if(_){let z,H;return k>b.state.scrollTop?(z="SCROLLED_DOWN",H=b.state.scrollTop-k):(z="SIZE_DECREASED",H=b.state.scrollTop-k||b.scrollTopDelta),{atBottom:!0,atBottomBecause:z,scrollTopDelta:H,state:j}}let R;return j.scrollHeight>b.state.scrollHeight?R="SIZE_INCREASED":C<b.state.viewportHeight?R="VIEWPORT_HEIGHT_DECREASING":k<b.state.scrollTop?R="SCROLLING_UPWARDS":R="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:R,state:j}},Gg),Ye((b,S)=>b&&b.atBottom===S.atBottom))),v=ft(B(r,qt((b,{scrollHeight:S,scrollTop:k,viewportHeight:C})=>{if(lc(b.scrollHeight,S))return{changed:!1,jump:0,scrollHeight:S,scrollTop:k};{const T=S-(k+C)<1;return b.scrollTop!==k&&T?{changed:!0,jump:b.scrollTop-k,scrollHeight:S,scrollTop:k}:{changed:!0,jump:0,scrollHeight:S,scrollTop:k}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),be(b=>b.changed),oe(b=>b.jump)),0);ue(B(w,oe(b=>b.atBottom)),i),ue(B(i,on(50)),c);const g=Y(Cr);ue(B(r,oe(({scrollTop:b})=>b),Ye(),qt((b,S)=>tt(m)?{direction:b.direction,prevScrollTop:S}:{direction:S<b.prevScrollTop?Sr:Cr,prevScrollTop:S},{direction:Cr,prevScrollTop:0}),oe(b=>b.direction)),g),ue(B(r,on(50),Kt(qg)),g);const x=Y(0);return ue(B(h,be(b=>!b),Kt(0)),x),ue(B(o,on(100),Ae(h),be(([b,S])=>!!S),qt(([b,S],[k])=>[S,k],[0,0]),oe(([b,S])=>S-b)),x),{atBottomState:w,atBottomStateChange:c,atBottomThreshold:d,atTopStateChange:u,atTopThreshold:f,isAtBottom:i,isAtTop:a,isScrolling:h,lastJumpDueToItemResize:v,scrollDirection:g,scrollVelocity:x}},Ge(mt)),po="top",mo="bottom",cc="none";function uc(e,t,n){return typeof e=="number"?n===Sr&&t===po||n===Cr&&t===mo?e:0:n===Sr?t===po?e.main:e.reverse:t===mo?e.main:e.reverse}function dc(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const ai=ze(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:r,viewportHeight:o}])=>{const s=Oe(),i=Y(0),a=Y(0),c=Y(0),u=ft(B(ot(ve(r),ve(o),ve(n),ve(s,vr),ve(c),ve(i),ve(t),ve(e),ve(a)),oe(([d,f,h,[m,w],v,g,x,b,S])=>{const k=d-b,C=g+x,T=Math.max(h-k,0);let I=cc;const N=dc(S,po),_=dc(S,mo);return m-=b,m+=h+x,w+=h+x,w-=b,m>d+C-N&&(I=Sr),w<d-T+f+_&&(I=Cr),I!==cc?[Math.max(k-h-uc(v,po,I)-N,0),k-T-x+f+uc(v,mo,I)+_]:null}),be(d=>d!=null),Ye(vr)),[0,0]);return{increaseViewportBy:a,listBoundary:s,overscan:c,topListHeight:i,visibleRange:u}},Ge(mt),{singleton:!0});function Xg(e,t,n){if(ho(t)){const r=rc(e,t);return[{index:zt(t.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:e,offset:0,size:0}]}const li={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function go(e,t,n,r,o,s){const{lastIndex:i,lastOffset:a,lastSize:c}=o;let u=0,d=0;if(e.length>0){u=e[0].offset;const v=e[e.length-1];d=v.offset+v.size}const f=n-i,h=a+f*c+(f-1)*r,m=u,w=h-d;return{bottom:d,firstItemIndex:s,items:hc(e,o,s),offsetBottom:w,offsetTop:u,top:m,topItems:hc(t,o,s),topListHeight:t.reduce((v,g)=>g.size+v,0),totalCount:n}}function fc(e,t,n,r,o,s){let i=0;if(n.groupIndices.length>0)for(const d of n.groupIndices){if(d-i>=e)break;i++}const a=e+i,c=ii(t,a),u=Array.from({length:a}).map((d,f)=>({data:s[f+c],index:f+c,offset:0,size:0}));return go(u,[],a,o,n,r)}function hc(e,t,n){if(e.length===0)return[];if(!ho(t))return e.map(u=>({...u,index:u.index+n,originalIndex:u.index}));const r=e[0].index,o=e[e.length-1].index,s=[],i=co(t.groupOffsetTree,r,o);let a,c=0;for(const u of e){(!a||a.end<u.index)&&(a=i.shift(),c=t.groupIndices.indexOf(a.start));let d;u.index===a.start?d={index:c,type:"group"}:d={groupIndex:c,index:u.index-(c+1)+n},s.push({...d,data:u.data,offset:u.offset,originalIndex:u.index,size:u.size})}return s}const _n=ze(([{data:e,firstItemIndex:t,gap:n,sizes:r,totalCount:o},s,{listBoundary:i,topListHeight:a,visibleRange:c},{initialTopMostItemIndex:u,scrolledToInitialItem:d},{topListHeight:f},h,{didMount:m},{recalcInProgress:w}])=>{const v=Y([]),g=Y(0),x=Oe();ue(s.topItemsIndexes,v);const b=ft(B(ot(m,w,ve(c,vr),ve(o),ve(r),ve(u),d,ve(v),ve(t),ve(n),e),be(([T,I,,N,,,,,,,_])=>{const j=_&&_.length!==N;return T&&!I&&!j}),oe(([,,[T,I],N,_,j,R,z,H,O,W])=>{const K=_,{offsetTree:G,sizeTree:$}=K,A=tt(g);if(N===0)return{...li,totalCount:N};if(T===0&&I===0)return A===0?{...li,totalCount:N}:fc(A,j,_,H,O,W||[]);if(We($))return A>0?null:go(Xg(ii(j,N),K,W),[],N,O,K,H);const D=[];if(z.length>0){const we=z[0],ke=z[z.length-1];let q=0;for(const M of co($,we,ke)){const X=M.value,ee=Math.max(M.start,we),L=Math.min(M.end,ke);for(let F=ee;F<=L;F++)D.push({data:W==null?void 0:W[F],index:F,offset:q,size:X}),q+=X}}if(!R)return go([],D,N,O,K,H);const U=z.length>0?z[z.length-1]+1:0,J=$g(G,T,I,U);if(J.length===0)return null;const Q=N-1,ce=lo([],we=>{for(const ke of J){const q=ke.value;let M=q.offset,X=ke.start;const ee=q.size;if(q.offset<T){X+=Math.floor((T-q.offset+O)/(ee+O));const F=X-ke.start;M+=F*ee+F*O}X<U&&(M+=(U-X)*ee,X=U);const L=Math.min(ke.end,Q);for(let F=X;F<=L&&!(M>=I);F++)we.push({data:W==null?void 0:W[F],index:F,offset:M,size:ee}),M+=ee+O}});return go(ce,D,N,O,K,H)}),be(T=>T!==null),Ye()),li);ue(B(e,be(Gs),oe(T=>T==null?void 0:T.length)),o),ue(B(b,oe(T=>T.topListHeight)),f),ue(f,a),ue(B(b,oe(T=>[T.top,T.bottom])),i),ue(B(b,oe(T=>T.items)),x);const S=Tt(B(b,be(({items:T})=>T.length>0),Ae(o,e),be(([{items:T},I])=>T[T.length-1].originalIndex===I-1),oe(([,T,I])=>[T-1,I]),Ye(vr),oe(([T])=>T))),k=Tt(B(b,on(200),be(({items:T,topItems:I})=>T.length>0&&T[0].originalIndex===I.length),oe(({items:T})=>T[0].index),Ye())),C=Tt(B(b,be(({items:T})=>T.length>0),oe(({items:T})=>{let I=0,N=T.length-1;for(;T[I].type==="group"&&I<N;)I++;for(;T[N].type==="group"&&N>I;)N--;return{endIndex:T[N].index,startIndex:T[I].index}}),Ye(tc)));return{endReached:S,initialItemCount:g,itemsRendered:x,listState:b,rangeChanged:C,startReached:k,topItemsIndexes:v,...h}},Ge(Gt,ic,ai,yr,br,Tr,hn,ni),{singleton:!0}),pc=ze(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:r},{listState:o}])=>{const s=Oe(),i=ft(B(ot(n,e,r,t,o),oe(([a,c,u,d,f])=>a+c+u+d+f.offsetBottom+f.bottom)),0);return ue(ve(i),s),{totalListHeight:i,totalListHeightChanged:s}},Ge(mt,_n),{singleton:!0}),Jg=ze(([{viewportHeight:e},{totalListHeight:t}])=>{const n=Y(!1),r=ft(B(ot(n,e,t),be(([o])=>o),oe(([,o,s])=>Math.max(0,o-s)),on(0),Ye()),0);return{alignToBottom:n,paddingTopAddition:r}},Ge(mt,pc),{singleton:!0}),mc=ze(()=>({context:Y(null)})),Zg=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:r,...o},viewportBottom:s,viewportTop:i})=>t<i?{...o,align:n??"start",behavior:r}:e>s?{...o,align:n??"end",behavior:r}:null,gc=ze(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:r,fixedHeaderHeight:o,headerHeight:s,scrollingInProgress:i,scrollTop:a,viewportHeight:c},{scrollToIndex:u}])=>{const d=Oe();return ue(B(d,Ae(t,c,n,s,o,r,a),Ae(e),oe(([[f,h,m,w,v,g,x,b],S])=>{const{align:k,behavior:C,calculateViewLocation:T=Zg,done:I,...N}=f,_=oc(f,h,w-1),j=wr(_,h.offsetTree,S)+v+g,R=j+zt(h.sizeTree,_)[1],z=b+g,H=b+m-x,O=T({itemBottom:R,itemTop:j,locationParams:{align:k,behavior:C,...N},viewportBottom:H,viewportTop:z});return O?I&&Ft(B(i,be(W=>!W),In(tt(i)?1:2)),I):I&&I(),O}),be(f=>f!==null)),u),{scrollIntoView:d}},Ge(Gt,mt,br,_n,dn),{singleton:!0});function xc(e){return e?e==="smooth"?"smooth":"auto":!1}const Qg=(e,t)=>typeof e=="function"?xc(e(t)):t&&xc(e),ex=ze(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:r},{atBottomState:o,isAtBottom:s},{scrollToIndex:i},{scrolledToInitialItem:a},{didMount:c,propsReady:u},{log:d},{scrollingInProgress:f},{context:h},{scrollIntoView:m}])=>{const w=Y(!1),v=Oe();let g=null;function x(C){Ie(i,{align:"end",behavior:C,index:"LAST"})}He(B(ot(B(ve(t),In(1)),c),Ae(ve(w),s,a,f),oe(([[C,T],I,N,_,j])=>{let R=T&&_,z="auto";return R&&(z=Qg(I,N||j),R=R&&!!z),{followOutputBehavior:z,shouldFollow:R,totalCount:C}}),be(({shouldFollow:C})=>C)),({followOutputBehavior:C,totalCount:T})=>{g&&(g(),g=null),tt(n)?requestAnimationFrame(()=>{tt(d)("following output to ",{totalCount:T},bt.DEBUG),x(C)}):g=Ft(e,()=>{tt(d)("following output to ",{totalCount:T},bt.DEBUG),x(C),g=null})});function b(C){const T=Ft(o,I=>{C&&!I.atBottom&&I.notAtBottomBecause==="SIZE_INCREASED"&&!g&&(tt(d)("scrolling to bottom due to increased size",{},bt.DEBUG),x("auto"))});setTimeout(T,100)}He(B(ot(ve(w),t,u),be(([C,,T])=>C&&T),qt(({value:C},[,T])=>({refreshed:C===T,value:T}),{refreshed:!1,value:0}),be(({refreshed:C})=>C),Ae(w,t)),([,C])=>{tt(a)&&b(C!==!1)}),He(v,()=>{b(tt(w)!==!1)}),He(ot(ve(w),o),([C,T])=>{C&&!T.atBottom&&T.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&x("auto")});const S=Y(null),k=Oe();return ue(Xs(B(ve(r),oe(C=>{var T;return(T=C==null?void 0:C.length)!=null?T:0})),B(ve(t))),k),He(B(ot(B(k,In(1)),c),Ae(ve(S),a,f,h),oe(([[C,T],I,N,_,j])=>T&&N&&(I==null?void 0:I({context:j,totalCount:C,scrollingInProgress:_}))),be(C=>!!C),on(0)),C=>{g&&(g(),g=null),tt(n)?requestAnimationFrame(()=>{tt(d)("scrolling into view",{}),Ie(m,C)}):g=Ft(e,()=>{tt(d)("scrolling into view",{}),Ie(m,C),g=null})}),{autoscrollToBottom:v,followOutput:w,scrollIntoViewOnChange:S}},Ge(Gt,Tr,br,yr,hn,dn,mt,mc,gc)),tx=ze(([{data:e,firstItemIndex:t,gap:n,sizes:r},{initialTopMostItemIndex:o},{initialItemCount:s,listState:i},{didMount:a}])=>(ue(B(a,Ae(s),be(([,c])=>c!==0),Ae(o,r,t,n,e),oe(([[,c],u,d,f,h,m=[]])=>fc(c,u,d,f,h,m))),i),{}),Ge(Gt,yr,_n,hn),{singleton:!0}),nx=ze(([{didMount:e},{scrollTo:t},{listState:n}])=>{const r=Y(0);return He(B(e,Ae(r),be(([,o])=>o!==0),oe(([,o])=>({top:o}))),o=>{Ft(B(n,In(1),be(s=>s.items.length>1)),()=>{requestAnimationFrame(()=>{Ie(t,o)})})}),{initialScrollTop:r}},Ge(hn,mt,_n),{singleton:!0}),vc=ze(([{scrollVelocity:e}])=>{const t=Y(!1),n=Oe(),r=Y(!1);return ue(B(e,Ae(r,t,n),be(([o,s])=>!!s),oe(([o,s,i,a])=>{const{enter:c,exit:u}=s;if(i){if(u(o,a))return!1}else if(c(o,a))return!0;return i}),Ye()),t),He(B(ot(t,e,n),Ae(r)),([[o,s,i],a])=>{o&&a&&a.change&&a.change(s,i)}),{isSeeking:t,scrollSeekConfiguration:r,scrollSeekRangeChanged:n,scrollVelocity:e}},Ge(Tr),{singleton:!0}),ci=ze(([{scrollContainerState:e,scrollTo:t}])=>{const n=Oe(),r=Oe(),o=Oe(),s=Y(!1),i=Y(void 0);return ue(B(ot(n,r),oe(([{scrollHeight:a,scrollTop:c,viewportHeight:u},{offsetTop:d}])=>({scrollHeight:a,scrollTop:Math.max(0,c-d),viewportHeight:u}))),e),ue(B(t,Ae(r),oe(([a,{offsetTop:c}])=>({...a,top:a.top+c}))),o),{customScrollParent:i,useWindowScroll:s,windowScrollContainerState:n,windowScrollTo:o,windowViewportRect:r}},Ge(mt)),rx=ze(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:r},{initialTopMostItemIndex:o},{didMount:s},{useWindowScroll:i,windowScrollContainerState:a,windowViewportRect:c}])=>{const u=Oe(),d=Y(void 0),f=Y(null),h=Y(null);return ue(a,f),ue(c,h),He(B(u,Ae(t,r,i,f,h,n)),([m,w,v,g,x,b,S])=>{const k=zg(w.sizeTree);g&&x!==null&&b!==null&&(v=x.scrollTop-b.offsetTop),v-=S,m({ranges:k,scrollTop:v})}),ue(B(d,be(Gs),oe(ox)),o),ue(B(s,Ae(d),be(([,m])=>m!==void 0),Ye(),oe(([,m])=>m.ranges)),e),{getState:u,restoreStateFrom:d}},Ge(Gt,mt,yr,hn,ci));function ox(e){return{align:"start",index:0,offset:e.scrollTop}}const sx=ze(([{topItemsIndexes:e}])=>{const t=Y(0);return ue(B(t,be(n=>n>=0),oe(n=>Array.from({length:n}).map((r,o)=>o))),e),{topItemCount:t}},Ge(_n));function wc(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const ix=wc(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),ax=ze(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:r},{isAtBottom:o,isScrolling:s,lastJumpDueToItemResize:i,scrollDirection:a},{listState:c},{beforeUnshiftWith:u,gap:d,shiftWithOffset:f,sizes:h},{log:m},{recalcInProgress:w}])=>{const v=Tt(B(c,Ae(i),qt(([,x,b,S],[{bottom:k,items:C,offsetBottom:T,totalCount:I},N])=>{const _=k+T;let j=0;return b===I&&x.length>0&&C.length>0&&(C[0].originalIndex===0&&x[0].originalIndex===0||(j=_-S,j!==0&&(j+=N))),[j,C,I,_]},[0,[],0,0]),be(([x])=>x!==0),Ae(r,a,n,o,m,w),be(([,x,b,S,,,k])=>!k&&!S&&x!==0&&b===Sr),oe(([[x],,,,,b])=>(b("Upward scrolling compensation",{amount:x},bt.DEBUG),x))));function g(x){x>0?(Ie(t,{behavior:"auto",top:-x}),Ie(e,0)):(Ie(e,0),Ie(t,{behavior:"auto",top:-x}))}return He(B(v,Ae(e,s)),([x,b,S])=>{S&&ix()?Ie(e,b-x):g(-x)}),He(B(ot(ft(s,!1),e,w),be(([x,b,S])=>!x&&!S&&b!==0),oe(([x,b])=>b),on(1)),g),ue(B(f,oe(x=>({top:-x}))),t),He(B(u,Ae(h,d),oe(([x,{groupIndices:b,lastSize:S,sizeTree:k},C])=>{function T(I){return I*(S+C)}if(b.length===0)return T(x);{let I=0;const N=xr(k,0);let _=0,j=0;for(;_<x;){_++,I+=N;let R=b.length===j+1?1/0:b[j+1]-b[j]-1;_+R>x&&(I-=N,R=x-_+1),_+=R,I+=T(R),j++}return I}})),x=>{Ie(e,x),requestAnimationFrame(()=>{Ie(t,{top:x}),requestAnimationFrame(()=>{Ie(e,0),Ie(w,!1)})})}),{deviation:e}},Ge(mt,Tr,_n,Gt,dn,ni)),lx=ze(([e,t,n,r,o,s,i,a,c,u,d])=>({...e,...t,...n,...r,...o,...s,...i,...a,...c,...u,...d}),Ge(ai,tx,hn,vc,pc,nx,Jg,ci,gc,dn,mc)),bc=ze(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:r,gap:o,groupIndices:s,itemSize:i,sizeRanges:a,sizes:c,statefulTotalCount:u,totalCount:d,trackItemSizes:f},{initialItemFinalLocationReached:h,initialTopMostItemIndex:m,scrolledToInitialItem:w},v,g,x,{listState:b,topItemsIndexes:S,...k},{scrollToIndex:C},T,{topItemCount:I},{groupCounts:N},_])=>(ue(k.rangeChanged,_.scrollSeekRangeChanged),ue(B(_.windowViewportRect,oe(j=>j.visibleHeight)),v.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:r,gap:o,groupCounts:N,initialItemFinalLocationReached:h,initialTopMostItemIndex:m,scrolledToInitialItem:w,sizeRanges:a,topItemCount:I,topItemsIndexes:S,totalCount:d,...x,groupIndices:s,itemSize:i,listState:b,scrollToIndex:C,statefulTotalCount:u,trackItemSizes:f,...k,..._,...v,sizes:c,...g}),Ge(Gt,yr,mt,rx,ex,_n,br,ax,sx,ic,lx));function cx(e,t){const n={},r={};let o=0;const s=e.length;for(;o<s;)r[e[o]]=1,o+=1;for(const i in t)Object.hasOwn(r,i)||(n[i]=t[i]);return n}const xo=typeof document<"u"?y.useLayoutEffect:y.useEffect;function yc(e,t,n){const r=Object.keys(t.required||{}),o=Object.keys(t.optional||{}),s=Object.keys(t.methods||{}),i=Object.keys(t.events||{}),a=y.createContext({});function c(g,x){g.propsReady&&Ie(g.propsReady,!1);for(const b of r){const S=g[t.required[b]];Ie(S,x[b])}for(const b of o)if(b in x){const S=g[t.optional[b]];Ie(S,x[b])}g.propsReady&&Ie(g.propsReady,!0)}function u(g){return s.reduce((x,b)=>(x[b]=S=>{const k=g[t.methods[b]];Ie(k,S)},x),{})}function d(g){return i.reduce((x,b)=>(x[b]=Eg(g[t.events[b]]),x),{})}const f=y.forwardRef((g,x)=>{const{children:b,...S}=g,[k]=y.useState(()=>lo(Ig(e),I=>{c(I,S)})),[C]=y.useState(Wl(d,k));xo(()=>{for(const I of i)I in S&&He(C[I],S[I]);return()=>{Object.values(C).map(Ys)}},[S,C,k]),xo(()=>{c(k,S)}),y.useImperativeHandle(x,Hl(u(k)));const T=n;return l.jsx(a.Provider,{value:k,children:n?l.jsx(T,{...cx([...r,...o,...i],S),children:b}):b})}),h=g=>{const x=y.useContext(a);return y.useCallback(b=>{Ie(x[g],b)},[x,g])},m=g=>{const x=y.useContext(a)[g],b=y.useCallback(S=>He(x,S),[x]);return y.useSyncExternalStore(b,()=>tt(x),()=>tt(x))},w=g=>{const x=y.useContext(a)[g],[b,S]=y.useState(Wl(tt,x));return xo(()=>He(x,k=>{k!==b&&S(Hl(k))}),[x,b]),b},v=y.version.startsWith("18")?m:w;return{Component:f,useEmitter:(g,x)=>{const b=y.useContext(a)[g];xo(()=>He(b,x),[x,b])},useEmitterValue:v,usePublisher:h}}const Sc=y.createContext(void 0),Cc=y.createContext(void 0),Tc=typeof document<"u"?y.useLayoutEffect:y.useEffect;function ui(e){return"self"in e}function ux(e){return"body"in e}function Ec(e,t,n,r=qn,o,s){const i=y.useRef(null),a=y.useRef(null),c=y.useRef(null),u=y.useCallback(h=>{let m,w,v;const g=h.target;if(ux(g)||ui(g)){const b=ui(g)?g:g.defaultView;v=s?b.scrollX:b.scrollY,m=s?b.document.documentElement.scrollWidth:b.document.documentElement.scrollHeight,w=s?b.innerWidth:b.innerHeight}else v=s?g.scrollLeft:g.scrollTop,m=s?g.scrollWidth:g.scrollHeight,w=s?g.offsetWidth:g.offsetHeight;const x=()=>{e({scrollHeight:m,scrollTop:Math.max(v,0),viewportHeight:w})};h.suppressFlushSync?x():Is.flushSync(x),a.current!==null&&(v===a.current||v<=0||v===m-w)&&(a.current=null,t(!0),c.current&&(clearTimeout(c.current),c.current=null))},[e,t,s]);y.useEffect(()=>{const h=o||i.current;return r(o||i.current),u({suppressFlushSync:!0,target:h}),h.addEventListener("scroll",u,{passive:!0}),()=>{r(null),h.removeEventListener("scroll",u)}},[i,u,n,r,o]);function d(h){const m=i.current;if(!m||(s?"offsetWidth"in m&&m.offsetWidth===0:"offsetHeight"in m&&m.offsetHeight===0))return;const w=h.behavior==="smooth";let v,g,x;ui(m)?(g=Math.max(fn(m.document.documentElement,s?"width":"height"),s?m.document.documentElement.scrollWidth:m.document.documentElement.scrollHeight),v=s?m.innerWidth:m.innerHeight,x=s?window.scrollX:window.scrollY):(g=m[s?"scrollWidth":"scrollHeight"],v=fn(m,s?"width":"height"),x=m[s?"scrollLeft":"scrollTop"]);const b=g-v;if(h.top=Math.ceil(Math.max(Math.min(b,h.top),0)),lc(v,g)||h.top===x){e({scrollHeight:g,scrollTop:x,viewportHeight:v}),w&&t(!0);return}w?(a.current=h.top,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,a.current=null,t(!0)},1e3)):a.current=null,s&&(h={behavior:h.behavior,left:h.top}),m.scrollTo(h)}function f(h){s&&(h={behavior:h.behavior,left:h.top}),i.current.scrollBy(h)}return{scrollByCallback:f,scrollerRef:i,scrollToCallback:d}}const di="-webkit-sticky",kc="sticky",fi=wc(()=>{if(typeof document>"u")return kc;const e=document.createElement("div");return e.style.position=di,e.style.position===di?di:kc});function hi(e){return e}const dx=ze(()=>{const e=Y(a=>`Item ${a}`),t=Y(a=>`Group ${a}`),n=Y({}),r=Y(hi),o=Y("div"),s=Y(qn),i=(a,c=null)=>ft(B(n,oe(u=>u[a]),Ye()),c);return{components:n,computeItemKey:r,EmptyPlaceholder:i("EmptyPlaceholder"),FooterComponent:i("Footer"),GroupComponent:i("Group","div"),groupContent:t,HeaderComponent:i("Header"),HeaderFooterTag:o,ItemComponent:i("Item","div"),itemContent:e,ListComponent:i("List","div"),ScrollerComponent:i("Scroller","div"),scrollerRef:s,ScrollSeekPlaceholder:i("ScrollSeekPlaceholder"),TopItemListComponent:i("TopItemList")}}),fx=ze(([e,t])=>({...e,...t}),Ge(bc,dx)),hx=({height:e})=>l.jsx("div",{style:{height:e}}),px={overflowAnchor:"none",position:fi(),zIndex:1},Ic={overflowAnchor:"none"},mx={...Ic,display:"inline-block",height:"100%"},Nc=y.memo(function({showTopList:e=!1}){const t=Te("listState"),n=jt("sizeRanges"),r=Te("useWindowScroll"),o=Te("customScrollParent"),s=jt("windowScrollContainerState"),i=jt("scrollContainerState"),a=o||r?s:i,c=Te("itemContent"),u=Te("context"),d=Te("groupContent"),f=Te("trackItemSizes"),h=Te("itemSize"),m=Te("log"),w=jt("gap"),v=Te("horizontalDirection"),{callbackRef:g}=_g(n,h,f,e?qn:a,m,w,o,v,Te("skipAnimationFrameInResizeObserver")),[x,b]=y.useState(0);pi("deviation",O=>{x!==O&&b(O)});const S=Te("EmptyPlaceholder"),k=Te("ScrollSeekPlaceholder")||hx,C=Te("ListComponent"),T=Te("ItemComponent"),I=Te("GroupComponent"),N=Te("computeItemKey"),_=Te("isSeeking"),j=Te("groupIndices").length>0,R=Te("alignToBottom"),z=Te("initialItemFinalLocationReached"),H=e?{}:{boxSizing:"border-box",...v?{display:"inline-block",height:"100%",marginLeft:x!==0?x:R?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:x!==0?x:R?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...z?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&S?l.jsx(S,{...ht(S,u)}):l.jsx(C,{...ht(C,u),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:g,style:H,children:(e?t.topItems:t.items).map(O=>{const W=O.originalIndex,K=N(W+t.firstItemIndex,O.data,u);return _?y.createElement(k,{...ht(k,u),height:O.size,index:O.index,key:K,type:O.type||"item",...O.type==="group"?{}:{groupIndex:O.groupIndex}}):O.type==="group"?y.createElement(I,{...ht(I,u),"data-index":W,"data-item-index":O.index,"data-known-size":O.size,key:K,style:px},d(O.index,u)):y.createElement(T,{...ht(T,u),...wx(T,O.data),"data-index":W,"data-item-group-index":O.groupIndex,"data-item-index":O.index,"data-known-size":O.size,key:K,style:v?mx:Ic},j?c(O.index,O.groupIndex,O.data,u):c(O.index,O.data,u))})})}),gx={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},xx={outline:"none",overflowX:"auto",position:"relative"},vo=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),vx={position:fi(),top:0,width:"100%",zIndex:1};function ht(e,t){if(typeof e!="string")return{context:t}}function wx(e,t){return{item:typeof e=="string"?void 0:t}}const bx=y.memo(function(){const e=Te("HeaderComponent"),t=jt("headerHeight"),n=Te("HeaderFooterTag"),r=Nn(y.useMemo(()=>s=>{t(fn(s,"height"))},[t]),!0,Te("skipAnimationFrameInResizeObserver")),o=Te("context");return e?l.jsx(n,{ref:r,children:l.jsx(e,{...ht(e,o)})}):null}),yx=y.memo(function(){const e=Te("FooterComponent"),t=jt("footerHeight"),n=Te("HeaderFooterTag"),r=Nn(y.useMemo(()=>s=>{t(fn(s,"height"))},[t]),!0,Te("skipAnimationFrameInResizeObserver")),o=Te("context");return e?l.jsx(n,{ref:r,children:l.jsx(e,{...ht(e,o)})}):null});function Ac({useEmitter:e,useEmitterValue:t,usePublisher:n}){return y.memo(function({children:r,style:o,context:s,...i}){const a=n("scrollContainerState"),c=t("ScrollerComponent"),u=n("smoothScrollTargetReached"),d=t("scrollerRef"),f=t("horizontalDirection")||!1,{scrollByCallback:h,scrollerRef:m,scrollToCallback:w}=Ec(a,u,c,d,void 0,f);return e("scrollTo",w),e("scrollBy",h),l.jsx(c,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:m,style:{...f?xx:gx,...o},tabIndex:0,...i,...ht(c,s),children:r})})}function _c({useEmitter:e,useEmitterValue:t,usePublisher:n}){return y.memo(function({children:r,style:o,context:s,...i}){const a=n("windowScrollContainerState"),c=t("ScrollerComponent"),u=n("smoothScrollTargetReached"),d=t("totalListHeight"),f=t("deviation"),h=t("customScrollParent"),m=y.useRef(null),w=t("scrollerRef"),{scrollByCallback:v,scrollerRef:g,scrollToCallback:x}=Ec(a,u,c,w,h);return Tc(()=>{var b;return g.current=h||((b=m.current)==null?void 0:b.ownerDocument.defaultView),()=>{g.current=null}},[g,h]),e("windowScrollTo",x),e("scrollBy",v),l.jsx(c,{ref:m,"data-virtuoso-scroller":!0,style:{position:"relative",...o,...d!==0?{height:d+f}:{}},...i,...ht(c,s),children:r})})}const Sx=({children:e})=>{const t=y.useContext(Sc),n=jt("viewportHeight"),r=jt("fixedItemHeight"),o=Te("alignToBottom"),s=Te("horizontalDirection"),i=y.useMemo(()=>Ul(n,c=>fn(c,s?"width":"height")),[n,s]),a=Nn(i,!0,Te("skipAnimationFrameInResizeObserver"));return y.useEffect(()=>{t&&(n(t.viewportHeight),r(t.itemHeight))},[t,n,r]),l.jsx("div",{"data-viewport-type":"element",ref:a,style:vo(o),children:e})},Cx=({children:e})=>{const t=y.useContext(Sc),n=jt("windowViewportRect"),r=jt("fixedItemHeight"),o=Te("customScrollParent"),s=Gl(n,o,Te("skipAnimationFrameInResizeObserver")),i=Te("alignToBottom");return y.useEffect(()=>{t&&(r(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,r]),l.jsx("div",{"data-viewport-type":"window",ref:s,style:vo(i),children:e})},Tx=({children:e})=>{const t=Te("TopItemListComponent")||"div",n=Te("headerHeight"),r={...vx,marginTop:`${n}px`},o=Te("context");return l.jsx(t,{style:r,...ht(t,o),children:e})},Ex=y.memo(function(e){const t=Te("useWindowScroll"),n=Te("topItemsIndexes").length>0,r=Te("customScrollParent"),o=Te("context");return l.jsxs(r||t?Nx:Ix,{...e,context:o,children:[n&&l.jsx(Tx,{children:l.jsx(Nc,{showTopList:!0})}),l.jsxs(r||t?Cx:Sx,{children:[l.jsx(bx,{}),l.jsx(Nc,{}),l.jsx(yx,{})]})]})}),{Component:kx,useEmitter:pi,useEmitterValue:Te,usePublisher:jt}=yc(fx,{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"}},Ex),Ix=Ac({useEmitter:pi,useEmitterValue:Te,usePublisher:jt}),Nx=_c({useEmitter:pi,useEmitterValue:Te,usePublisher:jt}),Ax=kx;Ge(bc,ze(()=>{const e=Y(u=>l.jsxs("td",{children:["Item $",u]})),t=Y(null),n=Y(u=>l.jsxs("td",{colSpan:1e3,children:["Group ",u]})),r=Y(null),o=Y(null),s=Y({}),i=Y(hi),a=Y(qn),c=(u,d=null)=>ft(B(s,oe(f=>f[u]),Ye()),d);return{components:s,computeItemKey:i,context:t,EmptyPlaceholder:c("EmptyPlaceholder"),FillerRow:c("FillerRow"),fixedFooterContent:o,fixedHeaderContent:r,itemContent:e,groupContent:n,ScrollerComponent:c("Scroller","div"),scrollerRef:a,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),TableBodyComponent:c("TableBody","tbody"),TableComponent:c("Table","table"),TableFooterComponent:c("TableFoot","tfoot"),TableHeadComponent:c("TableHead","thead"),TableRowComponent:c("TableRow","tr"),GroupComponent:c("Group","tr")}})),fi();const jc={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},_x={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Rc,floor:wo,max:Er,min:mi,round:Pc}=Math;function Oc(e,t,n){return Array.from({length:t-e+1}).map((r,o)=>({data:n===null?null:n[o+e],index:o+e}))}function jx(e){return{..._x,items:e}}function bo(e,t){return e&&e.width===t.width&&e.height===t.height}function Rx(e,t){return e&&e.column===t.column&&e.row===t.row}const Px=ze(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:r},{footerHeight:o,headerHeight:s,scrollBy:i,scrollContainerState:a,scrollTo:c,scrollTop:u,smoothScrollTargetReached:d,viewportHeight:f},h,m,{didMount:w,propsReady:v},{customScrollParent:g,useWindowScroll:x,windowScrollContainerState:b,windowScrollTo:S,windowViewportRect:k},C])=>{const T=Y(0),I=Y(0),N=Y(jc),_=Y({height:0,width:0}),j=Y({height:0,width:0}),R=Oe(),z=Oe(),H=Y(0),O=Y(null),W=Y({column:0,row:0}),K=Oe(),G=Oe(),$=Y(!1),A=Y(0),D=Y(!0),U=Y(!1),J=Y(!1);He(B(w,Ae(A),be(([M,X])=>!!X)),()=>{Ie(D,!1)}),He(B(ot(w,D,j,_,A,U),be(([M,X,ee,L,,F])=>M&&!X&&ee.height!==0&&L.height!==0&&!F)),([,,,,M])=>{Ie(U,!0),si(1,()=>{Ie(R,M)}),Ft(B(u),()=>{Ie(t,[0,0]),Ie(D,!0)})}),ue(B(G,be(M=>M!=null&&M.scrollTop>0),Kt(0)),I),He(B(w,Ae(G),be(([,M])=>M!=null)),([,M])=>{M&&(Ie(_,M.viewport),Ie(j,M.item),Ie(W,M.gap),M.scrollTop>0&&(Ie($,!0),Ft(B(u,In(1)),X=>{Ie($,!1)}),Ie(c,{top:M.scrollTop})))}),ue(B(_,oe(({height:M})=>M)),f),ue(B(ot(ve(_,bo),ve(j,bo),ve(W,(M,X)=>M&&M.column===X.column&&M.row===X.row),ve(u)),oe(([M,X,ee,L])=>({gap:ee,item:X,scrollTop:L,viewport:M}))),K),ue(B(ot(ve(T),r,ve(W,Rx),ve(j,bo),ve(_,bo),ve(O),ve(I),ve($),ve(D),ve(A)),be(([,,,,,,,M])=>!M),oe(([M,[X,ee],L,F,me,Re,xe,,_e,Be])=>{const{column:qe,row:$e}=L,{height:nt,width:at}=F,{width:ie}=me;if(xe===0&&(M===0||ie===0))return jc;if(at===0){const Dt=ii(Be,M),ir=Dt+Math.max(xe-1,0);return jx(Oc(Dt,ir,Re))}const te=Mc(ie,at,qe);let pe,de;_e?X===0&&ee===0&&xe>0?(pe=0,de=xe-1):(pe=te*wo((X+$e)/(nt+$e)),de=te*Rc((ee+$e)/(nt+$e))-1,de=mi(M-1,Er(de,te-1)),pe=mi(de,Er(0,pe))):(pe=0,de=-1);const Ne=Oc(pe,de,Re),{bottom:Fe,top:Xe}=Dc(me,L,F,Ne),Ze=Rc(M/te),lt=Ze*nt+(Ze-1)*$e-Fe;return{bottom:Fe,itemHeight:nt,items:Ne,itemWidth:at,offsetBottom:lt,offsetTop:Xe,top:Xe}})),N),ue(B(O,be(M=>M!==null),oe(M=>M.length)),T),ue(B(ot(_,j,N,W),be(([M,X,{items:ee}])=>ee.length>0&&X.height!==0&&M.height!==0),oe(([M,X,{items:ee},L])=>{const{bottom:F,top:me}=Dc(M,L,X,ee);return[me,F]}),Ye(vr)),t);const Q=Y(!1);ue(B(u,Ae(Q),oe(([M,X])=>X||M!==0)),Q);const ce=Tt(B(ot(N,T),be(([{items:M}])=>M.length>0),Ae(Q),be(([[M,X],ee])=>{const L=M.items[M.items.length-1].index===X-1;return(ee||M.bottom>0&&M.itemHeight>0&&M.offsetBottom===0&&M.items.length===X)&&L}),oe(([[,M]])=>M-1),Ye())),we=Tt(B(ve(N),be(({items:M})=>M.length>0&&M[0].index===0),Kt(0),Ye())),ke=Tt(B(ve(N),Ae($),be(([{items:M},X])=>M.length>0&&!X),oe(([{items:M}])=>({endIndex:M[M.length-1].index,startIndex:M[0].index})),Ye(tc),on(0)));ue(ke,m.scrollSeekRangeChanged),ue(B(R,Ae(_,j,T,W),oe(([M,X,ee,L,F])=>{const me=ac(M),{align:Re,behavior:xe,offset:_e}=me;let Be=me.index;Be==="LAST"&&(Be=L-1),Be=Er(0,Be,mi(L-1,Be));let qe=gi(X,F,ee,Be);return Re==="end"?qe=Pc(qe-X.height+ee.height):Re==="center"&&(qe=Pc(qe-X.height/2+ee.height/2)),_e&&(qe+=_e),{behavior:xe,top:qe}})),c);const q=ft(B(N,oe(M=>M.offsetBottom+M.bottom)),0);return ue(B(k,oe(M=>({height:M.visibleHeight,width:M.visibleWidth}))),_),{customScrollParent:g,data:O,deviation:H,footerHeight:o,gap:W,headerHeight:s,increaseViewportBy:e,initialItemCount:I,itemDimensions:j,overscan:n,restoreStateFrom:G,scrollBy:i,scrollContainerState:a,scrollHeight:z,scrollTo:c,scrollToIndex:R,scrollTop:u,smoothScrollTargetReached:d,totalCount:T,useWindowScroll:x,viewportDimensions:_,windowScrollContainerState:b,windowScrollTo:S,windowViewportRect:k,...m,gridState:N,horizontalDirection:J,initialTopMostItemIndex:A,totalListHeight:q,...h,endReached:ce,propsReady:v,rangeChanged:ke,startReached:we,stateChanged:K,stateRestoreInProgress:$,...C}},Ge(ai,mt,Tr,vc,hn,ci,dn));function Mc(e,t,n){return Er(1,wo((e+n)/(wo(t)+n)))}function Dc(e,t,n,r){const{height:o}=n;if(o===void 0||r.length===0)return{bottom:0,top:0};const s=gi(e,t,n,r[0].index);return{bottom:gi(e,t,n,r[r.length-1].index)+o,top:s}}function gi(e,t,n,r){const o=Mc(e.width,n.width,t.column),s=wo(r/o),i=s*n.height+Er(0,s-1)*t.row;return i>0?i+t.row:i}const Ox=ze(()=>{const e=Y(f=>`Item ${f}`),t=Y({}),n=Y(null),r=Y("virtuoso-grid-item"),o=Y("virtuoso-grid-list"),s=Y(hi),i=Y("div"),a=Y(qn),c=(f,h=null)=>ft(B(t,oe(m=>m[f]),Ye()),h),u=Y(!1),d=Y(!1);return ue(ve(d),u),{components:t,computeItemKey:s,context:n,FooterComponent:c("Footer"),HeaderComponent:c("Header"),headerFooterTag:i,itemClassName:r,ItemComponent:c("Item","div"),itemContent:e,listClassName:o,ListComponent:c("List","div"),readyStateChanged:u,reportReadyState:d,ScrollerComponent:c("Scroller","div"),scrollerRef:a,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}}),Mx=ze(([e,t])=>({...e,...t}),Ge(Px,Ox)),Dx=y.memo(function(){const e=Je("gridState"),t=Je("listClassName"),n=Je("itemClassName"),r=Je("itemContent"),o=Je("computeItemKey"),s=Je("isSeeking"),i=Rt("scrollHeight"),a=Je("ItemComponent"),c=Je("ListComponent"),u=Je("ScrollSeekPlaceholder"),d=Je("context"),f=Rt("itemDimensions"),h=Rt("gap"),m=Je("log"),w=Je("stateRestoreInProgress"),v=Rt("reportReadyState"),g=Nn(y.useMemo(()=>x=>{const b=x.parentElement.parentElement.scrollHeight;i(b);const S=x.firstChild;if(S){const{height:k,width:C}=S.getBoundingClientRect();f({height:k,width:C})}h({column:$c("column-gap",getComputedStyle(x).columnGap,m),row:$c("row-gap",getComputedStyle(x).rowGap,m)})},[i,f,h,m]),!0,!1);return Tc(()=>{e.itemHeight>0&&e.itemWidth>0&&v(!0)},[e]),w?null:l.jsx(c,{className:t,ref:g,...ht(c,d),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(x=>{const b=o(x.index,x.data,d);return s?l.jsx(u,{...ht(u,d),height:e.itemHeight,index:x.index,width:e.itemWidth},b):y.createElement(a,{...ht(a,d),className:n,"data-index":x.index,key:b},r(x.index,x.data,d))})})}),Lx=y.memo(function(){const e=Je("HeaderComponent"),t=Rt("headerHeight"),n=Je("headerFooterTag"),r=Nn(y.useMemo(()=>s=>{t(fn(s,"height"))},[t]),!0,!1),o=Je("context");return e?l.jsx(n,{ref:r,children:l.jsx(e,{...ht(e,o)})}):null}),$x=y.memo(function(){const e=Je("FooterComponent"),t=Rt("footerHeight"),n=Je("headerFooterTag"),r=Nn(y.useMemo(()=>s=>{t(fn(s,"height"))},[t]),!0,!1),o=Je("context");return e?l.jsx(n,{ref:r,children:l.jsx(e,{...ht(e,o)})}):null}),Fx=({children:e})=>{const t=y.useContext(Cc),n=Rt("itemDimensions"),r=Rt("viewportDimensions"),o=Nn(y.useMemo(()=>s=>{r(s.getBoundingClientRect())},[r]),!0,!1);return y.useEffect(()=>{t&&(r({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,r,n]),l.jsx("div",{ref:o,style:vo(!1),children:e})},zx=({children:e})=>{const t=y.useContext(Cc),n=Rt("windowViewportRect"),r=Rt("itemDimensions"),o=Je("customScrollParent"),s=Gl(n,o,!1);return y.useEffect(()=>{t&&(r({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,r]),l.jsx("div",{ref:s,style:vo(!1),children:e})},Bx=y.memo(function({...e}){const t=Je("useWindowScroll"),n=Je("customScrollParent"),r=n||t?Ux:Hx,o=n||t?zx:Fx,s=Je("context");return l.jsx(r,{...e,...ht(r,s),children:l.jsxs(o,{children:[l.jsx(Lx,{}),l.jsx(Dx,{}),l.jsx($x,{})]})})}),{useEmitter:Lc,useEmitterValue:Je,usePublisher:Rt}=yc(Mx,{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"}},Bx),Hx=Ac({useEmitter:Lc,useEmitterValue:Je,usePublisher:Rt}),Ux=_c({useEmitter:Lc,useEmitterValue:Je,usePublisher:Rt});function $c(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,bt.WARN),t==="normal"?0:parseInt(t??"0",10)}const Wx=Kr.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 xi({className:e,variant:t,...n}){return l.jsx("div",{className:Z(Wx({variant:t}),e),...n})}function ae(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Vx(e,t){const n=p.createContext(t),r=s=>{const{children:i,...a}=s,c=p.useMemo(()=>a,Object.values(a));return l.jsx(n.Provider,{value:c,children:i})};r.displayName=e+"Provider";function o(s){const i=p.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,o]}function Yt(e,t=[]){let n=[];function r(s,i){const a=p.createContext(i),c=n.length;n=[...n,i];const u=f=>{var x;const{scope:h,children:m,...w}=f,v=((x=h==null?void 0:h[e])==null?void 0:x[c])||a,g=p.useMemo(()=>w,Object.values(w));return l.jsx(v.Provider,{value:g,children:m})};u.displayName=s+"Provider";function d(f,h){var v;const m=((v=h==null?void 0:h[e])==null?void 0:v[c])||a,w=p.useContext(m);if(w)return w;if(i!==void 0)return i;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const o=()=>{const s=n.map(i=>p.createContext(i));return function(a){const c=(a==null?void 0:a[e])||s;return p.useMemo(()=>({[`__scope${e}`]:{...a,[e]:c}}),[a,c])}};return o.scopeName=e,[r,Kx(o,...t)]}function Kx(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const i=r.reduce((a,{useScope:c,scopeName:u})=>{const f=c(s)[`__scope${u}`];return{...a,...f}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}var ct=globalThis!=null&&globalThis.document?p.useLayoutEffect:()=>{},qx=p[" useInsertionEffect ".trim().toString()]||ct;function jn({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,s,i]=Gx({defaultProp:t,onChange:n}),a=e!==void 0,c=a?e:o;{const d=p.useRef(e!==void 0);p.useEffect(()=>{const f=d.current;f!==a&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${a?"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=a},[a,r])}const u=p.useCallback(d=>{var f;if(a){const h=Yx(d)?d(e):d;h!==e&&((f=i.current)==null||f.call(i,h))}else s(d)},[a,e,s,i]);return[c,u]}function Gx({defaultProp:e,onChange:t}){const[n,r]=p.useState(e),o=p.useRef(n),s=p.useRef(t);return qx(()=>{s.current=t},[t]),p.useEffect(()=>{var i;o.current!==n&&((i=s.current)==null||i.call(s,n),o.current=n)},[n,o]),[n,r,s]}function Yx(e){return typeof e=="function"}function Fc(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function vi(...e){return t=>{let n=!1;const r=e.map(o=>{const s=Fc(o,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let o=0;o<r.length;o++){const s=r[o];typeof s=="function"?s():Fc(e[o],null)}}}}function je(...e){return p.useCallback(vi(...e),e)}var Xx=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ye=Xx.reduce((e,t)=>{const n=Cn.createSlot(`Primitive.${t}`),r=p.forwardRef((o,s)=>{const{asChild:i,...a}=o,c=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),l.jsx(c,{...a,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function zc(e,t){e&&qr.flushSync(()=>e.dispatchEvent(t))}function Jx(e,t){return p.useReducer((n,r)=>t[n][r]??n,e)}var kt=e=>{const{present:t,children:n}=e,r=Zx(t),o=typeof n=="function"?n({present:r.isPresent}):p.Children.only(n),s=je(r.ref,Qx(o));return typeof n=="function"||r.isPresent?p.cloneElement(o,{ref:s}):null};kt.displayName="Presence";function Zx(e){const[t,n]=p.useState(),r=p.useRef(null),o=p.useRef(e),s=p.useRef("none"),i=e?"mounted":"unmounted",[a,c]=Jx(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const u=yo(r.current);s.current=a==="mounted"?u:"none"},[a]),ct(()=>{const u=r.current,d=o.current;if(d!==e){const h=s.current,m=yo(u);e?c("MOUNT"):m==="none"||(u==null?void 0:u.display)==="none"?c("UNMOUNT"):c(d&&h!==m?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,c]),ct(()=>{if(t){let u;const d=t.ownerDocument.defaultView??window,f=m=>{const v=yo(r.current).includes(CSS.escape(m.animationName));if(m.target===t&&v&&(c("ANIMATION_END"),!o.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},h=m=>{m.target===t&&(s.current=yo(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:p.useCallback(u=>{r.current=u?getComputedStyle(u):null,n(u)},[])}}function yo(e){return(e==null?void 0:e.animationName)||"none"}function Qx(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ev=p[" useId ".trim().toString()]||(()=>{}),tv=0;function Xt(e){const[t,n]=p.useState(ev());return ct(()=>{n(r=>r??String(tv++))},[e]),e||(t?`radix-${t}`:"")}var So="Collapsible",[nv,BC]=Yt(So),[rv,wi]=nv(So),Bc=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:o,disabled:s,onOpenChange:i,...a}=e,[c,u]=jn({prop:r,defaultProp:o??!1,onChange:i,caller:So});return l.jsx(rv,{scope:n,disabled:s,contentId:Xt(),open:c,onOpenToggle:p.useCallback(()=>u(d=>!d),[u]),children:l.jsx(ye.div,{"data-state":yi(c),"data-disabled":s?"":void 0,...a,ref:t})})});Bc.displayName=So;var Hc="CollapsibleTrigger",Uc=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,o=wi(Hc,n);return l.jsx(ye.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":yi(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...r,ref:t,onClick:ae(e.onClick,o.onOpenToggle)})});Uc.displayName=Hc;var bi="CollapsibleContent",ov=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=wi(bi,e.__scopeCollapsible);return l.jsx(kt,{present:n||o.open,children:({present:s})=>l.jsx(sv,{...r,ref:t,present:s})})});ov.displayName=bi;var sv=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:o,...s}=e,i=wi(bi,n),[a,c]=p.useState(r),u=p.useRef(null),d=je(t,u),f=p.useRef(0),h=f.current,m=p.useRef(0),w=m.current,v=i.open||a,g=p.useRef(v),x=p.useRef(void 0);return p.useEffect(()=>{const b=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(b)},[]),ct(()=>{const b=u.current;if(b){x.current=x.current||{transitionDuration:b.style.transitionDuration,animationName:b.style.animationName},b.style.transitionDuration="0s",b.style.animationName="none";const S=b.getBoundingClientRect();f.current=S.height,m.current=S.width,g.current||(b.style.transitionDuration=x.current.transitionDuration,b.style.animationName=x.current.animationName),c(r)}},[i.open,r]),l.jsx(ye.div,{"data-state":yi(i.open),"data-disabled":i.disabled?"":void 0,id:i.contentId,hidden:!v,...s,ref:d,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:v&&o})});function yi(e){return e?"open":"closed"}var iv=Bc;const Wc=iv,Vc=Uc,kr=p.forwardRef(({className:e,...t},n)=>l.jsx("div",{ref:n,className:Z("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));kr.displayName="Card";const Ir=p.forwardRef(({className:e,...t},n)=>l.jsx("div",{ref:n,className:Z("flex flex-col space-y-1.5 p-6",e),...t}));Ir.displayName="CardHeader";const Nr=p.forwardRef(({className:e,...t},n)=>l.jsx("h3",{ref:n,className:Z("text-2xl font-semibold leading-none tracking-tight",e),...t}));Nr.displayName="CardTitle";const Kc=p.forwardRef(({className:e,...t},n)=>l.jsx("p",{ref:n,className:Z("text-sm text-muted-foreground",e),...t}));Kc.displayName="CardDescription";const Co=p.forwardRef(({className:e,...t},n)=>l.jsx("div",{ref:n,className:Z("p-6 pt-0",e),...t}));Co.displayName="CardContent";const qc=p.forwardRef(({className:e,...t},n)=>l.jsx("div",{ref:n,className:Z("flex items-center p-6 pt-0",e),...t}));qc.displayName="CardFooter";function Gc(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let Rn=Gc();function av(e){Rn=e}const Yc=/[&<>"']/,lv=new RegExp(Yc.source,"g"),Xc=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,cv=new RegExp(Xc.source,"g"),uv={"&":"&","<":"<",">":">",'"':""","'":"'"},Jc=e=>uv[e];function pt(e,t){if(t){if(Yc.test(e))return e.replace(lv,Jc)}else if(Xc.test(e))return e.replace(cv,Jc);return e}const dv=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function Zc(e){return e.replace(dv,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const fv=/(^|[^\[])\^/g;function Ve(e,t){e=typeof e=="string"?e:e.source,t=t||"";const n={replace:(r,o)=>(o=o.source||o,o=o.replace(fv,"$1"),e=e.replace(r,o),n),getRegex:()=>new RegExp(e,t)};return n}const hv=/[^\w:]/g,pv=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Qc(e,t,n){if(e){let r;try{r=decodeURIComponent(Zc(n)).replace(hv,"").toLowerCase()}catch{return null}if(r.indexOf("javascript:")===0||r.indexOf("vbscript:")===0||r.indexOf("data:")===0)return null}t&&!pv.test(n)&&(n=vv(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const To={},mv=/^[^:]+:\/*[^/]*$/,gv=/^([^:]+:)[\s\S]*$/,xv=/^([^:]+:\/*[^/]*)[\s\S]*$/;function vv(e,t){To[" "+e]||(mv.test(e)?To[" "+e]=e+"/":To[" "+e]=ko(e,"/",!0)),e=To[" "+e];const n=e.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:e.replace(gv,"$1")+t:t.charAt(0)==="/"?n?t:e.replace(xv,"$1")+t:e+t}const Eo={exec:function(){}};function eu(e,t){const n=e.replace(/\|/g,(s,i,a)=>{let c=!1,u=i;for(;--u>=0&&a[u]==="\\";)c=!c;return c?"|":" |"}),r=n.split(/ \|/);let o=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;o<r.length;o++)r[o]=r[o].trim().replace(/\\\|/g,"|");return r}function ko(e,t,n){const r=e.length;if(r===0)return"";let o=0;for(;o<r;){const s=e.charAt(r-o-1);if(s===t&&!n)o++;else if(s!==t&&n)o++;else break}return e.slice(0,r-o)}function wv(e,t){if(e.indexOf(t[1])===-1)return-1;const n=e.length;let r=0,o=0;for(;o<n;o++)if(e[o]==="\\")o++;else if(e[o]===t[0])r++;else if(e[o]===t[1]&&(r--,r<0))return o;return-1}function bv(e){e&&e.sanitize&&!e.silent&&console.warn("marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options")}function tu(e,t){if(t<1)return"";let n="";for(;t>1;)t&1&&(n+=e),t>>=1,e+=e;return n+e}function nu(e,t,n,r){const o=t.href,s=t.title?pt(t.title):null,i=e[1].replace(/\\([\[\]])/g,"$1");if(e[0].charAt(0)!=="!"){r.state.inLink=!0;const a={type:"link",raw:n,href:o,title:s,text:i,tokens:r.inlineTokens(i)};return r.state.inLink=!1,a}return{type:"image",raw:n,href:o,title:s,text:pt(i)}}function yv(e,t){const n=e.match(/^(\s+)(?:```)/);if(n===null)return t;const r=n[1];return t.split(`
|
package/package.json
CHANGED