diff --git a/invokeai/frontend/webv2/package.json b/invokeai/frontend/webv2/package.json index 06e74d5c2d9..502f901c559 100644 --- a/invokeai/frontend/webv2/package.json +++ b/invokeai/frontend/webv2/package.json @@ -55,48 +55,48 @@ "@dnd-kit/utilities": "^3.2.2", "@emotion/react": "^11.14.0", "@fontsource/inter": "^5.3.0", - "@tanstack/react-query": "^5.102.8", - "@tanstack/react-router": "^1.170.36", - "@tanstack/react-virtual": "^3.14.13", - "@xyflow/react": "^12.11.6", - "ag-psd": "^31.0.2", + "@tanstack/react-query": "^5.104.5", + "@tanstack/react-router": "^1.170.46", + "@tanstack/react-virtual": "^3.14.22", + "@xyflow/react": "^12.12.0", + "ag-psd": "^31.0.3", "fflate": "^0.8.3", "fuzzysort": "^4.0.2", "html-to-image": "^1.11.13", - "i18next": "^26.4.2", - "i18next-http-backend": "^4.0.2", - "idb": "^8.0.3", - "lucide-react": "^1.46.0", + "i18next": "^26.5.6", + "i18next-http-backend": "^4.0.4", + "idb": "^8.0.4", + "lucide-react": "^1.61.0", "perfect-freehand": "^1.2.3", - "plotly.js-gl2d-dist-min": "^4.1.1", - "react": "^19.3.0", - "react-dom": "^19.3.0", + "plotly.js-gl2d-dist-min": "^4.1.2", + "react": "^19.3.1", + "react-dom": "^19.3.1", "react-hook-tanstack-virtual": "^0.0.4", - "react-i18next": "^17.0.14", - "socket.io-client": "^4.8.3", - "tinykeys": "^4.0.0", + "react-i18next": "^17.1.3", + "socket.io-client": "^4.8.4", + "tinykeys": "^4.0.1", "use-sync-external-store": "^1.7.0", "yaml": "^2.9.1", - "zod": "^4.6.5" + "zod": "^4.6.7" }, "devDependencies": { "@chakra-ui/cli": "^3.37.0", "@rolldown/plugin-babel": "^0.2.4", - "@types/node": "^26.5.1", - "@types/plotly.js": "^3.0.13", + "@types/node": "^26.6.5", + "@types/plotly.js": "^3.0.15", "@types/react": "^19.3.0", "@types/react-dom": "^19.3.0", "@types/use-sync-external-store": "^1.7.0", - "@vitejs/plugin-react": "^6.1.1", - "@vitest/browser-playwright": "5.0.0", - "axe-core": "^4.13.0", + "@vitejs/plugin-react": "^6.1.2", + "@vitest/browser-playwright": "5.0.5", + "axe-core": "^4.14.0", "babel-plugin-react-compiler": "^1.0.0", - "oxfmt": "^0.68.0", - "oxlint": "^1.83.0", - "playwright": "1.63.0", + "oxfmt": "^0.74.0", + "oxlint": "^1.89.0", + "playwright": "1.64.1", "typescript": "^7.0.2", - "vite": "^8.3.0", - "vitest": "5.0.0" + "vite": "^8.3.5", + "vitest": "5.0.5" }, "engines": { "pnpm": "10" diff --git a/invokeai/frontend/webv2/patches/react-hook-tanstack-virtual.patch b/invokeai/frontend/webv2/patches/react-hook-tanstack-virtual.patch index 2302cb8d15a..49da4898575 100644 --- a/invokeai/frontend/webv2/patches/react-hook-tanstack-virtual.patch +++ b/invokeai/frontend/webv2/patches/react-hook-tanstack-virtual.patch @@ -1,23 +1,23 @@ diff --git a/dist/useVirtualizerBase-C3OWQGkj.js b/dist/useVirtualizerBase-C3OWQGkj.js -index 6e8df8ec5304bea75001914bccd115c745a96a44..216f11eacb0690b8ace42bb4b0209b108974e5bf 100644 +index 6e8df8ec5304bea75001914bccd115c745a96a44..fab4736cae985147816a6012a4279621271689d1 100644 --- a/dist/useVirtualizerBase-C3OWQGkj.js +++ b/dist/useVirtualizerBase-C3OWQGkj.js @@ -1,2 +1,2 @@ -import{Virtualizer as e}from"@tanstack/virtual-core";import*as t from"react";import{useCallback as n,useInsertionEffect as r,useMemo as i,useRef as a,useState as o,useSyncExternalStore as s}from"react";import{flushSync as c}from"react-dom";const l=(e,...t)=>e,u=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},d=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},f=(e,t)=>{if(e===t||Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map)return u(e,t);if(e instanceof Set&&t instanceof Set)return d(e,t);let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n){if(!Object.hasOwn(t,r))return!1;let{[r]:n}=e,{[r]:i}=t;if(n!==i||!Object.is(n,i))return!1}return!0},p=typeof document<`u`?t.useLayoutEffect:()=>{},m=e=>{let[t,n]=o(e);return f(t,e)||n(e),t};let h=1,g=!1;const _=new Map,v=({callback:e,args:t})=>e.apply(void 0,t),y=e=>{if(g){x(y,e);return}let t=_.get(e);if(t){g=!0;try{v(t)}finally{S(e),g=!1}}},b=`scheduler`in globalThis?{setImmediate:(e,...t)=>{let n=h++;return _.set(n,{callback:e,args:t}),scheduler.postTask(()=>y(n),{priority:`user-blocking`}),n},clearImmediate:e=>{_.delete(e)}}:(()=>{let e=new MessageChannel;e.port1.onmessage=function(e){let t=e.data;y(t)};let t=e.port2;return{setImmediate:(e,...n)=>{let r=h++;return _.set(r,{callback:e,args:n}),t.postMessage(r),r},clearImmediate:e=>{_.delete(e)}}})(),x=b.setImmediate,S=b.clearImmediate;let C=1;const w=new Map,T=({callback:e,args:t})=>e.apply(void 0,t),E=e=>{let t=w.get(e);if(t)try{T(t)}finally{O(e)}},D=(e,...t)=>{let n=C++;return w.set(n,{callback:e,args:t}),requestAnimationFrame(()=>x(()=>E(n))),n},O=e=>{w.delete(e)};function k(e){let[t,r]=o(e);return[t,n(e=>(r(e),()=>{r(null)}),[])]}const A=({getVirtualItems:e,getVirtualIndexes:t,getTotalSize:n,...r})=>({...r,virtualItems:e(),virtualIndexes:t(),totalSize:n()}),j=({options:e,virtualIndexes:t,virtualItems:n,...r},{options:i,virtualIndexes:a,virtualItems:o,...s})=>f(e,i)&&f(t,a)&&f(n,o)&&f(r,s),M=({useFlushSync:t=!0,directDomUpdates:u=!1,directDomUpdatesMode:d=`transform`,...h},g=l,_=f)=>{"use no memo";let v=m(h),{horizontal:y=!1,scrollMargin:b=0}=v,x=y?`width`:`height`,S=d===`transform`,[C,w]=o(null),[T,E]=k(null),[M]=o(()=>new WeakMap),[N]=o(()=>new WeakMap),[P]=o(()=>new e(v)),F=i(()=>Object.assign(P,{containerRef:E}),[P,E]);p(()=>{if(!u||!T||C==null)return;let e=``,t=D(()=>{e=T.style.getPropertyValue(x),t=requestAnimationFrame(()=>{T.style.setProperty(x,`${C}px`)})});return()=>{w(null),cancelAnimationFrame(t),O(t),requestAnimationFrame(()=>{T?.style.setProperty(x,e)})}},[x,T,u,C]),p(()=>{if(!(!u||!T))return()=>{requestAnimationFrame(()=>{let e=F.getVirtualItems();for(let t of e){let e=F.elementsCache.get(t.key);if(!e)continue;M.delete(e);let n=N.get(e);n!=null&&(N.delete(e),S?e.style.setProperty(`transform`,n):e.style.setProperty(x,n))}})}},[x,T,u,F,M,N,S]);let I=a({hasValue:!1,value:null}),[L]=o(()=>new Set),R=n(e=>(L.add(e),()=>{L.delete(e)}),[L]),z=i(()=>{let e=!1,t,n;return()=>{let r=A(F);if(!e){e=!0,t=r;let i=g(r,F);if(I.current.hasValue){let e=I.current.value;if(_(e,i))return n=e,e}return n=i,i}let i=t,a=n;if(j(i,r))return a;let o=g(r,F);return _!==void 0&&_(a,o)?(t=r,a):(t=r,n=o,o)}},[g,_,F]),B=n(e=>{if(!u||!T)return;w(e.getTotalSize());let t=e.getVirtualItems();for(let n of t){let t=n.start-b,r=e.elementsCache.get(n.key);r&&M.get(r)!==t&&(N.has(r)||(S?N.set(r,r.style.getPropertyValue(`transform`)):N.set(r,r.style.getPropertyValue(x))),M.set(r,t),S?r.style.setProperty(`transform`,y?`translate3d(${t}px, 0, 0)`:`translate3d(0, ${t}px, 0)`):r.style.setProperty(x,`${t}px`))}},[x,T,u,y,M,N,b,S]),V=n((e,n)=>{if(B(e),t&&n)c(()=>{for(let e of L)e()});else for(let e of L)e();v.onChange?.call(void 0,e,n)},[B,L,v.onChange,t]),H=i(()=>({...v,onChange:V}),[V,v]);p(()=>{F.setOptions(H)},[F,H]),p(()=>F._didMount(),[F]),p(()=>F._willUpdate()),p(()=>{B(F)});let U=s(R,z);return r(()=>{I.current.hasValue=!0,I.current.value=U},[U]),U};export{M as t}; -+import{Virtualizer as e}from"@tanstack/virtual-core";import*as t from"react";import{useCallback as n,useInsertionEffect as r,useMemo as i,useRef as a,useState as o,useSyncExternalStore as s}from"react";import{flushSync as c}from"react-dom";const l=(e,...t)=>e,u=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},d=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},f=(e,t)=>{if(e===t||Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map)return u(e,t);if(e instanceof Set&&t instanceof Set)return d(e,t);let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n){if(!Object.hasOwn(t,r))return!1;let{[r]:n}=e,{[r]:i}=t;if(n!==i||!Object.is(n,i))return!1}return!0},p=typeof document<`u`?t.useLayoutEffect:()=>{},m=e=>{let[t,n]=o(e);return f(t,e)||n(e),t};let h=1,g=!1;const _=new Map,v=({callback:e,args:t})=>e.apply(void 0,t),y=e=>{if(g){x(y,e);return}let t=_.get(e);if(t){g=!0;try{v(t)}finally{S(e),g=!1}}},b=`scheduler`in globalThis?{setImmediate:(e,...t)=>{let n=h++;return _.set(n,{callback:e,args:t}),scheduler.postTask(()=>y(n),{priority:`user-blocking`}),n},clearImmediate:e=>{_.delete(e)}}:(()=>{let e=new MessageChannel;e.port1.onmessage=function(e){let t=e.data;y(t)};let t=e.port2;return{setImmediate:(e,...n)=>{let r=h++;return _.set(r,{callback:e,args:n}),t.postMessage(r),r},clearImmediate:e=>{_.delete(e)}}})(),x=b.setImmediate,S=b.clearImmediate;let C=1;const w=new Map,T=({callback:e,args:t})=>e.apply(void 0,t),E=e=>{let t=w.get(e);if(t)try{T(t)}finally{O(e)}},D=(e,...t)=>{let n=C++;return w.set(n,{callback:e,args:t}),requestAnimationFrame(()=>x(()=>E(n))),n},O=e=>{w.delete(e)};function k(e){let[t,r]=o(e);return[t,n(e=>(r(e),()=>{r(null)}),[])]}const A=(e=>{const t=e.getVirtualItems(),n=e.getVirtualIndexes(),r=e.getTotalSize(),{getVirtualItems:i,getVirtualIndexes:a,getTotalSize:o,...s}=e;return{...s,virtualItems:t,virtualIndexes:n,totalSize:r}}),j=({options:e,virtualIndexes:t,virtualItems:n,...r},{options:i,virtualIndexes:a,virtualItems:o,...s})=>f(e,i)&&f(t,a)&&f(n,o)&&f(r,s),M=({useFlushSync:t=!0,directDomUpdates:u=!1,directDomUpdatesMode:d=`transform`,...h},g=l,_=f)=>{"use no memo";let v=m(h),{horizontal:y=!1,scrollMargin:b=0}=v,x=y?`width`:`height`,S=d===`transform`,[C,w]=o(null),[T,E]=k(null),[M]=o(()=>new WeakMap),[N]=o(()=>new WeakMap),[P]=o(()=>new e(v)),F=i(()=>Object.assign(P,{containerRef:E}),[P,E]);p(()=>{if(!u||!T||C==null)return;let e=``,t=D(()=>{e=T.style.getPropertyValue(x),t=requestAnimationFrame(()=>{T.style.setProperty(x,`${C}px`)})});return()=>{w(null),cancelAnimationFrame(t),O(t),requestAnimationFrame(()=>{T?.style.setProperty(x,e)})}},[x,T,u,C]),p(()=>{if(!(!u||!T))return()=>{requestAnimationFrame(()=>{let e=F.getVirtualItems();for(let t of e){let e=F.elementsCache.get(t.key);if(!e)continue;M.delete(e);let n=N.get(e);n!=null&&(N.delete(e),S?e.style.setProperty(`transform`,n):e.style.setProperty(x,n))}})}},[x,T,u,F,M,N,S]);let I=a({hasValue:!1,value:null}),[L]=o(()=>new Set),R=n(e=>(L.add(e),()=>{L.delete(e)}),[L]),z=i(()=>{let e=!1,t,n;return()=>{let r=A(F);if(!e){e=!0,t=r;let i=g(r,F);if(I.current.hasValue){let e=I.current.value;if(_(e,i))return n=e,e}return n=i,i}let i=t,a=n;if(j(i,r))return a;let o=g(r,F);return _!==void 0&&_(a,o)?(t=r,a):(t=r,n=o,o)}},[g,_,F]),B=n(e=>{if(!u||!T)return;w(e.getTotalSize());let t=e.getVirtualItems();for(let n of t){let t=n.start-b,r=e.elementsCache.get(n.key);r&&M.get(r)!==t&&(N.has(r)||(S?N.set(r,r.style.getPropertyValue(`transform`)):N.set(r,r.style.getPropertyValue(x))),M.set(r,t),S?r.style.setProperty(`transform`,y?`translate3d(${t}px, 0, 0)`:`translate3d(0, ${t}px, 0)`):r.style.setProperty(x,`${t}px`))}},[x,T,u,y,M,N,b,S]),V=n((e,n)=>{if(B(e),t&&n)c(()=>{for(let e of L)e()});else for(let e of L)e();v.onChange?.call(void 0,e,n)},[B,L,v.onChange,t]),H=i(()=>({...v,onChange:V}),[V,v]);p(()=>{F.setOptions(H),F.maybeNotify()},[F,H]),p(()=>F._didMount(),[F]),p(()=>{const e=F._willUpdate(),t=F.scrollElement;if(t&&`scrollTop`in t&&!F.isScrolling){const e=F.options.horizontal?t.scrollLeft*(F.options.isRtl?-1:1):t.scrollTop;F.scrollOffset!==null&&Math.abs(F.scrollOffset-e)>1&&(F.scrollOffset=e,F.scrollAdjustments=0,F.maybeNotify())}return e}),p(()=>{B(F)});let U=s(R,z);return r(()=>{I.current.hasValue=!0,I.current.value=U},[U]),U};export{M as t}; ++import{Virtualizer as e}from"@tanstack/virtual-core";import*as t from"react";import{useCallback as n,useInsertionEffect as r,useMemo as i,useRef as a,useState as o,useSyncExternalStore as s}from"react";import{flushSync as c}from"react-dom";const l=(e,...t)=>e,u=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},d=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},f=(e,t)=>{if(e===t||Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map)return u(e,t);if(e instanceof Set&&t instanceof Set)return d(e,t);let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n){if(!Object.hasOwn(t,r))return!1;let{[r]:n}=e,{[r]:i}=t;if(n!==i||!Object.is(n,i))return!1}return!0},p=typeof document<`u`?t.useLayoutEffect:()=>{},m=e=>{let[t,n]=o(e);return f(t,e)||n(e),t};let h=1,g=!1;const _=new Map,v=({callback:e,args:t})=>e.apply(void 0,t),y=e=>{if(g){x(y,e);return}let t=_.get(e);if(t){g=!0;try{v(t)}finally{S(e),g=!1}}},b=`scheduler`in globalThis?{setImmediate:(e,...t)=>{let n=h++;return _.set(n,{callback:e,args:t}),scheduler.postTask(()=>y(n),{priority:`user-blocking`}),n},clearImmediate:e=>{_.delete(e)}}:(()=>{let e=new MessageChannel;e.port1.onmessage=function(e){let t=e.data;y(t)};let t=e.port2;return{setImmediate:(e,...n)=>{let r=h++;return _.set(r,{callback:e,args:n}),t.postMessage(r),r},clearImmediate:e=>{_.delete(e)}}})(),x=b.setImmediate,S=b.clearImmediate;let C=1;const w=new Map,T=({callback:e,args:t})=>e.apply(void 0,t),E=e=>{let t=w.get(e);if(t)try{T(t)}finally{O(e)}},D=(e,...t)=>{let n=C++;return w.set(n,{callback:e,args:t}),requestAnimationFrame(()=>x(()=>E(n))),n},O=e=>{w.delete(e)};function k(e){let[t,r]=o(e);return[t,n(e=>(r(e),()=>{r(null)}),[])]}const A=(e=>{const t=e.getVirtualItems(),n=e.getVirtualIndexes(),r=e.getTotalSize(),{getVirtualItems:i,getVirtualIndexes:a,getTotalSize:o,...s}=e;return{...s,virtualItems:t,virtualIndexes:n,totalSize:r}}),j=({options:e,virtualIndexes:t,virtualItems:n,...r},{options:i,virtualIndexes:a,virtualItems:o,...s})=>f(e,i)&&f(t,a)&&f(n,o)&&f(r,s),M=({useFlushSync:t=!0,directDomUpdates:u=!1,directDomUpdatesMode:d=`transform`,...h},g=l,_=f)=>{"use no memo";let v=m(h),{horizontal:y=!1,scrollMargin:b=0}=v,x=y?`width`:`height`,S=d===`transform`,[C,w]=o(null),[T,E]=k(null),[M]=o(()=>new WeakMap),[N]=o(()=>new WeakMap),[P]=o(()=>new e(v)),F=i(()=>Object.assign(P,{containerRef:E}),[P,E]);p(()=>{if(!u||!T||C==null)return;let e=``,t=D(()=>{e=T.style.getPropertyValue(x),t=requestAnimationFrame(()=>{T.style.setProperty(x,`${C}px`)})});return()=>{w(null),cancelAnimationFrame(t),O(t),requestAnimationFrame(()=>{T?.style.setProperty(x,e)})}},[x,T,u,C]),p(()=>{if(!(!u||!T))return()=>{requestAnimationFrame(()=>{let e=F.getVirtualItems();for(let t of e){let e=F.elementsCache.get(t.key);if(!e)continue;M.delete(e);let n=N.get(e);n!=null&&(N.delete(e),S?e.style.setProperty(`transform`,n):e.style.setProperty(x,n))}})}},[x,T,u,F,M,N,S]);let I=a({hasValue:!1,value:null}),[L]=o(()=>new Set),R=n(e=>(L.add(e),()=>{L.delete(e)}),[L]),z=i(()=>{let e=!1,t,n;return()=>{let r=A(F);if(!e){e=!0,t=r;let i=g(r,F);if(I.current.hasValue){let e=I.current.value;if(_(e,i))return n=e,e}return n=i,i}let i=t,a=n;if(j(i,r))return a;let o=g(r,F);return _!==void 0&&_(a,o)?(t=r,a):(t=r,n=o,o)}},[g,_,F]),B=n(e=>{if(!u||!T)return;w(e.getTotalSize());let t=e.getVirtualItems();for(let n of t){let t=n.start-b,r=e.elementsCache.get(n.key);r&&M.get(r)!==t&&(N.has(r)||(S?N.set(r,r.style.getPropertyValue(`transform`)):N.set(r,r.style.getPropertyValue(x))),M.set(r,t),S?r.style.setProperty(`transform`,y?`translate3d(${t}px, 0, 0)`:`translate3d(0, ${t}px, 0)`):r.style.setProperty(x,`${t}px`))}},[x,T,u,y,M,N,b,S]),V=n((e,n)=>{if(B(e),t&&n)c(()=>{for(let e of L)e()});else for(let e of L)e();v.onChange?.call(void 0,e,n)},[B,L,v.onChange,t]),H=i(()=>({...v,onChange:V}),[V,v]);p(()=>{F.setOptions(H),F.maybeNotify()},[F,H]),p(()=>F._didMount(),[F]),p(()=>{const e=F._willUpdate(),t=F.scrollElement;if(t&&`scrollTop`in t&&!F.isScrolling&&F._holdOffset===0){const e=F.options.horizontal?t.scrollLeft*(F.options.isRtl?-1:1):t.scrollTop;F.scrollOffset!==null&&Math.abs(F.scrollOffset-e)>1&&(F.scrollOffset=e,F.maybeNotify())}return e}),p(()=>{B(F)});let U=s(R,z);return r(()=>{I.current.hasValue=!0,I.current.value=U},[U]),U};export{M as t}; //# sourceMappingURL=useVirtualizerBase-C3OWQGkj.js.map \ No newline at end of file diff --git a/dist/useVirtualizerBase-K4A1fZan.cjs b/dist/useVirtualizerBase-K4A1fZan.cjs -index 69494e5c083f991a4b7417cd2b6a216be3bf00e6..97f29a50bf96dca9c0975aef25ddda989f63efde 100644 +index 69494e5c083f991a4b7417cd2b6a216be3bf00e6..17ea696b4e6adad3b36c38c96458a6cc46e0727c 100644 --- a/dist/useVirtualizerBase-K4A1fZan.cjs +++ b/dist/useVirtualizerBase-K4A1fZan.cjs @@ -1 +1 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("@tanstack/virtual-core"),l=require("react");l=s(l,1);let u=require("react-dom");const d=(e,...t)=>e,f=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},p=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},m=(e,t)=>{if(e===t||Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map)return f(e,t);if(e instanceof Set&&t instanceof Set)return p(e,t);let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n){if(!Object.hasOwn(t,r))return!1;let{[r]:n}=e,{[r]:i}=t;if(n!==i||!Object.is(n,i))return!1}return!0},h=typeof document<`u`?l.useLayoutEffect:()=>{},g=e=>{let[t,n]=(0,l.useState)(e);return m(t,e)||n(e),t};let _=1,v=!1;const y=new Map,b=({callback:e,args:t})=>e.apply(void 0,t),x=e=>{if(v){C(x,e);return}let t=y.get(e);if(t){v=!0;try{b(t)}finally{w(e),v=!1}}},S=`scheduler`in globalThis?{setImmediate:(e,...t)=>{let n=_++;return y.set(n,{callback:e,args:t}),scheduler.postTask(()=>x(n),{priority:`user-blocking`}),n},clearImmediate:e=>{y.delete(e)}}:(()=>{let e=new MessageChannel;e.port1.onmessage=function(e){let t=e.data;x(t)};let t=e.port2;return{setImmediate:(e,...n)=>{let r=_++;return y.set(r,{callback:e,args:n}),t.postMessage(r),r},clearImmediate:e=>{y.delete(e)}}})(),C=S.setImmediate,w=S.clearImmediate;let T=1;const E=new Map,D=({callback:e,args:t})=>e.apply(void 0,t),O=e=>{let t=E.get(e);if(t)try{D(t)}finally{A(e)}},k=(e,...t)=>{let n=T++;return E.set(n,{callback:e,args:t}),requestAnimationFrame(()=>C(()=>O(n))),n},A=e=>{E.delete(e)};function j(e){let[t,n]=(0,l.useState)(e);return[t,(0,l.useCallback)(e=>(n(e),()=>{n(null)}),[])]}const M=({getVirtualItems:e,getVirtualIndexes:t,getTotalSize:n,...r})=>({...r,virtualItems:e(),virtualIndexes:t(),totalSize:n()}),N=({options:e,virtualIndexes:t,virtualItems:n,...r},{options:i,virtualIndexes:a,virtualItems:o,...s})=>m(e,i)&&m(t,a)&&m(n,o)&&m(r,s),P=({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r},i=d,a=m)=>{"use no memo";let o=g(r),{horizontal:s=!1,scrollMargin:f=0}=o,p=s?`width`:`height`,_=n===`transform`,[v,y]=(0,l.useState)(null),[b,x]=j(null),[S]=(0,l.useState)(()=>new WeakMap),[C]=(0,l.useState)(()=>new WeakMap),[w]=(0,l.useState)(()=>new c.Virtualizer(o)),T=(0,l.useMemo)(()=>Object.assign(w,{containerRef:x}),[w,x]);h(()=>{if(!t||!b||v==null)return;let e=``,n=k(()=>{e=b.style.getPropertyValue(p),n=requestAnimationFrame(()=>{b.style.setProperty(p,`${v}px`)})});return()=>{y(null),cancelAnimationFrame(n),A(n),requestAnimationFrame(()=>{b?.style.setProperty(p,e)})}},[p,b,t,v]),h(()=>{if(!(!t||!b))return()=>{requestAnimationFrame(()=>{let e=T.getVirtualItems();for(let t of e){let e=T.elementsCache.get(t.key);if(!e)continue;S.delete(e);let n=C.get(e);n!=null&&(C.delete(e),_?e.style.setProperty(`transform`,n):e.style.setProperty(p,n))}})}},[p,b,t,T,S,C,_]);let E=(0,l.useRef)({hasValue:!1,value:null}),[D]=(0,l.useState)(()=>new Set),O=(0,l.useCallback)(e=>(D.add(e),()=>{D.delete(e)}),[D]),P=(0,l.useMemo)(()=>{let e=!1,t,n;return()=>{let r=M(T);if(!e){e=!0,t=r;let o=i(r,T);if(E.current.hasValue){let e=E.current.value;if(a(e,o))return n=e,e}return n=o,o}let o=t,s=n;if(N(o,r))return s;let c=i(r,T);return a!==void 0&&a(s,c)?(t=r,s):(t=r,n=c,c)}},[i,a,T]),F=(0,l.useCallback)(e=>{if(!t||!b)return;y(e.getTotalSize());let n=e.getVirtualItems();for(let t of n){let n=t.start-f,r=e.elementsCache.get(t.key);r&&S.get(r)!==n&&(C.has(r)||(_?C.set(r,r.style.getPropertyValue(`transform`)):C.set(r,r.style.getPropertyValue(p))),S.set(r,n),_?r.style.setProperty(`transform`,s?`translate3d(${n}px, 0, 0)`:`translate3d(0, ${n}px, 0)`):r.style.setProperty(p,`${n}px`))}},[p,b,t,s,S,C,f,_]),I=(0,l.useCallback)((t,n)=>{if(F(t),e&&n)(0,u.flushSync)(()=>{for(let e of D)e()});else for(let e of D)e();o.onChange?.call(void 0,t,n)},[F,D,o.onChange,e]),L=(0,l.useMemo)(()=>({...o,onChange:I}),[I,o]);h(()=>{T.setOptions(L)},[T,L]),h(()=>T._didMount(),[T]),h(()=>T._willUpdate()),h(()=>{F(T)});let R=(0,l.useSyncExternalStore)(O,P);return(0,l.useInsertionEffect)(()=>{E.current.hasValue=!0,E.current.value=R},[R]),R};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return P}}); \ No newline at end of file -+var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("@tanstack/virtual-core"),l=require("react");l=s(l,1);let u=require("react-dom");const d=(e,...t)=>e,f=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},p=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},m=(e,t)=>{if(e===t||Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map)return f(e,t);if(e instanceof Set&&t instanceof Set)return p(e,t);let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n){if(!Object.hasOwn(t,r))return!1;let{[r]:n}=e,{[r]:i}=t;if(n!==i||!Object.is(n,i))return!1}return!0},h=typeof document<`u`?l.useLayoutEffect:()=>{},g=e=>{let[t,n]=(0,l.useState)(e);return m(t,e)||n(e),t};let _=1,v=!1;const y=new Map,b=({callback:e,args:t})=>e.apply(void 0,t),x=e=>{if(v){C(x,e);return}let t=y.get(e);if(t){v=!0;try{b(t)}finally{w(e),v=!1}}},S=`scheduler`in globalThis?{setImmediate:(e,...t)=>{let n=_++;return y.set(n,{callback:e,args:t}),scheduler.postTask(()=>x(n),{priority:`user-blocking`}),n},clearImmediate:e=>{y.delete(e)}}:(()=>{let e=new MessageChannel;e.port1.onmessage=function(e){let t=e.data;x(t)};let t=e.port2;return{setImmediate:(e,...n)=>{let r=_++;return y.set(r,{callback:e,args:n}),t.postMessage(r),r},clearImmediate:e=>{y.delete(e)}}})(),C=S.setImmediate,w=S.clearImmediate;let T=1;const E=new Map,D=({callback:e,args:t})=>e.apply(void 0,t),O=e=>{let t=E.get(e);if(t)try{D(t)}finally{A(e)}},k=(e,...t)=>{let n=T++;return E.set(n,{callback:e,args:t}),requestAnimationFrame(()=>C(()=>O(n))),n},A=e=>{E.delete(e)};function j(e){let[t,n]=(0,l.useState)(e);return[t,(0,l.useCallback)(e=>(n(e),()=>{n(null)}),[])]}const M=(e=>{const t=e.getVirtualItems(),n=e.getVirtualIndexes(),r=e.getTotalSize(),{getVirtualItems:i,getVirtualIndexes:a,getTotalSize:o,...s}=e;return{...s,virtualItems:t,virtualIndexes:n,totalSize:r}}),N=({options:e,virtualIndexes:t,virtualItems:n,...r},{options:i,virtualIndexes:a,virtualItems:o,...s})=>m(e,i)&&m(t,a)&&m(n,o)&&m(r,s),P=({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r},i=d,a=m)=>{"use no memo";let o=g(r),{horizontal:s=!1,scrollMargin:f=0}=o,p=s?`width`:`height`,_=n===`transform`,[v,y]=(0,l.useState)(null),[b,x]=j(null),[S]=(0,l.useState)(()=>new WeakMap),[C]=(0,l.useState)(()=>new WeakMap),[w]=(0,l.useState)(()=>new c.Virtualizer(o)),T=(0,l.useMemo)(()=>Object.assign(w,{containerRef:x}),[w,x]);h(()=>{if(!t||!b||v==null)return;let e=``,n=k(()=>{e=b.style.getPropertyValue(p),n=requestAnimationFrame(()=>{b.style.setProperty(p,`${v}px`)})});return()=>{y(null),cancelAnimationFrame(n),A(n),requestAnimationFrame(()=>{b?.style.setProperty(p,e)})}},[p,b,t,v]),h(()=>{if(!(!t||!b))return()=>{requestAnimationFrame(()=>{let e=T.getVirtualItems();for(let t of e){let e=T.elementsCache.get(t.key);if(!e)continue;S.delete(e);let n=C.get(e);n!=null&&(C.delete(e),_?e.style.setProperty(`transform`,n):e.style.setProperty(p,n))}})}},[p,b,t,T,S,C,_]);let E=(0,l.useRef)({hasValue:!1,value:null}),[D]=(0,l.useState)(()=>new Set),O=(0,l.useCallback)(e=>(D.add(e),()=>{D.delete(e)}),[D]),P=(0,l.useMemo)(()=>{let e=!1,t,n;return()=>{let r=M(T);if(!e){e=!0,t=r;let o=i(r,T);if(E.current.hasValue){let e=E.current.value;if(a(e,o))return n=e,e}return n=o,o}let o=t,s=n;if(N(o,r))return s;let c=i(r,T);return a!==void 0&&a(s,c)?(t=r,s):(t=r,n=c,c)}},[i,a,T]),F=(0,l.useCallback)(e=>{if(!t||!b)return;y(e.getTotalSize());let n=e.getVirtualItems();for(let t of n){let n=t.start-f,r=e.elementsCache.get(t.key);r&&S.get(r)!==n&&(C.has(r)||(_?C.set(r,r.style.getPropertyValue(`transform`)):C.set(r,r.style.getPropertyValue(p))),S.set(r,n),_?r.style.setProperty(`transform`,s?`translate3d(${n}px, 0, 0)`:`translate3d(0, ${n}px, 0)`):r.style.setProperty(p,`${n}px`))}},[p,b,t,s,S,C,f,_]),I=(0,l.useCallback)((t,n)=>{if(F(t),e&&n)(0,u.flushSync)(()=>{for(let e of D)e()});else for(let e of D)e();o.onChange?.call(void 0,t,n)},[F,D,o.onChange,e]),L=(0,l.useMemo)(()=>({...o,onChange:I}),[I,o]);h(()=>{T.setOptions(L),T.maybeNotify()},[T,L]),h(()=>T._didMount(),[T]),h(()=>{const e=T._willUpdate(),t=T.scrollElement;if(t&&`scrollTop`in t&&!T.isScrolling){const e=T.options.horizontal?t.scrollLeft*(T.options.isRtl?-1:1):t.scrollTop;T.scrollOffset!==null&&Math.abs(T.scrollOffset-e)>1&&(T.scrollOffset=e,T.scrollAdjustments=0,T.maybeNotify())}return e}),h(()=>{F(T)});let R=(0,l.useSyncExternalStore)(O,P);return(0,l.useInsertionEffect)(()=>{E.current.hasValue=!0,E.current.value=R},[R]),R};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return P}}); ++var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("@tanstack/virtual-core"),l=require("react");l=s(l,1);let u=require("react-dom");const d=(e,...t)=>e,f=(e,t)=>{if(e.size!==t.size)return!1;for(let[n,r]of e){let e=t.get(n);if(r!==e||!Object.is(r,e))return!1}return!0},p=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},m=(e,t)=>{if(e===t||Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map)return f(e,t);if(e instanceof Set&&t instanceof Set)return p(e,t);let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n){if(!Object.hasOwn(t,r))return!1;let{[r]:n}=e,{[r]:i}=t;if(n!==i||!Object.is(n,i))return!1}return!0},h=typeof document<`u`?l.useLayoutEffect:()=>{},g=e=>{let[t,n]=(0,l.useState)(e);return m(t,e)||n(e),t};let _=1,v=!1;const y=new Map,b=({callback:e,args:t})=>e.apply(void 0,t),x=e=>{if(v){C(x,e);return}let t=y.get(e);if(t){v=!0;try{b(t)}finally{w(e),v=!1}}},S=`scheduler`in globalThis?{setImmediate:(e,...t)=>{let n=_++;return y.set(n,{callback:e,args:t}),scheduler.postTask(()=>x(n),{priority:`user-blocking`}),n},clearImmediate:e=>{y.delete(e)}}:(()=>{let e=new MessageChannel;e.port1.onmessage=function(e){let t=e.data;x(t)};let t=e.port2;return{setImmediate:(e,...n)=>{let r=_++;return y.set(r,{callback:e,args:n}),t.postMessage(r),r},clearImmediate:e=>{y.delete(e)}}})(),C=S.setImmediate,w=S.clearImmediate;let T=1;const E=new Map,D=({callback:e,args:t})=>e.apply(void 0,t),O=e=>{let t=E.get(e);if(t)try{D(t)}finally{A(e)}},k=(e,...t)=>{let n=T++;return E.set(n,{callback:e,args:t}),requestAnimationFrame(()=>C(()=>O(n))),n},A=e=>{E.delete(e)};function j(e){let[t,n]=(0,l.useState)(e);return[t,(0,l.useCallback)(e=>(n(e),()=>{n(null)}),[])]}const M=(e=>{const t=e.getVirtualItems(),n=e.getVirtualIndexes(),r=e.getTotalSize(),{getVirtualItems:i,getVirtualIndexes:a,getTotalSize:o,...s}=e;return{...s,virtualItems:t,virtualIndexes:n,totalSize:r}}),N=({options:e,virtualIndexes:t,virtualItems:n,...r},{options:i,virtualIndexes:a,virtualItems:o,...s})=>m(e,i)&&m(t,a)&&m(n,o)&&m(r,s),P=({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r},i=d,a=m)=>{"use no memo";let o=g(r),{horizontal:s=!1,scrollMargin:f=0}=o,p=s?`width`:`height`,_=n===`transform`,[v,y]=(0,l.useState)(null),[b,x]=j(null),[S]=(0,l.useState)(()=>new WeakMap),[C]=(0,l.useState)(()=>new WeakMap),[w]=(0,l.useState)(()=>new c.Virtualizer(o)),T=(0,l.useMemo)(()=>Object.assign(w,{containerRef:x}),[w,x]);h(()=>{if(!t||!b||v==null)return;let e=``,n=k(()=>{e=b.style.getPropertyValue(p),n=requestAnimationFrame(()=>{b.style.setProperty(p,`${v}px`)})});return()=>{y(null),cancelAnimationFrame(n),A(n),requestAnimationFrame(()=>{b?.style.setProperty(p,e)})}},[p,b,t,v]),h(()=>{if(!(!t||!b))return()=>{requestAnimationFrame(()=>{let e=T.getVirtualItems();for(let t of e){let e=T.elementsCache.get(t.key);if(!e)continue;S.delete(e);let n=C.get(e);n!=null&&(C.delete(e),_?e.style.setProperty(`transform`,n):e.style.setProperty(p,n))}})}},[p,b,t,T,S,C,_]);let E=(0,l.useRef)({hasValue:!1,value:null}),[D]=(0,l.useState)(()=>new Set),O=(0,l.useCallback)(e=>(D.add(e),()=>{D.delete(e)}),[D]),P=(0,l.useMemo)(()=>{let e=!1,t,n;return()=>{let r=M(T);if(!e){e=!0,t=r;let o=i(r,T);if(E.current.hasValue){let e=E.current.value;if(a(e,o))return n=e,e}return n=o,o}let o=t,s=n;if(N(o,r))return s;let c=i(r,T);return a!==void 0&&a(s,c)?(t=r,s):(t=r,n=c,c)}},[i,a,T]),F=(0,l.useCallback)(e=>{if(!t||!b)return;y(e.getTotalSize());let n=e.getVirtualItems();for(let t of n){let n=t.start-f,r=e.elementsCache.get(t.key);r&&S.get(r)!==n&&(C.has(r)||(_?C.set(r,r.style.getPropertyValue(`transform`)):C.set(r,r.style.getPropertyValue(p))),S.set(r,n),_?r.style.setProperty(`transform`,s?`translate3d(${n}px, 0, 0)`:`translate3d(0, ${n}px, 0)`):r.style.setProperty(p,`${n}px`))}},[p,b,t,s,S,C,f,_]),I=(0,l.useCallback)((t,n)=>{if(F(t),e&&n)(0,u.flushSync)(()=>{for(let e of D)e()});else for(let e of D)e();o.onChange?.call(void 0,t,n)},[F,D,o.onChange,e]),L=(0,l.useMemo)(()=>({...o,onChange:I}),[I,o]);h(()=>{T.setOptions(L),T.maybeNotify()},[T,L]),h(()=>T._didMount(),[T]),h(()=>{const e=T._willUpdate(),t=T.scrollElement;if(t&&`scrollTop`in t&&!T.isScrolling&&T._holdOffset===0){const e=T.options.horizontal?t.scrollLeft*(T.options.isRtl?-1:1):t.scrollTop;T.scrollOffset!==null&&Math.abs(T.scrollOffset-e)>1&&(T.scrollOffset=e,T.maybeNotify())}return e}),h(()=>{F(T)});let R=(0,l.useSyncExternalStore)(O,P);return(0,l.useInsertionEffect)(()=>{E.current.hasValue=!0,E.current.value=R},[R]),R};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return P}}); \ No newline at end of file diff --git a/src/lib/useVirtualizerBase.ts b/src/lib/useVirtualizerBase.ts -index 59f46c47fe9bf8c09b482e110a623fbff5e65da3..79e58c6c52b84f489c23100aba238f2c57c44db8 100644 +index 59f46c47fe9bf8c09b482e110a623fbff5e65da3..289e8c8f50e0a54d3f080f52d1f9faca8397c447 100644 --- a/src/lib/useVirtualizerBase.ts +++ b/src/lib/useVirtualizerBase.ts @@ -49,20 +49,18 @@ export type Selector< @@ -53,7 +53,7 @@ index 59f46c47fe9bf8c09b482e110a623fbff5e65da3..79e58c6c52b84f489c23100aba238f2c const isVirtualizerSnapshotEqual = < TScrollElement extends Element | Window, -@@ -364,14 +362,42 @@ export const useVirtualizerBase = < +@@ -364,14 +362,49 @@ export const useVirtualizerBase = < useLayoutEffect(() => { instance.setOptions(resolvedOptions) @@ -66,13 +66,25 @@ index 59f46c47fe9bf8c09b482e110a623fbff5e65da3..79e58c6c52b84f489c23100aba238f2c return instance._didMount() }, [instance]) -+ // InvokeAI patch: reconcile actual offset after commits when not scrolling; content shrink/remount -+ // can clamp position without a scroll event. ++ // InvokeAI patch: reconcile actual offset after commits when not scrolling. The element clamps a ++ // write past its content (an initial offset beyond measured rows, a remount with shorter content) ++ // and reports it after this commit's layout effects, or never; until then the range and a ++ // same-commit scrollToIndex work from the unclamped offset. useLayoutEffect(() => { - return instance._willUpdate() + const result = instance._willUpdate() + const scrollElement = instance.scrollElement -+ if (scrollElement && "scrollTop" in scrollElement && !instance.isScrolling) { ++ const internals = instance as unknown as { ++ _holdOffset: number ++ maybeNotify: () => void ++ } ++ // While a correction is held, scrollOffset is the layout position and differs from the element on purpose. ++ if ( ++ scrollElement ++ && "scrollTop" in scrollElement ++ && !instance.isScrolling ++ && internals._holdOffset === 0 ++ ) { + const { horizontal: isHorizontal, isRtl } = instance.options + const actualOffset = + isHorizontal ? @@ -82,15 +94,10 @@ index 59f46c47fe9bf8c09b482e110a623fbff5e65da3..79e58c6c52b84f489c23100aba238f2c + instance.scrollOffset !== null + && Math.abs(instance.scrollOffset - actualOffset) > 1 + ) { -+ const mutable = instance as unknown as { -+ maybeNotify: () => void -+ scrollAdjustments: number -+ } + instance.scrollOffset = actualOffset -+ mutable.scrollAdjustments = 0 -+ mutable.maybeNotify() -+ // Preserve _intendedScrollOffset until its real event arrives; clearing it while -+ // updating scrollOffset suppresses programmatic scroll notifications. ++ internals.maybeNotify() ++ // Leave pendingWrite alone: cleared, its scroll event would match the reconciled offset and be ++ // dropped as spurious, leaving isScrolling and an in-flight scrollToIndex without it. + } + } + return result diff --git a/invokeai/frontend/webv2/performance/README.md b/invokeai/frontend/webv2/performance/README.md index b6af3f186a7..fc65fb1ffe7 100644 --- a/invokeai/frontend/webv2/performance/README.md +++ b/invokeai/frontend/webv2/performance/README.md @@ -62,7 +62,7 @@ Locale strings count: `en.json` is part of each route's `otherAssetRawBytes`. Ne ### Finding a new startup request -Build `main` in a separate worktree; compare hash-stripped `dist/assets/*.js` names with the branch build. Names only in the branch build that also appear in the route trace (`artifacts/architecture-performance/traces/-.zip`, `trace.network` URLs) are the extra requests. Run `pnpm test:performance:browser:profile` to collect traces for passing routes. `dist/.vite/chunk-sources.json` maps chunks to sources; `vite build --minify false` keeps `//#region` module markers. +Build `main` in a separate worktree; compare hash-stripped `dist/assets/*.js` names with the branch build. Names only in the branch build that also appear in the route trace (`artifacts/architecture-performance/traces/-.zip`, `trace.network` URLs) are the extra requests. Run `pnpm test:performance:browser:profile` to collect traces for passing routes. `dist/.vite/chunk-sources.json` maps each chunk to its source modules and packages; diff it between the two builds to see which modules moved between chunks. Unminified builds no longer carry `//#region` module markers. ## Remediation tickets diff --git a/invokeai/frontend/webv2/performance/architecture-baseline.json b/invokeai/frontend/webv2/performance/architecture-baseline.json index 201a7296cb6..0e10506e43a 100644 --- a/invokeai/frontend/webv2/performance/architecture-baseline.json +++ b/invokeai/frontend/webv2/performance/architecture-baseline.json @@ -2,15 +2,15 @@ "build": { "launchpad": { "baseline": { - "brotliBytes": 804953, + "brotliBytes": 808399, "cssRawBytes": 2159, "fontRawBytes": 219480, - "gzipBytes": 804296, + "gzipBytes": 807399, "imageRawBytes": 44398, - "initialRawBytes": 2074195, - "largestAssetRawBytes": 752422, + "initialRawBytes": 2083953, + "largestAssetRawBytes": 751904, "otherAssetRawBytes": 0, - "ownedRawBytes": 103111, + "ownedRawBytes": 103029, "requestCount": 35, "scriptRequestCount": 19, "sourceOwners": [ @@ -350,15 +350,15 @@ }, "editor": { "baseline": { - "brotliBytes": 1213758, + "brotliBytes": 1216912, "cssRawBytes": 2159, "fontRawBytes": 219480, - "gzipBytes": 1206518, + "gzipBytes": 1209036, "imageRawBytes": 44398, - "initialRawBytes": 3341503, - "largestAssetRawBytes": 752422, + "initialRawBytes": 3350470, + "largestAssetRawBytes": 751904, "otherAssetRawBytes": 0, - "ownedRawBytes": 156608, + "ownedRawBytes": 156430, "requestCount": 71, "scriptRequestCount": 55, "sourceOwners": [ @@ -845,12 +845,10 @@ "source:src/workbench/canvas-engine/document/mergeVisible.ts", "source:src/workbench/canvas-engine/document/selectionRepair.ts", "source:src/workbench/canvas-engine/document/sources.ts", - "source:src/workbench/canvas-engine/editing/controlPixelEdit.ts", "source:src/workbench/canvas-engine/engineStores.ts", "source:src/workbench/canvas-engine/layerExportGuards.ts", "source:src/workbench/canvas-engine/math/mat2d.ts", "source:src/workbench/canvas-engine/math/rect.ts", - "source:src/workbench/canvas-engine/math/snapping.ts", "source:src/workbench/canvas-engine/mutationContracts.ts", "source:src/workbench/canvas-engine/render/adjustments.ts", "source:src/workbench/canvas-engine/render/compositor.ts", @@ -860,8 +858,6 @@ "source:src/workbench/canvas-engine/render/maskFill.ts", "source:src/workbench/canvas-engine/render/rasterComposite.ts", "source:src/workbench/canvas-engine/render/rasterizers/textRasterizer.ts", - "source:src/workbench/canvas-engine/render/thumbnail.ts", - "source:src/workbench/canvas-engine/transform/transformMath.ts", "source:src/workbench/canvasDimsSync.ts", "source:src/workbench/canvasLayerContent.ts", "source:src/workbench/canvasMigration.ts", @@ -1113,7 +1109,7 @@ "source": "src/app/WorkbenchApp.tsx" } }, - "capturedAt": "2026-10-23", + "capturedAt": "2026-10-24", "developmentInvalidation": { "platformUiBarrel": { "specifier": "@platform/ui", diff --git a/invokeai/frontend/webv2/performance/browser-baseline.json b/invokeai/frontend/webv2/performance/browser-baseline.json index ac6d601e260..79361deffc5 100644 --- a/invokeai/frontend/webv2/performance/browser-baseline.json +++ b/invokeai/frontend/webv2/performance/browser-baseline.json @@ -29,12 +29,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 0, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236655, "requestCount": 29, - "scriptRawBytes": 1897694, + "scriptRawBytes": 1919842, "scriptRequestCount": 25, - "totalRawBytes": 2158882 + "totalRawBytes": 2182320 }, "routeReadyMedianMs": 215.30000019073486, "scriptSourceOwnerSet": "launchpad-static", @@ -67,12 +67,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 0, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236655, "requestCount": 29, - "scriptRawBytes": 1897694, + "scriptRawBytes": 1919842, "scriptRequestCount": 25, - "totalRawBytes": 2158882 + "totalRawBytes": 2182320 }, "routeReadyMedianMs": 225.39999961853027, "scriptSourceOwnerSet": "launchpad-static", @@ -105,12 +105,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 87, - "scriptRawBytes": 4312524, + "scriptRawBytes": 4350945, "scriptRequestCount": 82, - "totalRawBytes": 4618110 + "totalRawBytes": 4657815 }, "routeReadyMedianMs": 360.90000009536743, "scriptSourceOwnerSet": "editor-minimal-static", @@ -143,12 +143,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 87, - "scriptRawBytes": 4312524, + "scriptRawBytes": 4350945, "scriptRequestCount": 82, - "totalRawBytes": 4618110 + "totalRawBytes": 4657815 }, "routeReadyMedianMs": 367.80000019073486, "scriptSourceOwnerSet": "editor-minimal-static", @@ -181,12 +181,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 96, - "scriptRawBytes": 4853620, + "scriptRawBytes": 4895726, "scriptRequestCount": 91, - "totalRawBytes": 5159206 + "totalRawBytes": 5202596 }, "routeReadyMedianMs": 1095.3000001907349, "scriptSourceOwnerSet": "editor-canvas-static", @@ -219,12 +219,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 96, - "scriptRawBytes": 4853620, + "scriptRawBytes": 4895726, "scriptRequestCount": 91, - "totalRawBytes": 5159206 + "totalRawBytes": 5202596 }, "routeReadyMedianMs": 1042.5, "scriptSourceOwnerSet": "editor-canvas-static", @@ -257,12 +257,12 @@ "cssRawBytes": 17572, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 94, - "scriptRawBytes": 4772177, + "scriptRawBytes": 4818320, "scriptRequestCount": 88, - "totalRawBytes": 5093176 + "totalRawBytes": 5140603 }, "routeReadyMedianMs": 1093.0999999046326, "scriptSourceOwnerSet": "editor-workflow-static", @@ -295,12 +295,12 @@ "cssRawBytes": 17572, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 94, - "scriptRawBytes": 4772177, + "scriptRawBytes": 4818320, "scriptRequestCount": 88, - "totalRawBytes": 5093176 + "totalRawBytes": 5140603 }, "routeReadyMedianMs": 1105.0999999046326, "scriptSourceOwnerSet": "editor-workflow-static", @@ -333,12 +333,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 87, - "scriptRawBytes": 4312524, + "scriptRawBytes": 4350945, "scriptRequestCount": 82, - "totalRawBytes": 4618110 + "totalRawBytes": 4657815 }, "routeReadyMedianMs": 1324.5, "scriptSourceOwnerSet": "editor-minimal-static", @@ -371,12 +371,12 @@ "cssRawBytes": 2159, "fontRawBytes": 23664, "imageRawBytes": 44398, - "largestAssetRawBytes": 752431, - "otherRawBytes": 235365, + "largestAssetRawBytes": 751922, + "otherRawBytes": 236649, "requestCount": 87, - "scriptRawBytes": 4312524, + "scriptRawBytes": 4350945, "scriptRequestCount": 82, - "totalRawBytes": 4618110 + "totalRawBytes": 4657815 }, "routeReadyMedianMs": 1301.5, "scriptSourceOwnerSet": "editor-minimal-static", diff --git a/invokeai/frontend/webv2/pnpm-lock.yaml b/invokeai/frontend/webv2/pnpm-lock.yaml index cf7842d9b2a..db3439ad840 100644 --- a/invokeai/frontend/webv2/pnpm-lock.yaml +++ b/invokeai/frontend/webv2/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: patchedDependencies: react-hook-tanstack-virtual: - hash: 6e0c46d85d50489bc6f6a0350c74c496a26fb3652c08061377650d9a40872da0 + hash: a650424c322ec56178110e945f70d9e11d270c144f2c0df5527ba7d327ccb285 path: patches/react-hook-tanstack-virtual.patch importers: @@ -15,40 +15,40 @@ importers: dependencies: '@chakra-ui/react': specifier: ^3.37.0 - version: 3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.0))(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + version: 3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.1))(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@dnd-kit/core': specifier: ^6.3.1 - version: 6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + version: 6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@dnd-kit/modifiers': specifier: ^9.0.0 - version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(react@19.3.0) + version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(react@19.3.1) '@dnd-kit/sortable': specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(react@19.3.0) + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(react@19.3.1) '@dnd-kit/utilities': specifier: ^3.2.2 - version: 3.2.2(react@19.3.0) + version: 3.2.2(react@19.3.1) '@emotion/react': specifier: ^11.14.0 - version: 11.14.0(@types/react@19.3.0)(react@19.3.0) + version: 11.14.0(@types/react@19.3.0)(react@19.3.1) '@fontsource/inter': specifier: ^5.3.0 version: 5.3.0 '@tanstack/react-query': - specifier: ^5.102.8 - version: 5.102.8(react@19.3.0) + specifier: ^5.104.5 + version: 5.104.5(@types/react@19.3.0)(react@19.3.1) '@tanstack/react-router': - specifier: ^1.170.36 - version: 1.170.36(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + specifier: ^1.170.46 + version: 1.170.46(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@tanstack/react-virtual': - specifier: ^3.14.13 - version: 3.14.13(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + specifier: ^3.14.22 + version: 3.14.22(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@xyflow/react': - specifier: ^12.11.6 - version: 12.11.6(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + specifier: ^12.12.0 + version: 12.12.0(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) ag-psd: - specifier: ^31.0.2 - version: 31.0.2 + specifier: ^31.0.3 + version: 31.0.3 fflate: specifier: ^0.8.3 version: 0.8.3 @@ -59,63 +59,63 @@ importers: specifier: ^1.11.13 version: 1.11.13 i18next: - specifier: ^26.4.2 - version: 26.4.2(typescript@7.0.2) + specifier: ^26.5.6 + version: 26.5.6(typescript@7.0.2) i18next-http-backend: - specifier: ^4.0.2 - version: 4.0.2 + specifier: ^4.0.4 + version: 4.0.4 idb: - specifier: ^8.0.3 - version: 8.0.3 + specifier: ^8.0.4 + version: 8.0.4 lucide-react: - specifier: ^1.46.0 - version: 1.46.0(react@19.3.0) + specifier: ^1.61.0 + version: 1.61.0(@types/react@19.3.0)(react@19.3.1) perfect-freehand: specifier: ^1.2.3 version: 1.2.3 plotly.js-gl2d-dist-min: - specifier: ^4.1.1 - version: 4.1.1 + specifier: ^4.1.2 + version: 4.1.2 react: - specifier: ^19.3.0 - version: 19.3.0 + specifier: ^19.3.1 + version: 19.3.1 react-dom: - specifier: ^19.3.0 - version: 19.3.0(react@19.3.0) + specifier: ^19.3.1 + version: 19.3.1(react@19.3.1) react-hook-tanstack-virtual: specifier: ^0.0.4 - version: 0.0.4(patch_hash=6e0c46d85d50489bc6f6a0350c74c496a26fb3652c08061377650d9a40872da0)(@tanstack/react-virtual@3.14.13(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(@tanstack/virtual-core@3.17.11)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + version: 0.0.4(patch_hash=a650424c322ec56178110e945f70d9e11d270c144f2c0df5527ba7d327ccb285)(@tanstack/react-virtual@3.14.22(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(@tanstack/virtual-core@3.19.7)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) react-i18next: - specifier: ^17.0.14 - version: 17.0.14(i18next@26.4.2(typescript@7.0.2))(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(typescript@7.0.2) + specifier: ^17.1.3 + version: 17.1.3(i18next@26.5.6(typescript@7.0.2))(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(typescript@7.0.2) socket.io-client: - specifier: ^4.8.3 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 tinykeys: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.0.1 + version: 4.0.1 use-sync-external-store: specifier: ^1.7.0 - version: 1.7.0(react@19.3.0) + version: 1.7.0(react@19.3.1) yaml: specifier: ^2.9.1 version: 2.9.1 zod: - specifier: ^4.6.5 - version: 4.6.5 + specifier: ^4.6.7 + version: 4.6.7 devDependencies: '@chakra-ui/cli': specifier: ^3.37.0 - version: 3.37.0(@chakra-ui/react@3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.0))(react-dom@19.3.0(react@19.3.0))(react@19.3.0)) + version: 3.37.0(@chakra-ui/react@3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.1))(react-dom@19.3.1(react@19.3.1))(react@19.3.1)) '@rolldown/plugin-babel': specifier: ^0.2.4 - version: 0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.8)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) + version: 0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.10)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) '@types/node': - specifier: ^26.5.1 - version: 26.5.1 + specifier: ^26.6.5 + version: 26.6.5 '@types/plotly.js': - specifier: ^3.0.13 - version: 3.0.13 + specifier: ^3.0.15 + version: 3.0.15 '@types/react': specifier: ^19.3.0 version: 19.3.0 @@ -126,35 +126,35 @@ importers: specifier: ^1.7.0 version: 1.7.0 '@vitejs/plugin-react': - specifier: ^6.1.1 - version: 6.1.1(@rolldown/plugin-babel@0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.8)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)))(babel-plugin-react-compiler@1.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) + specifier: ^6.1.2 + version: 6.1.2(@rolldown/plugin-babel@0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.10)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)))(babel-plugin-react-compiler@1.0.0)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) '@vitest/browser-playwright': - specifier: 5.0.0 - version: 5.0.0(playwright@1.63.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.0) + specifier: 5.0.5 + version: 5.0.5(playwright@1.64.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.5) axe-core: - specifier: ^4.13.0 - version: 4.13.0 + specifier: ^4.14.0 + version: 4.14.0 babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 oxfmt: - specifier: ^0.68.0 - version: 0.68.0 + specifier: ^0.74.0 + version: 0.74.0 oxlint: - specifier: ^1.83.0 - version: 1.83.0 + specifier: ^1.89.0 + version: 1.89.0 playwright: - specifier: 1.63.0 - version: 1.63.0 + specifier: 1.64.1 + version: 1.64.1 typescript: specifier: ^7.0.2 version: 7.0.2 vite: - specifier: ^8.3.0 - version: 8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1) + specifier: ^8.3.5 + version: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) vitest: - specifier: 5.0.0 - version: 5.0.0(@types/node@26.5.1)(@vitest/browser-playwright@5.0.0)(@vitest/ui@5.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) + specifier: 5.0.5 + version: 5.0.5(@types/node@26.6.5)(@vitest/browser-playwright@5.0.5)(@vitest/ui@5.0.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) packages: @@ -242,12 +242,12 @@ packages: resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.29.7': - resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + '@babel/helpers@7.29.10': + resolution: {integrity: sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.8': - resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} + '@babel/parser@7.29.9': + resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==} engines: {node: '>=6.0.0'} hasBin: true @@ -263,16 +263,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + '@babel/runtime@7.29.10': + resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} engines: {node: '>=6.9.0'} '@babel/template@7.29.7': resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.8': - resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + '@babel/traverse@7.29.10': + resolution: {integrity: sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==} engines: {node: '>=6.9.0'} '@babel/types@7.29.8': @@ -577,233 +577,233 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-project/types@0.149.0': - resolution: {integrity: sha512-Efcc+iF0j3Bf67YjEqIqWXbX5XddXoK/Mw4K1/JuXwRCZ8N16VR7iT23nlCc9XrveFVh/E5Rqs2StT0V8v9LdA==} + '@oxc-project/types@0.155.0': + resolution: {integrity: sha512-SeE8JPwW1xs1tHeNycjUtUBdhorRa8o4jlvjwk49R7/Z291i+4DQa7JJIgOm/TaYQZx+QrPQbVJ/9c8dMIZN8Q==} - '@oxfmt/binding-android-arm-eabi@0.68.0': - resolution: {integrity: sha512-dhfYPbzv/h9JgHjNkl2R6sOjUfxDyLGOZVb3g8/ScaTNwwJcYgmHh8kcYFDUhinuy1QAoANCWUvw1jlk+z6gAg==} + '@oxfmt/binding-android-arm-eabi@0.74.0': + resolution: {integrity: sha512-xxQwrf5EPI5zxvuCTW8r6tzCTjPQ+h6+HqJ0iRKRy2zS1yBllt/xLVjoIyUc+FnR7g0a5g1SZv2yyDYhTItLbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.68.0': - resolution: {integrity: sha512-v3Njdi6qY0O/5eGfg01ww2w6gTn2mUvZ72Bnx1/UN53A9wruh3Nk6otc3WkgJLkXD4Qgz1SOcVQieH1oD03V9Q==} + '@oxfmt/binding-android-arm64@0.74.0': + resolution: {integrity: sha512-FJW3sATVvrWbV64al8xofCPZj4500Z/1W0ad7Tg1rcCUyh0EMbuSrsf3jsZS7CEbwQ5fQ0mRhmkc129GFgofSQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.68.0': - resolution: {integrity: sha512-ei4MCMzHFREmZwPJ7KuWUB4kBuHdsgDrnXGJVcEAopU7fj7S42I8BChdFILWdHvhFqR08FLJtOfbZIr2CDw0cA==} + '@oxfmt/binding-darwin-arm64@0.74.0': + resolution: {integrity: sha512-TfmNKBD30dGyMu9GCLiaw2rt/z7fms9LS+5cKcNOyWst0QgAs8oZs6wPxMbVaaDVE0/PCdCosgWM1vbu6f5NUg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.68.0': - resolution: {integrity: sha512-UrKgzZxYhwB9DSvTX+vdgl9M32wLUNKJcAKIoiyx/Kzn/zveqi7W6kYVcRroFMhS3Kwz0KhTk3WBeSuQn4YCTg==} + '@oxfmt/binding-darwin-x64@0.74.0': + resolution: {integrity: sha512-5Usf8+DfC4Q3o/MD8FkN47GrI6y0KbhQ4KhZ2HGzMZcXjcW1AeldwbUn51aKih+1TVuJFF9qkNm6X1nzm6NYng==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.68.0': - resolution: {integrity: sha512-6jrEKgpJbilM1QaRv7hEtKXr4p4AK4jvvyOtajwyhu0kOz3e0O7OLnSTk6tBotRqCcUC4ehZRJ1Zx+Y99wieLw==} + '@oxfmt/binding-freebsd-x64@0.74.0': + resolution: {integrity: sha512-eL+1O3gykw1XihbZh2MRAciQvU2988LByrnjhyo/dmNG74X4oZ7XzigRoWPRFLfJCp8hzRkp/LbEhwe7uuT2eA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.68.0': - resolution: {integrity: sha512-YOIVnKOBaLeGullskS179N12hjSAdFYnzLjOaKiLhAKNWgnShq9w4xRdtmUm6BlnP65l2/EA9Aw/KlftNxDM7Q==} + '@oxfmt/binding-linux-arm-gnueabihf@0.74.0': + resolution: {integrity: sha512-Xt0QtO2hJ4stnul8IL4LJGVLyp0xnc6ccN9fZ30yuubv8FWSRYxWwd1Za62KsEqAfmPSazoS/cLSUUJpja6npA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.68.0': - resolution: {integrity: sha512-xW5XoEHVNqydPBv2KXvk9lmEzyAlOQHVEazKoXUuAacqekjya+OdiaFjjEBl0oJD02raG8g3TRl9OVCh9PDIHA==} + '@oxfmt/binding-linux-arm-musleabihf@0.74.0': + resolution: {integrity: sha512-/4wYQ0gZl4vUR0QoBTGaay73FmQ1GAjUa9z9101TR2xbGNrg4a+grazlR0yzEOe3/E+PJr5BGfj66MMzm/54vg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.68.0': - resolution: {integrity: sha512-QCvYwVVQieu6oyJglAgV9vH/YMDxZyR4cwVSYtoq9oOXd5N+D3TDUBjNwxFrLn5AdcJZOcvn/7IB17vJGp+2Og==} + '@oxfmt/binding-linux-arm64-gnu@0.74.0': + resolution: {integrity: sha512-846bKzF+HJd+JkOFh3rxzmYvSq4Cm+GMT+p+mW7S13ZYo6GAAGv8bL8cAOi/XcdeMqxEJDCIMTVQLVBXHMCdig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxfmt/binding-linux-arm64-musl@0.68.0': - resolution: {integrity: sha512-4TVz5iFQ8ndrHnhX50UXiz9BIWAtUSOHJ6Nus4qWFfJBXq/Ed/krXbF/ehJu42BXM5tIvBs99jNIM22s9agY5A==} + '@oxfmt/binding-linux-arm64-musl@0.74.0': + resolution: {integrity: sha512-nI5FJwZ4Flo6CBdscpwxymZXxO3m3IErQJX55ZS6h+ObfGXu8FostL85L/RWPFaCLnIVE4/WfLw+2q8XvVEeUA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxfmt/binding-linux-ppc64-gnu@0.68.0': - resolution: {integrity: sha512-qLe3ao0RP84bnPxBvRI+GnlK/jybo538NWu0Xrm+zYeTmJtpzqLhnnd5BH21NafqKnplbGZjtN1cnrOlWF73lw==} + '@oxfmt/binding-linux-ppc64-gnu@0.74.0': + resolution: {integrity: sha512-BoQYKuqUdsKAFAkK6DLBvkdv4+t0hppSm79sB0wIcE2o/eOwNj+6Z3OlKY4q3Eta/tlssP65FaS9vHn8TeF7vQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@oxfmt/binding-linux-riscv64-gnu@0.68.0': - resolution: {integrity: sha512-Yvyl7a6gbb0vM6r925KW2dO+/CmXySO5TVbcX7o/uZJ+d108HFOG0TxIyHApmn5USuj5mhDPxzhiVwOlGP7uSA==} + '@oxfmt/binding-linux-riscv64-gnu@0.74.0': + resolution: {integrity: sha512-FSroRrM12+jCdSQklF9aOxsKpI6wFs4ZCo/1cSYG80RWZS6z4LV+l9tXRMT8lDGu+yohIZBwi9M76FzGPFDE2A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxfmt/binding-linux-riscv64-musl@0.68.0': - resolution: {integrity: sha512-mJlFuFVCxzrYM5sFStN433D/s/mb6Wq4aCQAM02vs/OudHywnaSAd2rb1vlYUJtqdYIciJtiasuxvfbYkv5fLg==} + '@oxfmt/binding-linux-riscv64-musl@0.74.0': + resolution: {integrity: sha512-0VLQD0dhGBLY9Ik/w+otMvD81D0YXi4VDwql65macV+O9UzmSWmUr6CKf+dMtysDeC0PnG3y6kBkRO08BJx52g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxfmt/binding-linux-s390x-gnu@0.68.0': - resolution: {integrity: sha512-RlfSg++qs1hbKltRR6lYvV9EoI3MdlfSQD9w1hdHVYjHqjIn1tkH4FWOpMSmjKGN20zr+nI+W9o4ARogCDudGQ==} + '@oxfmt/binding-linux-s390x-gnu@0.74.0': + resolution: {integrity: sha512-6X7BbZNz34+OHM6Oqjf6TRcUyRn6aRcB4VtIDZAF/uQRyeVhg+G2hv6MlMvmnRekVSyTJ/8rG/u8W2dRFW6glg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxfmt/binding-linux-x64-gnu@0.68.0': - resolution: {integrity: sha512-nyzRB9U+dlYUKu3pMo3afHzZBUv/oTHZMG36ZfJViNVfOIzp70Q4GS8FFRGgYJ/p0zcyDCgpBvYISOdJOMh+jQ==} + '@oxfmt/binding-linux-x64-gnu@0.74.0': + resolution: {integrity: sha512-4kYIQK53yJXrxwxSzx8H2bojlf6/KezLGYLRXzV9QCCkoiCsvBTCid9Bg83dUPTLPa3g9K0730f6MKDbck1+OA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxfmt/binding-linux-x64-musl@0.68.0': - resolution: {integrity: sha512-iCx3sbZRIvGrL1RafphEiUKBaW1lc0/tAjKOIB/Wjw2+STRBEdu5+fH1Gc1faEWEmc2k5Ks4iUUV54Zd5C9a1A==} + '@oxfmt/binding-linux-x64-musl@0.74.0': + resolution: {integrity: sha512-MfWz4wDREjp/JQDmuxtKieix4FHGa1z5rBvB3betdcPwZvf5fqeQrlCm1mmoyuUVQOh9Pt3M61HwN94kJCxw7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxfmt/binding-openharmony-arm64@0.68.0': - resolution: {integrity: sha512-x2X5AZez7OgyLLFpwIgItoXBUqudDM7yiaTsxv8R8vKQ6e81l0jVw0NFeUCXzcl1sAJq8h+tC8N4mY8EiMeL4w==} + '@oxfmt/binding-openharmony-arm64@0.74.0': + resolution: {integrity: sha512-6rmAApkq5s1kbDjvNI6Nl5A+JqQkLORb2sR941pf5HWsrd01WGKyagK/B4vX9+kh1FfvRkNgEu59FHvVk4H8cQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.68.0': - resolution: {integrity: sha512-AHVPjXkenLPQUh6kB8zSC8pX2ct9r4T1Edk9r/RNJyov6wPsS5uAfYtipwG4chn6+3bPFG5rI/3DxEeH8vib1w==} + '@oxfmt/binding-win32-arm64-msvc@0.74.0': + resolution: {integrity: sha512-+5SpRUnZNGeXTyumHnpHa791tQtt04qZs076WT8eTcGF2OJ631VLnf7S0kQSPuDG+PtJM0phadEB2WAr5n1w9g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.68.0': - resolution: {integrity: sha512-n09SjEk5VH7z8Hl4WVP7hho+cCwGViENkQFiM45vbW85dJd7kEhWaHRUobaPzEmrWyu6uumd4EuNfNyDKLtzDA==} + '@oxfmt/binding-win32-ia32-msvc@0.74.0': + resolution: {integrity: sha512-1Fg+wYBO3Dsti1QX+/6EYHjeQzLC84tLOAqPu/r7ah3UJlUs9C/DB703Ay9Vcg+8VMzqZA2P5VGhzJraVUD4OQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.68.0': - resolution: {integrity: sha512-gPe+dJLXaPuWPWqlpklDAJp0k+K9KhQPYiQLHfb+i2rmFuUGfJ/5Qlj6tr1mO6of5g0DiLjG/XCFHIaPhotqqA==} + '@oxfmt/binding-win32-x64-msvc@0.74.0': + resolution: {integrity: sha512-y9jXUgPBm2TZIWbQhMYRRYAQM57+r4fbykgc+j24ICIIZl+pcuoNhnq1CRGm3oFiHnEUnZO00qOtSPGQdJ2ziQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.83.0': - resolution: {integrity: sha512-0yGY24EwsLk5YDe6F+VkmZyRHSwJDALa3nIrPpq7FXmp2lV2d0TzvBCGeZk+wgiULRGr5blhyr4QMp5KCXJUqA==} + '@oxlint/binding-android-arm-eabi@1.89.0': + resolution: {integrity: sha512-Pflpba5F3gRAQ12sWglRxvWTHEdAusNDvmi4Y5N1T5SY1AGkM7AixOnET8qkrnLJ/F32qAlNokO6eCknT8tmnw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.83.0': - resolution: {integrity: sha512-hHfJ0vc17A4iUjH5p9BsTUPYbYRNxGpvD2lbu1aBRk54bzNIx9o5TtYF39QPZcV95DagZd+4DEAw2RH3G2ZsMg==} + '@oxlint/binding-android-arm64@1.89.0': + resolution: {integrity: sha512-dYmyD1x7LaPlb79vZWUcpTShk8dI9z1I+IubtqrBxWNJaDhQdPHwcsvg7q5StTU4xWyd9AwPfLaTYFZY8NZgtQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.83.0': - resolution: {integrity: sha512-hsOjYjszLb/3zym/TkzUMPAoQlTJcuzSyEPOAyA+skXJIX9M0o+4JfOtqopX/Vf4hSLrJ98j0nvFo23gzk8auQ==} + '@oxlint/binding-darwin-arm64@1.89.0': + resolution: {integrity: sha512-Z/oxOPiIqiS7fItRdxaaOEC+6GD3OpGi0IxoR0dMefzQHolsKLzScw2DNcu/5gUPok3tv+G9mslvYB5bo3i0qg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.83.0': - resolution: {integrity: sha512-mjh5oH2EA+wl5yRJYT9K9G61O2zFlpuv+yf2JwZOi0+dq2FnTUtm1h8i+5Ik0fXPWIu/k84I1psZR9aQsLAnyA==} + '@oxlint/binding-darwin-x64@1.89.0': + resolution: {integrity: sha512-eAjTkHSjAxrdCPJxO6y5sPQL5pYLKb2kvxZz9UU7tXnOZk9I/HLtkvx9S7GHY883k+AmL/eC7mqFt+w7WCwk0w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.83.0': - resolution: {integrity: sha512-fNHr64/YaO8YssuoDVC8+F4Uk5enR86q5uxfHkQrjAPs1dbAILOrD2uaud+J7MO8Fx774g44ERLD0IGIvZE48w==} + '@oxlint/binding-freebsd-x64@1.89.0': + resolution: {integrity: sha512-0lNCA9Tl1n1FKpqy2/9ckp0kIuSrtJ/l9bMRgaEhOtM7TsOHshFuwOcvW8oA9teXLMOJT61LjEKWiaHDFGxF/w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.83.0': - resolution: {integrity: sha512-Qpwy3zzAwMj+8/lyYItHmkSMwbkprFNWTK7jPYDOxSyxEhaSLOWYUTCMkjF334J8/WD0nznCCsoBbIH6hpsuIw==} + '@oxlint/binding-linux-arm-gnueabihf@1.89.0': + resolution: {integrity: sha512-OTFEvi9W+JczaZD1Caj17SGCoW8H7TE+fvx0D7ATEWa1Lohn91UMxFQ6r145SiGy/yCxeIwptMys/RAM7gSVSQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.83.0': - resolution: {integrity: sha512-s+BirYLFq7JL2k9sP0XI3ZXJ9dYvJ8sX3jLCLoag7tt+zrSHpZxP0jqznfL+Gdgwu7ay0dYgGYJXrQvq3iWloA==} + '@oxlint/binding-linux-arm-musleabihf@1.89.0': + resolution: {integrity: sha512-fRxgNHvBLswj6MrhW2uBq5UDhPRQlCbHeq/Nf8yuG9zOxhDsXqX/mi2PX1axgsQxMm88el7HLiJAzglAnflYxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.83.0': - resolution: {integrity: sha512-7lihXt3vKr+GIyapNbHrnFHm/biiW30le6Zv/DExbAFPF6YwCQXVFlONPFehxs0CpGO4CBfYPM9rdDT+XMoIlg==} + '@oxlint/binding-linux-arm64-gnu@1.89.0': + resolution: {integrity: sha512-v9ENzHvwrQoYSWTtviH1pOYc7R9UovDxVofnck50cNmPihRRTcrg5X0UlRbLOZ7IVtxPOlh2hb7kDO+FpE8SfQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxlint/binding-linux-arm64-musl@1.83.0': - resolution: {integrity: sha512-q63JalLYVkZiZvls1z3PPUnpmQluOMXp0khqQMznCeAPLGydfNY8JhvuA4WlK57JfrvikU8wB5lPVveqpIXvew==} + '@oxlint/binding-linux-arm64-musl@1.89.0': + resolution: {integrity: sha512-vfffe8mQ484AzVadlUOFpgL+JDwhvs9hrzxTgQP1FVfi4ZEUUYeffXlzC9dFV7Dgnu5s/KrNKvfmG6HxBd/ISQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxlint/binding-linux-ppc64-gnu@1.83.0': - resolution: {integrity: sha512-krQmDF+dRbxvdqVPV88ZuOoPPu8X5BuqDA8Hd+qcS4YMRQCb+nexA57DazgGsc/rGdKBe3QmV0mnv0bdpW/p5g==} + '@oxlint/binding-linux-ppc64-gnu@1.89.0': + resolution: {integrity: sha512-Buonlp4hVS7RGNP5M7bPpGNQrenyzA2C64JcO/oz9C1c6dGOXJ7VEAnaiAMY7voou0JYyCJdvDVlFQc5DZX3DQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@oxlint/binding-linux-riscv64-gnu@1.83.0': - resolution: {integrity: sha512-MmOl8Y6txEAXZU1RG8Rr264jQ6D7VPmqFsU/45x/FeWsGe32hklTqGrLE6UxHzp5Rjt0wP+20tY8YXKgSFB3mw==} + '@oxlint/binding-linux-riscv64-gnu@1.89.0': + resolution: {integrity: sha512-1eVwJJrJ3lYIPT+cm7BcBBZZXY6IQZP/oyonaruTor/MrVyWOpvnwt1oD5CLdsHg5aVBIxXodQSvt+1gK6ck5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxlint/binding-linux-riscv64-musl@1.83.0': - resolution: {integrity: sha512-u1rMymh0W3JZkq370kzQsYPULGWqhE09pZRqnZvUSoYaI9pVO5yVX+iYIslmWuEgwuzH9YAaOsScJiobWCHoOw==} + '@oxlint/binding-linux-riscv64-musl@1.89.0': + resolution: {integrity: sha512-fRQQsKUGShdEL5Fl9o9uhj3grkZbeXKLv0icQ5tspUCNYSDy8wzzEcP1WC2bKdTQ0rSszbKlO3iiHORxV22DLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxlint/binding-linux-s390x-gnu@1.83.0': - resolution: {integrity: sha512-y0zK3HNwGysu7rqtE+BQG/d0bx5gh/KwlOtghN8oWeK1KcWzeaLqtZrbm8owqdma1lFyrce/hTO5ismuNu+INQ==} + '@oxlint/binding-linux-s390x-gnu@1.89.0': + resolution: {integrity: sha512-dEtYjIy6+fHcjKklsmtmMkZRhwHr2UbzjmpvuPtQYSeN9awQ2hx5JLms5Wvri+8P/NZtD8v5hfgHALUql+/Ycg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxlint/binding-linux-x64-gnu@1.83.0': - resolution: {integrity: sha512-rS5gM0NgD7ngmuJmbIehsidtrOwKkLFwCQbKEeb9KuyQrrWNq5Zkn0uV6AYdXOMJ0grrWEiLwBuvMxt8w5vsNw==} + '@oxlint/binding-linux-x64-gnu@1.89.0': + resolution: {integrity: sha512-hqjwIj5KOYM8Wjef/p7IruNi1iByLhSzbMBk62y22P/E8q7Jj0Pp+DeUTKTRYyZYCDtU1wEGlnWOnttHbyNIww==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxlint/binding-linux-x64-musl@1.83.0': - resolution: {integrity: sha512-W2IH4EtpcPaWcvNGCA95YoDg4vxqE/ZiPCi3arrxEEpsK7+JQN9WYwrlYFx9pcdP6KPXqRqkv3zdQPHcx7b6YQ==} + '@oxlint/binding-linux-x64-musl@1.89.0': + resolution: {integrity: sha512-iAQN3e6o9UgUCcdGwqRx/jYcKbG3HK7ur3rH6lTqVcQeNGZ85AeWIg6cgn/edwFQ0ofEZZItMwkzyCVTahnvEA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxlint/binding-openharmony-arm64@1.83.0': - resolution: {integrity: sha512-6LyKkUyoajssTPLlZmDbZIbu4IZ5B4bGuRUnBgCGpEvHP3FQMaYITncHA/unPUo7q+Z+pIu2HhdkQ+8d1SG7iA==} + '@oxlint/binding-openharmony-arm64@1.89.0': + resolution: {integrity: sha512-MNxjEByz3N/7Q4qFQuPWvc14TpN9LoD3pECEDsJTZbP/wyB7U+hduUXEl7QAbbgVezFwsb9sWtNUO6XVBndOhg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.83.0': - resolution: {integrity: sha512-Uz/fObEtF0jmNJQJ8CGRBKfefYstS0/wjD3s6IGzP8nUwsJykHQJBiN3npHwKiGRGn/vvBEgNr4B3cCzmmatvg==} + '@oxlint/binding-win32-arm64-msvc@1.89.0': + resolution: {integrity: sha512-xxe+i9wfuFso/VnoL4mfj0UlzE+cfCFiUB06vkXCMyQdgVVmItF5FfAF4tATAktSU6uHruWR+FjqvAT9cHZZzg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.83.0': - resolution: {integrity: sha512-u7XcvPW6Bk58tY5iWs2ESb0vJjoE/kuSpHxopbwp/p3ZtWVQXZ6wor5w3ssVTHOqd/v8b+QdhSFWQ4grEUNWpA==} + '@oxlint/binding-win32-ia32-msvc@1.89.0': + resolution: {integrity: sha512-saFy07cO94E664glwgLmKLI40HgTL1PY86y4T6+ud4niX4H0Kdqjcmqmjps7mQNdBytV5guGbXDdyQtRfeLbLA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.83.0': - resolution: {integrity: sha512-LZRubd7ph13QmAg4fFecTYVZkiYbROR2Htaxh/ufWRkDhPOm2wrwaEYR89e0YpPFD3dqBrPoxS7myBw5hmYA7Q==} + '@oxlint/binding-win32-x64-msvc@1.89.0': + resolution: {integrity: sha512-hLFJ/o0f/dTJh/EW0vmcbREYSQO9tYgfiAAlsOkiLFiJuRRWvYtFELUXN5o2ijpSo/tlO1n+YlWN58tZwPG18A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -818,92 +818,92 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@rolldown/binding-android-arm-eabi@1.2.8': - resolution: {integrity: sha512-tN5aztYkKCte4i5SIrrz5yK/HMjEuCqCSCJa418jOV8tZ1cBY3YF2otxB1ktPxzsLA1BeTqwapK0bfjxNvHJVw==} + '@rolldown/binding-android-arm-eabi@1.2.15': + resolution: {integrity: sha512-aLcgK9gIJ3YRvrrtfSBbRa27F5WrpiTaPulnFpsHPxpUHgFlSgnU4854MHwoRGEBhfRJDWCS2WQ7lIjskE9Olw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@rolldown/binding-android-arm64@1.2.8': - resolution: {integrity: sha512-dIYTWl9XprMUiQFoc55KUyk/oS8SKYH3zFl0LTR7RT0Xj4hgSVyuJcroH8JUu8RcpF8fTB6E0aOwCkZoYPcDSQ==} + '@rolldown/binding-android-arm64@1.2.15': + resolution: {integrity: sha512-xD7DdZCrbThKuxNg7ooQmvp07ys4J/pnSEMTG3/OdOWl6daC67m/Q4fL78sRHMxTH/N4fGUbYhcPM0MF5WFHkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.2.8': - resolution: {integrity: sha512-PCSDQGXD2IyTEFrcgPyBM8jJuGmrbCMuoIOXdbEGVemruKACXoLQJrb+A45Z0L5t1RQkdfJprAYPkikbh7dzdA==} + '@rolldown/binding-darwin-arm64@1.2.15': + resolution: {integrity: sha512-m2WuQ6r0B4OTYxyPpNLtXaMRbRDUbG8YQV2Q3KTdSSK8Th6KHCnC8jVCJt8bvYeSB5WivkkNbc85mKadaSdOxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.8': - resolution: {integrity: sha512-Uk7lRsGhPFHVX/sAUC6D5H9Ol30dFHd6iquokll2th3LpdJ3F5CzQB+7DHn0Ri2mG+U7k2zXiPHDrwZenXhwSA==} + '@rolldown/binding-darwin-x64@1.2.15': + resolution: {integrity: sha512-5RtnsHM36nodM9WbMy+zip0LGS/G+y5wro5RHrpOlr4ac24+1zSi9kiV2MP1myZeZ/ifEHfulQcWjnAXzc2C2A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.8': - resolution: {integrity: sha512-DjszaTEVogPqA5bYzsEeqDCQxbcp2fexQwKcRspYji2yzR68fCf+e4fx6kBSRDwX5/brZaHw/hWS9+A/+/w9sQ==} + '@rolldown/binding-freebsd-x64@1.2.15': + resolution: {integrity: sha512-g3l09pyFqhu+135JKkbkwiKGQmwU5hUMUPJ4VdBADvuqR8d33L6H578rh8m7rtxbdp+VmX/+nzI7nvhSZlzpUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.8': - resolution: {integrity: sha512-zmwa7FTmdzB6aaEEuuls18H6Ap5JmJPSoPTuXixeJZV6tG40SyLkApQtz1g8ptZtiEKqj9OM0oNLPh1AgvE31Q==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.15': + resolution: {integrity: sha512-nIe3VugI97nGQtspPxDqA4sXMUpeiocKIP/CqpY/u/vgbT+alX+cVxu1C/oVBPKg4feNTmYovE91v4DgXvXNwQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.8': - resolution: {integrity: sha512-KdYQDPHwJVnbFwdTGMgxsI9SqblBlz6STGM+w1We/d5B8OWWidYH0MwkU/uA1wM5fIpO2MkOVxXrNzzuZhw9ew==} + '@rolldown/binding-linux-arm64-gnu@1.2.15': + resolution: {integrity: sha512-iTBjXx+B5QSvgI89lJfmqh4wTh8NabR1YZIIN3hNx4zSG0EVfVqkOvLulNpG4251pbd6/IAmZ/LefVk1Y4rPhw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.2.8': - resolution: {integrity: sha512-jFJTifHnNPY+yzOoNZQfSIysrVyXzEQPhPnOUjmD1bcQGHH6s7c8cViKWar8YplQImE5N9JRqMCLrM2CdxOrZA==} + '@rolldown/binding-linux-arm64-musl@1.2.15': + resolution: {integrity: sha512-uN26XOnVR7rqQupG3V9oAG2EGGatWjcJHOeDOHUFCh4TBWmP2tHTFoVN13aYbwfm0aHqJAEmcwhAu6sooIjfqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-ppc64-gnu@1.2.8': - resolution: {integrity: sha512-FhiOziBDWPBjbcmRzfLyIJnaP7AVMFXT7YCXPjXxj7wKU3vx24RjrCNN/zjvVa+N2vVoHJwCoUBvsrN/DG3zIA==} + '@rolldown/binding-linux-ppc64-gnu@1.2.15': + resolution: {integrity: sha512-9nWkcdd+H+XhaA3fQIwpHnKIrfx/PQ6rO0pivr78Og07tXlUlctBBJoEYLPfhTmCR/QxEVdn6uPjHV5SymPhdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@rolldown/binding-linux-s390x-gnu@1.2.8': - resolution: {integrity: sha512-WnHfADMzOV2Y55wlx1hzzQnar/wDt/VdvWSD99r18Mz9ylNieIGOkRx3UV21h7m/eJvjySYJkO26VvGNFkwsIQ==} + '@rolldown/binding-linux-s390x-gnu@1.2.15': + resolution: {integrity: sha512-Ggh0ciFjLwIusLSLz7LZYEaGdxOAUJXI+Qu5JCbhPJJHEt8vP+IjRATTJheiJsdzzTYgUiHUiw3X1Ea3ZpMBdA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.2.8': - resolution: {integrity: sha512-H9tRr5ibfXFVLxbPOseVewewFpl28zcEdjRDt2FTUZU7odxP0gEv1ki4/kGmcGOh78oRwZuuQllGLZ9zTJp84g==} + '@rolldown/binding-linux-x64-gnu@1.2.15': + resolution: {integrity: sha512-FHg60rS6DBePAYZ9X9F67x+JObFdmgn6tupA1C/a3B+CufFmTD4mX+e8M75tCiAO3foR/6xwVBI0KQiI7sn/rw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.2.8': - resolution: {integrity: sha512-UefiqfM3D6IVNlZ8tSGs9+Ejjud2T+oxO0IHADU45Y+lyEjD2dVFyZHbkfX0LUb5Zugo/oIv1eCO/KVYhgYJYA==} + '@rolldown/binding-linux-x64-musl@1.2.15': + resolution: {integrity: sha512-/cvV/7v5VGz/moiz0XKRj2dE8DzsKyhIu1KpOvJGPjRywg3yscON889UGvAe8zfiJLHup7VLjBduoGWi3HusWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-openharmony-arm64@1.2.8': - resolution: {integrity: sha512-637Ke4kWSy6rp9cxQ9gMOXlxPgIw/c1beASV4M//3+9I4uwBVOOl74G+e3zyU3u19U7RkRl/HuewixZ/Z6+Rjg==} + '@rolldown/binding-openharmony-arm64@1.2.15': + resolution: {integrity: sha512-MyzC5Hrv/sm+Z7TSGKP/j8001RO2xQm1zOpCNVL4j0cY/VhBZviludA2YFQ7i4lH6ZAXxQm0lcMdBzM+99mE7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.8': - resolution: {integrity: sha512-xWBkPOF1Q9k/Gv1nQXnVdLxKu74jXppuOM4Z3mnypVUJJJwLsMl7hNJGRAUJoG8A5MgOI1ACKM+wBFxSJzKy4A==} + '@rolldown/binding-win32-arm64-msvc@1.2.15': + resolution: {integrity: sha512-+PgYiS+AH5omy6L45ZLxybasauJaj3M8buoT83D+nzPmCayXlxUV9hydhciCKVyIg0B/v0BtXPDE1uGqNwCPpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.8': - resolution: {integrity: sha512-uz2ZvfgXbxqNwijjjbxrnvALwpyODDcgc1T1N8N3rf/DXKQmaFwmB4LX4yyjggpwN2obdQLb2rgirX5ffCWYng==} + '@rolldown/binding-win32-x64-msvc@1.2.15': + resolution: {integrity: sha512-HFZd2QNQYn1JbIi+Hpd7H+r/lkWxcfIu28nirZ6eCn2LafuvmExMlb/P96Sfx5tf7pPArw39IdhmCF8vmV+NhQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -938,46 +938,50 @@ packages: '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - '@tanstack/history@1.162.4': - resolution: {integrity: sha512-utTS5L2OkeYUzXGohL1Z8sefu1GLNOJcxe8Hd6iIdc/Xo1K1nDB2JEp4iSFhvYh33xKC9V91TxrS8qfrpoKobQ==} + '@tanstack/history@1.162.5': + resolution: {integrity: sha512-w1+YvwmTkwt5n8yUqEH3IWZ9DsmorCZW/EQ3KYHnqEgIkOZpH54NvW6/Epq3Dzb8H0ifIeYX8PExvrNLIH5FIA==} engines: {node: '>=20.19'} - '@tanstack/query-core@5.102.8': - resolution: {integrity: sha512-ZNjkJ33CqvPNec/6lZBnHqLc3EVGPZ9ySLhYahU9TcuRFdmwXewuj0c4hwSWcGHqEUwcSrKeZ+oGcvPBqXcQcg==} + '@tanstack/query-core@5.104.5': + resolution: {integrity: sha512-Q94gI8Opd+CbdVNOdj8ZCyV8WqLYitrDq1t96Xc8WZT6lY0r5iRnJLXYDxMex7EEf2v+mXvn4FcjaBKSxXZQ9A==} - '@tanstack/react-query@5.102.8': - resolution: {integrity: sha512-TYBea4OuXWD7MhaSHq069TWbFe7rcwWN6kzT7JF0OKi1K6c1gTv2IzD6A6ExJsCMozdkqBWeuIUZmu4KQg0O5A==} + '@tanstack/react-query@5.104.5': + resolution: {integrity: sha512-RORgFe052U+93weaNuqg7qHq7vNVNzXN/VrXqD4bbAuQCWUqOl2lV5Ui9flWk5CVvMyL/Bh27QWhzwH0aaOx9g==} peerDependencies: + '@types/react': ^18 || ^19 react: ^18 || ^19 + peerDependenciesMeta: + '@types/react': + optional: true - '@tanstack/react-router@1.170.36': - resolution: {integrity: sha512-AbgcI/xO8AJY1r6y5tF7TZyHH0VKm0XcfY3QVIVCrHq8k04Hkj1N4nfLL+1xCGC3VnMI3AYGAVWkatnqE2dxAQ==} + '@tanstack/react-router@1.170.46': + resolution: {integrity: sha512-ez1iNIhsPjGlaDHg3BXWs67EWVIYzB2tbopEHYDESdkO7owgkGb5de52+5Kv2v1fxdkggcNzo35bdk4arTVGQw==} engines: {node: '>=20.19'} peerDependencies: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-store@0.11.1': - resolution: {integrity: sha512-HaIGKI3YLmjBYIvy5DFDY23oNaYZIsTZfngey07Uh5iLVJgM3bIGCnZeOFOqzjFld9JHWcaHJnasD/bKoGKwJQ==} + '@tanstack/react-store@0.11.2': + resolution: {integrity: sha512-oj5O5DmiMWE+ih+SioX2ayC1kbK7d3fpLx0B75fPJr9nY3zU+hoW010yr64qXsY/9fyiLVE2bn5mGNV3owm8RQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/react-virtual@3.14.13': - resolution: {integrity: sha512-JbDTAwtzZ99aOeCrAfW5EsE5KSq5RWh6Af2dtFwyLIIk48Ja7vm6n4axu/43T3vfjFnEGJalxJ1wyYjSQD6bSg==} + '@tanstack/react-virtual@3.14.22': + resolution: {integrity: sha512-zNiB9IF3prySTfAUrj9tPHjD/lonBYkfxrPP4v4ITUx+qwHajJR5cY/xirjvwc+KWkur10GX3TpsbKh7JkD8Lw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.171.30': - resolution: {integrity: sha512-wtS1yCAb/k5CJBauvrCyqf2n4/kRc3aiz81tFBJ1QXH4Utsu81xFTMq15AdmNWgWmt2UstUSMfWi4Ua7ph2F+w==} + '@tanstack/router-core@1.171.39': + resolution: {integrity: sha512-qUhoJ0meuSUqGYQbHbcJYdASr06YtK+bulbj6vtrhKYFkLgkSsZ6tXmMyym7sFxiSJSPYgasgozrL01LyyR/6A==} engines: {node: '>=20.19'} - '@tanstack/store@0.11.1': - resolution: {integrity: sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA==} + '@tanstack/store@0.11.2': + resolution: {integrity: sha512-sJ4mjol8uQsHV0gOJzzjwXfh2Fwm+Sz0+8deqiTm4jGbMdjzNSW+xZCFm0kUa870uhd8yi+DpKnZb5Kc4apa0Q==} - '@tanstack/virtual-core@3.17.11': - resolution: {integrity: sha512-+ILjvtHup6Y2hzQ6YzwMgX1Q+oQpxEGOXCEsCNaPoIP0VxMbizIBTmYTDtkerkIQS8/CbP1BRuyt8V/8BCsy1g==} + '@tanstack/virtual-core@3.19.7': + resolution: {integrity: sha512-gxy5SvH0mFRJ0YujtrflB/1HAu9Wn1KGvL0bjZfQkYVVMsIpQiwcf1mR06/ViN4NjllUb4HNCjqE9FGwgTvMCQ==} '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1006,14 +1010,14 @@ packages: '@types/d3-interpolate@3.0.4': resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} - '@types/d3-selection@3.0.11': - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + '@types/d3-selection@3.0.12': + resolution: {integrity: sha512-Qe/KWYhEiIIxGs7HrAAjMfShxKldx19SJtr5zu53f3afPsdZNz7HHtdTLXo/kqeiWNXVycI24kSnfzBYkTzpgw==} '@types/d3-transition@3.0.9': resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} - '@types/d3-zoom@3.0.8': - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + '@types/d3-zoom@3.0.9': + resolution: {integrity: sha512-0sE1406XBYJGiqD3AusTl9ZqC//2mIXix51tbom25gDCA8ri4xnSZg28CaSE8Srl6FClqABUKfsn0qghgdepMA==} '@types/debug@4.1.13': resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} @@ -1027,14 +1031,14 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@26.5.1': - resolution: {integrity: sha512-CzNm2FezW4VR/LjG6yUdiEgLE/rAQ9Slj5gCu/C2VrdcW7I0ahNZ8DRbHT7zOZ6r3ONgd/bsQIeSaoDGrd1C6g==} + '@types/node@26.6.5': + resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/plotly.js@3.0.13': - resolution: {integrity: sha512-mWI1NZRDHDoiFiPEvUjR0P12fv21kmT8XSLrEjfNwIDahELaXXkSz38n6o+5SYsq0YEGxkK3ANqqM0cRl8uZdg==} + '@types/plotly.js@3.0.15': + resolution: {integrity: sha512-ftBxk2fB7BxxeMpT0IVEb/3HKpYTXO5nCdR5mGEz6gHpLd6GGRFxvDVoG1gpD/gBAgoN36KIyRflxCnOfWlskQ==} '@types/react-dom@19.3.0': resolution: {integrity: sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==} @@ -1172,13 +1176,13 @@ packages: engines: {node: '>=20.18 <=25.x'} os: [darwin, linux, win32] - '@vitejs/plugin-react@6.1.1': - resolution: {integrity: sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw==} + '@vitejs/plugin-react@6.1.2': + resolution: {integrity: sha512-fhJNGUdscQa4HkI0xFxwonWyhnVReCPDbXI7FH7jmzpnVCrFQI7PRrhWecO263610vOrs9tr2Y4xcf8uAdFxbw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 babel-plugin-react-compiler: ^1.0.0 - oxc-transform-react: ^0.145.0 + oxc-transform-react: ^0.152.0 vite: ^8.0.0 peerDependenciesMeta: '@rolldown/plugin-babel': @@ -1188,21 +1192,21 @@ packages: oxc-transform-react: optional: true - '@vitest/browser-playwright@5.0.0': - resolution: {integrity: sha512-N+gED9y4/8pypaHjz/x0ah3CjoBr+N0hWWT+Gq4VXtMzyB+rUIdHni0ulzpD1j4H77iWy5Jg8PRMlVn6kjxo6g==} + '@vitest/browser-playwright@5.0.5': + resolution: {integrity: sha512-lcdThFUUcMV9mGGV1SUiZXPxfjgW4CssA7o3STxzh8WK0tT2r526kc12tZIBRZfoLMwkhxjLmMXkWXONzdsDQw==} peerDependencies: playwright: '*' - vitest: 5.0.0 + vitest: 5.0.5 - '@vitest/browser@5.0.0': - resolution: {integrity: sha512-JC9FG5xIRxPHXJPcdCaluIJcEoeM0IwGQ3xneuJk09LXKHRNs40BqWDWymQikbb20yOpYvzpKzmYgPRuSzKmvg==} + '@vitest/browser@5.0.5': + resolution: {integrity: sha512-IDMoZX/iZ8rkilw7weaSgN8tJ7iZ9hUv0wYoKXyiyjWjWFwLSWAY707DcVTgxTYOudWC1E3HA9LYn7kVa9a7uQ==} peerDependencies: - vitest: 5.0.0 + vitest: 5.0.5 - '@vitest/mocker@5.0.0': - resolution: {integrity: sha512-66PGTMIiVJP3t4a5yxU9qPtf7MdTBs8jmToMvy+HVflB3Yy13WJZTtPePdvU+wjRV02SKK5doLbSA6o9pwOmiA==} + '@vitest/mocker@5.0.5': + resolution: {integrity: sha512-xLL3lkDegJZw+MGoGaCCsFayDZthGgpAtr3Vziyfc4p7xH89K7KRPcRBBh/kEYm0Aqkt5DtTmkYpBtRV/FrHZg==} peerDependencies: - msw: ^2.4.9 + msw: ^2.4.9 || ^3.0.0 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: @@ -1210,22 +1214,22 @@ packages: vite: optional: true - '@vitest/pretty-format@5.0.0': - resolution: {integrity: sha512-PVRNuB3wpReb4SQEs4zTKM4KWFhQ5pw3spE8naoDJNB5T5aWRzGKHwXcLUllr0WeOTXpB6bSr3CJLo5+7XQSSQ==} + '@vitest/pretty-format@5.0.5': + resolution: {integrity: sha512-24sSdIlMA9DVPXnYiB9siwU0bTd887Y9jX3+vabztCSsvHwo7ipvJ/a2L3Rljw8+2rK1f5fCj3h5U9I/Jsqgbw==} - '@vitest/spy@5.0.0': - resolution: {integrity: sha512-uy+luWBAPw9XfthoHi5AkfHUnuPYEESjl0p/r+meoBnU8bxg5GDQ3Ey8MjcJ6sqahkL4PFyrvfMJJBw7LbU06g==} + '@vitest/spy@5.0.5': + resolution: {integrity: sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==} - '@vitest/ui@5.0.0': - resolution: {integrity: sha512-h2FIFwggCY2GxUd2UdQoYNVQkOIqEQLPhNREcl3FUiRsdzQep7NWwYbSmhGEA9nFLPDq5pXzRMcBZQU8Py83sg==} + '@vitest/ui@5.0.5': + resolution: {integrity: sha512-dCoGUOdgmCaSB2g+WQ/spPCBkytAWdNUkFSXY4z+eYp2d8JEOY8v0uDRaJTG9qf/kTlTVZ4CuYMYMz/f1HS/qQ==} peerDependencies: - vitest: 5.0.0 + vitest: 5.0.5 - '@vitest/utils@5.0.0': - resolution: {integrity: sha512-dO++xL3vDfvhTAVimfkuQUA3k+JClIF1i1vAkPqpcGAthRmeWnXmHB7YPViPvgCwviX8u7Y5W1u2N//AaQr3fw==} + '@vitest/utils@5.0.5': + resolution: {integrity: sha512-/rBu7gzLDQI/SC79Tn98b5DwOgaHU/Gt4I9OVeP3YofzNaYtbImRCOJQmT1S6vOJg9gEIlWC+r3QxKkjuSa1nQ==} - '@xyflow/react@12.11.6': - resolution: {integrity: sha512-9XsEJNHjatKYndszKTF/bsU7FOP9dJ6V/EQwzy3oMdtqgBuUq7BjKSwkEo+C7s4qHstHQfwwoHA3E8QfpPxZZQ==} + '@xyflow/react@12.12.0': + resolution: {integrity: sha512-74oXI0Rgm1Eu33cHQAd74J6oVgCH9mbFyTVQbsGgp2kmWwh0HdtBr2VP04z8mbPD+M/xO69nqG5dDEt7/EN2rQ==} peerDependencies: '@types/react': '>=17' '@types/react-dom': '>=17' @@ -1237,8 +1241,8 @@ packages: '@types/react-dom': optional: true - '@xyflow/system@0.0.82': - resolution: {integrity: sha512-4DKnL3CGtCGLRSmgDqaajRVgeksMXq/Yw4wPfdMfm7JvdIiWHGzVYOfFUztiATwdBXZqUU6HhehwUdbV9G23PQ==} + '@xyflow/system@0.0.83': + resolution: {integrity: sha512-a//eDjez3WZF47aaPTfVUDD0OINOq+WVwBZCRTqG+m0a5euX8EwlJ4jMY1Wxz0Ocj4xOeekJ70V22Pq0ll8RJw==} '@zag-js/accordion@1.43.3': resolution: {integrity: sha512-J6rGbMPXhYDa2dLgp66DPpwC3OcNAJH71kuGakz7SfCvQWiR9lIyB26G/QdSjJjf0rVARM8rN90e5PxZjYdWjA==} @@ -1480,8 +1484,8 @@ packages: '@zag-js/utils@1.43.3': resolution: {integrity: sha512-9P9fvFFxuiDcLqX0BYgGNkf0/a/id32nHvQpwgv/Xv3b9n5yeyw2U8nKefpWr+1VfFsrpf2XMXiA2CDSWZgt2g==} - ag-psd@31.0.2: - resolution: {integrity: sha512-5s5PvqbomPIIJ9YjL6robz55rT4RYPiQkww4brisyZEb5jzlHB1EKh47IJg7gIFj0RUrD0cMgdntM907qaZjXA==} + ag-psd@31.0.3: + resolution: {integrity: sha512-THDYK+WK1F5GOH4G0l4wkQRc0Cyq5tnxIwBezACKwa6idKygphnGgMISr4lmW6n0Q89ceoqpdPZQF3Y7TL1pgg==} assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} @@ -1491,8 +1495,8 @@ packages: resolution: {integrity: sha512-FvWoWYfSCM6kRxCSH+MGLHIKKGRL6A6AW7Zek2O32REPQRdg131428uRTKMBYAeRd3XXAaHDS60Wpri7CdKDrA==} engines: {node: '>=4'} - axe-core@4.13.0: - resolution: {integrity: sha512-UzGt8zg7Ny8djbYMhxl2zuEevVa7r2gJjYY5Lwr1xM7+XU2nd6CkIWFTVcCIbAP63vSz71NaVyyuSk9lHKcy0A==} + axe-core@4.14.0: + resolution: {integrity: sha512-9WTZxEjsZ7b13TH8JPmbV2z8CHbl80/2hm3XPEG4JgNdQLK81IBRXmSxHfMAOkSqQeRxT/0dwNDz2GOm3zzpcQ==} engines: {node: '>=4'} babel-plugin-macros@3.1.0: @@ -1505,8 +1509,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.11.23: - resolution: {integrity: sha512-le521dGVfxM7yRX0EikCoSz+rOK+hHzdDt/E7mG1jOJB/6WAAUuwVroLwaB7ApaUsz5Q0kFlDXLSA9MheUIfRQ==} + baseline-browser-mapping@2.11.31: + resolution: {integrity: sha512-b0k7wXlWjpuL/Uxb/pYlpjY0ej5BjAmurtPUk3eRGuloI4yjK32m8TiKUQ81l1ptcLjKS/KH2+uqIolZti1x4Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -1514,8 +1518,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.9: - resolution: {integrity: sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==} + browserslist@4.29.4: + resolution: {integrity: sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1523,11 +1527,11 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001810: - resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} + caniuse-lite@1.0.30001819: + resolution: {integrity: sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==} - chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + chai@6.3.0: + resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} engines: {node: '>=18'} chokidar@5.0.0: @@ -1620,11 +1624,11 @@ packages: resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} engines: {node: '>=12'} - electron-to-chromium@1.5.428: - resolution: {integrity: sha512-1JxbaFJj1bRKurj1uY3l4xxpU9kOUAUjcIgApj0qu1Pao5GhoIWI8iL0BeMYJ2njig1hBx0A7eKD9VGjH9wlHw==} + electron-to-chromium@1.5.463: + resolution: {integrity: sha512-nVWNU6ltFjopvOdD44J4zoBkgO0M+WZiFKKFV7EjebOH9z0KNphk6bCEjplXtJofL21ARIuuwWOCsFkBVklm6w==} - engine.io-client@6.6.6: - resolution: {integrity: sha512-iY6QdftLQ9pyiPoX082bpf/u1UewnOaJrtJIF9T0++QB34lZrj0uP+Q/bj8AlUsAxqhnkTV2BS8SBZSxOmoV5Q==} + engine.io-client@6.6.7: + resolution: {integrity: sha512-GyAvmPA7gnRCpDQbYACAy79Lg4ewevrmaPzySZz0OVvgyZc3gEfLLqPTYk8wVBScjOEpM9ZO4KryyFpVItjGEA==} engine.io-parser@5.2.3: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} @@ -1742,23 +1746,23 @@ packages: html-to-image@1.11.13: resolution: {integrity: sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg==} - i18next-http-backend@4.0.2: - resolution: {integrity: sha512-oay62dIB2kL7+WHzoUXBjWfL3+mwijD3pQkQkIEaRLhy6kjXxUhrRenV0gInwlCASAaJaDy94+XvYizK+cAGdA==} + i18next-http-backend@4.0.4: + resolution: {integrity: sha512-nG9OQKvUsPiTVUBg1rCGmvmWhzxC9GOxVbGdTYyejHVMSUjutt1hiBNVSzhB/ZE7keL9Xkb880kUfhDovV5T5g==} engines: {node: '>=18'} - i18next@26.4.2: - resolution: {integrity: sha512-RX+R0VLg13IbvRuJSxnqykUFS9vQZTl8wYpWPCIUDWVrSGjsQywB5Y+pjzrkboxGAuYfJZVH1InFTdgBdxq6ug==} + i18next@26.5.6: + resolution: {integrity: sha512-GFWrDwGmYhOQS3bKvjA2Ir2ob9ScEdyY1UbeQJ10jyVACGQ6XxmDYqC/lxEj/IPEJlPQYNRnYffDET6TM8mnFg==} peerDependencies: typescript: ^5 || ^6 || ^7 peerDependenciesMeta: typescript: optional: true - idb@8.0.3: - resolution: {integrity: sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==} + idb@8.0.4: + resolution: {integrity: sha512-jd0ITCrN+Zah4J7R/Z2jnR3W7A4BXDAjmo62MwWuSjxCiueUAf7X5rbodEdidWzeknwXHmLpdZkoiiCppNi30Q==} - ignore@7.0.12: - resolution: {integrity: sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==} + ignore@7.0.13: + resolution: {integrity: sha512-2E8Q6rh+1RRSq/YdaGsNfXsEZy9FVqv6BSSrkmZJP7BnaoPnRfKL+YaofPvP+5rzdk144qSm6i4+hvPgUcbV4Q==} engines: {node: '>= 4'} import-fresh@3.3.1: @@ -1768,8 +1772,8 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + is-core-module@2.17.0: + resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -1887,13 +1891,17 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@1.46.0: - resolution: {integrity: sha512-Bv+FZXgZPrxc/NCl1e7JJVQFLdiCxYgxNVhqoV7X0p6I8ADJo8DxBnK1auH0fZz4AmqOJ3jgneL4f1i8LJQRAA==} + lucide-react@1.61.0: + resolution: {integrity: sha512-v2SQPPPNjnr+BlhL9Spuzmo5yR+hLkftfuE4E3jaxdNPgSH0hJKPcLJBP7yAta87jQNPsSERS59PJjCJ/CorBA==} peerDependencies: + '@types/react': '*' react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - magic-string@1.3.1: - resolution: {integrity: sha512-rm91zr2Ou+XueDTohjQQjdQEcYM6zVi8KVUCG8Ec3vHwUEKrhSdCNyfuIywkA6hcCAteIn0ZOtAHA6eGpiX+Pg==} + magic-string@1.4.3: + resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==} merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -1910,38 +1918,41 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.19: - resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==} + nanoid@3.3.20: + resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - node-releases@2.0.55: - resolution: {integrity: sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==} + node-releases@2.0.60: + resolution: {integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==} engines: {node: '>=18'} - obug@2.2.1: - resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==} + obug@3.0.0: + resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} engines: {node: '>=12.20.0'} - oxfmt@0.68.0: - resolution: {integrity: sha512-Z0XMofcXCGUXbcpBHnWyUiX93BGiw1B+lcHNbQDWEtOhX06ewoFfu4zXkyiLhRrNnMq0twqXRHUcJetf+GsiQQ==} + oxfmt@0.74.0: + resolution: {integrity: sha512-G4OP7FgwGYZR5ttRpCOOfJdyRsSyvtn34vSXnjDq6Oqed5Dufg5mB44mank+51nAdHOKuTJ0lj0mksY7L+N61A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: + '@astrojs/compiler-rs': ^0.4.0 || ^0.5.0 svelte: ^5.0.0 vite-plus: '*' peerDependenciesMeta: + '@astrojs/compiler-rs': + optional: true svelte: optional: true vite-plus: optional: true - oxlint@1.83.0: - resolution: {integrity: sha512-cyDzSzaw3uzP0TeCeq3lLRPPoaUxkbB4ZOXj+kn+5r+BX9V+4bNVGk9lxer+WrgcpebH4JxLlJ3KQjveVztOLQ==} + oxlint@1.89.0: + resolution: {integrity: sha512-a25hkfo61okGPvJz432fRIPoxlKtNnOVy9w4rzrmGgNm4iVTPwpSQlmdqNWnp6p9QyyPVfAZRgnf5XvSBZFk/A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=7.0.2001' + oxlint-tsgolint: '>=7.0.2003' vite-plus: '*' peerDependenciesMeta: oxlint-tsgolint: @@ -1987,25 +1998,25 @@ packages: resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} engines: {node: '>=12'} - playwright-core@1.63.0: - resolution: {integrity: sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==} + playwright-core@1.64.1: + resolution: {integrity: sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==} engines: {node: '>=20'} hasBin: true - playwright@1.63.0: - resolution: {integrity: sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==} + playwright@1.64.1: + resolution: {integrity: sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==} engines: {node: '>=20'} hasBin: true - plotly.js-gl2d-dist-min@4.1.1: - resolution: {integrity: sha512-9CSoFzeOcmdXCCMBzuvUechnMPxB9I7rXKmJW+f8OukkOADG3VzgSRE9dzxNNdsDNzkERV6RcJivdxuCbmYrXA==} + plotly.js-gl2d-dist-min@4.1.2: + resolution: {integrity: sha512-X7Nf5mKgu/Erb2ZInXCTo+sW0GQ7yqrcXKUFp7sbYfTWUwkcBH8swu15egUK8rQI1B6wOptKdvXNCauak9ZicA==} pngjs@7.0.0: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} - postcss@8.5.28: - resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} + postcss@8.5.31: + resolution: {integrity: sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==} engines: {node: ^10 || ^12 || >=14} prettier@3.8.3: @@ -2022,10 +2033,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - react-dom@19.3.0: - resolution: {integrity: sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==} + react-dom@19.3.1: + resolution: {integrity: sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==} peerDependencies: - react: ^19.3.0 + react: ^19.3.1 react-hook-tanstack-virtual@0.0.4: resolution: {integrity: sha512-N6OnfdklUygY6K9Ik7SGZlAlc3uVOVm8kp3OP7d4m+0ELGgABm4W/f8kJPcda8CkgQUkFvDO8t8lOzbEsdJG3w==} @@ -2035,8 +2046,8 @@ packages: react: ^19.2.0 react-dom: ^19.2.0 - react-i18next@17.0.14: - resolution: {integrity: sha512-ZpMBfJL3BiXPuYHj5QMY1GwvKJNhE1vCxOJQ8BoMBdHP5XONTfi/Qss1nuRlnFdIl72PKo2jPmw+fxuLjRFgaQ==} + react-i18next@17.1.3: + resolution: {integrity: sha512-XfaTqU09NPuBDuADQ8TEPbE0Goc2Gh6FHu0qvdFWfOWCdGQWRxRY2Uo5tDPtGBdzu4COXp0LQCkQIYa0IhJXlA==} peerDependencies: i18next: '>= 26.2.0' react: '>= 16.8.0' @@ -2054,8 +2065,8 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react@19.3.0: - resolution: {integrity: sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==} + react@19.3.1: + resolution: {integrity: sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==} engines: {node: '>=0.10.0'} readdirp@5.1.1: @@ -2073,8 +2084,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + resolve@1.22.13: + resolution: {integrity: sha512-Dj/cW9zBV2aRj6XzCxuGIs3ESZKv02jixne3q6jFZYZ3/Tg09gHHviSMDL4kObh9pqSahdRHEnDoaP2gn8YLhA==} engines: {node: '>= 0.4'} hasBin: true @@ -2082,8 +2093,8 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown@1.2.8: - resolution: {integrity: sha512-Z67nTmhZe7anqnM/EjI392w5i/ANUinjip7QYsOyN37oayduxt3ksdX0hf5OOamkAd53BiIHfbfSzfUmzKFQqQ==} + rolldown@1.2.15: + resolution: {integrity: sha512-6odND+fel5zVw3I4Yc2e69gvguDnX0CAAGiNDZSq4ik5WUcaLrkD2GLuog0XcODbor31hZ5ayEMgVDno+KPV5g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2100,18 +2111,15 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - seroval-plugins@1.6.7: - resolution: {integrity: sha512-4Nk35ttD3DTDJW4hgw5StsVAPeU6qnDFnULAouw6tQ7oLTV/ICXrWpsXo2EE52eSP2joUMazbVf52mFEcADqRw==} - engines: {node: '>=10'} + seroval-plugins@1.7.0: + resolution: {integrity: sha512-WM4rArfPtLZriTuxC5DBvNulEwAaRcjNe/dkMOEesOcuvXf5nEwKf5Bw3AT92WHohqcc45+57GdtsCuBTI0mjw==} + engines: {node: '>=20'} peerDependencies: seroval: ^1.0 - seroval@1.6.7: - resolution: {integrity: sha512-AeDcLh0yO2SFm9W71essgnSzLV9DI8ZH0x0knXn2DMnUZj728mpLbxjlbB6IqKCmqh8JA3cEqRyGoNkt584JcQ==} - engines: {node: '>=10'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + seroval@1.7.0: + resolution: {integrity: sha512-FU+LUkmDzWNsJ6oubZFN3dGPKny53DRhPJG6nftEaXDL8MIn19+kEE1Gvc+63Go+qPOwVUlKIdKhsu2HN6tksw==} + engines: {node: '>=20'} sirv@3.0.2: resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} @@ -2124,8 +2132,8 @@ packages: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} - socket.io-client@4.8.3: - resolution: {integrity: sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==} + socket.io-client@4.8.4: + resolution: {integrity: sha512-7wjKAvVXYOJsbmUgkWbnhPD4bFpkqrUR0++XOjpGFmqDqsqV1CI93VTraeExLxpjxEqrWgFoSRZu1ihjLWfkAA==} engines: {node: '>=10.0.0'} socket.io-parser@4.2.7: @@ -2144,11 +2152,8 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - std-env@4.2.0: - resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} + std-env@4.3.0: + resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==} stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -2160,28 +2165,28 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinybench@6.1.4: - resolution: {integrity: sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ==} + tinybench@6.2.2: + resolution: {integrity: sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==} engines: {node: '>=20.0.0'} - tinyexec@1.3.0: - resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} + tinyexec@1.3.1: + resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} engines: {node: '>=18'} tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} - tinykeys@4.0.0: - resolution: {integrity: sha512-z5bQRQHL1PSx3lGOZEAMM2oKp0EBtn5T5f7HJnaKPOzk6vEH0wUPvdHLeQ7F4tmkek8AgoTQISUFmn/5SNF2xA==} + tinykeys@4.0.1: + resolution: {integrity: sha512-rClxhLQl+I5UMB5Ny7sfnZqDNa51u7h7h4gJV2UWslwADHEw75IuVPCnWrpO/otM7jHrHpwcZdRHd+//SiI55A==} engines: {node: '>=22'} - tinypool@2.1.2: - resolution: {integrity: sha512-9YodfrxS9g9IbFr/KOjE5bAeJ0p61n3bW6mqvy0jtoeKd1kTW1Cxm0oulm6KX2lyM9Gl6WIe8nEbY7LWv5ZJww==} + tinypool@2.2.0: + resolution: {integrity: sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ==} engines: {node: ^20.0.0 || >=22.0.0} - tinyrainbow@3.1.1: - resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==} + tinyrainbow@3.2.0: + resolution: {integrity: sha512-LgO3D9yZJjApUiuUfl9iFAwrtaX4+lok3wJIqttGoKCHlWUqHqbQpnxCf82L8FjgKsh4iGo78hqJwgL8F6To2A==} engines: {node: '>=14.0.0'} to-regex-range@5.0.1: @@ -2203,16 +2208,16 @@ packages: undici-types@8.9.0: resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} - undici@7.30.0: - resolution: {integrity: sha512-dkrQXeHSaoamnItlYbmzG0wFYrM0ZwDxCIg0A7aKjTyyhh9svRzCNFEzV+Vm05/yehjCzjDZ31KXfGEjYSztDQ==} + undici@7.30.1: + resolution: {integrity: sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg==} engines: {node: '>=20.18.1'} unicorn-magic@0.4.1: resolution: {integrity: sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==} engines: {node: '>=20'} - update-browserslist-db@1.3.3: - resolution: {integrity: sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==} + update-browserslist-db@1.3.4: + resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2225,13 +2230,13 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - vite@8.3.0: - resolution: {integrity: sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==} + vite@8.3.5: + resolution: {integrity: sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.7.1 + '@vitejs/devtools': ^0.7.1 || ^0.8.0 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -2268,20 +2273,20 @@ packages: yaml: optional: true - vitest@5.0.0: - resolution: {integrity: sha512-gpsMNoRhMjMktVxPtstOH4/PJuPyovVaMDr4oDilXaGH1EcqM2OE96SoHT2VIQ6fTGtTjqmHDrEu2X9RQiXf8Q==} + vitest@5.0.5: + resolution: {integrity: sha512-cPODOMF8YnkiiYtDdHo6n4wWmBrOBBbOIYH2d33M4l3CdNn72h+qMmO6uXffUN6A5AZFXNND/d+krS9mgkXRfg==} engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 5.0.0 - '@vitest/browser-preview': 5.0.0 + '@vitest/browser-playwright': 5.0.5 + '@vitest/browser-preview': 5.0.5 '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0 - '@vitest/coverage-istanbul': 5.0.0 - '@vitest/coverage-v8': 5.0.0 - '@vitest/ui': 5.0.0 + '@vitest/coverage-istanbul': 5.0.5 + '@vitest/coverage-v8': 5.0.5 + '@vitest/ui': 5.0.5 happy-dom: '*' jsdom: '*' vite: ^6.4.0 || ^7.0.0 || ^8.0.0 @@ -2309,9 +2314,9 @@ packages: jsdom: optional: true - why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} + why-is-node-running@3.2.1: + resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==} + engines: {node: '>=20.11'} hasBin: true ws@8.21.3: @@ -2326,6 +2331,18 @@ packages: utf-8-validate: optional: true + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xmlhttprequest-ssl@2.1.2: resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} engines: {node: '>=0.4.0'} @@ -2345,8 +2362,8 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.6.5: - resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} + zod@4.6.7: + resolution: {integrity: sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==} zustand@4.5.7: resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} @@ -2365,7 +2382,7 @@ packages: snapshots: - '@ark-ui/react@5.39.0(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@ark-ui/react@5.39.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: '@internationalized/date': 3.12.3 '@zag-js/accordion': 1.43.3 @@ -2416,7 +2433,7 @@ snapshots: '@zag-js/qr-code': 1.43.3 '@zag-js/radio-group': 1.43.3 '@zag-js/rating-group': 1.43.3 - '@zag-js/react': 1.43.3(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + '@zag-js/react': 1.43.3(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@zag-js/scroll-area': 1.43.3 '@zag-js/select': 1.43.3 '@zag-js/signature-pad': 1.43.3 @@ -2436,8 +2453,8 @@ snapshots: '@zag-js/tree-view': 1.43.3 '@zag-js/types': 1.43.3 '@zag-js/utils': 1.43.3 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) '@babel/code-frame@7.29.7': dependencies: @@ -2453,10 +2470,10 @@ snapshots: '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.8 + '@babel/helpers': 7.29.10 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 @@ -2469,7 +2486,7 @@ snapshots: '@babel/generator@7.29.8': dependencies: - '@babel/parser': 7.29.8 + '@babel/parser': 7.29.9 '@babel/types': 7.29.8 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -2483,7 +2500,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.9 + browserslist: 4.29.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -2495,7 +2512,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -2504,14 +2521,14 @@ snapshots: '@babel/helper-member-expression-to-functions@7.29.7': dependencies: - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.29.7': dependencies: - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -2521,7 +2538,7 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color @@ -2536,13 +2553,13 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-member-expression-to-functions': 7.29.7 '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.29.7': dependencies: - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.10 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -2553,12 +2570,12 @@ snapshots: '@babel/helper-validator-option@7.29.7': {} - '@babel/helpers@7.29.7': + '@babel/helpers@7.29.10': dependencies: '@babel/template': 7.29.7 '@babel/types': 7.29.8 - '@babel/parser@7.29.8': + '@babel/parser@7.29.9': dependencies: '@babel/types': 7.29.8 @@ -2578,20 +2595,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.29.7': {} + '@babel/runtime@7.29.10': {} '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.8 + '@babel/parser': 7.29.9 '@babel/types': 7.29.8 - '@babel/traverse@7.29.8': + '@babel/traverse@7.29.10': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.8 '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.8 + '@babel/parser': 7.29.9 '@babel/template': 7.29.7 '@babel/types': 7.29.8 debug: 4.4.3 @@ -2605,12 +2622,12 @@ snapshots: '@blazediff/core@1.10.0': {} - '@chakra-ui/cli@3.37.0(@chakra-ui/react@3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.0))(react-dom@19.3.0(react@19.3.0))(react@19.3.0))': + '@chakra-ui/cli@3.37.0(@chakra-ui/react@3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.1))(react-dom@19.3.1(react@19.3.1))(react@19.3.1))': dependencies: '@babel/core': 7.29.7 - '@babel/parser': 7.29.8 + '@babel/parser': 7.29.9 '@babel/plugin-transform-typescript': 7.29.9(@babel/core@7.29.7) - '@chakra-ui/react': 3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.0))(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + '@chakra-ui/react': 3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.1))(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@clack/prompts': 1.5.1 '@pandacss/is-valid-prop': 1.11.1 '@types/babel__core': 7.20.5 @@ -2630,23 +2647,23 @@ snapshots: prettier: 3.8.3 recast: 0.23.21 scule: 1.3.0 - undici: 7.30.0 + undici: 7.30.1 zod: 3.25.76 transitivePeerDependencies: - supports-color - '@chakra-ui/react@3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.0))(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@chakra-ui/react@3.37.0(@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.1))(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: - '@ark-ui/react': 5.39.0(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + '@ark-ui/react': 5.39.0(react-dom@19.3.1(react@19.3.1))(react@19.3.1) '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.3.0)(react@19.3.0) + '@emotion/react': 11.14.0(@types/react@19.3.0)(react@19.3.1) '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.3.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.3.1) '@emotion/utils': 1.4.2 '@pandacss/is-valid-prop': 1.12.1 csstype: 3.2.3 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) '@clack/core@1.4.1': dependencies: @@ -2660,42 +2677,42 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@dnd-kit/accessibility@3.1.1(react@19.3.0)': + '@dnd-kit/accessibility@3.1.1(react@19.3.1)': dependencies: - react: 19.3.0 + react: 19.3.1 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@dnd-kit/core@6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.3.0) - '@dnd-kit/utilities': 3.2.2(react@19.3.0) - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + '@dnd-kit/accessibility': 3.1.1(react@19.3.1) + '@dnd-kit/utilities': 3.2.2(react@19.3.1) + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) tslib: 2.8.1 - '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(react@19.3.0)': + '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(react@19.3.1)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0) - '@dnd-kit/utilities': 3.2.2(react@19.3.0) - react: 19.3.0 + '@dnd-kit/core': 6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1) + '@dnd-kit/utilities': 3.2.2(react@19.3.1) + react: 19.3.1 tslib: 2.8.1 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(react@19.3.0)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(react@19.3.1)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0) - '@dnd-kit/utilities': 3.2.2(react@19.3.0) - react: 19.3.0 + '@dnd-kit/core': 6.3.1(react-dom@19.3.1(react@19.3.1))(react@19.3.1) + '@dnd-kit/utilities': 3.2.2(react@19.3.1) + react: 19.3.1 tslib: 2.8.1 - '@dnd-kit/utilities@3.2.2(react@19.3.0)': + '@dnd-kit/utilities@3.2.2(react@19.3.1)': dependencies: - react: 19.3.0 + react: 19.3.1 tslib: 2.8.1 '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.29.7 - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.29.10 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -2724,17 +2741,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.0)': + '@emotion/react@11.14.0(@types/react@19.3.0)(react@19.3.1)': dependencies: - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.29.10 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.3.0) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.3.1) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.3.0 + react: 19.3.1 optionalDependencies: '@types/react': 19.3.0 transitivePeerDependencies: @@ -2752,9 +2769,9 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.3.0)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.3.1)': dependencies: - react: 19.3.0 + react: 19.3.1 '@emotion/utils@1.4.2': {} @@ -2890,120 +2907,120 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.3 - '@oxc-project/types@0.149.0': {} + '@oxc-project/types@0.155.0': {} - '@oxfmt/binding-android-arm-eabi@0.68.0': + '@oxfmt/binding-android-arm-eabi@0.74.0': optional: true - '@oxfmt/binding-android-arm64@0.68.0': + '@oxfmt/binding-android-arm64@0.74.0': optional: true - '@oxfmt/binding-darwin-arm64@0.68.0': + '@oxfmt/binding-darwin-arm64@0.74.0': optional: true - '@oxfmt/binding-darwin-x64@0.68.0': + '@oxfmt/binding-darwin-x64@0.74.0': optional: true - '@oxfmt/binding-freebsd-x64@0.68.0': + '@oxfmt/binding-freebsd-x64@0.74.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.68.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.74.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.68.0': + '@oxfmt/binding-linux-arm-musleabihf@0.74.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.68.0': + '@oxfmt/binding-linux-arm64-gnu@0.74.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.68.0': + '@oxfmt/binding-linux-arm64-musl@0.74.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.68.0': + '@oxfmt/binding-linux-ppc64-gnu@0.74.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.68.0': + '@oxfmt/binding-linux-riscv64-gnu@0.74.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.68.0': + '@oxfmt/binding-linux-riscv64-musl@0.74.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.68.0': + '@oxfmt/binding-linux-s390x-gnu@0.74.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.68.0': + '@oxfmt/binding-linux-x64-gnu@0.74.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.68.0': + '@oxfmt/binding-linux-x64-musl@0.74.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.68.0': + '@oxfmt/binding-openharmony-arm64@0.74.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.68.0': + '@oxfmt/binding-win32-arm64-msvc@0.74.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.68.0': + '@oxfmt/binding-win32-ia32-msvc@0.74.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.68.0': + '@oxfmt/binding-win32-x64-msvc@0.74.0': optional: true - '@oxlint/binding-android-arm-eabi@1.83.0': + '@oxlint/binding-android-arm-eabi@1.89.0': optional: true - '@oxlint/binding-android-arm64@1.83.0': + '@oxlint/binding-android-arm64@1.89.0': optional: true - '@oxlint/binding-darwin-arm64@1.83.0': + '@oxlint/binding-darwin-arm64@1.89.0': optional: true - '@oxlint/binding-darwin-x64@1.83.0': + '@oxlint/binding-darwin-x64@1.89.0': optional: true - '@oxlint/binding-freebsd-x64@1.83.0': + '@oxlint/binding-freebsd-x64@1.89.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.83.0': + '@oxlint/binding-linux-arm-gnueabihf@1.89.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.83.0': + '@oxlint/binding-linux-arm-musleabihf@1.89.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.83.0': + '@oxlint/binding-linux-arm64-gnu@1.89.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.83.0': + '@oxlint/binding-linux-arm64-musl@1.89.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.83.0': + '@oxlint/binding-linux-ppc64-gnu@1.89.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.83.0': + '@oxlint/binding-linux-riscv64-gnu@1.89.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.83.0': + '@oxlint/binding-linux-riscv64-musl@1.89.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.83.0': + '@oxlint/binding-linux-s390x-gnu@1.89.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.83.0': + '@oxlint/binding-linux-x64-gnu@1.89.0': optional: true - '@oxlint/binding-linux-x64-musl@1.83.0': + '@oxlint/binding-linux-x64-musl@1.89.0': optional: true - '@oxlint/binding-openharmony-arm64@1.83.0': + '@oxlint/binding-openharmony-arm64@1.89.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.83.0': + '@oxlint/binding-win32-arm64-msvc@1.89.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.83.0': + '@oxlint/binding-win32-ia32-msvc@1.89.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.83.0': + '@oxlint/binding-win32-x64-msvc@1.89.0': optional: true '@pandacss/is-valid-prop@1.11.1': {} @@ -3012,59 +3029,59 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@rolldown/binding-android-arm-eabi@1.2.8': + '@rolldown/binding-android-arm-eabi@1.2.15': optional: true - '@rolldown/binding-android-arm64@1.2.8': + '@rolldown/binding-android-arm64@1.2.15': optional: true - '@rolldown/binding-darwin-arm64@1.2.8': + '@rolldown/binding-darwin-arm64@1.2.15': optional: true - '@rolldown/binding-darwin-x64@1.2.8': + '@rolldown/binding-darwin-x64@1.2.15': optional: true - '@rolldown/binding-freebsd-x64@1.2.8': + '@rolldown/binding-freebsd-x64@1.2.15': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.8': + '@rolldown/binding-linux-arm-gnueabihf@1.2.15': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.8': + '@rolldown/binding-linux-arm64-gnu@1.2.15': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.8': + '@rolldown/binding-linux-arm64-musl@1.2.15': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.8': + '@rolldown/binding-linux-ppc64-gnu@1.2.15': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.8': + '@rolldown/binding-linux-s390x-gnu@1.2.15': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.8': + '@rolldown/binding-linux-x64-gnu@1.2.15': optional: true - '@rolldown/binding-linux-x64-musl@1.2.8': + '@rolldown/binding-linux-x64-musl@1.2.15': optional: true - '@rolldown/binding-openharmony-arm64@1.2.8': + '@rolldown/binding-openharmony-arm64@1.2.15': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.8': + '@rolldown/binding-win32-arm64-msvc@1.2.15': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.8': + '@rolldown/binding-win32-x64-msvc@1.2.15': optional: true - '@rolldown/plugin-babel@0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.8)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))': + '@rolldown/plugin-babel@0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.10)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.7 picomatch: 4.0.7 - rolldown: 1.2.8 + rolldown: 1.2.15 optionalDependencies: - '@babel/runtime': 7.29.7 - vite: 8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1) + '@babel/runtime': 7.29.10 + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) '@rolldown/pluginutils@1.0.1': {} @@ -3076,51 +3093,53 @@ snapshots: dependencies: tslib: 2.8.1 - '@tanstack/history@1.162.4': {} + '@tanstack/history@1.162.5': {} - '@tanstack/query-core@5.102.8': {} + '@tanstack/query-core@5.104.5': {} - '@tanstack/react-query@5.102.8(react@19.3.0)': + '@tanstack/react-query@5.104.5(@types/react@19.3.0)(react@19.3.1)': dependencies: - '@tanstack/query-core': 5.102.8 - react: 19.3.0 + '@tanstack/query-core': 5.104.5 + react: 19.3.1 + optionalDependencies: + '@types/react': 19.3.0 - '@tanstack/react-router@1.170.36(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@tanstack/react-router@1.170.46(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: - '@tanstack/history': 1.162.4 - '@tanstack/react-store': 0.11.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0) - '@tanstack/router-core': 1.171.30 + '@tanstack/history': 1.162.5 + '@tanstack/react-store': 0.11.2(react-dom@19.3.1(react@19.3.1))(react@19.3.1) + '@tanstack/router-core': 1.171.39 isbot: 5.2.2 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) - '@tanstack/react-store@0.11.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@tanstack/react-store@0.11.2(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: - '@tanstack/store': 0.11.1 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) - use-sync-external-store: 1.7.0(react@19.3.0) + '@tanstack/store': 0.11.2 + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) + use-sync-external-store: 1.7.0(react@19.3.1) - '@tanstack/react-virtual@3.14.13(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@tanstack/react-virtual@3.14.22(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: - '@tanstack/virtual-core': 3.17.11 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + '@tanstack/virtual-core': 3.19.7 + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) - '@tanstack/router-core@1.171.30': + '@tanstack/router-core@1.171.39': dependencies: - '@tanstack/history': 1.162.4 + '@tanstack/history': 1.162.5 cookie-es: 3.1.1 - seroval: 1.6.7 - seroval-plugins: 1.6.7(seroval@1.6.7) + seroval: 1.7.0 + seroval-plugins: 1.7.0(seroval@1.7.0) - '@tanstack/store@0.11.1': {} + '@tanstack/store@0.11.2': {} - '@tanstack/virtual-core@3.17.11': {} + '@tanstack/virtual-core@3.19.7': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.8 + '@babel/parser': 7.29.9 '@babel/types': 7.29.8 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -3132,7 +3151,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.8 + '@babel/parser': 7.29.9 '@babel/types': 7.29.8 '@types/babel__traverse@7.28.0': @@ -3150,22 +3169,22 @@ snapshots: '@types/d3-drag@3.0.7': dependencies: - '@types/d3-selection': 3.0.11 + '@types/d3-selection': 3.0.12 '@types/d3-interpolate@3.0.4': dependencies: '@types/d3-color': 3.1.3 - '@types/d3-selection@3.0.11': {} + '@types/d3-selection@3.0.12': {} '@types/d3-transition@3.0.9': dependencies: - '@types/d3-selection': 3.0.11 + '@types/d3-selection': 3.0.12 - '@types/d3-zoom@3.0.8': + '@types/d3-zoom@3.0.9': dependencies: '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.11 + '@types/d3-selection': 3.0.12 '@types/debug@4.1.13': dependencies: @@ -3177,13 +3196,13 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@26.5.1': + '@types/node@26.6.5': dependencies: undici-types: 8.9.0 '@types/parse-json@4.0.2': {} - '@types/plotly.js@3.0.13': {} + '@types/plotly.js@3.0.15': {} '@types/react-dom@19.3.0(@types/react@19.3.0)': dependencies: @@ -3257,96 +3276,96 @@ snapshots: '@visulima/boxen@2.0.10': {} - '@vitejs/plugin-react@6.1.1(@rolldown/plugin-babel@0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.8)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)))(babel-plugin-react-compiler@1.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))': + '@vitejs/plugin-react@6.1.2(@rolldown/plugin-babel@0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.10)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)))(babel-plugin-react-compiler@1.0.0)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) optionalDependencies: - '@rolldown/plugin-babel': 0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.7)(rolldown@1.2.8)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) + '@rolldown/plugin-babel': 0.2.4(@babel/core@7.29.7)(@babel/runtime@7.29.10)(rolldown@1.2.15)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) babel-plugin-react-compiler: 1.0.0 - '@vitest/browser-playwright@5.0.0(playwright@1.63.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.0)': + '@vitest/browser-playwright@5.0.5(playwright@1.64.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.5)': dependencies: - '@vitest/browser': 5.0.0(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.0) - '@vitest/mocker': 5.0.0(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) - playwright: 1.63.0 - tinyrainbow: 3.1.1 - vitest: 5.0.0(@types/node@26.5.1)(@vitest/browser-playwright@5.0.0)(@vitest/ui@5.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) + '@vitest/browser': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.5) + '@vitest/mocker': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + playwright: 1.64.1 + tinyrainbow: 3.2.0 + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-playwright@5.0.5)(@vitest/ui@5.0.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@5.0.0(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.0)': + '@vitest/browser@5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.5)': dependencies: '@blazediff/core': 1.10.0 - '@vitest/mocker': 5.0.0(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) - '@vitest/ui': 5.0.0(vitest@5.0.0) - '@vitest/utils': 5.0.0 - magic-string: 1.3.1 + '@vitest/mocker': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + '@vitest/ui': 5.0.5(vitest@5.0.5) + '@vitest/utils': 5.0.5 + magic-string: 1.4.3 pngjs: 7.0.0 sirv: 3.0.2 - tinyrainbow: 3.1.1 - vitest: 5.0.0(@types/node@26.5.1)(@vitest/browser-playwright@5.0.0)(@vitest/ui@5.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) - ws: 8.21.3 + tinyrainbow: 3.2.0 + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-playwright@5.0.5)(@vitest/ui@5.0.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + ws: 8.22.0 transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/mocker@5.0.0(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))': + '@vitest/mocker@5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))': dependencies: '@jridgewell/trace-mapping': 0.3.31 - '@vitest/spy': 5.0.0 + '@vitest/spy': 5.0.5 estree-walker: 3.0.3 - magic-string: 1.3.1 + magic-string: 1.4.3 optionalDependencies: - vite: 8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1) + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) - '@vitest/pretty-format@5.0.0': + '@vitest/pretty-format@5.0.5': dependencies: - tinyrainbow: 3.1.1 + tinyrainbow: 3.2.0 - '@vitest/spy@5.0.0': {} + '@vitest/spy@5.0.5': {} - '@vitest/ui@5.0.0(vitest@5.0.0)': + '@vitest/ui@5.0.5(vitest@5.0.5)': dependencies: - '@vitest/utils': 5.0.0 + '@vitest/utils': 5.0.5 fflate: 0.8.3 flatted: 3.4.4 pathe: 2.0.3 sirv: 3.0.2 - tinyrainbow: 3.1.1 - vitest: 5.0.0(@types/node@26.5.1)(@vitest/browser-playwright@5.0.0)(@vitest/ui@5.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) + tinyrainbow: 3.2.0 + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-playwright@5.0.5)(@vitest/ui@5.0.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) - '@vitest/utils@5.0.0': + '@vitest/utils@5.0.5': dependencies: - '@vitest/pretty-format': 5.0.0 + '@vitest/pretty-format': 5.0.5 convert-source-map: 2.0.0 - tinyrainbow: 3.1.1 + tinyrainbow: 3.2.0 - '@xyflow/react@12.11.6(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@xyflow/react@12.12.0(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: - '@xyflow/system': 0.0.82 + '@xyflow/system': 0.0.83 classcat: 5.0.5 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) - zustand: 4.5.7(@types/react@19.3.0)(react@19.3.0) + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) + zustand: 4.5.7(@types/react@19.3.0)(react@19.3.1) optionalDependencies: '@types/react': 19.3.0 '@types/react-dom': 19.3.0(@types/react@19.3.0) transitivePeerDependencies: - immer - '@xyflow/system@0.0.82': + '@xyflow/system@0.0.83': dependencies: '@types/d3-drag': 3.0.7 '@types/d3-interpolate': 3.0.4 - '@types/d3-selection': 3.0.11 + '@types/d3-selection': 3.0.12 '@types/d3-transition': 3.0.9 - '@types/d3-zoom': 3.0.8 + '@types/d3-zoom': 3.0.9 d3-drag: 3.0.0 d3-interpolate: 3.0.1 d3-selection: 3.0.0 @@ -3747,14 +3766,14 @@ snapshots: '@zag-js/types': 1.43.3 '@zag-js/utils': 1.43.3 - '@zag-js/react@1.43.3(react-dom@19.3.0(react@19.3.0))(react@19.3.0)': + '@zag-js/react@1.43.3(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': dependencies: '@zag-js/core': 1.43.3 '@zag-js/store': 1.43.3 '@zag-js/types': 1.43.3 '@zag-js/utils': 1.43.3 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) '@zag-js/rect-utils@1.43.3': {} @@ -3929,7 +3948,7 @@ snapshots: '@zag-js/utils@1.43.3': {} - ag-psd@31.0.2: + ag-psd@31.0.3: dependencies: base64-js: 1.5.1 pako: 2.1.0 @@ -3940,13 +3959,13 @@ snapshots: dependencies: tslib: 2.8.1 - axe-core@4.13.0: {} + axe-core@4.14.0: {} babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.29.10 cosmiconfig: 7.1.0 - resolve: 1.22.12 + resolve: 1.22.13 babel-plugin-react-compiler@1.0.0: dependencies: @@ -3954,25 +3973,25 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.11.23: {} + baseline-browser-mapping@2.11.31: {} braces@3.0.3: dependencies: fill-range: 7.1.1 - browserslist@4.28.9: + browserslist@4.29.4: dependencies: - baseline-browser-mapping: 2.11.23 - caniuse-lite: 1.0.30001810 - electron-to-chromium: 1.5.428 - node-releases: 2.0.55 - update-browserslist-db: 1.3.3(browserslist@4.28.9) + baseline-browser-mapping: 2.11.31 + caniuse-lite: 1.0.30001819 + electron-to-chromium: 1.5.463 + node-releases: 2.0.60 + update-browserslist-db: 1.3.4(browserslist@4.29.4) callsites@3.1.0: {} - caniuse-lite@1.0.30001810: {} + caniuse-lite@1.0.30001819: {} - chai@6.2.2: {} + chai@6.3.0: {} chokidar@5.0.0: dependencies: @@ -4048,9 +4067,9 @@ snapshots: dotenv@17.4.2: {} - electron-to-chromium@1.5.428: {} + electron-to-chromium@1.5.463: {} - engine.io-client@6.6.6: + engine.io-client@6.6.7: dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3 @@ -4170,7 +4189,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 4.0.0 fast-glob: 3.3.3 - ignore: 7.0.12 + ignore: 7.0.13 is-path-inside: 4.0.0 slash: 5.1.0 unicorn-magic: 0.4.1 @@ -4187,15 +4206,15 @@ snapshots: html-to-image@1.11.13: {} - i18next-http-backend@4.0.2: {} + i18next-http-backend@4.0.4: {} - i18next@26.4.2(typescript@7.0.2): + i18next@26.5.6(typescript@7.0.2): optionalDependencies: typescript: 7.0.2 - idb@8.0.3: {} + idb@8.0.4: {} - ignore@7.0.12: {} + ignore@7.0.13: {} import-fresh@3.3.1: dependencies: @@ -4204,7 +4223,7 @@ snapshots: is-arrayish@0.2.1: {} - is-core-module@2.16.2: + is-core-module@2.17.0: dependencies: hasown: 2.0.4 @@ -4285,11 +4304,13 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@1.46.0(react@19.3.0): + lucide-react@1.61.0(@types/react@19.3.0)(react@19.3.1): dependencies: - react: 19.3.0 + react: 19.3.1 + optionalDependencies: + '@types/react': 19.3.0 - magic-string@1.3.1: + magic-string@1.4.3: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -4304,57 +4325,57 @@ snapshots: ms@2.1.3: {} - nanoid@3.3.19: {} + nanoid@3.3.20: {} - node-releases@2.0.55: {} + node-releases@2.0.60: {} - obug@2.2.1: {} + obug@3.0.0: {} - oxfmt@0.68.0: + oxfmt@0.74.0: dependencies: - tinypool: 2.1.2 + tinypool: 2.2.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.68.0 - '@oxfmt/binding-android-arm64': 0.68.0 - '@oxfmt/binding-darwin-arm64': 0.68.0 - '@oxfmt/binding-darwin-x64': 0.68.0 - '@oxfmt/binding-freebsd-x64': 0.68.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.68.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.68.0 - '@oxfmt/binding-linux-arm64-gnu': 0.68.0 - '@oxfmt/binding-linux-arm64-musl': 0.68.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.68.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.68.0 - '@oxfmt/binding-linux-riscv64-musl': 0.68.0 - '@oxfmt/binding-linux-s390x-gnu': 0.68.0 - '@oxfmt/binding-linux-x64-gnu': 0.68.0 - '@oxfmt/binding-linux-x64-musl': 0.68.0 - '@oxfmt/binding-openharmony-arm64': 0.68.0 - '@oxfmt/binding-win32-arm64-msvc': 0.68.0 - '@oxfmt/binding-win32-ia32-msvc': 0.68.0 - '@oxfmt/binding-win32-x64-msvc': 0.68.0 - - oxlint@1.83.0: + '@oxfmt/binding-android-arm-eabi': 0.74.0 + '@oxfmt/binding-android-arm64': 0.74.0 + '@oxfmt/binding-darwin-arm64': 0.74.0 + '@oxfmt/binding-darwin-x64': 0.74.0 + '@oxfmt/binding-freebsd-x64': 0.74.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.74.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.74.0 + '@oxfmt/binding-linux-arm64-gnu': 0.74.0 + '@oxfmt/binding-linux-arm64-musl': 0.74.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.74.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.74.0 + '@oxfmt/binding-linux-riscv64-musl': 0.74.0 + '@oxfmt/binding-linux-s390x-gnu': 0.74.0 + '@oxfmt/binding-linux-x64-gnu': 0.74.0 + '@oxfmt/binding-linux-x64-musl': 0.74.0 + '@oxfmt/binding-openharmony-arm64': 0.74.0 + '@oxfmt/binding-win32-arm64-msvc': 0.74.0 + '@oxfmt/binding-win32-ia32-msvc': 0.74.0 + '@oxfmt/binding-win32-x64-msvc': 0.74.0 + + oxlint@1.89.0: optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.83.0 - '@oxlint/binding-android-arm64': 1.83.0 - '@oxlint/binding-darwin-arm64': 1.83.0 - '@oxlint/binding-darwin-x64': 1.83.0 - '@oxlint/binding-freebsd-x64': 1.83.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.83.0 - '@oxlint/binding-linux-arm-musleabihf': 1.83.0 - '@oxlint/binding-linux-arm64-gnu': 1.83.0 - '@oxlint/binding-linux-arm64-musl': 1.83.0 - '@oxlint/binding-linux-ppc64-gnu': 1.83.0 - '@oxlint/binding-linux-riscv64-gnu': 1.83.0 - '@oxlint/binding-linux-riscv64-musl': 1.83.0 - '@oxlint/binding-linux-s390x-gnu': 1.83.0 - '@oxlint/binding-linux-x64-gnu': 1.83.0 - '@oxlint/binding-linux-x64-musl': 1.83.0 - '@oxlint/binding-openharmony-arm64': 1.83.0 - '@oxlint/binding-win32-arm64-msvc': 1.83.0 - '@oxlint/binding-win32-ia32-msvc': 1.83.0 - '@oxlint/binding-win32-x64-msvc': 1.83.0 + '@oxlint/binding-android-arm-eabi': 1.89.0 + '@oxlint/binding-android-arm64': 1.89.0 + '@oxlint/binding-darwin-arm64': 1.89.0 + '@oxlint/binding-darwin-x64': 1.89.0 + '@oxlint/binding-freebsd-x64': 1.89.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.89.0 + '@oxlint/binding-linux-arm-musleabihf': 1.89.0 + '@oxlint/binding-linux-arm64-gnu': 1.89.0 + '@oxlint/binding-linux-arm64-musl': 1.89.0 + '@oxlint/binding-linux-ppc64-gnu': 1.89.0 + '@oxlint/binding-linux-riscv64-gnu': 1.89.0 + '@oxlint/binding-linux-riscv64-musl': 1.89.0 + '@oxlint/binding-linux-s390x-gnu': 1.89.0 + '@oxlint/binding-linux-x64-gnu': 1.89.0 + '@oxlint/binding-linux-x64-musl': 1.89.0 + '@oxlint/binding-openharmony-arm64': 1.89.0 + '@oxlint/binding-win32-arm64-msvc': 1.89.0 + '@oxlint/binding-win32-ia32-msvc': 1.89.0 + '@oxlint/binding-win32-x64-msvc': 1.89.0 package-manager-detector@1.6.0: {} @@ -4385,19 +4406,19 @@ snapshots: picomatch@4.0.7: {} - playwright-core@1.63.0: {} + playwright-core@1.64.1: {} - playwright@1.63.0: + playwright@1.64.1: dependencies: - playwright-core: 1.63.0 + playwright-core: 1.64.1 - plotly.js-gl2d-dist-min@4.1.1: {} + plotly.js-gl2d-dist-min@4.1.2: {} pngjs@7.0.0: {} - postcss@8.5.28: + postcss@8.5.31: dependencies: - nanoid: 3.3.19 + nanoid: 3.3.20 picocolors: 1.1.1 source-map-js: 1.2.2 @@ -4411,32 +4432,32 @@ snapshots: queue-microtask@1.2.3: {} - react-dom@19.3.0(react@19.3.0): + react-dom@19.3.1(react@19.3.1): dependencies: - react: 19.3.0 + react: 19.3.1 scheduler: 0.28.0 - react-hook-tanstack-virtual@0.0.4(patch_hash=6e0c46d85d50489bc6f6a0350c74c496a26fb3652c08061377650d9a40872da0)(@tanstack/react-virtual@3.14.13(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(@tanstack/virtual-core@3.17.11)(react-dom@19.3.0(react@19.3.0))(react@19.3.0): + react-hook-tanstack-virtual@0.0.4(patch_hash=a650424c322ec56178110e945f70d9e11d270c144f2c0df5527ba7d327ccb285)(@tanstack/react-virtual@3.14.22(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(@tanstack/virtual-core@3.19.7)(react-dom@19.3.1(react@19.3.1))(react@19.3.1): dependencies: - '@tanstack/react-virtual': 3.14.13(react-dom@19.3.0(react@19.3.0))(react@19.3.0) - '@tanstack/virtual-core': 3.17.11 - react: 19.3.0 - react-dom: 19.3.0(react@19.3.0) + '@tanstack/react-virtual': 3.14.22(react-dom@19.3.1(react@19.3.1))(react@19.3.1) + '@tanstack/virtual-core': 3.19.7 + react: 19.3.1 + react-dom: 19.3.1(react@19.3.1) - react-i18next@17.0.14(i18next@26.4.2(typescript@7.0.2))(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(typescript@7.0.2): + react-i18next@17.1.3(i18next@26.5.6(typescript@7.0.2))(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(typescript@7.0.2): dependencies: - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.29.10 html-parse-stringify: 4.0.1 - i18next: 26.4.2(typescript@7.0.2) - react: 19.3.0 - use-sync-external-store: 1.7.0(react@19.3.0) + i18next: 26.5.6(typescript@7.0.2) + react: 19.3.1 + use-sync-external-store: 1.7.0(react@19.3.1) optionalDependencies: - react-dom: 19.3.0(react@19.3.0) + react-dom: 19.3.1(react@19.3.1) typescript: 7.0.2 react-is@16.13.1: {} - react@19.3.0: {} + react@19.3.1: {} readdirp@5.1.1: {} @@ -4452,35 +4473,35 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.12: + resolve@1.22.13: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.2 + is-core-module: 2.17.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 reusify@1.1.0: {} - rolldown@1.2.8: + rolldown@1.2.15: dependencies: - '@oxc-project/types': 0.149.0 + '@oxc-project/types': 0.155.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm-eabi': 1.2.8 - '@rolldown/binding-android-arm64': 1.2.8 - '@rolldown/binding-darwin-arm64': 1.2.8 - '@rolldown/binding-darwin-x64': 1.2.8 - '@rolldown/binding-freebsd-x64': 1.2.8 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.8 - '@rolldown/binding-linux-arm64-gnu': 1.2.8 - '@rolldown/binding-linux-arm64-musl': 1.2.8 - '@rolldown/binding-linux-ppc64-gnu': 1.2.8 - '@rolldown/binding-linux-s390x-gnu': 1.2.8 - '@rolldown/binding-linux-x64-gnu': 1.2.8 - '@rolldown/binding-linux-x64-musl': 1.2.8 - '@rolldown/binding-openharmony-arm64': 1.2.8 - '@rolldown/binding-win32-arm64-msvc': 1.2.8 - '@rolldown/binding-win32-x64-msvc': 1.2.8 + '@rolldown/binding-android-arm-eabi': 1.2.15 + '@rolldown/binding-android-arm64': 1.2.15 + '@rolldown/binding-darwin-arm64': 1.2.15 + '@rolldown/binding-darwin-x64': 1.2.15 + '@rolldown/binding-freebsd-x64': 1.2.15 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.15 + '@rolldown/binding-linux-arm64-gnu': 1.2.15 + '@rolldown/binding-linux-arm64-musl': 1.2.15 + '@rolldown/binding-linux-ppc64-gnu': 1.2.15 + '@rolldown/binding-linux-s390x-gnu': 1.2.15 + '@rolldown/binding-linux-x64-gnu': 1.2.15 + '@rolldown/binding-linux-x64-musl': 1.2.15 + '@rolldown/binding-openharmony-arm64': 1.2.15 + '@rolldown/binding-win32-arm64-msvc': 1.2.15 + '@rolldown/binding-win32-x64-msvc': 1.2.15 run-parallel@1.2.0: dependencies: @@ -4492,13 +4513,11 @@ snapshots: semver@6.3.1: {} - seroval-plugins@1.6.7(seroval@1.6.7): + seroval-plugins@1.7.0(seroval@1.7.0): dependencies: - seroval: 1.6.7 + seroval: 1.7.0 - seroval@1.6.7: {} - - siginfo@2.0.0: {} + seroval@1.7.0: {} sirv@3.0.2: dependencies: @@ -4510,11 +4529,11 @@ snapshots: slash@5.1.0: {} - socket.io-client@4.8.3: + socket.io-client@4.8.4: dependencies: '@socket.io/component-emitter': 3.1.2 debug: 4.4.3 - engine.io-client: 6.6.6 + engine.io-client: 6.6.7 socket.io-parser: 4.2.7 transitivePeerDependencies: - bufferutil @@ -4534,9 +4553,7 @@ snapshots: source-map@0.6.1: {} - stackback@0.0.2: {} - - std-env@4.2.0: {} + std-env@4.3.0: {} stylis@4.2.0: {} @@ -4544,20 +4561,20 @@ snapshots: tiny-invariant@1.3.3: {} - tinybench@6.1.4: {} + tinybench@6.2.2: {} - tinyexec@1.3.0: {} + tinyexec@1.3.1: {} tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 - tinykeys@4.0.0: {} + tinykeys@4.0.1: {} - tinypool@2.1.2: {} + tinypool@2.2.0: {} - tinyrainbow@3.1.1: {} + tinyrainbow@3.2.0: {} to-regex-range@5.0.1: dependencies: @@ -4592,65 +4609,64 @@ snapshots: undici-types@8.9.0: {} - undici@7.30.0: {} + undici@7.30.1: {} unicorn-magic@0.4.1: {} - update-browserslist-db@1.3.3(browserslist@4.28.9): + update-browserslist-db@1.3.4(browserslist@4.29.4): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.4 escalade: 3.2.0 picocolors: 1.1.1 uqr@0.1.3: {} - use-sync-external-store@1.7.0(react@19.3.0): + use-sync-external-store@1.7.0(react@19.3.1): dependencies: - react: 19.3.0 + react: 19.3.1 - vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1): + vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 - postcss: 8.5.28 - rolldown: 1.2.8 + postcss: 8.5.31 + rolldown: 1.2.15 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.5.1 + '@types/node': 26.6.5 esbuild: 0.28.2 fsevents: 2.3.3 yaml: 2.9.1 - vitest@5.0.0(@types/node@26.5.1)(@vitest/browser-playwright@5.0.0)(@vitest/ui@5.0.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)): + vitest@5.0.5(@types/node@26.6.5)(@vitest/browser-playwright@5.0.5)(@vitest/ui@5.0.5)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.0(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1)) - chai: 6.2.2 + '@vitest/mocker': 5.0.5(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1)) + chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 - magic-string: 1.3.1 - obug: 2.2.1 + magic-string: 1.4.3 + obug: 3.0.0 picomatch: 4.0.7 - std-env: 4.2.0 - tinybench: 6.1.4 - tinyexec: 1.3.0 + std-env: 4.3.0 + tinybench: 6.2.2 + tinyexec: 1.3.1 tinyglobby: 0.2.17 - vite: 8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1) - why-is-node-running: 2.3.0 + vite: 8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1) + why-is-node-running: 3.2.1 optionalDependencies: - '@types/node': 26.5.1 - '@vitest/browser-playwright': 5.0.0(playwright@1.63.0)(vite@8.3.0(@types/node@26.5.1)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.0) - '@vitest/ui': 5.0.0(vitest@5.0.0) + '@types/node': 26.6.5 + '@vitest/browser-playwright': 5.0.5(playwright@1.64.1)(vite@8.3.5(@types/node@26.6.5)(esbuild@0.28.2)(yaml@2.9.1))(vitest@5.0.5) + '@vitest/ui': 5.0.5(vitest@5.0.5) transitivePeerDependencies: - msw - why-is-node-running@2.3.0: - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 + why-is-node-running@3.2.1: {} ws@8.21.3: {} + ws@8.22.0: {} + xmlhttprequest-ssl@2.1.2: {} yallist@3.1.1: {} @@ -4661,11 +4677,11 @@ snapshots: zod@3.25.76: {} - zod@4.6.5: {} + zod@4.6.7: {} - zustand@4.5.7(@types/react@19.3.0)(react@19.3.0): + zustand@4.5.7(@types/react@19.3.0)(react@19.3.1): dependencies: - use-sync-external-store: 1.7.0(react@19.3.0) + use-sync-external-store: 1.7.0(react@19.3.1) optionalDependencies: '@types/react': 19.3.0 - react: 19.3.0 + react: 19.3.1 diff --git a/invokeai/frontend/webv2/public/locales/en.json b/invokeai/frontend/webv2/public/locales/en.json index 668e35f542f..ffa6bf76c4a 100644 --- a/invokeai/frontend/webv2/public/locales/en.json +++ b/invokeai/frontend/webv2/public/locales/en.json @@ -187,7 +187,7 @@ "searchOptions": "Search…", "close": "Close", "colorPicker": { - "format": "Color format", + "format": "Color format: {{format}}", "sampleFromCanvas": "Pick a color from the canvas", "sampleFromScreen": "Pick a color from the screen", "opacity": "Opacity (%)", @@ -196,7 +196,7 @@ "saturationValueText": "Saturation {{saturation}}%, value {{value}}%" }, "scrubber": { - "editValue": "Edit {{label}}" + "editValue": "Edit {{label}}: {{value}}" }, "list": { "selectItem": "Select {{name}}" @@ -3441,7 +3441,7 @@ "fitToView": "Fit to view", "moreSaveOptions": "More save options", "newCanvasConfirm": "Clear all layers and start a fresh canvas? This cannot be undone.", - "zoomLevel": "Zoom level" + "zoomLevel": "Zoom level: {{zoom}}" }, "hideStagedResultPreview": "Hide staged result preview", "hideStagingThumbnails": "Hide staging thumbnails", @@ -4458,7 +4458,7 @@ "collapse": "Collapse color pane", "expand": "Expand color pane", "foreground": "Foreground color", - "format": "Color value format", + "format": "Color value format: {{format}}", "palette": "Project palette", "pickerModeBox": "Switch to box picker", "pickerModeWheel": "Switch to wheel picker", @@ -4611,7 +4611,6 @@ "clearSemanticSearch": "Clear semantic search", "exitSemanticSearch": "Exit semantic search", "createBoard": "Create board", - "collapseStarredItems": "Collapse starred items", "dateBoards": "Date boards", "dateFilterDay": "{{date}}", "dateFilterFrom": "From {{date}}", @@ -4663,7 +4662,6 @@ "dropMediaToUploadToBoard": "Drop images, videos, or audio to upload to {{name}}", "emptyBoardUploadHint": "Drop media here or click to upload", "exportProjectFromBoard": "Export project (.invk)", - "expandStarredItems": "Expand starred items", "filterAndSortBoards": "Filter & sort boards", "findInGallery": "Find in Gallery", "findNamedInGallery": "Find {{name}} in Gallery", @@ -4673,6 +4671,7 @@ "imageCount_other": "{{count}} images", "imageSize": "Image size", "imageSort": "Image Sort", + "imageSortValue": "Image sort: {{order}}", "infinite": "Infinite", "middleClickOpensInNewTab": "Middle-click opens media in a new tab", "itemActions": { diff --git a/invokeai/frontend/webv2/scripts/browser-test-pointer.ts b/invokeai/frontend/webv2/scripts/browser-test-pointer.ts new file mode 100644 index 00000000000..0f2e716c7bf --- /dev/null +++ b/invokeai/frontend/webv2/scripts/browser-test-pointer.ts @@ -0,0 +1,12 @@ +import { beforeEach } from 'vitest'; +import { server } from 'vitest/browser'; + +declare module 'vitest/browser' { + interface BrowserCommands { + resetBrowserPointer: () => Promise; + } +} + +beforeEach(async () => { + await server.commands.resetBrowserPointer(); +}); diff --git a/invokeai/frontend/webv2/scripts/browser-test-viewport.ts b/invokeai/frontend/webv2/scripts/browser-test-viewport.ts deleted file mode 100644 index 5fe892373a8..00000000000 --- a/invokeai/frontend/webv2/scripts/browser-test-viewport.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { beforeEach } from 'vitest'; -import { server } from 'vitest/browser'; - -declare module 'vitest/browser' { - interface BrowserCommands { - resetBrowserPointer: () => Promise; - } -} - -/** - * Start every browser test with the pages around the test iframe scrolled to the origin. - * - * The runner's outer page is a few pixels taller than its viewport, so a `scrollIntoView` or `focus()` inside a - * test scrolls it too, and that offset outlives the test file. Playwright judges hover and click targets against the - * top-level viewport, so a later file's elements at the iframe's top edge then sit outside it and every pointer - * action on them times out (FeatureHint's corner parking element fails all five of its tests this way). The test's - * own document is left alone: its scroll belongs to the test. - */ -beforeEach(async () => { - await server.commands.resetBrowserPointer(); - let frame: Window = window; - - while (frame.parent !== frame) { - frame = frame.parent; - - try { - frame.scrollTo(0, 0); - } catch { - // A cross-origin ancestor cannot be scrolled from here, and nothing inside it can leak into this one. - return; - } - } -}); diff --git a/invokeai/frontend/webv2/scripts/run-accessibility-journeys.mjs b/invokeai/frontend/webv2/scripts/run-accessibility-journeys.mjs index f7deb627f0f..9e3a31fc9d4 100644 --- a/invokeai/frontend/webv2/scripts/run-accessibility-journeys.mjs +++ b/invokeai/frontend/webv2/scripts/run-accessibility-journeys.mjs @@ -370,6 +370,84 @@ const runShortcutGuideJourney = async (browser) => { return { id: 'workbench-shortcuts', status: 'passed' }; }; +/** + * A status-bar chip is named by its compact content, so every built-in chip must say which widget it is first. Enable + * every bottom widget the menu offers, then match each chip's name to one enabled label. + */ +const runStatusBarNamesJourney = async (browser) => { + const { context, page, pageErrors } = await openRepresentativePage(browser, representativeProjectPath); + const id = 'workbench-status-bar-names'; + + try { + await waitForWorkbench(page); + const footer = page.locator('footer'); + await footer.getByRole('button', { exact: true, name: 'Bottom widget visibility' }).click(); + const menu = page.getByRole('menu'); + await menu.waitFor(); + const items = menu.getByRole('menuitemcheckbox'); + + for (let index = 0; index < (await items.count()); index++) { + const item = items.nth(index); + + if ( + (await item.getAttribute('aria-checked')) === 'false' && + (await item.getAttribute('aria-disabled')) !== 'true' + ) { + await item.click(); + await page.waitForFunction( + (element) => element.getAttribute('aria-checked') === 'true', + await item.elementHandle() + ); + } + } + + const labels = []; + + for (let index = 0; index < (await items.count()); index++) { + if ((await items.nth(index).getAttribute('aria-checked')) === 'true') { + // Item text only: a failed widget's row also carries a "Failed" note. + labels.push(((await items.nth(index).locator('[data-part="item-text"]').textContent()) ?? '').trim()); + } + } + + await page.keyboard.press('Escape'); + await menu.waitFor({ state: 'hidden' }); + // A chip still loading its view is named "Loading