From e198338b29e5e098b1db0b40355c49123b8ee10e Mon Sep 17 00:00:00 2001 From: maziggy Date: Tue, 16 Jun 2026 10:49:01 +0200 Subject: [PATCH] Hosekeeping --- static/assets/index-DbxQ-_cN.js | 8752 +++++++++++++++++ static/assets/index-JNXvMxhG.css | 1 + static/fonts/inter-latin-ext.woff2 | Bin 0 -> 85068 bytes static/fonts/inter-latin.woff2 | Bin 0 -> 48256 bytes static/icons/ams-ht.png | Bin 0 -> 4314 bytes static/icons/ams-settings.svg | 3 + static/icons/ams-wiring-center.svg | 9 + static/icons/ams-wiring-left.svg | 17 + static/icons/ams-wiring-right.svg | 17 + static/icons/ams.png | Bin 0 -> 6447 bytes static/icons/chamber.svg | 1 + static/icons/dual-extruder-left.png | Bin 0 -> 13160 bytes static/icons/dual-extruder-right.png | Bin 0 -> 13039 bytes static/icons/dual-extruder-right_sav.png | Bin 0 -> 19716 bytes static/icons/dual-extruder.png | Bin 0 -> 19576 bytes static/icons/extruder-change-filament.png | Bin 0 -> 169714 bytes static/icons/extruder-left-right.png | Bin 0 -> 5775 bytes static/icons/eye.svg | 51 + static/icons/heatbed.svg | 1 + static/icons/home.svg | 44 + static/icons/hotend.svg | 6 + static/icons/humidity-empty.svg | 4 + static/icons/humidity-full.svg | 4 + static/icons/humidity-half.svg | 4 + static/icons/jogpad.png | Bin 0 -> 63625 bytes static/icons/jogpad.svg | 46 + static/icons/lamp.svg | 4 + static/icons/micro-sd.svg | 12 + static/icons/reload.svg | 1 + static/icons/settings.svg | 1 + static/icons/single-extruder1.png | Bin 0 -> 5124 bytes static/icons/single-extruder2.png | Bin 0 -> 14109 bytes static/icons/skip-objects.svg | 1 + static/icons/snowflake.svg | 53 + static/icons/speed.svg | 6 + static/icons/temperature.svg | 4 + static/icons/ventilation.svg | 6 + static/icons/video-camera.svg | 1 + static/icons/water.svg | 2 + static/icons/webcam.svg | 73 + static/img/android-chrome-192x192.png | Bin 0 -> 43759 bytes static/img/android-chrome-512x512.png | Bin 0 -> 206875 bytes static/img/apple-touch-icon.png | Bin 0 -> 39147 bytes static/img/bambuddy_logo_dark.png | Bin 0 -> 608505 bytes static/img/bambuddy_logo_dark_transparent.png | Bin 0 -> 514022 bytes static/img/bambuddy_logo_light.png | Bin 0 -> 559482 bytes static/img/bed/bed_cool.png | Bin 0 -> 3318 bytes static/img/bed/bed_cool_supertack.png | Bin 0 -> 2343 bytes static/img/bed/bed_engineering.png | Bin 0 -> 2828 bytes static/img/bed/bed_high_templ.png | Bin 0 -> 2440 bytes static/img/bed/bed_pei.png | Bin 0 -> 3399 bytes static/img/bed/bed_pei_cool.png | Bin 0 -> 5345 bytes static/img/favicon-16x16.png | Bin 0 -> 983 bytes static/img/favicon-32x32.png | Bin 0 -> 2534 bytes static/img/favicon.png | Bin 0 -> 233437 bytes static/img/printers/a1.png | Bin 0 -> 53321 bytes static/img/printers/a1f.png | Bin 0 -> 42422 bytes static/img/printers/a1mini.png | Bin 0 -> 46241 bytes static/img/printers/a2l.png | Bin 0 -> 39494 bytes static/img/printers/default.png | Bin 0 -> 107223 bytes static/img/printers/h2c.png | Bin 0 -> 153461 bytes static/img/printers/h2d.png | Bin 0 -> 88346 bytes static/img/printers/h2dpro.png | Bin 0 -> 43678 bytes static/img/printers/o1c.png | Bin 0 -> 52036 bytes static/img/printers/o1e.png | Bin 0 -> 46218 bytes static/img/printers/o1s.png | Bin 0 -> 61075 bytes static/img/printers/p1p.png | Bin 0 -> 93904 bytes static/img/printers/p1s.png | Bin 0 -> 56977 bytes static/img/printers/printer_placeholder.png | Bin 0 -> 2936 bytes static/img/printers/x1c.png | Bin 0 -> 92554 bytes static/img/printers/x1e.png | Bin 0 -> 50173 bytes static/img/printers/x2d.png | Bin 0 -> 54194 bytes static/img/screenshot-desktop.png | Bin 0 -> 128330 bytes static/img/screenshot-mobile.png | Bin 0 -> 129704 bytes static/img/spoolbuddy_logo_dark.png | Bin 0 -> 114657 bytes static/img/spoolbuddy_logo_dark_small.png | Bin 0 -> 13365 bytes static/index.html | 40 + static/manifest.json | 95 + static/spoolbuddy_logo_dark.png | Bin 0 -> 114657 bytes static/sw-register.js | 37 + static/sw.js | 229 + static/vite.svg | 1 + 82 files changed, 9526 insertions(+) create mode 100644 static/assets/index-DbxQ-_cN.js create mode 100644 static/assets/index-JNXvMxhG.css create mode 100644 static/fonts/inter-latin-ext.woff2 create mode 100644 static/fonts/inter-latin.woff2 create mode 100644 static/icons/ams-ht.png create mode 100644 static/icons/ams-settings.svg create mode 100644 static/icons/ams-wiring-center.svg create mode 100644 static/icons/ams-wiring-left.svg create mode 100644 static/icons/ams-wiring-right.svg create mode 100644 static/icons/ams.png create mode 100644 static/icons/chamber.svg create mode 100644 static/icons/dual-extruder-left.png create mode 100644 static/icons/dual-extruder-right.png create mode 100644 static/icons/dual-extruder-right_sav.png create mode 100644 static/icons/dual-extruder.png create mode 100644 static/icons/extruder-change-filament.png create mode 100644 static/icons/extruder-left-right.png create mode 100644 static/icons/eye.svg create mode 100644 static/icons/heatbed.svg create mode 100644 static/icons/home.svg create mode 100644 static/icons/hotend.svg create mode 100644 static/icons/humidity-empty.svg create mode 100644 static/icons/humidity-full.svg create mode 100644 static/icons/humidity-half.svg create mode 100644 static/icons/jogpad.png create mode 100644 static/icons/jogpad.svg create mode 100644 static/icons/lamp.svg create mode 100644 static/icons/micro-sd.svg create mode 100644 static/icons/reload.svg create mode 100644 static/icons/settings.svg create mode 100644 static/icons/single-extruder1.png create mode 100644 static/icons/single-extruder2.png create mode 100644 static/icons/skip-objects.svg create mode 100644 static/icons/snowflake.svg create mode 100644 static/icons/speed.svg create mode 100644 static/icons/temperature.svg create mode 100644 static/icons/ventilation.svg create mode 100644 static/icons/video-camera.svg create mode 100644 static/icons/water.svg create mode 100644 static/icons/webcam.svg create mode 100644 static/img/android-chrome-192x192.png create mode 100644 static/img/android-chrome-512x512.png create mode 100644 static/img/apple-touch-icon.png create mode 100644 static/img/bambuddy_logo_dark.png create mode 100644 static/img/bambuddy_logo_dark_transparent.png create mode 100644 static/img/bambuddy_logo_light.png create mode 100644 static/img/bed/bed_cool.png create mode 100644 static/img/bed/bed_cool_supertack.png create mode 100644 static/img/bed/bed_engineering.png create mode 100644 static/img/bed/bed_high_templ.png create mode 100644 static/img/bed/bed_pei.png create mode 100644 static/img/bed/bed_pei_cool.png create mode 100644 static/img/favicon-16x16.png create mode 100644 static/img/favicon-32x32.png create mode 100644 static/img/favicon.png create mode 100644 static/img/printers/a1.png create mode 100644 static/img/printers/a1f.png create mode 100644 static/img/printers/a1mini.png create mode 100644 static/img/printers/a2l.png create mode 100644 static/img/printers/default.png create mode 100644 static/img/printers/h2c.png create mode 100644 static/img/printers/h2d.png create mode 100644 static/img/printers/h2dpro.png create mode 100644 static/img/printers/o1c.png create mode 100644 static/img/printers/o1e.png create mode 100644 static/img/printers/o1s.png create mode 100644 static/img/printers/p1p.png create mode 100644 static/img/printers/p1s.png create mode 100644 static/img/printers/printer_placeholder.png create mode 100644 static/img/printers/x1c.png create mode 100644 static/img/printers/x1e.png create mode 100644 static/img/printers/x2d.png create mode 100644 static/img/screenshot-desktop.png create mode 100644 static/img/screenshot-mobile.png create mode 100644 static/img/spoolbuddy_logo_dark.png create mode 100644 static/img/spoolbuddy_logo_dark_small.png create mode 100644 static/index.html create mode 100644 static/manifest.json create mode 100644 static/spoolbuddy_logo_dark.png create mode 100644 static/sw-register.js create mode 100644 static/sw.js create mode 100644 static/vite.svg diff --git a/static/assets/index-DbxQ-_cN.js b/static/assets/index-DbxQ-_cN.js new file mode 100644 index 000000000..b4ba854be --- /dev/null +++ b/static/assets/index-DbxQ-_cN.js @@ -0,0 +1,8752 @@ +function Eme(t,e){for(var a=0;an[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function a(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=a(i);fetch(i.href,s)}})();var L_=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ic(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var hE={exports:{}},l0={};var Gq;function Dme(){if(Gq)return l0;Gq=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function a(n,i,s){var o=null;if(s!==void 0&&(o=""+s),i.key!==void 0&&(o=""+i.key),"key"in i){s={};for(var l in i)l!=="key"&&(s[l]=i[l])}else s=i;return i=s.ref,{$$typeof:t,type:n,key:o,ref:i!==void 0?i:null,props:s}}return l0.Fragment=e,l0.jsx=a,l0.jsxs=a,l0}var $q;function Fme(){return $q||($q=1,hE.exports=Dme()),hE.exports}var r=Fme(),fE={exports:{}},tr={};var Wq;function Lme(){if(Wq)return tr;Wq=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),m=Symbol.for("react.activity"),p=Symbol.iterator;function f(K){return K===null||typeof K!="object"?null:(K=p&&K[p]||K["@@iterator"],typeof K=="function"?K:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function x(K,oe,me){this.props=K,this.context=oe,this.refs=b,this.updater=me||g}x.prototype.isReactComponent={},x.prototype.setState=function(K,oe){if(typeof K!="object"&&typeof K!="function"&&K!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,K,oe,"setState")},x.prototype.forceUpdate=function(K){this.updater.enqueueForceUpdate(this,K,"forceUpdate")};function S(){}S.prototype=x.prototype;function k(K,oe,me){this.props=K,this.context=oe,this.refs=b,this.updater=me||g}var C=k.prototype=new S;C.constructor=k,v(C,x.prototype),C.isPureReactComponent=!0;var N=Array.isArray;function T(){}var j={H:null,A:null,T:null,S:null},F=Object.prototype.hasOwnProperty;function P(K,oe,me){var pe=me.ref;return{$$typeof:t,type:K,key:oe,ref:pe!==void 0?pe:null,props:me}}function E(K,oe){return P(K.type,oe,K.props)}function R(K){return typeof K=="object"&&K!==null&&K.$$typeof===t}function O(K){var oe={"=":"=0",":":"=2"};return"$"+K.replace(/[=:]/g,function(me){return oe[me]})}var B=/\/+/g;function z(K,oe){return typeof K=="object"&&K!==null&&K.key!=null?O(""+K.key):oe.toString(36)}function X(K){switch(K.status){case"fulfilled":return K.value;case"rejected":throw K.reason;default:switch(typeof K.status=="string"?K.then(T,T):(K.status="pending",K.then(function(oe){K.status==="pending"&&(K.status="fulfilled",K.value=oe)},function(oe){K.status==="pending"&&(K.status="rejected",K.reason=oe)})),K.status){case"fulfilled":return K.value;case"rejected":throw K.reason}}throw K}function ne(K,oe,me,pe,ge){var U=typeof K;(U==="undefined"||U==="boolean")&&(K=null);var Q=!1;if(K===null)Q=!0;else switch(U){case"bigint":case"string":case"number":Q=!0;break;case"object":switch(K.$$typeof){case t:case e:Q=!0;break;case u:return Q=K._init,ne(Q(K._payload),oe,me,pe,ge)}}if(Q)return ge=ge(K),Q=pe===""?"."+z(K,0):pe,N(ge)?(me="",Q!=null&&(me=Q.replace(B,"$&/")+"/"),ne(ge,oe,me,"",function(H){return H})):ge!=null&&(R(ge)&&(ge=E(ge,me+(ge.key==null||K&&K.key===ge.key?"":(""+ge.key).replace(B,"$&/")+"/")+Q)),oe.push(ge)),1;Q=0;var A=pe===""?".":pe+":";if(N(K))for(var D=0;D>>1,le=ne[de];if(0>>1;dei(me,ce))pei(ge,me)?(ne[de]=ge,ne[pe]=ce,de=pe):(ne[de]=me,ne[oe]=ce,de=oe);else if(pei(ge,ce))ne[de]=ge,ne[pe]=ce,de=pe;else break e}}return Y}function i(ne,Y){var ce=ne.sortIndex-Y.sortIndex;return ce!==0?ce:ne.id-Y.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}var c=[],d=[],u=1,m=null,p=3,f=!1,g=!1,v=!1,b=!1,x=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;function C(ne){for(var Y=a(d);Y!==null;){if(Y.callback===null)n(d);else if(Y.startTime<=ne)n(d),Y.sortIndex=Y.expirationTime,e(c,Y);else break;Y=a(d)}}function N(ne){if(v=!1,C(ne),!g)if(a(c)!==null)g=!0,T||(T=!0,O());else{var Y=a(d);Y!==null&&X(N,Y.startTime-ne)}}var T=!1,j=-1,F=5,P=-1;function E(){return b?!0:!(t.unstable_now()-Pne&&E());){var de=m.callback;if(typeof de=="function"){m.callback=null,p=m.priorityLevel;var le=de(m.expirationTime<=ne);if(ne=t.unstable_now(),typeof le=="function"){m.callback=le,C(ne),Y=!0;break t}m===a(c)&&n(c),C(ne)}else n(c);m=a(c)}if(m!==null)Y=!0;else{var K=a(d);K!==null&&X(N,K.startTime-ne),Y=!1}}break e}finally{m=null,p=ce,f=!1}Y=void 0}}finally{Y?O():T=!1}}}var O;if(typeof k=="function")O=function(){k(R)};else if(typeof MessageChannel<"u"){var B=new MessageChannel,z=B.port2;B.port1.onmessage=R,O=function(){z.postMessage(null)}}else O=function(){x(R,0)};function X(ne,Y){j=x(function(){ne(t.unstable_now())},Y)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(ne){ne.callback=null},t.unstable_forceFrameRate=function(ne){0>ne||125de?(ne.sortIndex=ce,e(d,ne),a(c)===null&&ne===a(d)&&(v?(S(j),j=-1):v=!0,X(N,ce-de))):(ne.sortIndex=le,e(c,ne),g||f||(g=!0,T||(T=!0,O()))),ne},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(ne){var Y=p;return function(){var ce=p;p=Y;try{return ne.apply(this,arguments)}finally{p=ce}}}})(xE)),xE}var Qq;function Ime(){return Qq||(Qq=1,bE.exports=zme()),bE.exports}var yE={exports:{}},Vs={};var Xq;function Ome(){if(Xq)return Vs;Xq=1;var t=fb();function e(c){var d="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),yE.exports=Ome(),yE.exports}var Jq;function Bme(){if(Jq)return c0;Jq=1;var t=Ime(),e=fb(),a=kZ();function n(h){var w="https://react.dev/errors/"+h;if(1le||(h.current=de[le],de[le]=null,le--)}function me(h,w){le++,de[le]=h.current,h.current=w}var pe=K(null),ge=K(null),U=K(null),Q=K(null);function A(h,w){switch(me(U,w),me(ge,h),me(pe,null),w.nodeType){case 9:case 11:h=(h=w.documentElement)&&(h=h.namespaceURI)?hq(h):0;break;default:if(h=w.tagName,w=w.namespaceURI)w=hq(w),h=fq(w,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}oe(pe),me(pe,h)}function D(){oe(pe),oe(ge),oe(U)}function H(h){h.memoizedState!==null&&me(Q,h);var w=pe.current,_=fq(w,h.type);w!==_&&(me(ge,h),me(pe,_))}function W(h){ge.current===h&&(oe(pe),oe(ge)),Q.current===h&&(oe(Q),n0._currentValue=ce)}var q,J;function I(h){if(q===void 0)try{throw Error()}catch(_){var w=_.stack.trim().match(/\n( *(at )?)/);q=w&&w[1]||"",J=-1<_.stack.indexOf(` + at`)?" ()":-1<_.stack.indexOf("@")?"@unknown:0:0":""}return` +`+q+h+J}var V=!1;function re(h,w){if(!h||V)return"";V=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var M={DetermineComponentFrameRoot:function(){try{if(w){var Wt=function(){throw Error()};if(Object.defineProperty(Wt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Wt,[])}catch(Ot){var Dt=Ot}Reflect.construct(h,[],Wt)}else{try{Wt.call()}catch(Ot){Dt=Ot}h.call(Wt.prototype)}}else{try{throw Error()}catch(Ot){Dt=Ot}(Wt=h())&&typeof Wt.catch=="function"&&Wt.catch(function(){})}}catch(Ot){if(Ot&&Dt&&typeof Ot.stack=="string")return[Ot.stack,Dt.stack]}return[null,null]}};M.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var $=Object.getOwnPropertyDescriptor(M.DetermineComponentFrameRoot,"name");$&&$.configurable&&Object.defineProperty(M.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var ae=M.DetermineComponentFrameRoot(),Ce=ae[0],He=ae[1];if(Ce&&He){var ft=Ce.split(` +`),Et=He.split(` +`);for($=M=0;M$||ft[M]!==Et[$]){var qt=` +`+ft[M].replace(" at new "," at ");return h.displayName&&qt.includes("")&&(qt=qt.replace("",h.displayName)),qt}while(1<=M&&0<=$);break}}}finally{V=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?I(_):""}function te(h,w){switch(h.tag){case 26:case 27:case 5:return I(h.type);case 16:return I("Lazy");case 13:return h.child!==w&&w!==null?I("Suspense Fallback"):I("Suspense");case 19:return I("SuspenseList");case 0:case 15:return re(h.type,!1);case 11:return re(h.type.render,!1);case 1:return re(h.type,!0);case 31:return I("Activity");default:return""}}function Z(h){try{var w="",_=null;do w+=te(h,_),_=h,h=h.return;while(h);return w}catch(M){return` +Error generating stack: `+M.message+` +`+M.stack}}var se=Object.prototype.hasOwnProperty,he=t.unstable_scheduleCallback,ue=t.unstable_cancelCallback,fe=t.unstable_shouldYield,G=t.unstable_requestPaint,L=t.unstable_now,ee=t.unstable_getCurrentPriorityLevel,be=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,ve=t.unstable_NormalPriority,Ee=t.unstable_LowPriority,Ne=t.unstable_IdlePriority,qe=t.log,Qe=t.unstable_setDisableYieldValue,je=null,Ie=null;function Re(h){if(typeof qe=="function"&&Qe(h),Ie&&typeof Ie.setStrictMode=="function")try{Ie.setStrictMode(je,h)}catch{}}var Ge=Math.clz32?Math.clz32:ze,Xe=Math.log,Ue=Math.LN2;function ze(h){return h>>>=0,h===0?32:31-(Xe(h)/Ue|0)|0}var Ye=256,De=262144,Ze=4194304;function Ve(h){var w=h&42;if(w!==0)return w;switch(h&-h){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function Me(h,w,_){var M=h.pendingLanes;if(M===0)return 0;var $=0,ae=h.suspendedLanes,Ce=h.pingedLanes;h=h.warmLanes;var He=M&134217727;return He!==0?(M=He&~ae,M!==0?$=Ve(M):(Ce&=He,Ce!==0?$=Ve(Ce):_||(_=He&~h,_!==0&&($=Ve(_))))):(He=M&~ae,He!==0?$=Ve(He):Ce!==0?$=Ve(Ce):_||(_=M&~h,_!==0&&($=Ve(_)))),$===0?0:w!==0&&w!==$&&(w&ae)===0&&(ae=$&-$,_=w&-w,ae>=_||ae===32&&(_&4194048)!==0)?w:$}function Oe(h,w){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&w)===0}function et(h,w){switch(h){case 1:case 2:case 4:case 8:case 64:return w+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return w+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function $e(){var h=Ze;return Ze<<=1,(Ze&62914560)===0&&(Ze=4194304),h}function we(h){for(var w=[],_=0;31>_;_++)w.push(h);return w}function Le(h,w){h.pendingLanes|=w,w!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function Be(h,w,_,M,$,ae){var Ce=h.pendingLanes;h.pendingLanes=_,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=_,h.entangledLanes&=_,h.errorRecoveryDisabledLanes&=_,h.shellSuspendCounter=0;var He=h.entanglements,ft=h.expirationTimes,Et=h.hiddenUpdates;for(_=Ce&~_;0<_;){var qt=31-Ge(_),Wt=1<"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var wr=/[\n"\\]/g;function ja(h){return h.replace(wr,function(w){return"\\"+w.charCodeAt(0).toString(16)+" "})}function $a(h,w,_,M,$,ae,Ce,He){h.name="",Ce!=null&&typeof Ce!="function"&&typeof Ce!="symbol"&&typeof Ce!="boolean"?h.type=Ce:h.removeAttribute("type"),w!=null?Ce==="number"?(w===0&&h.value===""||h.value!=w)&&(h.value=""+Qt(w)):h.value!==""+Qt(w)&&(h.value=""+Qt(w)):Ce!=="submit"&&Ce!=="reset"||h.removeAttribute("value"),w!=null?Wr(h,Ce,Qt(w)):_!=null?Wr(h,Ce,Qt(_)):M!=null&&h.removeAttribute("value"),$==null&&ae!=null&&(h.defaultChecked=!!ae),$!=null&&(h.checked=$&&typeof $!="function"&&typeof $!="symbol"),He!=null&&typeof He!="function"&&typeof He!="symbol"&&typeof He!="boolean"?h.name=""+Qt(He):h.removeAttribute("name")}function Ba(h,w,_,M,$,ae,Ce,He){if(ae!=null&&typeof ae!="function"&&typeof ae!="symbol"&&typeof ae!="boolean"&&(h.type=ae),w!=null||_!=null){if(!(ae!=="submit"&&ae!=="reset"||w!=null)){Jt(h);return}_=_!=null?""+Qt(_):"",w=w!=null?""+Qt(w):_,He||w===h.value||(h.value=w),h.defaultValue=w}M=M??$,M=typeof M!="function"&&typeof M!="symbol"&&!!M,h.checked=He?h.checked:!!M,h.defaultChecked=!!M,Ce!=null&&typeof Ce!="function"&&typeof Ce!="symbol"&&typeof Ce!="boolean"&&(h.name=Ce),Jt(h)}function Wr(h,w,_){w==="number"&&Ha(h.ownerDocument)===h||h.defaultValue===""+_||(h.defaultValue=""+_)}function tt(h,w,_,M){if(h=h.options,w){w={};for(var $=0;$<_.length;$++)w["$"+_[$]]=!0;for(_=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yp=!1;if(nr)try{var Td={};Object.defineProperty(Td,"passive",{get:function(){yp=!0}}),window.addEventListener("test",Td,Td),window.removeEventListener("test",Td,Td)}catch{yp=!1}var mi=null,Fu=null,ki=null;function _f(){if(ki)return ki;var h,w=Fu,_=w.length,M,$="value"in mi?mi.value:mi.textContent,ae=$.length;for(h=0;h<_&&w[h]===$[h];h++);var Ce=_-h;for(M=1;M<=Ce&&w[_-M]===$[ae-M];M++);return ki=$.slice(h,1=hi),_p=" ",Mb=!1;function ye(h,w){switch(h){case"keyup":return Av.indexOf(w.keyCode)!==-1;case"keydown":return w.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zt(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var ha=!1;function Ma(h,w){switch(h){case"compositionend":return zt(w);case"keypress":return w.which!==32?null:(Mb=!0,_p);case"textInput":return h=w.data,h===_p&&Mb?null:h;default:return null}}function Wa(h,w){if(ha)return h==="compositionend"||!ml&&ye(h,w)?(h=_f(),ki=Fu=mi=null,ha=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(w.ctrlKey||w.altKey||w.metaKey)||w.ctrlKey&&w.altKey){if(w.char&&1=w)return{node:_,offset:w-h};h=M}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=Lo(_)}}function Ro(h,w){return h&&w?h===w?!0:h&&h.nodeType===3?!1:w&&w.nodeType===3?Ro(h,w.parentNode):"contains"in h?h.contains(w):h.compareDocumentPosition?!!(h.compareDocumentPosition(w)&16):!1:!1}function mo(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var w=Ha(h.document);w instanceof h.HTMLIFrameElement;){try{var _=typeof w.contentWindow.location.href=="string"}catch{_=!1}if(_)h=w.contentWindow;else break;w=Ha(h.document)}return w}function Ci(h){var w=h&&h.nodeName&&h.nodeName.toLowerCase();return w&&(w==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||w==="textarea"||h.contentEditable==="true")}var Dd=nr&&"documentMode"in document&&11>=document.documentMode,fi=null,Sr=null,Or=null,Zn=!1;function Cp(h,w,_){var M=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;Zn||fi==null||fi!==Ha(M)||(M=fi,"selectionStart"in M&&Ci(M)?M={start:M.selectionStart,end:M.selectionEnd}:(M=(M.ownerDocument&&M.ownerDocument.defaultView||window).getSelection(),M={anchorNode:M.anchorNode,anchorOffset:M.anchorOffset,focusNode:M.focusNode,focusOffset:M.focusOffset}),Or&&Ss(Or,M)||(Or=M,M=v_(Sr,"onSelect"),0>=Ce,$-=Ce,Ld=1<<32-Ge(w)+$|_<<$|M,Rd=ae+h}else Ld=1<or?(jr=Aa,Aa=null):jr=Aa.sibling;var Ur=Dt(Ct,Aa,Mt[or],Gt);if(Ur===null){Aa===null&&(Aa=jr);break}h&&Aa&&Ur.alternate===null&&w(Ct,Aa),bt=ae(Ur,bt,or),Br===null?za=Ur:Br.sibling=Ur,Br=Ur,Aa=jr}if(or===Mt.length)return _(Ct,Aa),Dr&&Hu(Ct,or),za;if(Aa===null){for(;oror?(jr=Aa,Aa=null):jr=Aa.sibling;var Wp=Dt(Ct,Aa,Ur.value,Gt);if(Wp===null){Aa===null&&(Aa=jr);break}h&&Aa&&Wp.alternate===null&&w(Ct,Aa),bt=ae(Wp,bt,or),Br===null?za=Wp:Br.sibling=Wp,Br=Wp,Aa=jr}if(Ur.done)return _(Ct,Aa),Dr&&Hu(Ct,or),za;if(Aa===null){for(;!Ur.done;or++,Ur=Mt.next())Ur=Wt(Ct,Ur.value,Gt),Ur!==null&&(bt=ae(Ur,bt,or),Br===null?za=Ur:Br.sibling=Ur,Br=Ur);return Dr&&Hu(Ct,or),za}for(Aa=M(Aa);!Ur.done;or++,Ur=Mt.next())Ur=Ot(Aa,Ct,or,Ur.value,Gt),Ur!==null&&(h&&Ur.alternate!==null&&Aa.delete(Ur.key===null?or:Ur.key),bt=ae(Ur,bt,or),Br===null?za=Ur:Br.sibling=Ur,Br=Ur);return h&&Aa.forEach(function(Mme){return w(Ct,Mme)}),Dr&&Hu(Ct,or),za}function ln(Ct,bt,Mt,Gt){if(typeof Mt=="object"&&Mt!==null&&Mt.type===v&&Mt.key===null&&(Mt=Mt.props.children),typeof Mt=="object"&&Mt!==null){switch(Mt.$$typeof){case f:e:{for(var za=Mt.key;bt!==null;){if(bt.key===za){if(za=Mt.type,za===v){if(bt.tag===7){_(Ct,bt.sibling),Gt=$(bt,Mt.props.children),Gt.return=Ct,Ct=Gt;break e}}else if(bt.elementType===za||typeof za=="object"&&za!==null&&za.$$typeof===F&&Ff(za)===bt.type){_(Ct,bt.sibling),Gt=$(bt,Mt.props),Lv(Gt,Mt),Gt.return=Ct,Ct=Gt;break e}_(Ct,bt);break}else w(Ct,bt);bt=bt.sibling}Mt.type===v?(Gt=Af(Mt.props.children,Ct.mode,Gt,Mt.key),Gt.return=Ct,Ct=Gt):(Gt=zk(Mt.type,Mt.key,Mt.props,null,Ct.mode,Gt),Lv(Gt,Mt),Gt.return=Ct,Ct=Gt)}return Ce(Ct);case g:e:{for(za=Mt.key;bt!==null;){if(bt.key===za)if(bt.tag===4&&bt.stateNode.containerInfo===Mt.containerInfo&&bt.stateNode.implementation===Mt.implementation){_(Ct,bt.sibling),Gt=$(bt,Mt.children||[]),Gt.return=Ct,Ct=Gt;break e}else{_(Ct,bt);break}else w(Ct,bt);bt=bt.sibling}Gt=Ej(Mt,Ct.mode,Gt),Gt.return=Ct,Ct=Gt}return Ce(Ct);case F:return Mt=Ff(Mt),ln(Ct,bt,Mt,Gt)}if(X(Mt))return Ca(Ct,bt,Mt,Gt);if(O(Mt)){if(za=O(Mt),typeof za!="function")throw Error(n(150));return Mt=za.call(Mt),qa(Ct,bt,Mt,Gt)}if(typeof Mt.then=="function")return ln(Ct,bt,Vk(Mt),Gt);if(Mt.$$typeof===k)return ln(Ct,bt,Bk(Ct,Mt),Gt);Gk(Ct,Mt)}return typeof Mt=="string"&&Mt!==""||typeof Mt=="number"||typeof Mt=="bigint"?(Mt=""+Mt,bt!==null&&bt.tag===6?(_(Ct,bt.sibling),Gt=$(bt,Mt),Gt.return=Ct,Ct=Gt):(_(Ct,bt),Gt=Mj(Mt,Ct.mode,Gt),Gt.return=Ct,Ct=Gt),Ce(Ct)):_(Ct,bt)}return function(Ct,bt,Mt,Gt){try{Fv=0;var za=ln(Ct,bt,Mt,Gt);return Ub=null,za}catch(Aa){if(Aa===Bb||Aa===Hk)throw Aa;var Br=pl(29,Aa,null,Ct.mode);return Br.lanes=Gt,Br.return=Ct,Br}}}var Rf=iU(!0),sU=iU(!1),jp=!1;function Vj(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gj(h,w){h=h.updateQueue,w.updateQueue===h&&(w.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function Mp(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function Ep(h,w,_){var M=h.updateQueue;if(M===null)return null;if(M=M.shared,($r&2)!==0){var $=M.pending;return $===null?w.next=w:(w.next=$.next,$.next=w),M.pending=w,w=Rk(h),q5(h,null,_),w}return Lk(h,M,w,_),Rk(h)}function Rv(h,w,_){if(w=w.updateQueue,w!==null&&(w=w.shared,(_&4194048)!==0)){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Lt(h,_)}}function $j(h,w){var _=h.updateQueue,M=h.alternate;if(M!==null&&(M=M.updateQueue,_===M)){var $=null,ae=null;if(_=_.firstBaseUpdate,_!==null){do{var Ce={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};ae===null?$=ae=Ce:ae=ae.next=Ce,_=_.next}while(_!==null);ae===null?$=ae=w:ae=ae.next=w}else $=ae=w;_={baseState:M.baseState,firstBaseUpdate:$,lastBaseUpdate:ae,shared:M.shared,callbacks:M.callbacks},h.updateQueue=_;return}h=_.lastBaseUpdate,h===null?_.firstBaseUpdate=w:h.next=w,_.lastBaseUpdate=w}var Wj=!1;function zv(){if(Wj){var h=Ob;if(h!==null)throw h}}function Iv(h,w,_,M){Wj=!1;var $=h.updateQueue;jp=!1;var ae=$.firstBaseUpdate,Ce=$.lastBaseUpdate,He=$.shared.pending;if(He!==null){$.shared.pending=null;var ft=He,Et=ft.next;ft.next=null,Ce===null?ae=Et:Ce.next=Et,Ce=ft;var qt=h.alternate;qt!==null&&(qt=qt.updateQueue,He=qt.lastBaseUpdate,He!==Ce&&(He===null?qt.firstBaseUpdate=Et:He.next=Et,qt.lastBaseUpdate=ft))}if(ae!==null){var Wt=$.baseState;Ce=0,qt=Et=ft=null,He=ae;do{var Dt=He.lane&-536870913,Ot=Dt!==He.lane;if(Ot?(Ar&Dt)===Dt:(M&Dt)===Dt){Dt!==0&&Dt===Ib&&(Wj=!0),qt!==null&&(qt=qt.next={lane:0,tag:He.tag,payload:He.payload,callback:null,next:null});e:{var Ca=h,qa=He;Dt=w;var ln=_;switch(qa.tag){case 1:if(Ca=qa.payload,typeof Ca=="function"){Wt=Ca.call(ln,Wt,Dt);break e}Wt=Ca;break e;case 3:Ca.flags=Ca.flags&-65537|128;case 0:if(Ca=qa.payload,Dt=typeof Ca=="function"?Ca.call(ln,Wt,Dt):Ca,Dt==null)break e;Wt=m({},Wt,Dt);break e;case 2:jp=!0}}Dt=He.callback,Dt!==null&&(h.flags|=64,Ot&&(h.flags|=8192),Ot=$.callbacks,Ot===null?$.callbacks=[Dt]:Ot.push(Dt))}else Ot={lane:Dt,tag:He.tag,payload:He.payload,callback:He.callback,next:null},qt===null?(Et=qt=Ot,ft=Wt):qt=qt.next=Ot,Ce|=Dt;if(He=He.next,He===null){if(He=$.shared.pending,He===null)break;Ot=He,He=Ot.next,Ot.next=null,$.lastBaseUpdate=Ot,$.shared.pending=null}}while(!0);qt===null&&(ft=Wt),$.baseState=ft,$.firstBaseUpdate=Et,$.lastBaseUpdate=qt,ae===null&&($.shared.lanes=0),zp|=Ce,h.lanes=Ce,h.memoizedState=Wt}}function oU(h,w){if(typeof h!="function")throw Error(n(191,h));h.call(w)}function lU(h,w){var _=h.callbacks;if(_!==null)for(h.callbacks=null,h=0;h<_.length;h++)oU(_[h],w)}var Hb=K(null),$k=K(0);function cU(h,w){h=Ju,me($k,h),me(Hb,w),Ju=h|w.baseLanes}function Kj(){me($k,Ju),me(Hb,Hb.current)}function Yj(){Ju=$k.current,oe(Hb),oe($k)}var hl=K(null),Jl=null;function Dp(h){var w=h.alternate;me(gi,gi.current&1),me(hl,h),Jl===null&&(w===null||Hb.current!==null||w.memoizedState!==null)&&(Jl=h)}function Qj(h){me(gi,gi.current),me(hl,h),Jl===null&&(Jl=h)}function dU(h){h.tag===22?(me(gi,gi.current),me(hl,h),Jl===null&&(Jl=h)):Fp()}function Fp(){me(gi,gi.current),me(hl,hl.current)}function fl(h){oe(hl),Jl===h&&(Jl=null),oe(gi)}var gi=K(0);function Wk(h){for(var w=h;w!==null;){if(w.tag===13){var _=w.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||aE(_)||rE(_)))return w}else if(w.tag===19&&(w.memoizedProps.revealOrder==="forwards"||w.memoizedProps.revealOrder==="backwards"||w.memoizedProps.revealOrder==="unstable_legacy-backwards"||w.memoizedProps.revealOrder==="together")){if((w.flags&128)!==0)return w}else if(w.child!==null){w.child.return=w,w=w.child;continue}if(w===h)break;for(;w.sibling===null;){if(w.return===null||w.return===h)return null;w=w.return}w.sibling.return=w.return,w=w.sibling}return null}var Gu=0,ir=null,sn=null,Ni=null,Kk=!1,qb=!1,zf=!1,Yk=0,Ov=0,Vb=null,wue=0;function Jn(){throw Error(n(321))}function Xj(h,w){if(w===null)return!1;for(var _=0;_ae?ae:8;var Ce=ne.T,He={};ne.T=He,mM(h,!1,w,_);try{var ft=$(),Et=ne.S;if(Et!==null&&Et(He,ft),ft!==null&&typeof ft=="object"&&typeof ft.then=="function"){var qt=vue(ft,M);Uv(h,w,qt,xl(h))}else Uv(h,w,M,xl(h))}catch(Wt){Uv(h,w,{then:function(){},status:"rejected",reason:Wt},xl())}finally{Y.p=ae,Ce!==null&&He.types!==null&&(Ce.types=He.types),ne.T=Ce}}function Pue(){}function dM(h,w,_,M){if(h.tag!==5)throw Error(n(476));var $=BU(h).queue;OU(h,$,w,ce,_===null?Pue:function(){return UU(h),_(M)})}function BU(h){var w=h.memoizedState;if(w!==null)return w;w={memoizedState:ce,baseState:ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:$u,lastRenderedState:ce},next:null};var _={};return w.next={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:$u,lastRenderedState:_},next:null},h.memoizedState=w,h=h.alternate,h!==null&&(h.memoizedState=w),w}function UU(h){var w=BU(h);w.next===null&&(w=h.alternate.memoizedState),Uv(h,w.next.queue,{},xl())}function uM(){return _s(n0)}function HU(){return bi().memoizedState}function qU(){return bi().memoizedState}function Nue(h){for(var w=h.return;w!==null;){switch(w.tag){case 24:case 3:var _=xl();h=Mp(_);var M=Ep(w,h,_);M!==null&&(Uo(M,w,_),Rv(M,w,_)),w={cache:Bj()},h.payload=w;return}w=w.return}}function Tue(h,w,_){var M=xl();_={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},t_(h)?GU(w,_):(_=Aj(h,w,_,M),_!==null&&(Uo(_,h,M),$U(_,w,M)))}function VU(h,w,_){var M=xl();Uv(h,w,_,M)}function Uv(h,w,_,M){var $={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null};if(t_(h))GU(w,$);else{var ae=h.alternate;if(h.lanes===0&&(ae===null||ae.lanes===0)&&(ae=w.lastRenderedReducer,ae!==null))try{var Ce=w.lastRenderedState,He=ae(Ce,_);if($.hasEagerState=!0,$.eagerState=He,Fn(He,Ce))return Lk(h,w,$,0),yn===null&&Fk(),!1}catch{}if(_=Aj(h,w,$,M),_!==null)return Uo(_,h,M),$U(_,w,M),!0}return!1}function mM(h,w,_,M){if(M={lane:2,revertLane:VM(),gesture:null,action:M,hasEagerState:!1,eagerState:null,next:null},t_(h)){if(w)throw Error(n(479))}else w=Aj(h,_,M,2),w!==null&&Uo(w,h,2)}function t_(h){var w=h.alternate;return h===ir||w!==null&&w===ir}function GU(h,w){qb=Kk=!0;var _=h.pending;_===null?w.next=w:(w.next=_.next,_.next=w),h.pending=w}function $U(h,w,_){if((_&4194048)!==0){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,Lt(h,_)}}var Hv={readContext:_s,use:Xk,useCallback:Jn,useContext:Jn,useEffect:Jn,useImperativeHandle:Jn,useLayoutEffect:Jn,useInsertionEffect:Jn,useMemo:Jn,useReducer:Jn,useRef:Jn,useState:Jn,useDebugValue:Jn,useDeferredValue:Jn,useTransition:Jn,useSyncExternalStore:Jn,useId:Jn,useHostTransitionStatus:Jn,useFormState:Jn,useActionState:Jn,useOptimistic:Jn,useMemoCache:Jn,useCacheRefresh:Jn};Hv.useEffectEvent=Jn;var WU={readContext:_s,use:Xk,useCallback:function(h,w){return po().memoizedState=[h,w===void 0?null:w],h},useContext:_s,useEffect:jU,useImperativeHandle:function(h,w,_){_=_!=null?_.concat([h]):null,Jk(4194308,4,FU.bind(null,w,h),_)},useLayoutEffect:function(h,w){return Jk(4194308,4,h,w)},useInsertionEffect:function(h,w){Jk(4,2,h,w)},useMemo:function(h,w){var _=po();w=w===void 0?null:w;var M=h();if(zf){Re(!0);try{h()}finally{Re(!1)}}return _.memoizedState=[M,w],M},useReducer:function(h,w,_){var M=po();if(_!==void 0){var $=_(w);if(zf){Re(!0);try{_(w)}finally{Re(!1)}}}else $=w;return M.memoizedState=M.baseState=$,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:$},M.queue=h,h=h.dispatch=Tue.bind(null,ir,h),[M.memoizedState,h]},useRef:function(h){var w=po();return h={current:h},w.memoizedState=h},useState:function(h){h=iM(h);var w=h.queue,_=VU.bind(null,ir,w);return w.dispatch=_,[h.memoizedState,_]},useDebugValue:lM,useDeferredValue:function(h,w){var _=po();return cM(_,h,w)},useTransition:function(){var h=iM(!1);return h=OU.bind(null,ir,h.queue,!0,!1),po().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,w,_){var M=ir,$=po();if(Dr){if(_===void 0)throw Error(n(407));_=_()}else{if(_=w(),yn===null)throw Error(n(349));(Ar&127)!==0||hU(M,w,_)}$.memoizedState=_;var ae={value:_,getSnapshot:w};return $.queue=ae,jU(gU.bind(null,M,ae,h),[h]),M.flags|=2048,Gb(9,{destroy:void 0},fU.bind(null,M,ae,_,w),null),_},useId:function(){var h=po(),w=yn.identifierPrefix;if(Dr){var _=Rd,M=Ld;_=(M&~(1<<32-Ge(M)-1)).toString(32)+_,w="_"+w+"R_"+_,_=Yk++,0<_&&(w+="H"+_.toString(32)),w+="_"}else _=wue++,w="_"+w+"r_"+_.toString(32)+"_";return h.memoizedState=w},useHostTransitionStatus:uM,useFormState:CU,useActionState:CU,useOptimistic:function(h){var w=po();w.memoizedState=w.baseState=h;var _={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return w.queue=_,w=mM.bind(null,ir,!0,_),_.dispatch=w,[h,w]},useMemoCache:aM,useCacheRefresh:function(){return po().memoizedState=Nue.bind(null,ir)},useEffectEvent:function(h){var w=po(),_={impl:h};return w.memoizedState=_,function(){if(($r&2)!==0)throw Error(n(440));return _.impl.apply(void 0,arguments)}}},pM={readContext:_s,use:Xk,useCallback:RU,useContext:_s,useEffect:oM,useImperativeHandle:LU,useInsertionEffect:EU,useLayoutEffect:DU,useMemo:zU,useReducer:Zk,useRef:AU,useState:function(){return Zk($u)},useDebugValue:lM,useDeferredValue:function(h,w){var _=bi();return IU(_,sn.memoizedState,h,w)},useTransition:function(){var h=Zk($u)[0],w=bi().memoizedState;return[typeof h=="boolean"?h:Bv(h),w]},useSyncExternalStore:pU,useId:HU,useHostTransitionStatus:uM,useFormState:PU,useActionState:PU,useOptimistic:function(h,w){var _=bi();return yU(_,sn,h,w)},useMemoCache:aM,useCacheRefresh:qU};pM.useEffectEvent=MU;var KU={readContext:_s,use:Xk,useCallback:RU,useContext:_s,useEffect:oM,useImperativeHandle:LU,useInsertionEffect:EU,useLayoutEffect:DU,useMemo:zU,useReducer:nM,useRef:AU,useState:function(){return nM($u)},useDebugValue:lM,useDeferredValue:function(h,w){var _=bi();return sn===null?cM(_,h,w):IU(_,sn.memoizedState,h,w)},useTransition:function(){var h=nM($u)[0],w=bi().memoizedState;return[typeof h=="boolean"?h:Bv(h),w]},useSyncExternalStore:pU,useId:HU,useHostTransitionStatus:uM,useFormState:TU,useActionState:TU,useOptimistic:function(h,w){var _=bi();return sn!==null?yU(_,sn,h,w):(_.baseState=h,[h,_.queue.dispatch])},useMemoCache:aM,useCacheRefresh:qU};KU.useEffectEvent=MU;function hM(h,w,_,M){w=h.memoizedState,_=_(M,w),_=_==null?w:m({},w,_),h.memoizedState=_,h.lanes===0&&(h.updateQueue.baseState=_)}var fM={enqueueSetState:function(h,w,_){h=h._reactInternals;var M=xl(),$=Mp(M);$.payload=w,_!=null&&($.callback=_),w=Ep(h,$,M),w!==null&&(Uo(w,h,M),Rv(w,h,M))},enqueueReplaceState:function(h,w,_){h=h._reactInternals;var M=xl(),$=Mp(M);$.tag=1,$.payload=w,_!=null&&($.callback=_),w=Ep(h,$,M),w!==null&&(Uo(w,h,M),Rv(w,h,M))},enqueueForceUpdate:function(h,w){h=h._reactInternals;var _=xl(),M=Mp(_);M.tag=2,w!=null&&(M.callback=w),w=Ep(h,M,_),w!==null&&(Uo(w,h,_),Rv(w,h,_))}};function YU(h,w,_,M,$,ae,Ce){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(M,ae,Ce):w.prototype&&w.prototype.isPureReactComponent?!Ss(_,M)||!Ss($,ae):!0}function QU(h,w,_,M){h=w.state,typeof w.componentWillReceiveProps=="function"&&w.componentWillReceiveProps(_,M),typeof w.UNSAFE_componentWillReceiveProps=="function"&&w.UNSAFE_componentWillReceiveProps(_,M),w.state!==h&&fM.enqueueReplaceState(w,w.state,null)}function If(h,w){var _=w;if("ref"in w){_={};for(var M in w)M!=="ref"&&(_[M]=w[M])}if(h=h.defaultProps){_===w&&(_=m({},_));for(var $ in h)_[$]===void 0&&(_[$]=h[$])}return _}function XU(h){Dk(h)}function ZU(h){console.error(h)}function JU(h){Dk(h)}function a_(h,w){try{var _=h.onUncaughtError;_(w.value,{componentStack:w.stack})}catch(M){setTimeout(function(){throw M})}}function eH(h,w,_){try{var M=h.onCaughtError;M(_.value,{componentStack:_.stack,errorBoundary:w.tag===1?w.stateNode:null})}catch($){setTimeout(function(){throw $})}}function gM(h,w,_){return _=Mp(_),_.tag=3,_.payload={element:null},_.callback=function(){a_(h,w)},_}function tH(h){return h=Mp(h),h.tag=3,h}function aH(h,w,_,M){var $=_.type.getDerivedStateFromError;if(typeof $=="function"){var ae=M.value;h.payload=function(){return $(ae)},h.callback=function(){eH(w,_,M)}}var Ce=_.stateNode;Ce!==null&&typeof Ce.componentDidCatch=="function"&&(h.callback=function(){eH(w,_,M),typeof $!="function"&&(Ip===null?Ip=new Set([this]):Ip.add(this));var He=M.stack;this.componentDidCatch(M.value,{componentStack:He!==null?He:""})})}function Aue(h,w,_,M,$){if(_.flags|=32768,M!==null&&typeof M=="object"&&typeof M.then=="function"){if(w=_.alternate,w!==null&&zb(w,_,$,!0),_=hl.current,_!==null){switch(_.tag){case 31:case 13:return Jl===null?h_():_.alternate===null&&ei===0&&(ei=3),_.flags&=-257,_.flags|=65536,_.lanes=$,M===qk?_.flags|=16384:(w=_.updateQueue,w===null?_.updateQueue=new Set([M]):w.add(M),UM(h,M,$)),!1;case 22:return _.flags|=65536,M===qk?_.flags|=16384:(w=_.updateQueue,w===null?(w={transitions:null,markerInstances:null,retryQueue:new Set([M])},_.updateQueue=w):(_=w.retryQueue,_===null?w.retryQueue=new Set([M]):_.add(M)),UM(h,M,$)),!1}throw Error(n(435,_.tag))}return UM(h,M,$),h_(),!1}if(Dr)return w=hl.current,w!==null?((w.flags&65536)===0&&(w.flags|=256),w.flags|=65536,w.lanes=$,M!==Lj&&(h=Error(n(422),{cause:M}),Mv(Yl(h,_)))):(M!==Lj&&(w=Error(n(423),{cause:M}),Mv(Yl(w,_))),h=h.current.alternate,h.flags|=65536,$&=-$,h.lanes|=$,M=Yl(M,_),$=gM(h.stateNode,M,$),$j(h,$),ei!==4&&(ei=2)),!1;var ae=Error(n(520),{cause:M});if(ae=Yl(ae,_),Qv===null?Qv=[ae]:Qv.push(ae),ei!==4&&(ei=2),w===null)return!0;M=Yl(M,_),_=w;do{switch(_.tag){case 3:return _.flags|=65536,h=$&-$,_.lanes|=h,h=gM(_.stateNode,M,h),$j(_,h),!1;case 1:if(w=_.type,ae=_.stateNode,(_.flags&128)===0&&(typeof w.getDerivedStateFromError=="function"||ae!==null&&typeof ae.componentDidCatch=="function"&&(Ip===null||!Ip.has(ae))))return _.flags|=65536,$&=-$,_.lanes|=$,$=tH($),aH($,h,_,M),$j(_,$),!1}_=_.return}while(_!==null);return!1}var bM=Error(n(461)),Ti=!1;function Cs(h,w,_,M){w.child=h===null?sU(w,null,_,M):Rf(w,h.child,_,M)}function rH(h,w,_,M,$){_=_.render;var ae=w.ref;if("ref"in M){var Ce={};for(var He in M)He!=="ref"&&(Ce[He]=M[He])}else Ce=M;return Ef(w),M=Zj(h,w,_,Ce,ae,$),He=Jj(),h!==null&&!Ti?(eM(h,w,$),Wu(h,w,$)):(Dr&&He&&Dj(w),w.flags|=1,Cs(h,w,M,$),w.child)}function nH(h,w,_,M,$){if(h===null){var ae=_.type;return typeof ae=="function"&&!jj(ae)&&ae.defaultProps===void 0&&_.compare===null?(w.tag=15,w.type=ae,iH(h,w,ae,M,$)):(h=zk(_.type,null,M,w,w.mode,$),h.ref=w.ref,h.return=w,w.child=h)}if(ae=h.child,!CM(h,$)){var Ce=ae.memoizedProps;if(_=_.compare,_=_!==null?_:Ss,_(Ce,M)&&h.ref===w.ref)return Wu(h,w,$)}return w.flags|=1,h=Uu(ae,M),h.ref=w.ref,h.return=w,w.child=h}function iH(h,w,_,M,$){if(h!==null){var ae=h.memoizedProps;if(Ss(ae,M)&&h.ref===w.ref)if(Ti=!1,w.pendingProps=M=ae,CM(h,$))(h.flags&131072)!==0&&(Ti=!0);else return w.lanes=h.lanes,Wu(h,w,$)}return xM(h,w,_,M,$)}function sH(h,w,_,M){var $=M.children,ae=h!==null?h.memoizedState:null;if(h===null&&w.stateNode===null&&(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),M.mode==="hidden"){if((w.flags&128)!==0){if(ae=ae!==null?ae.baseLanes|_:_,h!==null){for(M=w.child=h.child,$=0;M!==null;)$=$|M.lanes|M.childLanes,M=M.sibling;M=$&~ae}else M=0,w.child=null;return oH(h,w,ae,_,M)}if((_&536870912)!==0)w.memoizedState={baseLanes:0,cachePool:null},h!==null&&Uk(w,ae!==null?ae.cachePool:null),ae!==null?cU(w,ae):Kj(),dU(w);else return M=w.lanes=536870912,oH(h,w,ae!==null?ae.baseLanes|_:_,_,M)}else ae!==null?(Uk(w,ae.cachePool),cU(w,ae),Fp(),w.memoizedState=null):(h!==null&&Uk(w,null),Kj(),Fp());return Cs(h,w,$,_),w.child}function qv(h,w){return h!==null&&h.tag===22||w.stateNode!==null||(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),w.sibling}function oH(h,w,_,M,$){var ae=Hj();return ae=ae===null?null:{parent:Pi._currentValue,pool:ae},w.memoizedState={baseLanes:_,cachePool:ae},h!==null&&Uk(w,null),Kj(),dU(w),h!==null&&zb(h,w,M,!0),w.childLanes=$,null}function r_(h,w){return w=i_({mode:w.mode,children:w.children},h.mode),w.ref=h.ref,h.child=w,w.return=h,w}function lH(h,w,_){return Rf(w,h.child,null,_),h=r_(w,w.pendingProps),h.flags|=2,fl(w),w.memoizedState=null,h}function jue(h,w,_){var M=w.pendingProps,$=(w.flags&128)!==0;if(w.flags&=-129,h===null){if(Dr){if(M.mode==="hidden")return h=r_(w,M),w.lanes=536870912,qv(null,h);if(Qj(w),(h=Nn)?(h=vq(h,Zl),h=h!==null&&h.data==="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:Pp!==null?{id:Ld,overflow:Rd}:null,retryLane:536870912,hydrationErrors:null},_=G5(h),_.return=w,w.child=_,ks=w,Nn=null)):h=null,h===null)throw Tp(w);return w.lanes=536870912,null}return r_(w,M)}var ae=h.memoizedState;if(ae!==null){var Ce=ae.dehydrated;if(Qj(w),$)if(w.flags&256)w.flags&=-257,w=lH(h,w,_);else if(w.memoizedState!==null)w.child=h.child,w.flags|=128,w=null;else throw Error(n(558));else if(Ti||zb(h,w,_,!1),$=(_&h.childLanes)!==0,Ti||$){if(M=yn,M!==null&&(Ce=dt(M,_),Ce!==0&&Ce!==ae.retryLane))throw ae.retryLane=Ce,Tf(h,Ce),Uo(M,h,Ce),bM;h_(),w=lH(h,w,_)}else h=ae.treeContext,Nn=ec(Ce.nextSibling),ks=w,Dr=!0,Np=null,Zl=!1,h!==null&&K5(w,h),w=r_(w,M),w.flags|=4096;return w}return h=Uu(h.child,{mode:M.mode,children:M.children}),h.ref=w.ref,w.child=h,h.return=w,h}function n_(h,w){var _=w.ref;if(_===null)h!==null&&h.ref!==null&&(w.flags|=4194816);else{if(typeof _!="function"&&typeof _!="object")throw Error(n(284));(h===null||h.ref!==_)&&(w.flags|=4194816)}}function xM(h,w,_,M,$){return Ef(w),_=Zj(h,w,_,M,void 0,$),M=Jj(),h!==null&&!Ti?(eM(h,w,$),Wu(h,w,$)):(Dr&&M&&Dj(w),w.flags|=1,Cs(h,w,_,$),w.child)}function cH(h,w,_,M,$,ae){return Ef(w),w.updateQueue=null,_=mU(w,M,_,$),uU(h),M=Jj(),h!==null&&!Ti?(eM(h,w,ae),Wu(h,w,ae)):(Dr&&M&&Dj(w),w.flags|=1,Cs(h,w,_,ae),w.child)}function dH(h,w,_,M,$){if(Ef(w),w.stateNode===null){var ae=Db,Ce=_.contextType;typeof Ce=="object"&&Ce!==null&&(ae=_s(Ce)),ae=new _(M,ae),w.memoizedState=ae.state!==null&&ae.state!==void 0?ae.state:null,ae.updater=fM,w.stateNode=ae,ae._reactInternals=w,ae=w.stateNode,ae.props=M,ae.state=w.memoizedState,ae.refs={},Vj(w),Ce=_.contextType,ae.context=typeof Ce=="object"&&Ce!==null?_s(Ce):Db,ae.state=w.memoizedState,Ce=_.getDerivedStateFromProps,typeof Ce=="function"&&(hM(w,_,Ce,M),ae.state=w.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof ae.getSnapshotBeforeUpdate=="function"||typeof ae.UNSAFE_componentWillMount!="function"&&typeof ae.componentWillMount!="function"||(Ce=ae.state,typeof ae.componentWillMount=="function"&&ae.componentWillMount(),typeof ae.UNSAFE_componentWillMount=="function"&&ae.UNSAFE_componentWillMount(),Ce!==ae.state&&fM.enqueueReplaceState(ae,ae.state,null),Iv(w,M,ae,$),zv(),ae.state=w.memoizedState),typeof ae.componentDidMount=="function"&&(w.flags|=4194308),M=!0}else if(h===null){ae=w.stateNode;var He=w.memoizedProps,ft=If(_,He);ae.props=ft;var Et=ae.context,qt=_.contextType;Ce=Db,typeof qt=="object"&&qt!==null&&(Ce=_s(qt));var Wt=_.getDerivedStateFromProps;qt=typeof Wt=="function"||typeof ae.getSnapshotBeforeUpdate=="function",He=w.pendingProps!==He,qt||typeof ae.UNSAFE_componentWillReceiveProps!="function"&&typeof ae.componentWillReceiveProps!="function"||(He||Et!==Ce)&&QU(w,ae,M,Ce),jp=!1;var Dt=w.memoizedState;ae.state=Dt,Iv(w,M,ae,$),zv(),Et=w.memoizedState,He||Dt!==Et||jp?(typeof Wt=="function"&&(hM(w,_,Wt,M),Et=w.memoizedState),(ft=jp||YU(w,_,ft,M,Dt,Et,Ce))?(qt||typeof ae.UNSAFE_componentWillMount!="function"&&typeof ae.componentWillMount!="function"||(typeof ae.componentWillMount=="function"&&ae.componentWillMount(),typeof ae.UNSAFE_componentWillMount=="function"&&ae.UNSAFE_componentWillMount()),typeof ae.componentDidMount=="function"&&(w.flags|=4194308)):(typeof ae.componentDidMount=="function"&&(w.flags|=4194308),w.memoizedProps=M,w.memoizedState=Et),ae.props=M,ae.state=Et,ae.context=Ce,M=ft):(typeof ae.componentDidMount=="function"&&(w.flags|=4194308),M=!1)}else{ae=w.stateNode,Gj(h,w),Ce=w.memoizedProps,qt=If(_,Ce),ae.props=qt,Wt=w.pendingProps,Dt=ae.context,Et=_.contextType,ft=Db,typeof Et=="object"&&Et!==null&&(ft=_s(Et)),He=_.getDerivedStateFromProps,(Et=typeof He=="function"||typeof ae.getSnapshotBeforeUpdate=="function")||typeof ae.UNSAFE_componentWillReceiveProps!="function"&&typeof ae.componentWillReceiveProps!="function"||(Ce!==Wt||Dt!==ft)&&QU(w,ae,M,ft),jp=!1,Dt=w.memoizedState,ae.state=Dt,Iv(w,M,ae,$),zv();var Ot=w.memoizedState;Ce!==Wt||Dt!==Ot||jp||h!==null&&h.dependencies!==null&&Ok(h.dependencies)?(typeof He=="function"&&(hM(w,_,He,M),Ot=w.memoizedState),(qt=jp||YU(w,_,qt,M,Dt,Ot,ft)||h!==null&&h.dependencies!==null&&Ok(h.dependencies))?(Et||typeof ae.UNSAFE_componentWillUpdate!="function"&&typeof ae.componentWillUpdate!="function"||(typeof ae.componentWillUpdate=="function"&&ae.componentWillUpdate(M,Ot,ft),typeof ae.UNSAFE_componentWillUpdate=="function"&&ae.UNSAFE_componentWillUpdate(M,Ot,ft)),typeof ae.componentDidUpdate=="function"&&(w.flags|=4),typeof ae.getSnapshotBeforeUpdate=="function"&&(w.flags|=1024)):(typeof ae.componentDidUpdate!="function"||Ce===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof ae.getSnapshotBeforeUpdate!="function"||Ce===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),w.memoizedProps=M,w.memoizedState=Ot),ae.props=M,ae.state=Ot,ae.context=ft,M=qt):(typeof ae.componentDidUpdate!="function"||Ce===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof ae.getSnapshotBeforeUpdate!="function"||Ce===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),M=!1)}return ae=M,n_(h,w),M=(w.flags&128)!==0,ae||M?(ae=w.stateNode,_=M&&typeof _.getDerivedStateFromError!="function"?null:ae.render(),w.flags|=1,h!==null&&M?(w.child=Rf(w,h.child,null,$),w.child=Rf(w,null,_,$)):Cs(h,w,_,$),w.memoizedState=ae.state,h=w.child):h=Wu(h,w,$),h}function uH(h,w,_,M){return jf(),w.flags|=256,Cs(h,w,_,M),w.child}var yM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function vM(h){return{baseLanes:h,cachePool:eU()}}function wM(h,w,_){return h=h!==null?h.childLanes&~_:0,w&&(h|=bl),h}function mH(h,w,_){var M=w.pendingProps,$=!1,ae=(w.flags&128)!==0,Ce;if((Ce=ae)||(Ce=h!==null&&h.memoizedState===null?!1:(gi.current&2)!==0),Ce&&($=!0,w.flags&=-129),Ce=(w.flags&32)!==0,w.flags&=-33,h===null){if(Dr){if($?Dp(w):Fp(),(h=Nn)?(h=vq(h,Zl),h=h!==null&&h.data!=="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:Pp!==null?{id:Ld,overflow:Rd}:null,retryLane:536870912,hydrationErrors:null},_=G5(h),_.return=w,w.child=_,ks=w,Nn=null)):h=null,h===null)throw Tp(w);return rE(h)?w.lanes=32:w.lanes=536870912,null}var He=M.children;return M=M.fallback,$?(Fp(),$=w.mode,He=i_({mode:"hidden",children:He},$),M=Af(M,$,_,null),He.return=w,M.return=w,He.sibling=M,w.child=He,M=w.child,M.memoizedState=vM(_),M.childLanes=wM(h,Ce,_),w.memoizedState=yM,qv(null,M)):(Dp(w),SM(w,He))}var ft=h.memoizedState;if(ft!==null&&(He=ft.dehydrated,He!==null)){if(ae)w.flags&256?(Dp(w),w.flags&=-257,w=kM(h,w,_)):w.memoizedState!==null?(Fp(),w.child=h.child,w.flags|=128,w=null):(Fp(),He=M.fallback,$=w.mode,M=i_({mode:"visible",children:M.children},$),He=Af(He,$,_,null),He.flags|=2,M.return=w,He.return=w,M.sibling=He,w.child=M,Rf(w,h.child,null,_),M=w.child,M.memoizedState=vM(_),M.childLanes=wM(h,Ce,_),w.memoizedState=yM,w=qv(null,M));else if(Dp(w),rE(He)){if(Ce=He.nextSibling&&He.nextSibling.dataset,Ce)var Et=Ce.dgst;Ce=Et,M=Error(n(419)),M.stack="",M.digest=Ce,Mv({value:M,source:null,stack:null}),w=kM(h,w,_)}else if(Ti||zb(h,w,_,!1),Ce=(_&h.childLanes)!==0,Ti||Ce){if(Ce=yn,Ce!==null&&(M=dt(Ce,_),M!==0&&M!==ft.retryLane))throw ft.retryLane=M,Tf(h,M),Uo(Ce,h,M),bM;aE(He)||h_(),w=kM(h,w,_)}else aE(He)?(w.flags|=192,w.child=h.child,w=null):(h=ft.treeContext,Nn=ec(He.nextSibling),ks=w,Dr=!0,Np=null,Zl=!1,h!==null&&K5(w,h),w=SM(w,M.children),w.flags|=4096);return w}return $?(Fp(),He=M.fallback,$=w.mode,ft=h.child,Et=ft.sibling,M=Uu(ft,{mode:"hidden",children:M.children}),M.subtreeFlags=ft.subtreeFlags&65011712,Et!==null?He=Uu(Et,He):(He=Af(He,$,_,null),He.flags|=2),He.return=w,M.return=w,M.sibling=He,w.child=M,qv(null,M),M=w.child,He=h.child.memoizedState,He===null?He=vM(_):($=He.cachePool,$!==null?(ft=Pi._currentValue,$=$.parent!==ft?{parent:ft,pool:ft}:$):$=eU(),He={baseLanes:He.baseLanes|_,cachePool:$}),M.memoizedState=He,M.childLanes=wM(h,Ce,_),w.memoizedState=yM,qv(h.child,M)):(Dp(w),_=h.child,h=_.sibling,_=Uu(_,{mode:"visible",children:M.children}),_.return=w,_.sibling=null,h!==null&&(Ce=w.deletions,Ce===null?(w.deletions=[h],w.flags|=16):Ce.push(h)),w.child=_,w.memoizedState=null,_)}function SM(h,w){return w=i_({mode:"visible",children:w},h.mode),w.return=h,h.child=w}function i_(h,w){return h=pl(22,h,null,w),h.lanes=0,h}function kM(h,w,_){return Rf(w,h.child,null,_),h=SM(w,w.pendingProps.children),h.flags|=2,w.memoizedState=null,h}function pH(h,w,_){h.lanes|=w;var M=h.alternate;M!==null&&(M.lanes|=w),Ij(h.return,w,_)}function _M(h,w,_,M,$,ae){var Ce=h.memoizedState;Ce===null?h.memoizedState={isBackwards:w,rendering:null,renderingStartTime:0,last:M,tail:_,tailMode:$,treeForkCount:ae}:(Ce.isBackwards=w,Ce.rendering=null,Ce.renderingStartTime=0,Ce.last=M,Ce.tail=_,Ce.tailMode=$,Ce.treeForkCount=ae)}function hH(h,w,_){var M=w.pendingProps,$=M.revealOrder,ae=M.tail;M=M.children;var Ce=gi.current,He=(Ce&2)!==0;if(He?(Ce=Ce&1|2,w.flags|=128):Ce&=1,me(gi,Ce),Cs(h,w,M,_),M=Dr?jv:0,!He&&h!==null&&(h.flags&128)!==0)e:for(h=w.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&pH(h,_,w);else if(h.tag===19)pH(h,_,w);else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===w)break e;for(;h.sibling===null;){if(h.return===null||h.return===w)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}switch($){case"forwards":for(_=w.child,$=null;_!==null;)h=_.alternate,h!==null&&Wk(h)===null&&($=_),_=_.sibling;_=$,_===null?($=w.child,w.child=null):($=_.sibling,_.sibling=null),_M(w,!1,$,_,ae,M);break;case"backwards":case"unstable_legacy-backwards":for(_=null,$=w.child,w.child=null;$!==null;){if(h=$.alternate,h!==null&&Wk(h)===null){w.child=$;break}h=$.sibling,$.sibling=_,_=$,$=h}_M(w,!0,_,null,ae,M);break;case"together":_M(w,!1,null,null,void 0,M);break;default:w.memoizedState=null}return w.child}function Wu(h,w,_){if(h!==null&&(w.dependencies=h.dependencies),zp|=w.lanes,(_&w.childLanes)===0)if(h!==null){if(zb(h,w,_,!1),(_&w.childLanes)===0)return null}else return null;if(h!==null&&w.child!==h.child)throw Error(n(153));if(w.child!==null){for(h=w.child,_=Uu(h,h.pendingProps),w.child=_,_.return=w;h.sibling!==null;)h=h.sibling,_=_.sibling=Uu(h,h.pendingProps),_.return=w;_.sibling=null}return w.child}function CM(h,w){return(h.lanes&w)!==0?!0:(h=h.dependencies,!!(h!==null&&Ok(h)))}function Mue(h,w,_){switch(w.tag){case 3:A(w,w.stateNode.containerInfo),Ap(w,Pi,h.memoizedState.cache),jf();break;case 27:case 5:H(w);break;case 4:A(w,w.stateNode.containerInfo);break;case 10:Ap(w,w.type,w.memoizedProps.value);break;case 31:if(w.memoizedState!==null)return w.flags|=128,Qj(w),null;break;case 13:var M=w.memoizedState;if(M!==null)return M.dehydrated!==null?(Dp(w),w.flags|=128,null):(_&w.child.childLanes)!==0?mH(h,w,_):(Dp(w),h=Wu(h,w,_),h!==null?h.sibling:null);Dp(w);break;case 19:var $=(h.flags&128)!==0;if(M=(_&w.childLanes)!==0,M||(zb(h,w,_,!1),M=(_&w.childLanes)!==0),$){if(M)return hH(h,w,_);w.flags|=128}if($=w.memoizedState,$!==null&&($.rendering=null,$.tail=null,$.lastEffect=null),me(gi,gi.current),M)break;return null;case 22:return w.lanes=0,sH(h,w,_,w.pendingProps);case 24:Ap(w,Pi,h.memoizedState.cache)}return Wu(h,w,_)}function fH(h,w,_){if(h!==null)if(h.memoizedProps!==w.pendingProps)Ti=!0;else{if(!CM(h,_)&&(w.flags&128)===0)return Ti=!1,Mue(h,w,_);Ti=(h.flags&131072)!==0}else Ti=!1,Dr&&(w.flags&1048576)!==0&&W5(w,jv,w.index);switch(w.lanes=0,w.tag){case 16:e:{var M=w.pendingProps;if(h=Ff(w.elementType),w.type=h,typeof h=="function")jj(h)?(M=If(h,M),w.tag=1,w=dH(null,w,h,M,_)):(w.tag=0,w=xM(null,w,h,M,_));else{if(h!=null){var $=h.$$typeof;if($===C){w.tag=11,w=rH(null,w,h,M,_);break e}else if($===j){w.tag=14,w=nH(null,w,h,M,_);break e}}throw w=z(h)||h,Error(n(306,w,""))}}return w;case 0:return xM(h,w,w.type,w.pendingProps,_);case 1:return M=w.type,$=If(M,w.pendingProps),dH(h,w,M,$,_);case 3:e:{if(A(w,w.stateNode.containerInfo),h===null)throw Error(n(387));M=w.pendingProps;var ae=w.memoizedState;$=ae.element,Gj(h,w),Iv(w,M,null,_);var Ce=w.memoizedState;if(M=Ce.cache,Ap(w,Pi,M),M!==ae.cache&&Oj(w,[Pi],_,!0),zv(),M=Ce.element,ae.isDehydrated)if(ae={element:M,isDehydrated:!1,cache:Ce.cache},w.updateQueue.baseState=ae,w.memoizedState=ae,w.flags&256){w=uH(h,w,M,_);break e}else if(M!==$){$=Yl(Error(n(424)),w),Mv($),w=uH(h,w,M,_);break e}else for(h=w.stateNode.containerInfo,h.nodeType===9?h=h.body:h=h.nodeName==="HTML"?h.ownerDocument.body:h,Nn=ec(h.firstChild),ks=w,Dr=!0,Np=null,Zl=!0,_=sU(w,null,M,_),w.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling;else{if(jf(),M===$){w=Wu(h,w,_);break e}Cs(h,w,M,_)}w=w.child}return w;case 26:return n_(h,w),h===null?(_=Pq(w.type,null,w.pendingProps,null))?w.memoizedState=_:Dr||(_=w.type,h=w.pendingProps,M=w_(U.current).createElement(_),M[gt]=w,M[Pt]=h,Ps(M,_,h),it(M),w.stateNode=M):w.memoizedState=Pq(w.type,h.memoizedProps,w.pendingProps,h.memoizedState),null;case 27:return H(w),h===null&&Dr&&(M=w.stateNode=kq(w.type,w.pendingProps,U.current),ks=w,Zl=!0,$=Nn,Hp(w.type)?(nE=$,Nn=ec(M.firstChild)):Nn=$),Cs(h,w,w.pendingProps.children,_),n_(h,w),h===null&&(w.flags|=4194304),w.child;case 5:return h===null&&Dr&&(($=M=Nn)&&(M=ome(M,w.type,w.pendingProps,Zl),M!==null?(w.stateNode=M,ks=w,Nn=ec(M.firstChild),Zl=!1,$=!0):$=!1),$||Tp(w)),H(w),$=w.type,ae=w.pendingProps,Ce=h!==null?h.memoizedProps:null,M=ae.children,JM($,ae)?M=null:Ce!==null&&JM($,Ce)&&(w.flags|=32),w.memoizedState!==null&&($=Zj(h,w,Sue,null,null,_),n0._currentValue=$),n_(h,w),Cs(h,w,M,_),w.child;case 6:return h===null&&Dr&&((h=_=Nn)&&(_=lme(_,w.pendingProps,Zl),_!==null?(w.stateNode=_,ks=w,Nn=null,h=!0):h=!1),h||Tp(w)),null;case 13:return mH(h,w,_);case 4:return A(w,w.stateNode.containerInfo),M=w.pendingProps,h===null?w.child=Rf(w,null,M,_):Cs(h,w,M,_),w.child;case 11:return rH(h,w,w.type,w.pendingProps,_);case 7:return Cs(h,w,w.pendingProps,_),w.child;case 8:return Cs(h,w,w.pendingProps.children,_),w.child;case 12:return Cs(h,w,w.pendingProps.children,_),w.child;case 10:return M=w.pendingProps,Ap(w,w.type,M.value),Cs(h,w,M.children,_),w.child;case 9:return $=w.type._context,M=w.pendingProps.children,Ef(w),$=_s($),M=M($),w.flags|=1,Cs(h,w,M,_),w.child;case 14:return nH(h,w,w.type,w.pendingProps,_);case 15:return iH(h,w,w.type,w.pendingProps,_);case 19:return hH(h,w,_);case 31:return jue(h,w,_);case 22:return sH(h,w,_,w.pendingProps);case 24:return Ef(w),M=_s(Pi),h===null?($=Hj(),$===null&&($=yn,ae=Bj(),$.pooledCache=ae,ae.refCount++,ae!==null&&($.pooledCacheLanes|=_),$=ae),w.memoizedState={parent:M,cache:$},Vj(w),Ap(w,Pi,$)):((h.lanes&_)!==0&&(Gj(h,w),Iv(w,null,null,_),zv()),$=h.memoizedState,ae=w.memoizedState,$.parent!==M?($={parent:M,cache:M},w.memoizedState=$,w.lanes===0&&(w.memoizedState=w.updateQueue.baseState=$),Ap(w,Pi,M)):(M=ae.cache,Ap(w,Pi,M),M!==$.cache&&Oj(w,[Pi],_,!0))),Cs(h,w,w.pendingProps.children,_),w.child;case 29:throw w.pendingProps}throw Error(n(156,w.tag))}function Ku(h){h.flags|=4}function PM(h,w,_,M,$){if((w=(h.mode&32)!==0)&&(w=!1),w){if(h.flags|=16777216,($&335544128)===$)if(h.stateNode.complete)h.flags|=8192;else if(HH())h.flags|=8192;else throw Lf=qk,qj}else h.flags&=-16777217}function gH(h,w){if(w.type!=="stylesheet"||(w.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!Mq(w))if(HH())h.flags|=8192;else throw Lf=qk,qj}function s_(h,w){w!==null&&(h.flags|=4),h.flags&16384&&(w=h.tag!==22?$e():536870912,h.lanes|=w,Yb|=w)}function Vv(h,w){if(!Dr)switch(h.tailMode){case"hidden":w=h.tail;for(var _=null;w!==null;)w.alternate!==null&&(_=w),w=w.sibling;_===null?h.tail=null:_.sibling=null;break;case"collapsed":_=h.tail;for(var M=null;_!==null;)_.alternate!==null&&(M=_),_=_.sibling;M===null?w||h.tail===null?h.tail=null:h.tail.sibling=null:M.sibling=null}}function Tn(h){var w=h.alternate!==null&&h.alternate.child===h.child,_=0,M=0;if(w)for(var $=h.child;$!==null;)_|=$.lanes|$.childLanes,M|=$.subtreeFlags&65011712,M|=$.flags&65011712,$.return=h,$=$.sibling;else for($=h.child;$!==null;)_|=$.lanes|$.childLanes,M|=$.subtreeFlags,M|=$.flags,$.return=h,$=$.sibling;return h.subtreeFlags|=M,h.childLanes=_,w}function Eue(h,w,_){var M=w.pendingProps;switch(Fj(w),w.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Tn(w),null;case 1:return Tn(w),null;case 3:return _=w.stateNode,M=null,h!==null&&(M=h.memoizedState.cache),w.memoizedState.cache!==M&&(w.flags|=2048),Vu(Pi),D(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(h===null||h.child===null)&&(Rb(w)?Ku(w):h===null||h.memoizedState.isDehydrated&&(w.flags&256)===0||(w.flags|=1024,Rj())),Tn(w),null;case 26:var $=w.type,ae=w.memoizedState;return h===null?(Ku(w),ae!==null?(Tn(w),gH(w,ae)):(Tn(w),PM(w,$,null,M,_))):ae?ae!==h.memoizedState?(Ku(w),Tn(w),gH(w,ae)):(Tn(w),w.flags&=-16777217):(h=h.memoizedProps,h!==M&&Ku(w),Tn(w),PM(w,$,h,M,_)),null;case 27:if(W(w),_=U.current,$=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Ku(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Tn(w),null}h=pe.current,Rb(w)?Y5(w):(h=kq($,M,_),w.stateNode=h,Ku(w))}return Tn(w),null;case 5:if(W(w),$=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Ku(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Tn(w),null}if(ae=pe.current,Rb(w))Y5(w);else{var Ce=w_(U.current);switch(ae){case 1:ae=Ce.createElementNS("http://www.w3.org/2000/svg",$);break;case 2:ae=Ce.createElementNS("http://www.w3.org/1998/Math/MathML",$);break;default:switch($){case"svg":ae=Ce.createElementNS("http://www.w3.org/2000/svg",$);break;case"math":ae=Ce.createElementNS("http://www.w3.org/1998/Math/MathML",$);break;case"script":ae=Ce.createElement("div"),ae.innerHTML=" + + + +
+ + + + + diff --git a/static/manifest.json b/static/manifest.json new file mode 100644 index 000000000..4cb266e4f --- /dev/null +++ b/static/manifest.json @@ -0,0 +1,95 @@ +{ + "id": "/", + "name": "Bambuddy", + "short_name": "Bambuddy", + "description": "Monitor and manage your Bambu Lab 3D printers", + "start_url": "/", + "display": "standalone", + "background_color": "#1a1a1a", + "theme_color": "#00ae42", + "orientation": "any", + "scope": "/", + "icons": [ + { + "src": "/img/favicon-16x16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "/img/favicon-32x32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "/img/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "/img/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any" + }, + { + "src": "/img/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/img/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "screenshots": [ + { + "src": "/img/screenshot-mobile.png", + "sizes": "1080x1920", + "type": "image/png", + "form_factor": "narrow", + "label": "Bambuddy on mobile" + }, + { + "src": "/img/screenshot-desktop.png", + "sizes": "1920x1080", + "type": "image/png", + "form_factor": "wide", + "label": "Bambuddy on desktop" + } + ], + "categories": ["utilities", "productivity"], + "shortcuts": [ + { + "name": "Printers", + "short_name": "Printers", + "description": "View your printers", + "url": "/", + "icons": [{ "src": "/img/android-chrome-192x192.png", "sizes": "192x192" }] + }, + { + "name": "Archives", + "short_name": "Archives", + "description": "View print archives", + "url": "/archives", + "icons": [{ "src": "/img/android-chrome-192x192.png", "sizes": "192x192" }] + }, + { + "name": "Queue", + "short_name": "Queue", + "description": "View print queue", + "url": "/queue", + "icons": [{ "src": "/img/android-chrome-192x192.png", "sizes": "192x192" }] + }, + { + "name": "Projects", + "short_name": "Projects", + "description": "View print projects", + "url": "/projects", + "icons": [{ "src": "/img/android-chrome-192x192.png", "sizes": "192x192" }] + } + ] +} diff --git a/static/spoolbuddy_logo_dark.png b/static/spoolbuddy_logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..48e106c2bb8e13a4fd8a6da58e918cbbfbf39d68 GIT binary patch literal 114657 zcmeEuRZv|)(=7?^?tXB0cR08O3GPmCcXxNU;1Jy1-2)`JbAaG*aKHKM)_wZ&J>QrA zVb`viUA3#GtEYR->eUnVMM)YNfdByl0s>i92B-=F0o4xy@relz=I_i!1(Ds~*C!WM zY4K016N~|W2T+z`ieeBD4GD;^#?XJqWTrBziVzUq)DRGXp%4(yf2RWfKtQ;$LO`4t zK|t_lLO|d;=60$G{`~;&D5LEH0f92~KhLKzhYGX5ld!I`ijuI$NF<1q(9r(N34ebH zAqx~!_cS=`fp0f3_j-7#-pzYRJ)3qBharQPg%CqBj%Tm>USv|EQAe`=?AIz}*H?FL zIcM#2o4b^MnH#^RgH2CgjDY<`EQt-wV0EP`N2}Q)~Ne zA^pgQ5=!TgTr8DH?J8_e``t(Uz594HP9`*LPRV#Yt{5!fz453$JqPA*FG{+;=rn)54x;g>*gCQSVA%XZv1&HAp!*GE^npo24Qc-c=@VK9Uw48_<8XCS;QYl+w zZR7+nv`GCkVAf^-U8iQ;35dz_H&ceaDasf9%oU5itdbS6KcC++vT>4zknFFst~M7E_nPxj}z1dUG;CfgI)bT`J6H%0DF* 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 P!9EfqvY-kf{eb@gu?1=p literal 0 HcmV?d00001 diff --git a/static/sw-register.js b/static/sw-register.js new file mode 100644 index 000000000..220886e86 --- /dev/null +++ b/static/sw-register.js @@ -0,0 +1,37 @@ +if ('serviceWorker' in navigator) { + if (location.pathname.startsWith('/spoolbuddy')) { + navigator.serviceWorker.getRegistrations().then((regs) => { + if (regs.length > 0) { + Promise.all([ + ...regs.map((r) => r.unregister()), + caches.keys().then((names) => Promise.all(names.map((n) => caches.delete(n)))), + ]).then(() => location.reload()); + } + }); + } else { + // Capture controller state at script-load. Used to decide whether a + // subsequent `controllerchange` is a deploy-pickup (had a prior SW → + // reload so the new bundle takes over) or a first install (no prior SW → + // skip the reload; the in-flight React mount would otherwise race the + // forced navigation, leaving the page wedged on a spinner. The previous + // approach — `client.navigate(client.url)` from the SW's activate + // handler — exhibited that race in Chromium and a waitUntil hang in + // Firefox, both surfaced on every fresh demo subdomain). + const hadController = !!navigator.serviceWorker.controller; + let reloading = false; + navigator.serviceWorker.addEventListener('controllerchange', () => { + if (!hadController || reloading) return; + reloading = true; + location.reload(); + }); + window.addEventListener('load', () => { + navigator.serviceWorker.register('/sw.js') + .then((registration) => { + console.log('SW registered:', registration.scope); + }) + .catch((error) => { + console.log('SW registration failed:', error); + }); + }); + } +} diff --git a/static/sw.js b/static/sw.js new file mode 100644 index 000000000..42035c068 --- /dev/null +++ b/static/sw.js @@ -0,0 +1,229 @@ +// Bambuddy Service Worker +const CACHE_NAME = 'bambuddy-v30'; +const STATIC_CACHE = 'bambuddy-static-v29'; + +// Static assets to cache on install +const STATIC_ASSETS = [ + '/', + '/manifest.json', + '/img/favicon.png', + '/img/favicon-16x16.png', + '/img/favicon-32x32.png', + '/img/android-chrome-192x192.png', + '/img/android-chrome-512x512.png', + '/img/apple-touch-icon.png', + '/img/bambuddy_logo_dark.png', + // Self-hosted Inter font (#1460) - cached so the UI renders offline. + '/fonts/inter-latin.woff2', + '/fonts/inter-latin-ext.woff2', +]; + +// Install event - cache static assets +self.addEventListener('install', (event) => { + console.log('[SW] Installing service worker...'); + event.waitUntil( + caches.open(STATIC_CACHE).then((cache) => { + console.log('[SW] Caching static assets'); + return cache.addAll(STATIC_ASSETS); + }) + ); + // Activate immediately + self.skipWaiting(); +}); + +// Activate event - clean up old caches and claim existing clients. +// +// The forced reload that picks up a new bundle on already-open clients (the +// kiosk deploy-pickup scenario) lives in sw-register.js via a +// `controllerchange` listener, gated on whether the page already had a SW +// controller at load time. That gate distinguishes first-install (where a +// reload would race the in-flight React mount — observed on every fresh +// *.demo.bambuddy.cool subdomain, and in Firefox the activate's waitUntil +// hung on `client.navigate` until the document load was aborted with a +// Corrupted-Content error) from upgrade-on-existing-client (where the reload +// is wanted). +self.addEventListener('activate', (event) => { + console.log('[SW] Activating service worker...'); + event.waitUntil( + (async () => { + const cacheNames = await caches.keys(); + await Promise.all( + cacheNames + .filter((name) => name !== CACHE_NAME && name !== STATIC_CACHE) + .map((name) => { + console.log('[SW] Deleting old cache:', name); + return caches.delete(name); + }), + ); + await self.clients.claim(); + })(), + ); +}); + +// Fetch event - network-first for API, cache-first for static +self.addEventListener('fetch', (event) => { + const { request } = event; + const url = new URL(request.url); + + // Skip non-GET requests + if (request.method !== 'GET') { + return; + } + + // Skip cross-origin requests - let the browser handle them directly. + // Without this the catch-all HTML branch below would answer a failed + // cross-origin request with our cached index.html, so e.g. a blocked + // Google Fonts request came back as text/html (#1460). + if (url.origin !== self.location.origin) { + return; + } + + // Skip WebSocket connections + if (url.protocol === 'ws:' || url.protocol === 'wss:') { + return; + } + + // Skip camera stream/snapshot requests - Safari has issues with streaming through SW + if (url.pathname.includes('/camera/stream') || url.pathname.includes('/camera/snapshot')) { + return; + } + + // API requests - network first, no cache (real-time data is critical) + if (url.pathname.startsWith('/api/')) { + event.respondWith( + fetch(request).catch(() => { + // Return offline response for API failures + return new Response( + JSON.stringify({ error: 'offline', message: 'You are currently offline' }), + { + status: 503, + headers: { 'Content-Type': 'application/json' }, + } + ); + }) + ); + return; + } + + // Static assets - cache first, then network + if ( + url.pathname.startsWith('/img/') || + url.pathname.startsWith('/icons/') || + url.pathname.startsWith('/fonts/') || + url.pathname.endsWith('.png') || + url.pathname.endsWith('.jpg') || + url.pathname.endsWith('.svg') || + url.pathname.endsWith('.ico') || + url.pathname.endsWith('.woff2') + ) { + event.respondWith( + caches.match(request).then((cached) => { + if (cached) { + return cached; + } + return fetch(request).then((response) => { + // Cache successful responses + if (response.ok) { + const clone = response.clone(); + caches.open(STATIC_CACHE).then((cache) => { + cache.put(request, clone); + }); + } + return response; + }); + }) + ); + return; + } + + // JS/CSS assets - network first (Vite content-hashes filenames, so + // cache-busting is built in; network-first ensures new builds load immediately) + if ( + url.pathname.startsWith('/assets/') || + url.pathname.endsWith('.js') || + url.pathname.endsWith('.css') + ) { + event.respondWith( + fetch(request) + .then((response) => { + if (response.ok) { + const clone = response.clone(); + caches.open(CACHE_NAME).then((cache) => { + cache.put(request, clone); + }); + } + return response; + }) + .catch(() => { + return caches.match(request); + }) + ); + return; + } + + // HTML pages - network first, fall back to cache + event.respondWith( + fetch(request) + .then((response) => { + if (response.ok) { + const clone = response.clone(); + caches.open(CACHE_NAME).then((cache) => { + cache.put(request, clone); + }); + } + return response; + }) + .catch(() => { + return caches.match(request).then((cached) => { + if (cached) { + return cached; + } + // Return cached index for SPA navigation + return caches.match('/'); + }); + }) + ); +}); + +// Handle push notifications (for future use) +self.addEventListener('push', (event) => { + if (!event.data) return; + + const data = event.data.json(); + const options = { + body: data.body || 'New notification from Bambuddy', + icon: '/img/android-chrome-192x192.png', + badge: '/img/favicon-32x32.png', + vibrate: [100, 50, 100], + data: { + url: data.url || '/', + }, + }; + + event.waitUntil( + self.registration.showNotification(data.title || 'Bambuddy', options) + ); +}); + +// Handle notification clicks +self.addEventListener('notificationclick', (event) => { + event.notification.close(); + + const url = event.notification.data?.url || '/'; + + event.waitUntil( + clients.matchAll({ type: 'window', includeUncontrolled: true }).then((windowClients) => { + // Check if there's already a window open + for (const client of windowClients) { + if (client.url.includes(self.location.origin) && 'focus' in client) { + client.navigate(url); + return client.focus(); + } + } + // Open a new window if none exists + if (clients.openWindow) { + return clients.openWindow(url); + } + }) + ); +}); diff --git a/static/vite.svg b/static/vite.svg new file mode 100644 index 000000000..ee9fadaf9 --- /dev/null +++ b/static/vite.svg @@ -0,0 +1 @@ +