diff --git a/v3/internal/setupwizard/frontend/dist/assets/index-5h4Dv4JW.css b/v3/internal/setupwizard/frontend/dist/assets/index-5h4Dv4JW.css new file mode 100644 index 000000000..7d19d4038 --- /dev/null +++ b/v3/internal/setupwizard/frontend/dist/assets/index-5h4Dv4JW.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.z-10{z-index:10}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.h-2{height:.5rem}.h-3{height:.75rem}.h-5{height:1.25rem}.min-h-screen{min-height:100vh}.w-2{width:.5rem}.w-3{width:.75rem}.w-5{width:1.25rem}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-green-500\/30{border-color:#22c55e4d}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-yellow-500\/30{border-color:#eab3084d}.border-t-transparent{border-top-color:transparent}.bg-\[\#0f0f0f\]{--tw-bg-opacity: 1;background-color:rgb(15 15 15 / var(--tw-bg-opacity, 1))}.bg-gray-800\/50{background-color:#1f293780}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/20{background-color:#ef444433}.bg-red-500\/50{background-color:#ef444480}.bg-yellow-500\/10{background-color:#eab3081a}.object-contain{-o-object-fit:contain;object-fit:contain}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--wails-red: #ef4444;--wails-red-dark: #dc2626;--wails-red-light: #f87171;--bg-primary: #0f0f0f;--bg-secondary: #1f2937;--bg-tertiary: #374151}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;background:var(--bg-primary);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.gradient-text{background:linear-gradient(135deg,#fff,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:#1f2937cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(55,65,81,.5)}.grid-bg{background-image:linear-gradient(rgba(239,68,68,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(239,68,68,.03) 1px,transparent 1px);background-size:40px 40px}.radial-glow{background:radial-gradient(ellipse at center,rgba(239,68,68,.1) 0%,transparent 70%)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4b5563}.btn-primary{border-radius:.75rem;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #dc2626 var(--tw-gradient-to-position);padding:.75rem 2rem;font-weight:600;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-primary:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(239 68 68 / .3);--tw-shadow: var(--tw-shadow-colored)}.btn-primary:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-secondary{border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1));background-color:transparent;padding:.75rem 2rem;font-weight:500;--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-secondary:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1));background-color:#1f293780;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}.check-path{stroke-dasharray:100;stroke-dashoffset:100;animation:drawCheck .5s ease-out forwards}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}} diff --git a/v3/internal/setupwizard/frontend/dist/assets/index-BYm8n1Ze.js b/v3/internal/setupwizard/frontend/dist/assets/index-BYm8n1Ze.js new file mode 100644 index 000000000..251e50410 --- /dev/null +++ b/v3/internal/setupwizard/frontend/dist/assets/index-BYm8n1Ze.js @@ -0,0 +1,48 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(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"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(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 r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function Nm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Wf={exports:{}},xs={},$f={exports:{}},j={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xr=Symbol.for("react.element"),_m=Symbol.for("react.portal"),jm=Symbol.for("react.fragment"),Fm=Symbol.for("react.strict_mode"),Im=Symbol.for("react.profiler"),Om=Symbol.for("react.provider"),zm=Symbol.for("react.context"),Bm=Symbol.for("react.forward_ref"),Um=Symbol.for("react.suspense"),Wm=Symbol.for("react.memo"),$m=Symbol.for("react.lazy"),vu=Symbol.iterator;function Hm(e){return e===null||typeof e!="object"?null:(e=vu&&e[vu]||e["@@iterator"],typeof e=="function"?e:null)}var Hf={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Kf=Object.assign,Gf={};function Gn(e,t,n){this.props=e,this.context=t,this.refs=Gf,this.updater=n||Hf}Gn.prototype.isReactComponent={};Gn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Gn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Qf(){}Qf.prototype=Gn.prototype;function Hl(e,t,n){this.props=e,this.context=t,this.refs=Gf,this.updater=n||Hf}var Kl=Hl.prototype=new Qf;Kl.constructor=Hl;Kf(Kl,Gn.prototype);Kl.isPureReactComponent=!0;var wu=Array.isArray,Yf=Object.prototype.hasOwnProperty,Gl={current:null},Xf={key:!0,ref:!0,__self:!0,__source:!0};function Zf(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)Yf.call(t,r)&&!Xf.hasOwnProperty(r)&&(i[r]=t[r]);var l=arguments.length-2;if(l===1)i.children=n;else if(1>>1,ie=E[$];if(0>>1;$i(Us,N))Hti(li,Us)?(E[$]=li,E[Ht]=N,$=Ht):(E[$]=Us,E[$t]=N,$=$t);else if(Hti(li,N))E[$]=li,E[Ht]=N,$=Ht;else break e}}return R}function i(E,R){var N=E.sortIndex-R.sortIndex;return N!==0?N:E.id-R.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var a=[],u=[],c=1,f=null,d=3,y=!1,g=!1,v=!1,k=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(E){for(var R=n(u);R!==null;){if(R.callback===null)r(u);else if(R.startTime<=E)r(u),R.sortIndex=R.expirationTime,t(a,R);else break;R=n(u)}}function w(E){if(v=!1,m(E),!g)if(n(a)!==null)g=!0,si(S);else{var R=n(u);R!==null&&Z(w,R.startTime-E)}}function S(E,R){g=!1,v&&(v=!1,p(x),x=-1),y=!0;var N=d;try{for(m(R),f=n(a);f!==null&&(!(f.expirationTime>R)||E&&!J());){var $=f.callback;if(typeof $=="function"){f.callback=null,d=f.priorityLevel;var ie=$(f.expirationTime<=R);R=e.unstable_now(),typeof ie=="function"?f.callback=ie:f===n(a)&&r(a),m(R)}else r(a);f=n(a)}if(f!==null)var oi=!0;else{var $t=n(u);$t!==null&&Z(w,$t.startTime-R),oi=!1}return oi}finally{f=null,d=N,y=!1}}var T=!1,C=null,x=-1,_=5,V=-1;function J(){return!(e.unstable_now()-V<_)}function gt(){if(C!==null){var E=e.unstable_now();V=E;var R=!0;try{R=C(!0,E)}finally{R?Wt():(T=!1,C=null)}}else T=!1}var Wt;if(typeof h=="function")Wt=function(){h(gt)};else if(typeof MessageChannel<"u"){var Jn=new MessageChannel,ii=Jn.port2;Jn.port1.onmessage=gt,Wt=function(){ii.postMessage(null)}}else Wt=function(){k(gt,0)};function si(E){C=E,T||(T=!0,Wt())}function Z(E,R){x=k(function(){E(e.unstable_now())},R)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(E){E.callback=null},e.unstable_continueExecution=function(){g||y||(g=!0,si(S))},e.unstable_forceFrameRate=function(E){0>E||125$?(E.sortIndex=N,t(u,E),n(a)===null&&E===n(u)&&(v?(p(x),x=-1):v=!0,Z(w,N-$))):(E.sortIndex=ie,t(a,E),g||y||(g=!0,si(S))),E},e.unstable_shouldYield=J,e.unstable_wrapCallback=function(E){var R=d;return function(){var N=d;d=R;try{return E.apply(this,arguments)}finally{d=N}}}})(td);ed.exports=td;var ny=ed.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ry=M,Re=ny;function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ro=Object.prototype.hasOwnProperty,iy=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,xu={},Tu={};function sy(e){return Ro.call(Tu,e)?!0:Ro.call(xu,e)?!1:iy.test(e)?Tu[e]=!0:(xu[e]=!0,!1)}function oy(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ly(e,t,n,r){if(t===null||typeof t>"u"||oy(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function xe(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var fe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){fe[e]=new xe(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];fe[t]=new xe(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){fe[e]=new xe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){fe[e]=new xe(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){fe[e]=new xe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){fe[e]=new xe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){fe[e]=new xe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){fe[e]=new xe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){fe[e]=new xe(e,5,!1,e.toLowerCase(),null,!1,!1)});var Yl=/[\-:]([a-z])/g;function Xl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Yl,Xl);fe[t]=new xe(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Yl,Xl);fe[t]=new xe(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Yl,Xl);fe[t]=new xe(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){fe[e]=new xe(e,1,!1,e.toLowerCase(),null,!1,!1)});fe.xlinkHref=new xe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){fe[e]=new xe(e,1,!1,e.toLowerCase(),null,!0,!0)});function Zl(e,t,n,r){var i=fe.hasOwnProperty(t)?fe[t]:null;(i!==null?i.type!==0:r||!(2l||i[o]!==s[l]){var a=` +`+i[o].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=o&&0<=l);break}}}finally{Hs=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ar(e):""}function ay(e){switch(e.tag){case 5:return ar(e.type);case 16:return ar("Lazy");case 13:return ar("Suspense");case 19:return ar("SuspenseList");case 0:case 2:case 15:return e=Ks(e.type,!1),e;case 11:return e=Ks(e.type.render,!1),e;case 1:return e=Ks(e.type,!0),e;default:return""}}function jo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case pn:return"Fragment";case hn:return"Portal";case Lo:return"Profiler";case ql:return"StrictMode";case No:return"Suspense";case _o:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case id:return(e.displayName||"Context")+".Consumer";case rd:return(e._context.displayName||"Context")+".Provider";case Jl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case bl:return t=e.displayName||null,t!==null?t:jo(e.type)||"Memo";case St:t=e._payload,e=e._init;try{return jo(e(t))}catch{}}return null}function uy(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return jo(t);case 8:return t===ql?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function _t(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function od(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function cy(e){var t=od(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ci(e){e._valueTracker||(e._valueTracker=cy(e))}function ld(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=od(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ki(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Fo(e,t){var n=t.checked;return Q({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Pu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=_t(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ad(e,t){t=t.checked,t!=null&&Zl(e,"checked",t,!1)}function Io(e,t){ad(e,t);var n=_t(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Oo(e,t.type,n):t.hasOwnProperty("defaultValue")&&Oo(e,t.type,_t(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Cu(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Oo(e,t,n){(t!=="number"||Ki(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ur=Array.isArray;function Vn(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=fi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Mr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var hr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fy=["Webkit","ms","Moz","O"];Object.keys(hr).forEach(function(e){fy.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),hr[t]=hr[e]})});function dd(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||hr.hasOwnProperty(e)&&hr[e]?(""+t).trim():t+"px"}function hd(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=dd(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var dy=Q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Uo(e,t){if(t){if(dy[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function Wo(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var $o=null;function ea(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ho=null,Rn=null,Ln=null;function Du(e){if(e=Jr(e)){if(typeof Ho!="function")throw Error(P(280));var t=e.stateNode;t&&(t=Es(t),Ho(e.stateNode,e.type,t))}}function pd(e){Rn?Ln?Ln.push(e):Ln=[e]:Rn=e}function md(){if(Rn){var e=Rn,t=Ln;if(Ln=Rn=null,Du(e),t)for(e=0;e>>=0,e===0?32:31-(ky(e)/Py|0)|0}var di=64,hi=4194304;function cr(e){switch(e&-e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Xi(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~i;l!==0?r=cr(l):(s&=o,s!==0&&(r=cr(s)))}else o=n&~i,o!==0?r=cr(o):s!==0&&(r=cr(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Zr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Xe(t),e[t]=n}function Dy(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=mr),Iu=" ",Ou=!1;function jd(e,t){switch(e){case"keyup":return ng.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var mn=!1;function ig(e,t){switch(e){case"compositionend":return Fd(t);case"keypress":return t.which!==32?null:(Ou=!0,Iu);case"textInput":return e=t.data,e===Iu&&Ou?null:e;default:return null}}function sg(e,t){if(mn)return e==="compositionend"||!aa&&jd(e,t)?(e=Nd(),Li=sa=Pt=null,mn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Wu(n)}}function Bd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Bd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ud(){for(var e=window,t=Ki();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ki(e.document)}return t}function ua(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function pg(e){var t=Ud(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Bd(n.ownerDocument.documentElement,n)){if(r!==null&&ua(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=$u(n,s);var o=$u(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,yn=null,Zo=null,gr=null,qo=!1;function Hu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;qo||yn==null||yn!==Ki(r)||(r=yn,"selectionStart"in r&&ua(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),gr&&Nr(gr,r)||(gr=r,r=Ji(Zo,"onSelect"),0wn||(e.current=rl[wn],rl[wn]=null,wn--)}function O(e,t){wn++,rl[wn]=e.current,e.current=t}var jt={},ye=zt(jt),Ce=zt(!1),sn=jt;function On(e,t){var n=e.type.contextTypes;if(!n)return jt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Ee(e){return e=e.childContextTypes,e!=null}function es(){B(Ce),B(ye)}function qu(e,t,n){if(ye.current!==jt)throw Error(P(168));O(ye,t),O(Ce,n)}function Zd(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(P(108,uy(e)||"Unknown",i));return Q({},n,r)}function ts(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||jt,sn=ye.current,O(ye,e),O(Ce,Ce.current),!0}function Ju(e,t,n){var r=e.stateNode;if(!r)throw Error(P(169));n?(e=Zd(e,t,sn),r.__reactInternalMemoizedMergedChildContext=e,B(Ce),B(ye),O(ye,e)):B(Ce),O(Ce,n)}var ot=null,Ms=!1,so=!1;function qd(e){ot===null?ot=[e]:ot.push(e)}function Eg(e){Ms=!0,qd(e)}function Bt(){if(!so&&ot!==null){so=!0;var e=0,t=I;try{var n=ot;for(I=1;e>=o,i-=o,lt=1<<32-Xe(t)+i|n<x?(_=C,C=null):_=C.sibling;var V=d(p,C,m[x],w);if(V===null){C===null&&(C=_);break}e&&C&&V.alternate===null&&t(p,C),h=s(V,h,x),T===null?S=V:T.sibling=V,T=V,C=_}if(x===m.length)return n(p,C),U&&Gt(p,x),S;if(C===null){for(;xx?(_=C,C=null):_=C.sibling;var J=d(p,C,V.value,w);if(J===null){C===null&&(C=_);break}e&&C&&J.alternate===null&&t(p,C),h=s(J,h,x),T===null?S=J:T.sibling=J,T=J,C=_}if(V.done)return n(p,C),U&&Gt(p,x),S;if(C===null){for(;!V.done;x++,V=m.next())V=f(p,V.value,w),V!==null&&(h=s(V,h,x),T===null?S=V:T.sibling=V,T=V);return U&&Gt(p,x),S}for(C=r(p,C);!V.done;x++,V=m.next())V=y(C,p,x,V.value,w),V!==null&&(e&&V.alternate!==null&&C.delete(V.key===null?x:V.key),h=s(V,h,x),T===null?S=V:T.sibling=V,T=V);return e&&C.forEach(function(gt){return t(p,gt)}),U&&Gt(p,x),S}function k(p,h,m,w){if(typeof m=="object"&&m!==null&&m.type===pn&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case ui:e:{for(var S=m.key,T=h;T!==null;){if(T.key===S){if(S=m.type,S===pn){if(T.tag===7){n(p,T.sibling),h=i(T,m.props.children),h.return=p,p=h;break e}}else if(T.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===St&&tc(S)===T.type){n(p,T.sibling),h=i(T,m.props),h.ref=ir(p,T,m),h.return=p,p=h;break e}n(p,T);break}else t(p,T);T=T.sibling}m.type===pn?(h=tn(m.props.children,p.mode,w,m.key),h.return=p,p=h):(w=Bi(m.type,m.key,m.props,null,p.mode,w),w.ref=ir(p,h,m),w.return=p,p=w)}return o(p);case hn:e:{for(T=m.key;h!==null;){if(h.key===T)if(h.tag===4&&h.stateNode.containerInfo===m.containerInfo&&h.stateNode.implementation===m.implementation){n(p,h.sibling),h=i(h,m.children||[]),h.return=p,p=h;break e}else{n(p,h);break}else t(p,h);h=h.sibling}h=po(m,p.mode,w),h.return=p,p=h}return o(p);case St:return T=m._init,k(p,h,T(m._payload),w)}if(ur(m))return g(p,h,m,w);if(bn(m))return v(p,h,m,w);Si(p,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,h!==null&&h.tag===6?(n(p,h.sibling),h=i(h,m),h.return=p,p=h):(n(p,h),h=ho(m,p.mode,w),h.return=p,p=h),o(p)):n(p,h)}return k}var Bn=th(!0),nh=th(!1),is=zt(null),ss=null,Tn=null,ha=null;function pa(){ha=Tn=ss=null}function ma(e){var t=is.current;B(is),e._currentValue=t}function ol(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _n(e,t){ss=e,ha=Tn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ke=!0),e.firstContext=null)}function Ue(e){var t=e._currentValue;if(ha!==e)if(e={context:e,memoizedValue:t,next:null},Tn===null){if(ss===null)throw Error(P(308));Tn=e,ss.dependencies={lanes:0,firstContext:e}}else Tn=Tn.next=e;return t}var Zt=null;function ya(e){Zt===null?Zt=[e]:Zt.push(e)}function rh(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,ya(t)):(n.next=i.next,i.next=n),t.interleaved=n,dt(e,r)}function dt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var xt=!1;function ga(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ih(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ut(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,F&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,dt(e,n)}return i=r.interleaved,i===null?(t.next=t,ya(r)):(t.next=i.next,i.next=t),r.interleaved=t,dt(e,n)}function _i(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,na(e,n)}}function nc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function os(e,t,n,r){var i=e.updateQueue;xt=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,l=i.shared.pending;if(l!==null){i.shared.pending=null;var a=l,u=a.next;a.next=null,o===null?s=u:o.next=u,o=a;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==o&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=a))}if(s!==null){var f=i.baseState;o=0,c=u=a=null,l=s;do{var d=l.lane,y=l.eventTime;if((r&d)===d){c!==null&&(c=c.next={eventTime:y,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,v=l;switch(d=t,y=n,v.tag){case 1:if(g=v.payload,typeof g=="function"){f=g.call(y,f,d);break e}f=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=v.payload,d=typeof g=="function"?g.call(y,f,d):g,d==null)break e;f=Q({},f,d);break e;case 2:xt=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,d=i.effects,d===null?i.effects=[l]:d.push(l))}else y={eventTime:y,lane:d,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=y,a=f):c=c.next=y,o|=d;if(l=l.next,l===null){if(l=i.shared.pending,l===null)break;d=l,l=d.next,d.next=null,i.lastBaseUpdate=d,i.shared.pending=null}}while(!0);if(c===null&&(a=f),i.baseState=a,i.firstBaseUpdate=u,i.lastBaseUpdate=c,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);an|=o,e.lanes=o,e.memoizedState=f}}function rc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=lo.transition;lo.transition={};try{e(!1),t()}finally{I=n,lo.transition=r}}function xh(){return We().memoizedState}function Vg(e,t,n){var r=Lt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Th(e))kh(t,n);else if(n=rh(e,t,n,r),n!==null){var i=we();Ze(n,e,r,i),Ph(n,t,r)}}function Rg(e,t,n){var r=Lt(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Th(e))kh(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,l=s(o,n);if(i.hasEagerState=!0,i.eagerState=l,qe(l,o)){var a=t.interleaved;a===null?(i.next=i,ya(t)):(i.next=a.next,a.next=i),t.interleaved=i;return}}catch{}finally{}n=rh(e,t,i,r),n!==null&&(i=we(),Ze(n,e,r,i),Ph(n,t,r))}}function Th(e){var t=e.alternate;return e===G||t!==null&&t===G}function kh(e,t){vr=as=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ph(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,na(e,n)}}var us={readContext:Ue,useCallback:de,useContext:de,useEffect:de,useImperativeHandle:de,useInsertionEffect:de,useLayoutEffect:de,useMemo:de,useReducer:de,useRef:de,useState:de,useDebugValue:de,useDeferredValue:de,useTransition:de,useMutableSource:de,useSyncExternalStore:de,useId:de,unstable_isNewReconciler:!1},Lg={readContext:Ue,useCallback:function(e,t){return be().memoizedState=[e,t===void 0?null:t],e},useContext:Ue,useEffect:sc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Fi(4194308,4,yh.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Fi(4,2,e,t)},useMemo:function(e,t){var n=be();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=be();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Vg.bind(null,G,e),[r.memoizedState,e]},useRef:function(e){var t=be();return e={current:e},t.memoizedState=e},useState:ic,useDebugValue:Ca,useDeferredValue:function(e){return be().memoizedState=e},useTransition:function(){var e=ic(!1),t=e[0];return e=Ag.bind(null,e[1]),be().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=G,i=be();if(U){if(n===void 0)throw Error(P(407));n=n()}else{if(n=t(),le===null)throw Error(P(349));ln&30||ah(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,sc(ch.bind(null,r,s,e),[e]),r.flags|=2048,Ur(9,uh.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=be(),t=le.identifierPrefix;if(U){var n=at,r=lt;n=(r&~(1<<32-Xe(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=zr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[et]=t,e[Fr]=r,_h(e,t,!1,!1),t.stateNode=e;e:{switch(o=Wo(n,r),n){case"dialog":z("cancel",e),z("close",e),i=r;break;case"iframe":case"object":case"embed":z("load",e),i=r;break;case"video":case"audio":for(i=0;i$n&&(t.flags|=128,r=!0,sr(s,!1),t.lanes=4194304)}else{if(!r)if(e=ls(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sr(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!U)return he(t),null}else 2*q()-s.renderingStartTime>$n&&n!==1073741824&&(t.flags|=128,r=!0,sr(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=q(),t.sibling=null,n=H.current,O(H,r?n&1|2:n&1),t):(he(t),null);case 22:case 23:return Ra(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?De&1073741824&&(he(t),t.subtreeFlags&6&&(t.flags|=8192)):he(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}function Bg(e,t){switch(fa(t),t.tag){case 1:return Ee(t.type)&&es(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Un(),B(Ce),B(ye),Sa(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return wa(t),null;case 13:if(B(H),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));zn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return B(H),null;case 4:return Un(),null;case 10:return ma(t.type._context),null;case 22:case 23:return Ra(),null;case 24:return null;default:return null}}var Ti=!1,pe=!1,Ug=typeof WeakSet=="function"?WeakSet:Set,D=null;function kn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){X(e,t,r)}else n.current=null}function ml(e,t,n){try{n()}catch(r){X(e,t,r)}}var yc=!1;function Wg(e,t){if(Jo=Zi,e=Ud(),ua(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,a=-1,u=0,c=0,f=e,d=null;t:for(;;){for(var y;f!==n||i!==0&&f.nodeType!==3||(l=o+i),f!==s||r!==0&&f.nodeType!==3||(a=o+r),f.nodeType===3&&(o+=f.nodeValue.length),(y=f.firstChild)!==null;)d=f,f=y;for(;;){if(f===e)break t;if(d===n&&++u===i&&(l=o),d===s&&++c===r&&(a=o),(y=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=y}n=l===-1||a===-1?null:{start:l,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(bo={focusedElem:e,selectionRange:n},Zi=!1,D=t;D!==null;)if(t=D,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,D=e;else for(;D!==null;){t=D;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var v=g.memoizedProps,k=g.memoizedState,p=t.stateNode,h=p.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ge(t.type,v),k);p.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(w){X(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,D=e;break}D=t.return}return g=yc,yc=!1,g}function wr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&ml(t,n,s)}i=i.next}while(i!==r)}}function Vs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function yl(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ih(e){var t=e.alternate;t!==null&&(e.alternate=null,Ih(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[et],delete t[Fr],delete t[nl],delete t[Pg],delete t[Cg])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Oh(e){return e.tag===5||e.tag===3||e.tag===4}function gc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Oh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function gl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=bi));else if(r!==4&&(e=e.child,e!==null))for(gl(e,t,n),e=e.sibling;e!==null;)gl(e,t,n),e=e.sibling}function vl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(vl(e,t,n),e=e.sibling;e!==null;)vl(e,t,n),e=e.sibling}var ae=null,Qe=!1;function vt(e,t,n){for(n=n.child;n!==null;)zh(e,t,n),n=n.sibling}function zh(e,t,n){if(tt&&typeof tt.onCommitFiberUnmount=="function")try{tt.onCommitFiberUnmount(Ts,n)}catch{}switch(n.tag){case 5:pe||kn(n,t);case 6:var r=ae,i=Qe;ae=null,vt(e,t,n),ae=r,Qe=i,ae!==null&&(Qe?(e=ae,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ae.removeChild(n.stateNode));break;case 18:ae!==null&&(Qe?(e=ae,n=n.stateNode,e.nodeType===8?io(e.parentNode,n):e.nodeType===1&&io(e,n),Rr(e)):io(ae,n.stateNode));break;case 4:r=ae,i=Qe,ae=n.stateNode.containerInfo,Qe=!0,vt(e,t,n),ae=r,Qe=i;break;case 0:case 11:case 14:case 15:if(!pe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&ml(n,t,o),i=i.next}while(i!==r)}vt(e,t,n);break;case 1:if(!pe&&(kn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){X(n,t,l)}vt(e,t,n);break;case 21:vt(e,t,n);break;case 22:n.mode&1?(pe=(r=pe)||n.memoizedState!==null,vt(e,t,n),pe=r):vt(e,t,n);break;default:vt(e,t,n)}}function vc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ug),t.forEach(function(r){var i=qg.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function $e(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=q()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Hg(r/1960))-r,10e?16:e,Ct===null)var r=!1;else{if(e=Ct,Ct=null,ds=0,F&6)throw Error(P(331));var i=F;for(F|=4,D=e.current;D!==null;){var s=D,o=s.child;if(D.flags&16){var l=s.deletions;if(l!==null){for(var a=0;aq()-Aa?en(e,0):Da|=n),Me(e,t)}function Qh(e,t){t===0&&(e.mode&1?(t=hi,hi<<=1,!(hi&130023424)&&(hi=4194304)):t=1);var n=we();e=dt(e,t),e!==null&&(Zr(e,t,n),Me(e,n))}function Zg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Qh(e,n)}function qg(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(P(314))}r!==null&&r.delete(t),Qh(e,n)}var Yh;Yh=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ce.current)ke=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ke=!1,Og(e,t,n);ke=!!(e.flags&131072)}else ke=!1,U&&t.flags&1048576&&Jd(t,rs,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ii(e,t),e=t.pendingProps;var i=On(t,ye.current);_n(t,n),i=Ta(null,t,r,e,i,n);var s=ka();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ee(r)?(s=!0,ts(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,ga(t),i.updater=As,t.stateNode=i,i._reactInternals=t,al(t,r,e,n),t=fl(null,t,r,!0,s,n)):(t.tag=0,U&&s&&ca(t),ge(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ii(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=bg(r),e=Ge(r,e),i){case 0:t=cl(null,t,r,e,n);break e;case 1:t=hc(null,t,r,e,n);break e;case 11:t=fc(null,t,r,e,n);break e;case 14:t=dc(null,t,r,Ge(r.type,e),n);break e}throw Error(P(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ge(r,i),cl(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ge(r,i),hc(e,t,r,i,n);case 3:e:{if(Rh(t),e===null)throw Error(P(387));r=t.pendingProps,s=t.memoizedState,i=s.element,ih(e,t),os(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=Wn(Error(P(423)),t),t=pc(e,t,r,n,i);break e}else if(r!==i){i=Wn(Error(P(424)),t),t=pc(e,t,r,n,i);break e}else for(Ae=At(t.stateNode.containerInfo.firstChild),Ve=t,U=!0,Ye=null,n=nh(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zn(),r===i){t=ht(e,t,n);break e}ge(e,t,r,n)}t=t.child}return t;case 5:return sh(t),e===null&&sl(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,el(r,i)?o=null:s!==null&&el(r,s)&&(t.flags|=32),Vh(e,t),ge(e,t,o,n),t.child;case 6:return e===null&&sl(t),null;case 13:return Lh(e,t,n);case 4:return va(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Bn(t,null,r,n):ge(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ge(r,i),fc(e,t,r,i,n);case 7:return ge(e,t,t.pendingProps,n),t.child;case 8:return ge(e,t,t.pendingProps.children,n),t.child;case 12:return ge(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,O(is,r._currentValue),r._currentValue=o,s!==null)if(qe(s.value,o)){if(s.children===i.children&&!Ce.current){t=ht(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var a=l.firstContext;a!==null;){if(a.context===r){if(s.tag===1){a=ut(-1,n&-n),a.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?a.next=a:(a.next=c.next,c.next=a),u.pending=a}}s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),ol(s.return,n,t),l.lanes|=n;break}a=a.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(P(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),ol(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}ge(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,_n(t,n),i=Ue(i),r=r(i),t.flags|=1,ge(e,t,r,n),t.child;case 14:return r=t.type,i=Ge(r,t.pendingProps),i=Ge(r.type,i),dc(e,t,r,i,n);case 15:return Dh(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ge(r,i),Ii(e,t),t.tag=1,Ee(r)?(e=!0,ts(t)):e=!1,_n(t,n),Ch(t,r,i),al(t,r,i,n),fl(null,t,r,!0,e,n);case 19:return Nh(e,t,n);case 22:return Ah(e,t,n)}throw Error(P(156,t.tag))};function Xh(e,t){return Td(e,t)}function Jg(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ie(e,t,n,r){return new Jg(e,t,n,r)}function Na(e){return e=e.prototype,!(!e||!e.isReactComponent)}function bg(e){if(typeof e=="function")return Na(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Jl)return 11;if(e===bl)return 14}return 2}function Nt(e,t){var n=e.alternate;return n===null?(n=Ie(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Bi(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")Na(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case pn:return tn(n.children,i,s,t);case ql:o=8,i|=8;break;case Lo:return e=Ie(12,n,t,i|2),e.elementType=Lo,e.lanes=s,e;case No:return e=Ie(13,n,t,i),e.elementType=No,e.lanes=s,e;case _o:return e=Ie(19,n,t,i),e.elementType=_o,e.lanes=s,e;case sd:return Ls(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case rd:o=10;break e;case id:o=9;break e;case Jl:o=11;break e;case bl:o=14;break e;case St:o=16,r=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=Ie(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function tn(e,t,n,r){return e=Ie(7,e,r,t),e.lanes=n,e}function Ls(e,t,n,r){return e=Ie(22,e,r,t),e.elementType=sd,e.lanes=n,e.stateNode={isHidden:!1},e}function ho(e,t,n){return e=Ie(6,e,null,t),e.lanes=n,e}function po(e,t,n){return t=Ie(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ev(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Qs(0),this.expirationTimes=Qs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Qs(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function _a(e,t,n,r,i,s,o,l,a){return e=new ev(e,t,n,l,a),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Ie(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ga(s),e}function tv(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(bh)}catch(e){console.error(e)}}bh(),bf.exports=Le;var ov=bf.exports,Ec=ov;Vo.createRoot=Ec.createRoot,Vo.hydrateRoot=Ec.hydrateRoot;const Oa=M.createContext({});function za(e){const t=M.useRef(null);return t.current===null&&(t.current=e()),t.current}const Ba=typeof window<"u",ep=Ba?M.useLayoutEffect:M.useEffect,Is=M.createContext(null);function Ua(e,t){e.indexOf(t)===-1&&e.push(t)}function Wa(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const pt=(e,t,n)=>n>t?t:n{};const mt={},tp=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function np(e){return typeof e=="object"&&e!==null}const rp=e=>/^0[^.\s]+$/u.test(e);function Ha(e){let t;return()=>(t===void 0&&(t=e()),t)}const Be=e=>e,lv=(e,t)=>n=>t(e(n)),ei=(...e)=>e.reduce(lv),$r=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r};class Ka{constructor(){this.subscriptions=[]}add(t){return Ua(this.subscriptions,t),()=>Wa(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;se*1e3,Oe=e=>e/1e3;function ip(e,t){return t?e*(1e3/t):0}const sp=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,av=1e-7,uv=12;function cv(e,t,n,r,i){let s,o,l=0;do o=t+(n-t)/2,s=sp(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>av&&++lcv(s,0,1,e,n);return s=>s===0||s===1?s:sp(i(s),t,r)}const op=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,lp=e=>t=>1-e(1-t),ap=ti(.33,1.53,.69,.99),Ga=lp(ap),up=op(Ga),cp=e=>(e*=2)<1?.5*Ga(e):.5*(2-Math.pow(2,-10*(e-1))),Qa=e=>1-Math.sin(Math.acos(e)),fp=lp(Qa),dp=op(Qa),fv=ti(.42,0,1,1),dv=ti(0,0,.58,1),hp=ti(.42,0,.58,1),hv=e=>Array.isArray(e)&&typeof e[0]!="number",pp=e=>Array.isArray(e)&&typeof e[0]=="number",pv={linear:Be,easeIn:fv,easeInOut:hp,easeOut:dv,circIn:Qa,circInOut:dp,circOut:fp,backIn:Ga,backInOut:up,backOut:ap,anticipate:cp},mv=e=>typeof e=="string",Mc=e=>{if(pp(e)){$a(e.length===4);const[t,n,r,i]=e;return ti(t,n,r,i)}else if(mv(e))return pv[e];return e},Ci=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function yv(e,t){let n=new Set,r=new Set,i=!1,s=!1;const o=new WeakSet;let l={delta:0,timestamp:0,isProcessing:!1};function a(c){o.has(c)&&(u.schedule(c),e()),c(l)}const u={schedule:(c,f=!1,d=!1)=>{const g=d&&i?n:r;return f&&o.add(c),g.has(c)||g.add(c),c},cancel:c=>{r.delete(c),o.delete(c)},process:c=>{if(l=c,i){s=!0;return}i=!0,[n,r]=[r,n],n.forEach(a),n.clear(),i=!1,s&&(s=!1,u.process(c))}};return u}const gv=40;function mp(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=Ci.reduce((m,w)=>(m[w]=yv(s),m),{}),{setup:l,read:a,resolveKeyframes:u,preUpdate:c,update:f,preRender:d,render:y,postRender:g}=o,v=()=>{const m=mt.useManualTiming?i.timestamp:performance.now();n=!1,mt.useManualTiming||(i.delta=r?1e3/60:Math.max(Math.min(m-i.timestamp,gv),1)),i.timestamp=m,i.isProcessing=!0,l.process(i),a.process(i),u.process(i),c.process(i),f.process(i),d.process(i),y.process(i),g.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(v))},k=()=>{n=!0,r=!0,i.isProcessing||e(v)};return{schedule:Ci.reduce((m,w)=>{const S=o[w];return m[w]=(T,C=!1,x=!1)=>(n||k(),S.schedule(T,C,x)),m},{}),cancel:m=>{for(let w=0;w(Ui===void 0&&Pe.set(ue.isProcessing||mt.useManualTiming?ue.timestamp:performance.now()),Ui),set:e=>{Ui=e,queueMicrotask(vv)}},yp=e=>t=>typeof t=="string"&&t.startsWith(e),Ya=yp("--"),wv=yp("var(--"),Xa=e=>wv(e)?Sv.test(e.split("/*")[0].trim()):!1,Sv=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Xn={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Hr={...Xn,transform:e=>pt(0,1,e)},Ei={...Xn,default:1},Tr=e=>Math.round(e*1e5)/1e5,Za=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function xv(e){return e==null}const Tv=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,qa=(e,t)=>n=>!!(typeof n=="string"&&Tv.test(n)&&n.startsWith(e)||t&&!xv(n)&&Object.prototype.hasOwnProperty.call(n,t)),gp=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,l]=r.match(Za);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},kv=e=>pt(0,255,e),yo={...Xn,transform:e=>Math.round(kv(e))},Jt={test:qa("rgb","red"),parse:gp("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+yo.transform(e)+", "+yo.transform(t)+", "+yo.transform(n)+", "+Tr(Hr.transform(r))+")"};function Pv(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const kl={test:qa("#"),parse:Pv,transform:Jt.transform},ni=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),wt=ni("deg"),it=ni("%"),L=ni("px"),Cv=ni("vh"),Ev=ni("vw"),Dc={...it,parse:e=>it.parse(e)/100,transform:e=>it.transform(e*100)},Cn={test:qa("hsl","hue"),parse:gp("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+it.transform(Tr(t))+", "+it.transform(Tr(n))+", "+Tr(Hr.transform(r))+")"},b={test:e=>Jt.test(e)||kl.test(e)||Cn.test(e),parse:e=>Jt.test(e)?Jt.parse(e):Cn.test(e)?Cn.parse(e):kl.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Jt.transform(e):Cn.transform(e),getAnimatableNone:e=>{const t=b.parse(e);return t.alpha=0,b.transform(t)}},Mv=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function Dv(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Za))==null?void 0:t.length)||0)+(((n=e.match(Mv))==null?void 0:n.length)||0)>0}const vp="number",wp="color",Av="var",Vv="var(",Ac="${}",Rv=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Kr(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const l=t.replace(Rv,a=>(b.test(a)?(r.color.push(s),i.push(wp),n.push(b.parse(a))):a.startsWith(Vv)?(r.var.push(s),i.push(Av),n.push(a)):(r.number.push(s),i.push(vp),n.push(parseFloat(a))),++s,Ac)).split(Ac);return{values:n,split:l,indexes:r,types:i}}function Sp(e){return Kr(e).values}function xp(e){const{split:t,types:n}=Kr(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:b.test(e)?b.getAnimatableNone(e):e;function Nv(e){const t=Sp(e);return xp(e)(t.map(Lv))}const It={test:Dv,parse:Sp,createTransformer:xp,getAnimatableNone:Nv};function go(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function _v({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,a=2*n-l;i=go(a,l,e+1/3),s=go(a,l,e),o=go(a,l,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function ms(e,t){return n=>n>0?t:e}const K=(e,t,n)=>e+(t-e)*n,vo=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},jv=[kl,Jt,Cn],Fv=e=>jv.find(t=>t.test(e));function Vc(e){const t=Fv(e);if(!t)return!1;let n=t.parse(e);return t===Cn&&(n=_v(n)),n}const Rc=(e,t)=>{const n=Vc(e),r=Vc(t);if(!n||!r)return ms(e,t);const i={...n};return s=>(i.red=vo(n.red,r.red,s),i.green=vo(n.green,r.green,s),i.blue=vo(n.blue,r.blue,s),i.alpha=K(n.alpha,r.alpha,s),Jt.transform(i))},Pl=new Set(["none","hidden"]);function Iv(e,t){return Pl.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Ov(e,t){return n=>K(e,t,n)}function Ja(e){return typeof e=="number"?Ov:typeof e=="string"?Xa(e)?ms:b.test(e)?Rc:Uv:Array.isArray(e)?Tp:typeof e=="object"?b.test(e)?Rc:zv:ms}function Tp(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>Ja(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function Bv(e,t){const n=[],r={color:0,var:0,number:0};for(let i=0;i{const n=It.createTransformer(t),r=Kr(e),i=Kr(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Pl.has(e)&&!i.values.length||Pl.has(t)&&!r.values.length?Iv(e,t):ei(Tp(Bv(r,i),i.values),n):ms(e,t)};function kp(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?K(e,t,n):Ja(e)(e,t)}const Wv=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>W.update(t,n),stop:()=>Ft(t),now:()=>ue.isProcessing?ue.timestamp:Pe.now()}},Pp=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s=ys?1/0:t}function $v(e,t=100,n){const r=n({...e,keyframes:[0,t]}),i=Math.min(ba(r),ys);return{type:"keyframes",ease:s=>r.next(i*s).value/t,duration:Oe(i)}}const Hv=5;function Cp(e,t,n){const r=Math.max(t-Hv,0);return ip(n-e(r),t-r)}const Y={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},wo=.001;function Kv({duration:e=Y.duration,bounce:t=Y.bounce,velocity:n=Y.velocity,mass:r=Y.mass}){let i,s,o=1-t;o=pt(Y.minDamping,Y.maxDamping,o),e=pt(Y.minDuration,Y.maxDuration,Oe(e)),o<1?(i=u=>{const c=u*o,f=c*e,d=c-n,y=Cl(u,o),g=Math.exp(-f);return wo-d/y*g},s=u=>{const f=u*o*e,d=f*n+n,y=Math.pow(o,2)*Math.pow(u,2)*e,g=Math.exp(-f),v=Cl(Math.pow(u,2),o);return(-i(u)+wo>0?-1:1)*((d-y)*g)/v}):(i=u=>{const c=Math.exp(-u*e),f=(u-n)*e+1;return-wo+c*f},s=u=>{const c=Math.exp(-u*e),f=(n-u)*(e*e);return c*f});const l=5/e,a=Qv(i,s,l);if(e=rt(e),isNaN(a))return{stiffness:Y.stiffness,damping:Y.damping,duration:e};{const u=Math.pow(a,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const Gv=12;function Qv(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function Zv(e){let t={velocity:Y.velocity,stiffness:Y.stiffness,damping:Y.damping,mass:Y.mass,isResolvedFromDuration:!1,...e};if(!Lc(e,Xv)&&Lc(e,Yv))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*pt(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:Y.mass,stiffness:i,damping:s}}else{const n=Kv(e);t={...t,...n,mass:Y.mass},t.isResolvedFromDuration=!0}return t}function gs(e=Y.visualDuration,t=Y.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:s},{stiffness:a,damping:u,mass:c,duration:f,velocity:d,isResolvedFromDuration:y}=Zv({...n,velocity:-Oe(n.velocity||0)}),g=d||0,v=u/(2*Math.sqrt(a*c)),k=o-s,p=Oe(Math.sqrt(a/c)),h=Math.abs(k)<5;r||(r=h?Y.restSpeed.granular:Y.restSpeed.default),i||(i=h?Y.restDelta.granular:Y.restDelta.default);let m;if(v<1){const S=Cl(p,v);m=T=>{const C=Math.exp(-v*p*T);return o-C*((g+v*p*k)/S*Math.sin(S*T)+k*Math.cos(S*T))}}else if(v===1)m=S=>o-Math.exp(-p*S)*(k+(g+p*k)*S);else{const S=p*Math.sqrt(v*v-1);m=T=>{const C=Math.exp(-v*p*T),x=Math.min(S*T,300);return o-C*((g+v*p*k)*Math.sinh(x)+S*k*Math.cosh(x))/S}}const w={calculatedDuration:y&&f||null,next:S=>{const T=m(S);if(y)l.done=S>=f;else{let C=S===0?g:0;v<1&&(C=S===0?rt(g):Cp(m,S,T));const x=Math.abs(C)<=r,_=Math.abs(o-T)<=i;l.done=x&&_}return l.value=l.done?o:T,l},toString:()=>{const S=Math.min(ba(w),ys),T=Pp(C=>w.next(S*C).value,S,30);return S+"ms "+T},toTransition:()=>{}};return w}gs.applyToOptions=e=>{const t=$v(e,100,gs);return e.ease=t.ease,e.duration=rt(t.duration),e.type="keyframes",e};function El({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:l,max:a,restDelta:u=.5,restSpeed:c}){const f=e[0],d={done:!1,value:f},y=x=>l!==void 0&&xa,g=x=>l===void 0?a:a===void 0||Math.abs(l-x)-v*Math.exp(-x/r),m=x=>p+h(x),w=x=>{const _=h(x),V=m(x);d.done=Math.abs(_)<=u,d.value=d.done?p:V};let S,T;const C=x=>{y(d.value)&&(S=x,T=gs({keyframes:[d.value,g(d.value)],velocity:Cp(m,x,d.value),damping:i,stiffness:s,restDelta:u,restSpeed:c}))};return C(0),{calculatedDuration:null,next:x=>{let _=!1;return!T&&S===void 0&&(_=!0,w(x),C(x)),S!==void 0&&x>=S?T.next(x-S):(!_&&w(x),d)}}}function qv(e,t,n){const r=[],i=n||mt.mix||kp,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=qv(t,r,i),a=l.length,u=c=>{if(o&&c1)for(;fu(pt(e[0],e[s-1],c)):u}function bv(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=$r(0,t,r);e.push(K(n,1,i))}}function e0(e){const t=[0];return bv(t,e.length-1),t}function t0(e,t){return e.map(n=>n*t)}function n0(e,t){return e.map(()=>t||hp).splice(0,e.length-1)}function kr({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=hv(r)?r.map(Mc):Mc(r),s={done:!1,value:t[0]},o=t0(n&&n.length===t.length?n:e0(t),e),l=Jv(o,t,{ease:Array.isArray(i)?i:n0(t,i)});return{calculatedDuration:e,next:a=>(s.value=l(a),s.done=a>=e,s)}}const r0=e=>e!==null;function eu(e,{repeat:t,repeatType:n="loop"},r,i=1){const s=e.filter(r0),l=i<0||t&&n!=="loop"&&t%2===1?0:s.length-1;return!l||r===void 0?s[l]:r}const i0={decay:El,inertia:El,tween:kr,keyframes:kr,spring:gs};function Ep(e){typeof e.type=="string"&&(e.type=i0[e.type])}class tu{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const s0=e=>e/100;class nu extends tu{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{var r,i;const{motionValue:n}=this.options;n&&n.updatedAt!==Pe.now()&&this.tick(Pe.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(i=(r=this.options).onStop)==null||i.call(r))},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;Ep(t);const{type:n=kr,repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=t;let{keyframes:l}=t;const a=n||kr;a!==kr&&typeof l[0]!="number"&&(this.mixKeyframes=ei(s0,kp(l[0],l[1])),l=[0,100]);const u=a({...t,keyframes:l});s==="mirror"&&(this.mirroredGenerator=a({...t,keyframes:[...l].reverse(),velocity:-o})),u.calculatedDuration===null&&(u.calculatedDuration=ba(u));const{calculatedDuration:c}=u;this.calculatedDuration=c,this.resolvedDuration=c+i,this.totalDuration=this.resolvedDuration*(r+1)-i,this.generator=u}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:r,totalDuration:i,mixKeyframes:s,mirroredGenerator:o,resolvedDuration:l,calculatedDuration:a}=this;if(this.startTime===null)return r.next(0);const{delay:u=0,keyframes:c,repeat:f,repeatType:d,repeatDelay:y,type:g,onUpdate:v,finalKeyframe:k}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const p=this.currentTime-u*(this.playbackSpeed>=0?1:-1),h=this.playbackSpeed>=0?p<0:p>i;this.currentTime=Math.max(p,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let m=this.currentTime,w=r;if(f){const x=Math.min(this.currentTime,i)/l;let _=Math.floor(x),V=x%1;!V&&x>=1&&(V=1),V===1&&_--,_=Math.min(_,f+1),!!(_%2)&&(d==="reverse"?(V=1-V,y&&(V-=y/l)):d==="mirror"&&(w=o)),m=pt(0,1,V)*l}const S=h?{done:!1,value:c[0]}:w.next(m);s&&(S.value=s(S.value));let{done:T}=S;!h&&a!==null&&(T=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&T);return C&&g!==El&&(S.value=eu(c,this.options,k,this.speed)),v&&v(S.value),C&&this.finish(),S}then(t,n){return this.finished.then(t,n)}get duration(){return Oe(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Oe(t)}get time(){return Oe(this.currentTime)}set time(t){var n;t=rt(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),(n=this.driver)==null||n.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(Pe.now());const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Oe(this.currentTime))}play(){var i,s;if(this.isStopped)return;const{driver:t=Wv,startTime:n}=this.options;this.driver||(this.driver=t(o=>this.tick(o))),(s=(i=this.options).onPlay)==null||s.call(i);const r=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=r):this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime||(this.startTime=n??r),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Pe.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var t,n;this.notifyFinished(),this.teardown(),this.state="finished",(n=(t=this.options).onComplete)==null||n.call(t)}cancel(){var t,n;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(n=(t=this.options).onCancel)==null||n.call(t)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){var n;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(n=this.driver)==null||n.stop(),t.observe(this)}}function o0(e){for(let t=1;te*180/Math.PI,Ml=e=>{const t=bt(Math.atan2(e[1],e[0]));return Dl(t)},l0={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:Ml,rotateZ:Ml,skewX:e=>bt(Math.atan(e[1])),skewY:e=>bt(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Dl=e=>(e=e%360,e<0&&(e+=360),e),Nc=Ml,_c=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),jc=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),a0={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:_c,scaleY:jc,scale:e=>(_c(e)+jc(e))/2,rotateX:e=>Dl(bt(Math.atan2(e[6],e[5]))),rotateY:e=>Dl(bt(Math.atan2(-e[2],e[0]))),rotateZ:Nc,rotate:Nc,skewX:e=>bt(Math.atan(e[4])),skewY:e=>bt(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Al(e){return e.includes("scale")?1:0}function Vl(e,t){if(!e||e==="none")return Al(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,i;if(n)r=a0,i=n;else{const l=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=l0,i=l}if(!i)return Al(t);const s=r[t],o=i[1].split(",").map(c0);return typeof s=="function"?s(o):o[s]}const u0=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return Vl(n,t)};function c0(e){return parseFloat(e.trim())}const Zn=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],qn=new Set(Zn),Fc=e=>e===Xn||e===L,f0=new Set(["x","y","z"]),d0=Zn.filter(e=>!f0.has(e));function h0(e){const t=[];return d0.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const nn={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>Vl(t,"x"),y:(e,{transform:t})=>Vl(t,"y")};nn.translateX=nn.x;nn.translateY=nn.y;const rn=new Set;let Rl=!1,Ll=!1,Nl=!1;function Mp(){if(Ll){const e=Array.from(rn).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=h0(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var l;(l=r.getValue(s))==null||l.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Ll=!1,Rl=!1,rn.forEach(e=>e.complete(Nl)),rn.clear()}function Dp(){rn.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Ll=!0)})}function p0(){Nl=!0,Dp(),Mp(),Nl=!1}class ru{constructor(t,n,r,i,s,o=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.state="scheduled",this.isAsync?(rn.add(this),Rl||(Rl=!0,W.read(Dp),W.resolveKeyframes(Mp))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;if(t[0]===null){const s=i==null?void 0:i.get(),o=t[t.length-1];if(s!==void 0)t[0]=s;else if(r&&n){const l=r.readValue(n,o);l!=null&&(t[0]=l)}t[0]===void 0&&(t[0]=o),i&&s===void 0&&i.set(t[0])}o0(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),rn.delete(this)}cancel(){this.state==="scheduled"&&(rn.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const m0=e=>e.startsWith("--");function y0(e,t,n){m0(t)?e.style.setProperty(t,n):e.style[t]=n}const g0=Ha(()=>window.ScrollTimeline!==void 0),v0={};function w0(e,t){const n=Ha(e);return()=>v0[t]??n()}const Ap=w0(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),dr=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Ic={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:dr([0,.65,.55,1]),circOut:dr([.55,0,1,.45]),backIn:dr([.31,.01,.66,-.59]),backOut:dr([.33,1.53,.69,.99])};function Vp(e,t){if(e)return typeof e=="function"?Ap()?Pp(e,t):"ease-out":pp(e)?dr(e):Array.isArray(e)?e.map(n=>Vp(n,t)||Ic.easeOut):Ic[e]}function S0(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:l="easeOut",times:a}={},u=void 0){const c={[t]:n};a&&(c.offset=a);const f=Vp(l,i);Array.isArray(f)&&(c.easing=f);const d={delay:r,duration:i,easing:Array.isArray(f)?"linear":f,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"};return u&&(d.pseudoElement=u),e.animate(c,d)}function Rp(e){return typeof e=="function"&&"applyToOptions"in e}function x0({type:e,...t}){return Rp(e)&&Ap()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class T0 extends tu{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,!t)return;const{element:n,name:r,keyframes:i,pseudoElement:s,allowFlatten:o=!1,finalKeyframe:l,onComplete:a}=t;this.isPseudoElement=!!s,this.allowFlatten=o,this.options=t,$a(typeof t.type!="string");const u=x0(t);this.animation=S0(n,r,i,u,s),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){const c=eu(i,this.options,l,this.speed);this.updateMotionValue?this.updateMotionValue(c):y0(n,r,c),this.animation.cancel()}a==null||a(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,n;(n=(t=this.animation).finish)==null||n.call(t)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var t,n;this.isPseudoElement||(n=(t=this.animation).commitStyles)==null||n.call(t)}get duration(){var n,r;const t=((r=(n=this.animation.effect)==null?void 0:n.getComputedTiming)==null?void 0:r.call(n).duration)||0;return Oe(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Oe(t)}get time(){return Oe(Number(this.animation.currentTime)||0)}set time(t){this.finishedTime=null,this.animation.currentTime=rt(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(t){this.animation.startTime=t}attachTimeline({timeline:t,observe:n}){var r;return this.allowFlatten&&((r=this.animation.effect)==null||r.updateTiming({easing:"linear"})),this.animation.onfinish=null,t&&g0()?(this.animation.timeline=t,Be):n(this)}}const Lp={anticipate:cp,backInOut:up,circInOut:dp};function k0(e){return e in Lp}function P0(e){typeof e.ease=="string"&&k0(e.ease)&&(e.ease=Lp[e.ease])}const Oc=10;class C0 extends T0{constructor(t){P0(t),Ep(t),super(t),t.startTime&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:r,onComplete:i,element:s,...o}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const l=new nu({...o,autoplay:!1}),a=rt(this.finishedTime??this.time);n.setWithVelocity(l.sample(a-Oc).value,l.sample(a).value,Oc),l.stop()}}const zc=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(It.test(e)||e==="0")&&!e.startsWith("url("));function E0(e){const t=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function V0(e){var c;const{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:s,type:o}=e;if(!(((c=t==null?void 0:t.owner)==null?void 0:c.current)instanceof HTMLElement))return!1;const{onUpdate:a,transformTemplate:u}=t.owner.getProps();return A0()&&n&&D0.has(n)&&(n!=="transform"||!u)&&!a&&!r&&i!=="mirror"&&s!==0&&o!=="inertia"}const R0=40;class L0 extends tu{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",keyframes:l,name:a,motionValue:u,element:c,...f}){var g;super(),this.stop=()=>{var v,k;this._animation&&(this._animation.stop(),(v=this.stopTimeline)==null||v.call(this)),(k=this.keyframeResolver)==null||k.cancel()},this.createdAt=Pe.now();const d={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,name:a,motionValue:u,element:c,...f},y=(c==null?void 0:c.KeyframeResolver)||ru;this.keyframeResolver=new y(l,(v,k,p)=>this.onKeyframesResolved(v,k,d,!p),a,u,c),(g=this.keyframeResolver)==null||g.scheduleResolve()}onKeyframesResolved(t,n,r,i){this.keyframeResolver=void 0;const{name:s,type:o,velocity:l,delay:a,isHandoff:u,onUpdate:c}=r;this.resolvedAt=Pe.now(),M0(t,s,o,l)||((mt.instantAnimations||!a)&&(c==null||c(eu(t,r,n))),t[0]=t[t.length-1],_l(r),r.repeat=0);const d={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>R0?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...r,keyframes:t},y=!u&&V0(d)?new C0({...d,element:d.motionValue.owner.current}):new nu(d);y.finished.then(()=>this.notifyFinished()).catch(Be),this.pendingTimeline&&(this.stopTimeline=y.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=y}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){var t;return this._animation||((t=this.keyframeResolver)==null||t.resume(),p0()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var t;this._animation&&this.animation.cancel(),(t=this.keyframeResolver)==null||t.cancel()}}const N0=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function _0(e){const t=N0.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function Np(e,t,n=1){const[r,i]=_0(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return tp(o)?parseFloat(o):o}return Xa(i)?Np(i,t,n+1):i}function iu(e,t){return(e==null?void 0:e[t])??(e==null?void 0:e.default)??e}const _p=new Set(["width","height","top","left","right","bottom",...Zn]),j0={test:e=>e==="auto",parse:e=>e},jp=e=>t=>t.test(e),Fp=[Xn,L,it,wt,Ev,Cv,j0],Bc=e=>Fp.find(jp(e));function F0(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||rp(e):!0}const I0=new Set(["brightness","contrast","saturate","opacity"]);function O0(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Za)||[];if(!r)return e;const i=n.replace(r,"");let s=I0.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const z0=/\b([a-z-]*)\(.*?\)/gu,jl={...It,getAnimatableNone:e=>{const t=e.match(z0);return t?t.map(O0).join(" "):e}},Uc={...Xn,transform:Math.round},B0={rotate:wt,rotateX:wt,rotateY:wt,rotateZ:wt,scale:Ei,scaleX:Ei,scaleY:Ei,scaleZ:Ei,skew:wt,skewX:wt,skewY:wt,distance:L,translateX:L,translateY:L,translateZ:L,x:L,y:L,z:L,perspective:L,transformPerspective:L,opacity:Hr,originX:Dc,originY:Dc,originZ:L},su={borderWidth:L,borderTopWidth:L,borderRightWidth:L,borderBottomWidth:L,borderLeftWidth:L,borderRadius:L,radius:L,borderTopLeftRadius:L,borderTopRightRadius:L,borderBottomRightRadius:L,borderBottomLeftRadius:L,width:L,maxWidth:L,height:L,maxHeight:L,top:L,right:L,bottom:L,left:L,padding:L,paddingTop:L,paddingRight:L,paddingBottom:L,paddingLeft:L,margin:L,marginTop:L,marginRight:L,marginBottom:L,marginLeft:L,backgroundPositionX:L,backgroundPositionY:L,...B0,zIndex:Uc,fillOpacity:Hr,strokeOpacity:Hr,numOctaves:Uc},U0={...su,color:b,backgroundColor:b,outlineColor:b,fill:b,stroke:b,borderColor:b,borderTopColor:b,borderRightColor:b,borderBottomColor:b,borderLeftColor:b,filter:jl,WebkitFilter:jl},Ip=e=>U0[e];function Op(e,t){let n=Ip(e);return n!==jl&&(n=It),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const W0=new Set(["auto","none","0"]);function $0(e,t,n){let r=0,i;for(;r{t.getValue(a).set(u)}),this.resolveNoneKeyframes()}}function K0(e,t,n){if(e instanceof EventTarget)return[e];if(typeof e=="string"){let r=document;const i=(n==null?void 0:n[e])??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}const zp=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function Bp(e){return np(e)&&"offsetHeight"in e}const Wc=30,G0=e=>!isNaN(parseFloat(e));class Q0{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=r=>{var s;const i=Pe.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&((s=this.events.change)==null||s.notify(this.current),this.dependents))for(const o of this.dependents)o.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Pe.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=G0(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Ka);const r=this.events[t].add(n);return t==="change"?()=>{r(),W.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var t;(t=this.events.change)==null||t.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Pe.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Wc)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Wc);return ip(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){var t,n;(t=this.dependents)==null||t.clear(),(n=this.events.destroy)==null||n.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Hn(e,t){return new Q0(e,t)}const{schedule:ou}=mp(queueMicrotask,!1),Ke={x:!1,y:!1};function Up(){return Ke.x||Ke.y}function Y0(e){return e==="x"||e==="y"?Ke[e]?null:(Ke[e]=!0,()=>{Ke[e]=!1}):Ke.x||Ke.y?null:(Ke.x=Ke.y=!0,()=>{Ke.x=Ke.y=!1})}function Wp(e,t){const n=K0(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function $c(e){return!(e.pointerType==="touch"||Up())}function X0(e,t,n={}){const[r,i,s]=Wp(e,n),o=l=>{if(!$c(l))return;const{target:a}=l,u=t(a,l);if(typeof u!="function"||!a)return;const c=f=>{$c(f)&&(u(f),a.removeEventListener("pointerleave",c))};a.addEventListener("pointerleave",c,i)};return r.forEach(l=>{l.addEventListener("pointerenter",o,i)}),s}const $p=(e,t)=>t?e===t?!0:$p(e,t.parentElement):!1,lu=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,Z0=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function q0(e){return Z0.has(e.tagName)||e.tabIndex!==-1}const Wi=new WeakSet;function Hc(e){return t=>{t.key==="Enter"&&e(t)}}function So(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const J0=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Hc(()=>{if(Wi.has(n))return;So(n,"down");const i=Hc(()=>{So(n,"up")}),s=()=>So(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Kc(e){return lu(e)&&!Up()}function b0(e,t,n={}){const[r,i,s]=Wp(e,n),o=l=>{const a=l.currentTarget;if(!Kc(l))return;Wi.add(a);const u=t(a,l),c=(y,g)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",d),Wi.has(a)&&Wi.delete(a),Kc(y)&&typeof u=="function"&&u(y,{success:g})},f=y=>{c(y,a===window||a===document||n.useGlobalTarget||$p(a,y.target))},d=y=>{c(y,!1)};window.addEventListener("pointerup",f,i),window.addEventListener("pointercancel",d,i)};return r.forEach(l=>{(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,i),Bp(l)&&(l.addEventListener("focus",u=>J0(u,i)),!q0(l)&&!l.hasAttribute("tabindex")&&(l.tabIndex=0))}),s}function Hp(e){return np(e)&&"ownerSVGElement"in e}function e1(e){return Hp(e)&&e.tagName==="svg"}const me=e=>!!(e&&e.getVelocity),t1=[...Fp,b,It],n1=e=>t1.find(jp(e)),au=M.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function Gc(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function r1(...e){return t=>{let n=!1;const r=e.map(i=>{const s=Gc(i,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let i=0;i{const{width:u,height:c,top:f,left:d,right:y}=o.current;if(t||!s.current||!u||!c)return;const g=n==="left"?`left: ${d}`:`right: ${y}`;s.current.dataset.motionPopId=i;const v=document.createElement("style");l&&(v.nonce=l);const k=r??document.head;return k.appendChild(v),v.sheet&&v.sheet.insertRule(` + [data-motion-pop-id="${i}"] { + position: absolute !important; + width: ${u}px !important; + height: ${c}px !important; + ${g}px !important; + top: ${f}px !important; + } + `),()=>{k.contains(v)&&k.removeChild(v)}},[t]),A.jsx(s1,{isPresent:t,childRef:s,sizeRef:o,children:M.cloneElement(e,{ref:a})})}const l1=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o,anchorX:l,root:a})=>{const u=za(a1),c=M.useId();let f=!0,d=M.useMemo(()=>(f=!1,{id:c,initial:t,isPresent:n,custom:i,onExitComplete:y=>{u.set(y,!0);for(const g of u.values())if(!g)return;r&&r()},register:y=>(u.set(y,!1),()=>u.delete(y))}),[n,u,r]);return s&&f&&(d={...d}),M.useMemo(()=>{u.forEach((y,g)=>u.set(g,!1))},[n]),M.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),o==="popLayout"&&(e=A.jsx(o1,{isPresent:n,anchorX:l,root:a,children:e})),A.jsx(Is.Provider,{value:d,children:e})};function a1(){return new Map}function Kp(e=!0){const t=M.useContext(Is);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=M.useId();M.useEffect(()=>{if(e)return i(s)},[e]);const o=M.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const Mi=e=>e.key||"";function Qc(e){const t=[];return M.Children.forEach(e,n=>{M.isValidElement(n)&&t.push(n)}),t}const Yc=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1,anchorX:l="left",root:a})=>{const[u,c]=Kp(o),f=M.useMemo(()=>Qc(e),[e]),d=o&&!u?[]:f.map(Mi),y=M.useRef(!0),g=M.useRef(f),v=za(()=>new Map),[k,p]=M.useState(f),[h,m]=M.useState(f);ep(()=>{y.current=!1,g.current=f;for(let T=0;T{const C=Mi(T),x=o&&!u?!1:f===h||d.includes(C),_=()=>{if(v.has(C))v.set(C,!0);else return;let V=!0;v.forEach(J=>{J||(V=!1)}),V&&(S==null||S(),m(g.current),o&&(c==null||c()),r&&r())};return A.jsx(l1,{isPresent:x,initial:!y.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:s,root:a,onExitComplete:x?void 0:_,anchorX:l,children:T},C)})})},Gp=M.createContext({strict:!1}),Xc={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Kn={};for(const e in Xc)Kn[e]={isEnabled:t=>Xc[e].some(n=>!!t[n])};function u1(e){for(const t in e)Kn[t]={...Kn[t],...e[t]}}const c1=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function vs(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||c1.has(e)}let Qp=e=>!vs(e);function f1(e){typeof e=="function"&&(Qp=t=>t.startsWith("on")?!vs(t):e(t))}try{f1(require("@emotion/is-prop-valid").default)}catch{}function d1(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(Qp(i)||n===!0&&vs(i)||!t&&!vs(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}const Os=M.createContext({});function zs(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Gr(e){return typeof e=="string"||Array.isArray(e)}const uu=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],cu=["initial",...uu];function Bs(e){return zs(e.animate)||cu.some(t=>Gr(e[t]))}function Yp(e){return!!(Bs(e)||e.variants)}function h1(e,t){if(Bs(e)){const{initial:n,animate:r}=e;return{initial:n===!1||Gr(n)?n:void 0,animate:Gr(r)?r:void 0}}return e.inherit!==!1?t:{}}function p1(e){const{initial:t,animate:n}=h1(e,M.useContext(Os));return M.useMemo(()=>({initial:t,animate:n}),[Zc(t),Zc(n)])}function Zc(e){return Array.isArray(e)?e.join(" "):e}const Qr={};function m1(e){for(const t in e)Qr[t]=e[t],Ya(t)&&(Qr[t].isCSSVariable=!0)}function Xp(e,{layout:t,layoutId:n}){return qn.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Qr[e]||e==="opacity")}const y1={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},g1=Zn.length;function v1(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}});function Zp(e,t,n){for(const r in t)!me(t[r])&&!Xp(r,n)&&(e[r]=t[r])}function w1({transformTemplate:e},t){return M.useMemo(()=>{const n=du();return fu(n,t,e),Object.assign({},n.vars,n.style)},[t])}function S1(e,t){const n=e.style||{},r={};return Zp(r,n,e),Object.assign(r,w1(e,t)),r}function x1(e,t){const n={},r=S1(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const T1={offset:"stroke-dashoffset",array:"stroke-dasharray"},k1={offset:"strokeDashoffset",array:"strokeDasharray"};function P1(e,t,n=1,r=0,i=!0){e.pathLength=1;const s=i?T1:k1;e[s.offset]=L.transform(-r);const o=L.transform(t),l=L.transform(n);e[s.array]=`${o} ${l}`}function qp(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:s=1,pathOffset:o=0,...l},a,u,c){if(fu(e,l,u),a){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:f,style:d}=e;f.transform&&(d.transform=f.transform,delete f.transform),(d.transform||f.transformOrigin)&&(d.transformOrigin=f.transformOrigin??"50% 50%",delete f.transformOrigin),d.transform&&(d.transformBox=(c==null?void 0:c.transformBox)??"fill-box",delete f.transformBox),t!==void 0&&(f.x=t),n!==void 0&&(f.y=n),r!==void 0&&(f.scale=r),i!==void 0&&P1(f,i,s,o,!1)}const Jp=()=>({...du(),attrs:{}}),bp=e=>typeof e=="string"&&e.toLowerCase()==="svg";function C1(e,t,n,r){const i=M.useMemo(()=>{const s=Jp();return qp(s,t,bp(r),e.transformTemplate,e.style),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};Zp(s,e.style,e),i.style={...s,...i.style}}return i}const E1=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function hu(e){return typeof e!="string"||e.includes("-")?!1:!!(E1.indexOf(e)>-1||/[A-Z]/u.test(e))}function M1(e,t,n,{latestValues:r},i,s=!1){const l=(hu(e)?C1:x1)(t,r,i,e),a=d1(t,typeof e=="string",s),u=e!==M.Fragment?{...a,...l,ref:n}:{},{children:c}=t,f=M.useMemo(()=>me(c)?c.get():c,[c]);return M.createElement(e,{...u,children:f})}function qc(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function pu(e,t,n,r){if(typeof t=="function"){const[i,s]=qc(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=qc(r);t=t(n!==void 0?n:e.custom,i,s)}return t}function $i(e){return me(e)?e.get():e}function D1({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:A1(n,r,i,e),renderState:t()}}function A1(e,t,n,r){const i={},s=r(e,{});for(const d in s)i[d]=$i(s[d]);let{initial:o,animate:l}=e;const a=Bs(e),u=Yp(e);t&&u&&!a&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let c=n?n.initial===!1:!1;c=c||o===!1;const f=c?l:o;if(f&&typeof f!="boolean"&&!zs(f)){const d=Array.isArray(f)?f:[f];for(let y=0;y(t,n)=>{const r=M.useContext(Os),i=M.useContext(Is),s=()=>D1(e,t,r,i);return n?s():za(s)};function mu(e,t,n){var s;const{style:r}=e,i={};for(const o in r)(me(r[o])||t.style&&me(t.style[o])||Xp(o,e)||((s=n==null?void 0:n.getValue(o))==null?void 0:s.liveStyle)!==void 0)&&(i[o]=r[o]);return i}const V1=em({scrapeMotionValuesFromProps:mu,createRenderState:du});function tm(e,t,n){const r=mu(e,t,n);for(const i in e)if(me(e[i])||me(t[i])){const s=Zn.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}const R1=em({scrapeMotionValuesFromProps:tm,createRenderState:Jp}),L1=Symbol.for("motionComponentSymbol");function En(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function N1(e,t,n){return M.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):En(n)&&(n.current=r))},[t])}const yu=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),_1="framerAppearId",nm="data-"+yu(_1),rm=M.createContext({});function j1(e,t,n,r,i){var v,k;const{visualElement:s}=M.useContext(Os),o=M.useContext(Gp),l=M.useContext(Is),a=M.useContext(au).reducedMotion,u=M.useRef(null);r=r||o.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:s,props:n,presenceContext:l,blockInitialAnimation:l?l.initial===!1:!1,reducedMotionConfig:a}));const c=u.current,f=M.useContext(rm);c&&!c.projection&&i&&(c.type==="html"||c.type==="svg")&&F1(u.current,n,i,f);const d=M.useRef(!1);M.useInsertionEffect(()=>{c&&d.current&&c.update(n,l)});const y=n[nm],g=M.useRef(!!y&&!((v=window.MotionHandoffIsComplete)!=null&&v.call(window,y))&&((k=window.MotionHasOptimisedAnimation)==null?void 0:k.call(window,y)));return ep(()=>{c&&(d.current=!0,window.MotionIsMounted=!0,c.updateFeatures(),c.scheduleRenderMicrotask(),g.current&&c.animationState&&c.animationState.animateChanges())}),M.useEffect(()=>{c&&(!g.current&&c.animationState&&c.animationState.animateChanges(),g.current&&(queueMicrotask(()=>{var p;(p=window.MotionHandoffMarkAsComplete)==null||p.call(window,y)}),g.current=!1),c.enteringChildren=void 0)}),c}function F1(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:l,layoutScroll:a,layoutRoot:u,layoutCrossfade:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:im(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||l&&En(l),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,crossfade:c,layoutScroll:a,layoutRoot:u})}function im(e){if(e)return e.options.allowProjection!==!1?e.projection:im(e.parent)}function xo(e,{forwardMotionProps:t=!1}={},n,r){n&&u1(n);const i=hu(e)?R1:V1;function s(l,a){let u;const c={...M.useContext(au),...l,layoutId:I1(l)},{isStatic:f}=c,d=p1(l),y=i(l,f);if(!f&&Ba){O1();const g=z1(c);u=g.MeasureLayout,d.visualElement=j1(e,y,c,r,g.ProjectionNode)}return A.jsxs(Os.Provider,{value:d,children:[u&&d.visualElement?A.jsx(u,{visualElement:d.visualElement,...c}):null,M1(e,l,N1(y,d.visualElement,a),y,f,t)]})}s.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const o=M.forwardRef(s);return o[L1]=e,o}function I1({layoutId:e}){const t=M.useContext(Oa).id;return t&&e!==void 0?t+"-"+e:e}function O1(e,t){M.useContext(Gp).strict}function z1(e){const{drag:t,layout:n}=Kn;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function B1(e,t){if(typeof Proxy>"u")return xo;const n=new Map,r=(s,o)=>xo(s,o,e,t),i=(s,o)=>r(s,o);return new Proxy(i,{get:(s,o)=>o==="create"?r:(n.has(o)||n.set(o,xo(o,void 0,e,t)),n.get(o))})}function sm({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function U1({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function W1(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function To(e){return e===void 0||e===1}function Fl({scale:e,scaleX:t,scaleY:n}){return!To(e)||!To(t)||!To(n)}function Yt(e){return Fl(e)||om(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function om(e){return Jc(e.x)||Jc(e.y)}function Jc(e){return e&&e!=="0%"}function ws(e,t,n){const r=e-n,i=t*r;return n+i}function bc(e,t,n,r,i){return i!==void 0&&(e=ws(e,i,r)),ws(e,n,r)+t}function Il(e,t=0,n=1,r,i){e.min=bc(e.min,t,n,r,i),e.max=bc(e.max,t,n,r,i)}function lm(e,{x:t,y:n}){Il(e.x,t.translate,t.scale,t.originPoint),Il(e.y,n.translate,n.scale,n.originPoint)}const ef=.999999999999,tf=1.0000000000001;function $1(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let l=0;lef&&(t.x=1),t.yef&&(t.y=1)}function Mn(e,t){e.min=e.min+t,e.max=e.max+t}function nf(e,t,n,r,i=.5){const s=K(e.min,e.max,i);Il(e,t,n,s,r)}function Dn(e,t){nf(e.x,t.x,t.scaleX,t.scale,t.originX),nf(e.y,t.y,t.scaleY,t.scale,t.originY)}function am(e,t){return sm(W1(e.getBoundingClientRect(),t))}function H1(e,t,n){const r=am(e,n),{scroll:i}=t;return i&&(Mn(r.x,i.offset.x),Mn(r.y,i.offset.y)),r}const rf=()=>({translate:0,scale:1,origin:0,originPoint:0}),An=()=>({x:rf(),y:rf()}),sf=()=>({min:0,max:0}),te=()=>({x:sf(),y:sf()}),Ol={current:null},um={current:!1};function K1(){if(um.current=!0,!!Ba)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Ol.current=e.matches;e.addEventListener("change",t),t()}else Ol.current=!1}const G1=new WeakMap;function Q1(e,t,n){for(const r in t){const i=t[r],s=n[r];if(me(i))e.addValue(r,i);else if(me(s))e.addValue(r,Hn(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,Hn(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const of=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class Y1{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=ru,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const d=Pe.now();this.renderScheduledAtthis.bindToMotionValue(i,r)),um.current||K1(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Ol.current,(n=this.parent)==null||n.addChild(this),this.update(this.props,this.presenceContext)}unmount(){var t;this.projection&&this.projection.unmount(),Ft(this.notifyUpdate),Ft(this.render),this.valueSubscriptions.forEach(n=>n()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(t=this.parent)==null||t.removeChild(this);for(const n in this.events)this.events[n].clear();for(const n in this.features){const r=this.features[n];r&&(r.unmount(),r.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=qn.has(t);r&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",o=>{this.latestValues[t]=o,this.props.onUpdate&&W.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let s;window.MotionCheckAppearSync&&(s=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s&&s(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Kn){const n=Kn[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):te()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=Hn(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(tp(r)||rp(r))?r=parseFloat(r):!n1(r)&&It.test(n)&&(r=Op(t,n)),this.setBaseTarget(t,me(r)?r.get():r)),me(r)?r.get():r}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var s;const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const o=pu(this.props,n,(s=this.presenceContext)==null?void 0:s.custom);o&&(r=o[t])}if(n&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!me(i)?i:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Ka),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){ou.render(this.render)}}class cm extends Y1{constructor(){super(...arguments),this.KeyframeResolver=H0}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;me(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function fm(e,{style:t,vars:n},r,i){const s=e.style;let o;for(o in t)s[o]=t[o];i==null||i.applyProjectionStyles(s,r);for(o in n)s.setProperty(o,n[o])}function X1(e){return window.getComputedStyle(e)}class Z1 extends cm{constructor(){super(...arguments),this.type="html",this.renderInstance=fm}readValueFromInstance(t,n){var r;if(qn.has(n))return(r=this.projection)!=null&&r.isProjecting?Al(n):u0(t,n);{const i=X1(t),s=(Ya(n)?i.getPropertyValue(n):i[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return am(t,n)}build(t,n,r){fu(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return mu(t,n,r)}}const dm=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function q1(e,t,n,r){fm(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(dm.has(i)?i:yu(i),t.attrs[i])}class J1 extends cm{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=te}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qn.has(n)){const r=Ip(n);return r&&r.default||0}return n=dm.has(n)?n:yu(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return tm(t,n,r)}build(t,n,r){qp(t,n,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(t,n,r,i){q1(t,n,r,i)}mount(t){this.isSVGTag=bp(t.tagName),super.mount(t)}}const b1=(e,t)=>hu(e)?new J1(t):new Z1(t,{allowProjection:e!==M.Fragment});function Fn(e,t,n){const r=e.getProps();return pu(r,t,n!==void 0?n:r.custom,e)}const zl=e=>Array.isArray(e);function ew(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Hn(n))}function tw(e){return zl(e)?e[e.length-1]||0:e}function nw(e,t){const n=Fn(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const l=tw(s[o]);ew(e,o,l)}}function rw(e){return!!(me(e)&&e.add)}function Bl(e,t){const n=e.getValue("willChange");if(rw(n))return n.add(t);if(!n&&mt.WillChange){const r=new mt.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function hm(e){return e.props[nm]}const iw=e=>e!==null;function sw(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(iw),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return i[s]}const ow={type:"spring",stiffness:500,damping:25,restSpeed:10},lw=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),aw={type:"keyframes",duration:.8},uw={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},cw=(e,{keyframes:t})=>t.length>2?aw:qn.has(e)?e.startsWith("scale")?lw(t[1]):ow:uw;function fw({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:l,from:a,elapsed:u,...c}){return!!Object.keys(c).length}const gu=(e,t,n,r={},i,s)=>o=>{const l=iu(r,e)||{},a=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-rt(a);const c={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:d=>{t.set(d),l.onUpdate&&l.onUpdate(d)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:s?void 0:i};fw(l)||Object.assign(c,cw(e,c)),c.duration&&(c.duration=rt(c.duration)),c.repeatDelay&&(c.repeatDelay=rt(c.repeatDelay)),c.from!==void 0&&(c.keyframes[0]=c.from);let f=!1;if((c.type===!1||c.duration===0&&!c.repeatDelay)&&(_l(c),c.delay===0&&(f=!0)),(mt.instantAnimations||mt.skipAnimations)&&(f=!0,_l(c),c.delay=0),c.allowFlatten=!l.type&&!l.ease,f&&!s&&t.get()!==void 0){const d=sw(c.keyframes,l);if(d!==void 0){W.update(()=>{c.onUpdate(d),c.onComplete()});return}}return l.isSync?new nu(c):new L0(c)};function dw({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function pm(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:s=e.getDefaultTransition(),transitionEnd:o,...l}=t;r&&(s=r);const a=[],u=i&&e.animationState&&e.animationState.getState()[i];for(const c in l){const f=e.getValue(c,e.latestValues[c]??null),d=l[c];if(d===void 0||u&&dw(u,c))continue;const y={delay:n,...iu(s||{},c)},g=f.get();if(g!==void 0&&!f.isAnimating&&!Array.isArray(d)&&d===g&&!y.velocity)continue;let v=!1;if(window.MotionHandoffAnimation){const p=hm(e);if(p){const h=window.MotionHandoffAnimation(p,c,W);h!==null&&(y.startTime=h,v=!0)}}Bl(e,c),f.start(gu(c,f,d,e.shouldReduceMotion&&_p.has(c)?{type:!1}:y,e,v));const k=f.animation;k&&a.push(k)}return o&&Promise.all(a).then(()=>{W.update(()=>{o&&nw(e,o)})}),a}function mm(e,t,n,r=0,i=1){const s=Array.from(e).sort((u,c)=>u.sortNodePosition(c)).indexOf(t),o=e.size,l=(o-1)*r;return typeof n=="function"?n(s,o):i===1?s*r:l-s*r}function Ul(e,t,n={}){var a;const r=Fn(e,t,n.type==="exit"?(a=e.presenceContext)==null?void 0:a.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const s=r?()=>Promise.all(pm(e,r,n)):()=>Promise.resolve(),o=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:c=0,staggerChildren:f,staggerDirection:d}=i;return hw(e,t,u,c,f,d,n)}:()=>Promise.resolve(),{when:l}=i;if(l){const[u,c]=l==="beforeChildren"?[s,o]:[o,s];return u().then(()=>c())}else return Promise.all([s(),o(n.delay)])}function hw(e,t,n=0,r=0,i=0,s=1,o){const l=[];for(const a of e.variantChildren)a.notify("AnimationStart",t),l.push(Ul(a,t,{...o,delay:n+(typeof r=="function"?0:r)+mm(e.variantChildren,a,r,i,s)}).then(()=>a.notify("AnimationComplete",t)));return Promise.all(l)}function pw(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>Ul(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=Ul(e,t,n);else{const i=typeof t=="function"?Fn(e,t,n.custom):t;r=Promise.all(pm(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}function ym(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rPromise.all(t.map(({animation:n,options:r})=>pw(e,n,r)))}function ww(e){let t=vw(e),n=lf(),r=!0;const i=a=>(u,c)=>{var d;const f=Fn(e,c,a==="exit"?(d=e.presenceContext)==null?void 0:d.custom:void 0);if(f){const{transition:y,transitionEnd:g,...v}=f;u={...u,...v,...g}}return u};function s(a){t=a(e)}function o(a){const{props:u}=e,c=gm(e.parent)||{},f=[],d=new Set;let y={},g=1/0;for(let k=0;kg&&w,_=!1;const V=Array.isArray(m)?m:[m];let J=V.reduce(i(p),{});S===!1&&(J={});const{prevResolvedValues:gt={}}=h,Wt={...gt,...J},Jn=Z=>{x=!0,d.has(Z)&&(_=!0,d.delete(Z)),h.needsAnimating[Z]=!0;const E=e.getValue(Z);E&&(E.liveStyle=!1)};for(const Z in Wt){const E=J[Z],R=gt[Z];if(y.hasOwnProperty(Z))continue;let N=!1;zl(E)&&zl(R)?N=!ym(E,R):N=E!==R,N?E!=null?Jn(Z):d.add(Z):E!==void 0&&d.has(Z)?Jn(Z):h.protectedKeys[Z]=!0}h.prevProp=m,h.prevResolvedValues=J,h.isActive&&(y={...y,...J}),r&&e.blockInitialAnimation&&(x=!1);const ii=T&&C;x&&(!ii||_)&&f.push(...V.map(Z=>{const E={type:p};if(typeof Z=="string"&&r&&!ii&&e.manuallyAnimateOnMount&&e.parent){const{parent:R}=e,N=Fn(R,Z);if(R.enteringChildren&&N){const{delayChildren:$}=N.transition||{};E.delay=mm(R.enteringChildren,e,$)}}return{animation:Z,options:E}}))}if(d.size){const k={};if(typeof u.initial!="boolean"){const p=Fn(e,Array.isArray(u.initial)?u.initial[0]:u.initial);p&&p.transition&&(k.transition=p.transition)}d.forEach(p=>{const h=e.getBaseTarget(p),m=e.getValue(p);m&&(m.liveStyle=!0),k[p]=h??null}),f.push({animation:k})}let v=!!f.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(f):Promise.resolve()}function l(a,u){var f;if(n[a].isActive===u)return Promise.resolve();(f=e.variantChildren)==null||f.forEach(d=>{var y;return(y=d.animationState)==null?void 0:y.setActive(a,u)}),n[a].isActive=u;const c=o(a);for(const d in n)n[d].protectedKeys={};return c}return{animateChanges:o,setActive:l,setAnimateFunction:s,getState:()=>n,reset:()=>{n=lf()}}}function Sw(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!ym(t,e):!1}function Kt(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function lf(){return{animate:Kt(!0),whileInView:Kt(),whileHover:Kt(),whileTap:Kt(),whileDrag:Kt(),whileFocus:Kt(),exit:Kt()}}class Ut{constructor(t){this.isMounted=!1,this.node=t}update(){}}class xw extends Ut{constructor(t){super(t),t.animationState||(t.animationState=ww(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();zs(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)==null||t.call(this)}}let Tw=0;class kw extends Ut{constructor(){super(...arguments),this.id=Tw++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const Pw={animation:{Feature:xw},exit:{Feature:kw}};function Yr(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function ri(e){return{point:{x:e.pageX,y:e.pageY}}}const Cw=e=>t=>lu(t)&&e(t,ri(t));function Pr(e,t,n,r){return Yr(e,t,Cw(n),r)}const vm=1e-4,Ew=1-vm,Mw=1+vm,wm=.01,Dw=0-wm,Aw=0+wm;function ve(e){return e.max-e.min}function Vw(e,t,n){return Math.abs(e-t)<=n}function af(e,t,n,r=.5){e.origin=r,e.originPoint=K(t.min,t.max,e.origin),e.scale=ve(n)/ve(t),e.translate=K(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Ew&&e.scale<=Mw||isNaN(e.scale))&&(e.scale=1),(e.translate>=Dw&&e.translate<=Aw||isNaN(e.translate))&&(e.translate=0)}function Cr(e,t,n,r){af(e.x,t.x,n.x,r?r.originX:void 0),af(e.y,t.y,n.y,r?r.originY:void 0)}function uf(e,t,n){e.min=n.min+t.min,e.max=e.min+ve(t)}function Rw(e,t,n){uf(e.x,t.x,n.x),uf(e.y,t.y,n.y)}function cf(e,t,n){e.min=t.min-n.min,e.max=e.min+ve(t)}function Ss(e,t,n){cf(e.x,t.x,n.x),cf(e.y,t.y,n.y)}function _e(e){return[e("x"),e("y")]}const Sm=({current:e})=>e?e.ownerDocument.defaultView:null,ff=(e,t)=>Math.abs(e-t);function Lw(e,t){const n=ff(e.x,t.x),r=ff(e.y,t.y);return Math.sqrt(n**2+r**2)}class xm{constructor(t,n,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:s=!1,distanceThreshold:o=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const d=Po(this.lastMoveEventInfo,this.history),y=this.startEvent!==null,g=Lw(d.offset,{x:0,y:0})>=this.distanceThreshold;if(!y&&!g)return;const{point:v}=d,{timestamp:k}=ue;this.history.push({...v,timestamp:k});const{onStart:p,onMove:h}=this.handlers;y||(p&&p(this.lastMoveEvent,d),this.startEvent=this.lastMoveEvent),h&&h(this.lastMoveEvent,d)},this.handlePointerMove=(d,y)=>{this.lastMoveEvent=d,this.lastMoveEventInfo=ko(y,this.transformPagePoint),W.update(this.updatePoint,!0)},this.handlePointerUp=(d,y)=>{this.end();const{onEnd:g,onSessionEnd:v,resumeAnimation:k}=this.handlers;if(this.dragSnapToOrigin&&k&&k(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=Po(d.type==="pointercancel"?this.lastMoveEventInfo:ko(y,this.transformPagePoint),this.history);this.startEvent&&g&&g(d,p),v&&v(d,p)},!lu(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=o,this.contextWindow=i||window;const l=ri(t),a=ko(l,this.transformPagePoint),{point:u}=a,{timestamp:c}=ue;this.history=[{...u,timestamp:c}];const{onSessionStart:f}=n;f&&f(t,Po(a,this.history)),this.removeListeners=ei(Pr(this.contextWindow,"pointermove",this.handlePointerMove),Pr(this.contextWindow,"pointerup",this.handlePointerUp),Pr(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),Ft(this.updatePoint)}}function ko(e,t){return t?{point:t(e.point)}:e}function df(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Po({point:e},t){return{point:e,delta:df(e,Tm(t)),offset:df(e,Nw(t)),velocity:_w(t,.1)}}function Nw(e){return e[0]}function Tm(e){return e[e.length-1]}function _w(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=Tm(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>rt(t)));)n--;if(!r)return{x:0,y:0};const s=Oe(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function jw(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?K(n,e,r.max):Math.min(e,n)),e}function hf(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function Fw(e,{top:t,left:n,bottom:r,right:i}){return{x:hf(e.x,n,i),y:hf(e.y,t,r)}}function pf(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=$r(t.min,t.max-r,e.min):r>i&&(n=$r(e.min,e.max-i,t.min)),pt(0,1,n)}function zw(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Wl=.35;function Bw(e=Wl){return e===!1?e=0:e===!0&&(e=Wl),{x:mf(e,"left","right"),y:mf(e,"top","bottom")}}function mf(e,t,n){return{min:yf(e,t),max:yf(e,n)}}function yf(e,t){return typeof e=="number"?e:e[t]||0}const Uw=new WeakMap;class Ww{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=te(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const s=f=>{const{dragSnapToOrigin:d}=this.getProps();d?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(ri(f).point)},o=(f,d)=>{const{drag:y,dragPropagation:g,onDragStart:v}=this.getProps();if(y&&!g&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Y0(y),!this.openDragLock))return;this.latestPointerEvent=f,this.latestPanInfo=d,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),_e(p=>{let h=this.getAxisMotionValue(p).get()||0;if(it.test(h)){const{projection:m}=this.visualElement;if(m&&m.layout){const w=m.layout.layoutBox[p];w&&(h=ve(w)*(parseFloat(h)/100))}}this.originPoint[p]=h}),v&&W.postRender(()=>v(f,d)),Bl(this.visualElement,"transform");const{animationState:k}=this.visualElement;k&&k.setActive("whileDrag",!0)},l=(f,d)=>{this.latestPointerEvent=f,this.latestPanInfo=d;const{dragPropagation:y,dragDirectionLock:g,onDirectionLock:v,onDrag:k}=this.getProps();if(!y&&!this.openDragLock)return;const{offset:p}=d;if(g&&this.currentDirection===null){this.currentDirection=$w(p),this.currentDirection!==null&&v&&v(this.currentDirection);return}this.updateAxis("x",d.point,p),this.updateAxis("y",d.point,p),this.visualElement.render(),k&&k(f,d)},a=(f,d)=>{this.latestPointerEvent=f,this.latestPanInfo=d,this.stop(f,d),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>_e(f=>{var d;return this.getAnimationState(f)==="paused"&&((d=this.getAxisMotionValue(f).animation)==null?void 0:d.play())}),{dragSnapToOrigin:c}=this.getProps();this.panSession=new xm(t,{onSessionStart:s,onStart:o,onMove:l,onSessionEnd:a,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,distanceThreshold:r,contextWindow:Sm(this.visualElement)})}stop(t,n){const r=t||this.latestPointerEvent,i=n||this.latestPanInfo,s=this.isDragging;if(this.cancel(),!s||!i||!r)return;const{velocity:o}=i;this.startAnimation(o);const{onDragEnd:l}=this.getProps();l&&W.postRender(()=>l(r,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Di(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=jw(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var s;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(s=this.visualElement.projection)==null?void 0:s.layout,i=this.constraints;t&&En(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=Fw(r.layoutBox,t):this.constraints=!1,this.elastic=Bw(n),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&_e(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=zw(r.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!En(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=H1(r,i.root,this.visualElement.getTransformPagePoint());let o=Iw(i.layout.layoutBox,s);if(n){const l=n(U1(o));this.hasMutatedConstraints=!!l,l&&(o=sm(l))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),a=this.constraints||{},u=_e(c=>{if(!Di(c,n,this.currentDirection))return;let f=a&&a[c]||{};o&&(f={min:0,max:0});const d=i?200:1e6,y=i?40:1e7,g={type:"inertia",velocity:r?t[c]:0,bounceStiffness:d,bounceDamping:y,timeConstant:750,restDelta:1,restSpeed:10,...s,...f};return this.startAxisValueAnimation(c,g)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return Bl(this.visualElement,t),r.start(gu(t,r,0,n,this.visualElement,!1))}stopAnimation(){_e(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){_e(t=>{var n;return(n=this.getAxisMotionValue(t).animation)==null?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)==null?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){_e(n=>{const{drag:r}=this.getProps();if(!Di(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:l}=i.layout.layoutBox[n];s.set(t[n]-K(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!En(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};_e(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const a=l.get();i[o]=Ow({min:a,max:a},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),_e(o=>{if(!Di(o,t,null))return;const l=this.getAxisMotionValue(o),{min:a,max:u}=this.constraints[o];l.set(K(a,u,i[o]))})}addListeners(){if(!this.visualElement.current)return;Uw.set(this.visualElement,this);const t=this.visualElement.current,n=Pr(t,"pointerdown",a=>{const{drag:u,dragListener:c=!0}=this.getProps();u&&c&&this.start(a)}),r=()=>{const{dragConstraints:a}=this.getProps();En(a)&&a.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),W.read(r);const o=Yr(window,"resize",()=>this.scalePositionWithinConstraints()),l=i.addEventListener("didUpdate",({delta:a,hasLayoutChanged:u})=>{this.isDragging&&u&&(_e(c=>{const f=this.getAxisMotionValue(c);f&&(this.originPoint[c]+=a[c].translate,f.set(f.get()+a[c].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Wl,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:l}}}function Di(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function $w(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Hw extends Ut{constructor(t){super(t),this.removeGroupControls=Be,this.removeListeners=Be,this.controls=new Ww(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Be}unmount(){this.removeGroupControls(),this.removeListeners()}}const gf=e=>(t,n)=>{e&&W.postRender(()=>e(t,n))};class Kw extends Ut{constructor(){super(...arguments),this.removePointerDownListener=Be}onPointerDown(t){this.session=new xm(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Sm(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:gf(t),onStart:gf(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&W.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Pr(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Hi={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function vf(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const lr={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(L.test(e))e=parseFloat(e);else return e;const n=vf(e,t.target.x),r=vf(e,t.target.y);return`${n}% ${r}%`}},Gw={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=It.parse(e);if(i.length>5)return r;const s=It.createTransformer(e),o=typeof i[0]!="number"?1:0,l=n.x.scale*t.x,a=n.y.scale*t.y;i[0+o]/=l,i[1+o]/=a;const u=K(l,a,.5);return typeof i[2+o]=="number"&&(i[2+o]/=u),typeof i[3+o]=="number"&&(i[3+o]/=u),s(i)}};let Co=!1;class Qw extends M.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;m1(Yw),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),Co&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),Hi.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,{projection:o}=r;return o&&(o.isPresent=s,Co=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==s?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||W.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ou.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;Co=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function km(e){const[t,n]=Kp(),r=M.useContext(Oa);return A.jsx(Qw,{...e,layoutGroup:r,switchLayoutGroup:M.useContext(rm),isPresent:t,safeToRemove:n})}const Yw={borderRadius:{...lr,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:lr,borderTopRightRadius:lr,borderBottomLeftRadius:lr,borderBottomRightRadius:lr,boxShadow:Gw};function Xw(e,t,n){const r=me(e)?e:Hn(e);return r.start(gu("",r,t,n)),r.animation}const Zw=(e,t)=>e.depth-t.depth;class qw{constructor(){this.children=[],this.isDirty=!1}add(t){Ua(this.children,t),this.isDirty=!0}remove(t){Wa(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(Zw),this.isDirty=!1,this.children.forEach(t)}}function Jw(e,t){const n=Pe.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(Ft(r),e(s-t))};return W.setup(r,!0),()=>Ft(r)}const Pm=["TopLeft","TopRight","BottomLeft","BottomRight"],bw=Pm.length,wf=e=>typeof e=="string"?parseFloat(e):e,Sf=e=>typeof e=="number"||L.test(e);function eS(e,t,n,r,i,s){i?(e.opacity=K(0,n.opacity??1,tS(r)),e.opacityExit=K(t.opacity??1,0,nS(r))):s&&(e.opacity=K(t.opacity??1,n.opacity??1,r));for(let o=0;ort?1:n($r(e,t,r))}function Tf(e,t){e.min=t.min,e.max=t.max}function He(e,t){Tf(e.x,t.x),Tf(e.y,t.y)}function kf(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Pf(e,t,n,r,i){return e-=t,e=ws(e,1/n,r),i!==void 0&&(e=ws(e,1/i,r)),e}function rS(e,t=0,n=1,r=.5,i,s=e,o=e){if(it.test(t)&&(t=parseFloat(t),t=K(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=K(s.min,s.max,r);e===s&&(l-=t),e.min=Pf(e.min,t,n,l,i),e.max=Pf(e.max,t,n,l,i)}function Cf(e,t,[n,r,i],s,o){rS(e,t[n],t[r],t[i],t.scale,s,o)}const iS=["x","scaleX","originX"],sS=["y","scaleY","originY"];function Ef(e,t,n,r){Cf(e.x,t,iS,n?n.x:void 0,r?r.x:void 0),Cf(e.y,t,sS,n?n.y:void 0,r?r.y:void 0)}function Mf(e){return e.translate===0&&e.scale===1}function Em(e){return Mf(e.x)&&Mf(e.y)}function Df(e,t){return e.min===t.min&&e.max===t.max}function oS(e,t){return Df(e.x,t.x)&&Df(e.y,t.y)}function Af(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Mm(e,t){return Af(e.x,t.x)&&Af(e.y,t.y)}function Vf(e){return ve(e.x)/ve(e.y)}function Rf(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class lS{constructor(){this.members=[]}add(t){Ua(this.members,t),t.scheduleRender()}remove(t){if(Wa(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function aS(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:c,rotateX:f,rotateY:d,skewX:y,skewY:g}=n;u&&(r=`perspective(${u}px) ${r}`),c&&(r+=`rotate(${c}deg) `),f&&(r+=`rotateX(${f}deg) `),d&&(r+=`rotateY(${d}deg) `),y&&(r+=`skewX(${y}deg) `),g&&(r+=`skewY(${g}deg) `)}const l=e.x.scale*t.x,a=e.y.scale*t.y;return(l!==1||a!==1)&&(r+=`scale(${l}, ${a})`),r||"none"}const Eo=["","X","Y","Z"],uS=1e3;let cS=0;function Mo(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Dm(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=hm(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",W,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Dm(r)}function Am({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},l=t==null?void 0:t()){this.id=cS++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(hS),this.nodes.forEach(gS),this.nodes.forEach(vS),this.nodes.forEach(pS)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let a=0;athis.root.updateBlockedByResize=!1;W.read(()=>{f=window.innerWidth}),e(o,()=>{const y=window.innerWidth;y!==f&&(f=y,this.root.updateBlockedByResize=!0,c&&c(),c=Jw(d,250),Hi.hasAnimatedSinceResize&&(Hi.hasAnimatedSinceResize=!1,this.nodes.forEach(_f)))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&u&&(l||a)&&this.addEventListener("didUpdate",({delta:c,hasLayoutChanged:f,hasRelativeLayoutChanged:d,layout:y})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||u.getDefaultTransition()||kS,{onLayoutAnimationStart:v,onLayoutAnimationComplete:k}=u.getProps(),p=!this.targetLayout||!Mm(this.targetLayout,y),h=!f&&d;if(this.options.layoutRoot||this.resumeFrom||h||f&&(p||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const m={...iu(g,"layout"),onPlay:v,onComplete:k};(u.shouldReduceMotion||this.options.layoutRoot)&&(m.delay=0,m.type=!1),this.startAnimation(m),this.setAnimationOrigin(c,h)}else f||_f(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=y})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Ft(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(wS),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Dm(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;c{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!ve(this.snapshot.measuredBox.x)&&!ve(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a{const S=w/1e3;jf(f.x,o.x,S),jf(f.y,o.y,S),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Ss(d,this.layout.layoutBox,this.relativeParent.layout.layoutBox),xS(this.relativeTarget,this.relativeTargetOrigin,d,S),m&&oS(this.relativeTarget,m)&&(this.isProjectionDirty=!1),m||(m=te()),He(m,this.relativeTarget)),v&&(this.animationValues=c,eS(c,u,this.latestValues,S,h,p)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=S},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){var l,a,u;this.notifyListeners("animationStart"),(l=this.currentAnimation)==null||l.stop(),(u=(a=this.resumingFrom)==null?void 0:a.currentAnimation)==null||u.stop(),this.pendingAnimation&&(Ft(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=W.update(()=>{Hi.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Hn(0)),this.currentAnimation=Xw(this.motionValue,[0,1e3],{...o,velocity:0,isSync:!0,onUpdate:c=>{this.mixTargetDelta(c),o.onUpdate&&o.onUpdate(c)},onStop:()=>{},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(uS),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:a,layout:u,latestValues:c}=o;if(!(!l||!a||!u)){if(this!==o&&this.layout&&u&&Vm(this.options.animationType,this.layout.layoutBox,u.layoutBox)){a=this.target||te();const f=ve(this.layout.layoutBox.x);a.x.min=o.target.x.min,a.x.max=a.x.min+f;const d=ve(this.layout.layoutBox.y);a.y.min=o.target.y.min,a.y.max=a.y.min+d}He(l,a),Dn(l,c),Cr(this.projectionDeltaWithTransform,this.layoutCorrected,l,c)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new lS),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var l;const{layoutId:o}=this.options;return o?((l=this.getStack())==null?void 0:l.lead)||this:this}getPrevLead(){var l;const{layoutId:o}=this.options;return o?(l=this.getStack())==null?void 0:l.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:a}={}){const u=this.getStack();u&&u.promote(this,a),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:a}=o;if((a.z||a.rotate||a.rotateX||a.rotateY||a.rotateZ||a.skewX||a.skewY)&&(l=!0),!l)return;const u={};a.z&&Mo("z",o,u,this.animationValues);for(let c=0;c{var l;return(l=o.currentAnimation)==null?void 0:l.stop()}),this.root.nodes.forEach(Lf),this.root.sharedNodes.clear()}}}function fS(e){e.updateLayout()}function dS(e){var n;const t=((n=e.resumeFrom)==null?void 0:n.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=t.source!==e.layout.source;s==="size"?_e(f=>{const d=o?t.measuredBox[f]:t.layoutBox[f],y=ve(d);d.min=r[f].min,d.max=d.min+y}):Vm(s,t.layoutBox,r)&&_e(f=>{const d=o?t.measuredBox[f]:t.layoutBox[f],y=ve(r[f]);d.max=d.min+y,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+y)});const l=An();Cr(l,r,t.layoutBox);const a=An();o?Cr(a,e.applyTransform(i,!0),t.measuredBox):Cr(a,r,t.layoutBox);const u=!Em(l);let c=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:d,layout:y}=f;if(d&&y){const g=te();Ss(g,t.layoutBox,d.layoutBox);const v=te();Ss(v,r,y.layoutBox),Mm(g,v)||(c=!0),f.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=g,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:t,delta:a,layoutDelta:l,hasLayoutChanged:u,hasRelativeLayoutChanged:c})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function hS(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function pS(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function mS(e){e.clearSnapshot()}function Lf(e){e.clearMeasurements()}function Nf(e){e.isLayoutDirty=!1}function yS(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function _f(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function gS(e){e.resolveTargetDelta()}function vS(e){e.calcProjection()}function wS(e){e.resetSkewAndRotation()}function SS(e){e.removeLeadSnapshot()}function jf(e,t,n){e.translate=K(t.translate,0,n),e.scale=K(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Ff(e,t,n,r){e.min=K(t.min,n.min,r),e.max=K(t.max,n.max,r)}function xS(e,t,n,r){Ff(e.x,t.x,n.x,r),Ff(e.y,t.y,n.y,r)}function TS(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const kS={duration:.45,ease:[.4,0,.1,1]},If=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Of=If("applewebkit/")&&!If("chrome/")?Math.round:Be;function zf(e){e.min=Of(e.min),e.max=Of(e.max)}function PS(e){zf(e.x),zf(e.y)}function Vm(e,t,n){return e==="position"||e==="preserve-aspect"&&!Vw(Vf(t),Vf(n),.2)}function CS(e){var t;return e!==e.root&&((t=e.scroll)==null?void 0:t.wasRoot)}const ES=Am({attachResizeListener:(e,t)=>Yr(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Do={current:void 0},Rm=Am({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Do.current){const e=new ES({});e.mount(window),e.setOptions({layoutScroll:!0}),Do.current=e}return Do.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),MS={pan:{Feature:Kw},drag:{Feature:Hw,ProjectionNode:Rm,MeasureLayout:km}};function Bf(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&W.postRender(()=>s(t,ri(t)))}class DS extends Ut{mount(){const{current:t}=this.node;t&&(this.unmount=X0(t,(n,r)=>(Bf(this.node,r,"Start"),i=>Bf(this.node,i,"End"))))}unmount(){}}class AS extends Ut{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=ei(Yr(this.node.current,"focus",()=>this.onFocus()),Yr(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Uf(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&W.postRender(()=>s(t,ri(t)))}class VS extends Ut{mount(){const{current:t}=this.node;t&&(this.unmount=b0(t,(n,r)=>(Uf(this.node,r,"Start"),(i,{success:s})=>Uf(this.node,i,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const $l=new WeakMap,Ao=new WeakMap,RS=e=>{const t=$l.get(e.target);t&&t(e)},LS=e=>{e.forEach(RS)};function NS({root:e,...t}){const n=e||document;Ao.has(n)||Ao.set(n,{});const r=Ao.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(LS,{root:e,...t})),r[i]}function _S(e,t,n){const r=NS(t);return $l.set(e,n),r.observe(e),()=>{$l.delete(e),r.unobserve(e)}}const jS={some:0,all:1};class FS extends Ut{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:jS[i]},l=a=>{const{isIntersecting:u}=a;if(this.isInView===u||(this.isInView=u,s&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:c,onViewportLeave:f}=this.node.getProps(),d=u?c:f;d&&d(a)};return _S(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(IS(t,n))&&this.startObserver()}unmount(){}}function IS({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const OS={inView:{Feature:FS},tap:{Feature:VS},focus:{Feature:AS},hover:{Feature:DS}},zS={layout:{ProjectionNode:Rm,MeasureLayout:km}},BS={...Pw,...OS,...MS,...zS},se=B1(BS,b1),Lm="/api";async function US(){return(await fetch(`${Lm}/state`)).json()}async function WS(){return(await fetch(`${Lm}/dependencies/check`)).json()}function $S({className:e="",size:t=240}){return A.jsx("img",{src:"/wails-logo.png",alt:"Wails",width:t,height:t,className:`object-contain ${e}`,style:{filter:"drop-shadow(0 0 60px rgba(239, 68, 68, 0.4))"}})}function HS(){const[e,t]=M.useState([]),[n,r]=M.useState(null),[i,s]=M.useState(!1),[o,l]=M.useState(!1);M.useEffect(()=>{US().then(f=>{r(f.system)})},[]),M.useEffect(()=>{const f=setTimeout(()=>{s(!0),a()},1500);return()=>clearTimeout(f)},[]);const a=async()=>{const d=(await WS()).map(y=>({...y,checkState:"idle"}));t(d);for(let y=0;ysetTimeout(g,300)),t(g=>g.map((v,k)=>k===y?{...v,checkState:"checking"}:v)),await new Promise(g=>setTimeout(g,400+Math.random()*300)),t(g=>g.map((v,k)=>k===y?{...v,checkState:"complete"}:v));await new Promise(y=>setTimeout(y,500)),l(!0)},u=e.length>0&&e.every(f=>f.installed||!f.required),c=f=>f.checkState==="idle"?A.jsx("div",{className:"w-5 h-5 rounded-full border-2 border-gray-600"}):f.checkState==="checking"?A.jsx(se.div,{className:"w-5 h-5 rounded-full border-2 border-red-500 border-t-transparent",animate:{rotate:360},transition:{duration:1,repeat:1/0,ease:"linear"}}):f.installed?A.jsx(se.div,{initial:{scale:0},animate:{scale:1},className:"w-5 h-5 rounded-full bg-green-500 flex items-center justify-center",children:A.jsx(se.svg,{className:"w-3 h-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",initial:{pathLength:0},animate:{pathLength:1},transition:{duration:.3},children:A.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}):A.jsx(se.div,{initial:{scale:0},animate:{scale:1},className:"w-5 h-5 rounded-full bg-red-500 flex items-center justify-center",children:A.jsx("svg",{className:"w-3 h-3 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:A.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M6 18L18 6M6 6l12 12"})})});return A.jsxs("div",{className:"min-h-screen bg-[#0f0f0f] grid-bg relative overflow-hidden",children:[A.jsx("div",{className:"absolute inset-0 radial-glow pointer-events-none"}),A.jsxs("div",{className:"relative z-10 min-h-screen flex flex-col items-center justify-center px-8",children:[A.jsx(se.div,{initial:{scale:.8,opacity:0},animate:{scale:1,opacity:1},transition:{duration:.6,ease:"easeOut"},children:A.jsx($S,{size:160})}),A.jsxs(se.div,{className:"mt-6 text-center",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3,duration:.5},children:[A.jsx("h1",{className:"text-3xl font-bold text-white",children:"Wails Setup"}),A.jsxs("p",{className:"text-gray-400 mt-2",children:[(n==null?void 0:n.os)&&`${n.os}/${n.arch}`,(n==null?void 0:n.wailsVersion)&&` • v${n.wailsVersion}`]})]}),A.jsxs(se.div,{className:"mt-10 w-full max-w-md",initial:{opacity:0},animate:{opacity:i?1:0},transition:{duration:.4},children:[A.jsxs(se.div,{className:"flex items-center gap-2 mb-4",initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:.2},children:[A.jsx("span",{className:"text-sm font-medium text-gray-400 uppercase tracking-wider",children:"Checking Dependencies"}),!o&&e.length>0&&A.jsxs(se.span,{className:"text-xs text-gray-500",initial:{opacity:0},animate:{opacity:1},children:["(",e.filter(f=>f.checkState==="complete").length,"/",e.length,")"]})]}),A.jsx("div",{className:"space-y-2",children:A.jsx(Yc,{mode:"popLayout",children:e.map((f,d)=>A.jsxs(se.div,{className:"flex items-center gap-4 p-4 rounded-xl bg-gray-800/50 border border-gray-700/50",initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:d*.1,duration:.3,ease:"easeOut"},layout:!0,children:[A.jsx("div",{className:"flex-shrink-0",children:c(f)}),A.jsxs("div",{className:"flex-1 min-w-0",children:[A.jsxs("div",{className:"flex items-center gap-2",children:[A.jsx("span",{className:"text-white font-medium",children:f.name}),f.checkState==="complete"&&f.version&&A.jsxs(se.span,{className:"text-xs text-gray-500 font-mono",initial:{opacity:0},animate:{opacity:1},children:["v",f.version]})]}),f.checkState==="complete"&&!f.installed&&f.message&&A.jsx(se.p,{className:"text-xs text-red-400 mt-1 truncate",initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},children:f.message})]}),f.required&&f.checkState==="complete"&&!f.installed&&A.jsx(se.span,{className:"text-xs px-2 py-1 rounded bg-red-500/20 text-red-400",initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},children:"Required"})]},f.name))})}),A.jsx(Yc,{children:o&&A.jsxs(se.div,{className:"mt-6",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.2},children:[u?A.jsxs("div",{className:"text-center p-4 rounded-xl bg-green-500/10 border border-green-500/30",children:[A.jsx(se.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:200,damping:15},children:A.jsx("div",{className:"text-3xl mb-2",children:"✓"})}),A.jsx("p",{className:"text-green-400 font-medium",children:"All dependencies installed!"}),A.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"You're ready to build Wails applications."})]}):A.jsxs("div",{className:"text-center p-4 rounded-xl bg-yellow-500/10 border border-yellow-500/30",children:[A.jsx("div",{className:"text-3xl mb-2",children:"⚠"}),A.jsx("p",{className:"text-yellow-400 font-medium",children:"Some dependencies are missing"}),A.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"Install the missing dependencies to continue."})]}),A.jsx(se.button,{className:"mt-6 w-full btn-primary",onClick:()=>window.close(),initial:{opacity:0},animate:{opacity:1},transition:{delay:.4},whileHover:{scale:1.02},whileTap:{scale:.98},children:"Close"})]})})]}),i&&e.length===0&&A.jsx(se.div,{className:"mt-10 flex space-x-2",initial:{opacity:0},animate:{opacity:1},children:[0,1,2].map(f=>A.jsx(se.div,{className:"w-2 h-2 rounded-full bg-red-500/50",animate:{scale:[1,1.3,1],opacity:[.5,1,.5]},transition:{duration:1,repeat:1/0,delay:f*.15}},f))})]})]})}Vo.createRoot(document.getElementById("root")).render(A.jsx(Xm.StrictMode,{children:A.jsx(HS,{})})); diff --git a/v3/internal/setupwizard/frontend/dist/index.html b/v3/internal/setupwizard/frontend/dist/index.html new file mode 100644 index 000000000..52e737151 --- /dev/null +++ b/v3/internal/setupwizard/frontend/dist/index.html @@ -0,0 +1,16 @@ + + + + + + Wails Setup Wizard + + + + + + + +
+ + diff --git a/v3/internal/setupwizard/frontend/dist/wails-logo.png b/v3/internal/setupwizard/frontend/dist/wails-logo.png new file mode 100755 index 000000000..0f32ab92f Binary files /dev/null and b/v3/internal/setupwizard/frontend/dist/wails-logo.png differ diff --git a/v3/internal/setupwizard/frontend/index.html b/v3/internal/setupwizard/frontend/index.html new file mode 100644 index 000000000..ba497ab66 --- /dev/null +++ b/v3/internal/setupwizard/frontend/index.html @@ -0,0 +1,15 @@ + + + + + + Wails Setup Wizard + + + + + +
+ + + diff --git a/v3/internal/setupwizard/frontend/package-lock.json b/v3/internal/setupwizard/frontend/package-lock.json new file mode 100644 index 000000000..ec25c0e62 --- /dev/null +++ b/v3/internal/setupwizard/frontend/package-lock.json @@ -0,0 +1,2687 @@ +{ + "name": "wails-setup-wizard", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wails-setup-wizard", + "version": "0.0.0", + "dependencies": { + "framer-motion": "^12.23.25", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.14", + "typescript": "~5.6.2", + "vite": "^5.4.10" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.22", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", + "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-lite": "^1.0.30001754", + "fraction.js": "^5.3.4", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.3.tgz", + "integrity": "sha512-8QdH6czo+G7uBsNo0GiUfouPN1lRzKdJTGnKXwe12gkFbnnOUaUKGN55dMkfy+mnxmvjwl9zcI4VncczcVXDhA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001759", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", + "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.266", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.266.tgz", + "integrity": "sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.23.25", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.25.tgz", + "integrity": "sha512-gUHGl2e4VG66jOcH0JHhuJQr6ZNwrET9g31ZG0xdXzT0CznP7fHX4P8Bcvuc4MiUB90ysNnWX2ukHRIggkl6hQ==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.23", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/motion-dom": { + "version": "12.23.23", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.23.tgz", + "integrity": "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.18", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz", + "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/v3/internal/setupwizard/frontend/package.json b/v3/internal/setupwizard/frontend/package.json new file mode 100644 index 000000000..f46a9cab6 --- /dev/null +++ b/v3/internal/setupwizard/frontend/package.json @@ -0,0 +1,26 @@ +{ + "name": "wails-setup-wizard", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "framer-motion": "^12.23.25", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.14", + "typescript": "~5.6.2", + "vite": "^5.4.10" + } +} diff --git a/v3/internal/setupwizard/frontend/postcss.config.js b/v3/internal/setupwizard/frontend/postcss.config.js new file mode 100644 index 000000000..2e7af2b7f --- /dev/null +++ b/v3/internal/setupwizard/frontend/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/v3/internal/setupwizard/frontend/public/wails-logo.png b/v3/internal/setupwizard/frontend/public/wails-logo.png new file mode 100755 index 000000000..0f32ab92f Binary files /dev/null and b/v3/internal/setupwizard/frontend/public/wails-logo.png differ diff --git a/v3/internal/setupwizard/frontend/src/App.tsx b/v3/internal/setupwizard/frontend/src/App.tsx new file mode 100644 index 000000000..d2e34a4d2 --- /dev/null +++ b/v3/internal/setupwizard/frontend/src/App.tsx @@ -0,0 +1,327 @@ +import { useState, useEffect } from 'react'; +import { motion, AnimatePresence } from 'framer-motion'; +import type { DependencyStatus, SystemInfo } from './types'; +import { checkDependencies, getState } from './api'; +import WailsLogo from './components/WailsLogo'; + +type CheckState = 'idle' | 'checking' | 'complete'; + +interface DependencyWithState extends DependencyStatus { + checkState: CheckState; +} + +export default function App() { + const [dependencies, setDependencies] = useState([]); + const [system, setSystem] = useState(null); + const [started, setStarted] = useState(false); + const [allComplete, setAllComplete] = useState(false); + + // Load system info on mount + useEffect(() => { + getState().then((s) => { + setSystem(s.system); + }); + }, []); + + // Start checking after logo animation + useEffect(() => { + const timer = setTimeout(() => { + setStarted(true); + startDependencyCheck(); + }, 1500); + return () => clearTimeout(timer); + }, []); + + const startDependencyCheck = async () => { + // First get the list of dependencies + const deps = await checkDependencies(); + + // Initialize all as 'idle' + const depsWithState: DependencyWithState[] = deps.map(d => ({ + ...d, + checkState: 'idle' + })); + setDependencies(depsWithState); + + // Animate each dependency check one by one with staggered timing + for (let i = 0; i < depsWithState.length; i++) { + await new Promise(resolve => setTimeout(resolve, 300)); + + setDependencies(prev => prev.map((d, idx) => + idx === i ? { ...d, checkState: 'checking' } : d + )); + + // Simulate check time (the actual check is already done) + await new Promise(resolve => setTimeout(resolve, 400 + Math.random() * 300)); + + setDependencies(prev => prev.map((d, idx) => + idx === i ? { ...d, checkState: 'complete' } : d + )); + } + + // All complete + await new Promise(resolve => setTimeout(resolve, 500)); + setAllComplete(true); + }; + + const allInstalled = dependencies.length > 0 && + dependencies.every(d => d.installed || !d.required); + + const getStatusIcon = (dep: DependencyWithState) => { + if (dep.checkState === 'idle') { + return ( +
+ ); + } + + if (dep.checkState === 'checking') { + return ( + + ); + } + + // Complete + if (dep.installed) { + return ( + + + + + + ); + } else { + return ( + + + + + + ); + } + }; + + return ( +
+ {/* Radial glow background */} +
+ + {/* Main content */} +
+ {/* Logo */} + + + + + {/* Title */} + +

+ Wails Setup +

+

+ {system?.os && `${system.os}/${system.arch}`} + {system?.wailsVersion && ` • v${system.wailsVersion}`} +

+
+ + {/* Dependencies section */} + + {/* Header */} + + + Checking Dependencies + + {!allComplete && dependencies.length > 0 && ( + + ({dependencies.filter(d => d.checkState === 'complete').length}/{dependencies.length}) + + )} + + + {/* Dependency list */} +
+ + {dependencies.map((dep, index) => ( + + {/* Status icon */} +
+ {getStatusIcon(dep)} +
+ + {/* Name and version */} +
+
+ {dep.name} + {dep.checkState === 'complete' && dep.version && ( + + v{dep.version} + + )} +
+ + {/* Message for missing deps */} + {dep.checkState === 'complete' && !dep.installed && dep.message && ( + + {dep.message} + + )} +
+ + {/* Required badge */} + {dep.required && dep.checkState === 'complete' && !dep.installed && ( + + Required + + )} +
+ ))} +
+
+ + {/* Summary */} + + {allComplete && ( + + {allInstalled ? ( +
+ +
+
+

+ All dependencies installed! +

+

+ You're ready to build Wails applications. +

+
+ ) : ( +
+
+

+ Some dependencies are missing +

+

+ Install the missing dependencies to continue. +

+
+ )} + + {/* Close button */} + window.close()} + initial={{ opacity: 0 }} + animate={{ opacity: 1 }} + transition={{ delay: 0.4 }} + whileHover={{ scale: 1.02 }} + whileTap={{ scale: 0.98 }} + > + Close + +
+ )} +
+
+ + {/* Loading dots while fetching deps */} + {started && dependencies.length === 0 && ( + + {[0, 1, 2].map((i) => ( + + ))} + + )} +
+
+ ); +} diff --git a/v3/internal/setupwizard/frontend/src/api.ts b/v3/internal/setupwizard/frontend/src/api.ts new file mode 100644 index 000000000..da11fe430 --- /dev/null +++ b/v3/internal/setupwizard/frontend/src/api.ts @@ -0,0 +1,60 @@ +import type { WizardState, DependencyStatus, DockerStatus, UserConfig, WailsConfig } from './types'; + +const API_BASE = '/api'; + +export async function getState(): Promise { + const response = await fetch(`${API_BASE}/state`); + return response.json(); +} + +export async function checkDependencies(): Promise { + const response = await fetch(`${API_BASE}/dependencies/check`); + return response.json(); +} + +export async function getDockerStatus(): Promise { + const response = await fetch(`${API_BASE}/docker/status`); + return response.json(); +} + +export async function buildDockerImage(): Promise<{ status: string }> { + const response = await fetch(`${API_BASE}/docker/build`, { method: 'POST' }); + return response.json(); +} + +export async function detectConfig(): Promise> { + const response = await fetch(`${API_BASE}/config/detect`); + return response.json(); +} + +export async function saveConfig(config: UserConfig): Promise<{ status: string }> { + const response = await fetch(`${API_BASE}/config/save`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(config), + }); + return response.json(); +} + +export async function complete(): Promise<{ status: string; duration: string }> { + const response = await fetch(`${API_BASE}/complete`); + return response.json(); +} + +export async function close(): Promise { + await fetch(`${API_BASE}/close`); +} + +export async function getWailsConfig(): Promise { + const response = await fetch(`${API_BASE}/wails-config`); + return response.json(); +} + +export async function saveWailsConfig(config: WailsConfig): Promise<{ status: string }> { + const response = await fetch(`${API_BASE}/wails-config`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(config), + }); + return response.json(); +} diff --git a/v3/internal/setupwizard/frontend/src/components/WailsLogo.tsx b/v3/internal/setupwizard/frontend/src/components/WailsLogo.tsx new file mode 100644 index 000000000..c56084960 --- /dev/null +++ b/v3/internal/setupwizard/frontend/src/components/WailsLogo.tsx @@ -0,0 +1,19 @@ +interface WailsLogoProps { + className?: string; + size?: number; +} + +export default function WailsLogo({ className = '', size = 240 }: WailsLogoProps) { + return ( + Wails + ); +} diff --git a/v3/internal/setupwizard/frontend/src/index.css b/v3/internal/setupwizard/frontend/src/index.css new file mode 100644 index 000000000..2edd377fc --- /dev/null +++ b/v3/internal/setupwizard/frontend/src/index.css @@ -0,0 +1,112 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --wails-red: #ef4444; + --wails-red-dark: #dc2626; + --wails-red-light: #f87171; + --bg-primary: #0f0f0f; + --bg-secondary: #1f2937; + --bg-tertiary: #374151; +} + +* { + box-sizing: border-box; +} + +html, body, #root { + margin: 0; + padding: 0; + min-height: 100vh; + background: var(--bg-primary); + color: white; + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Gradient text utility */ +.gradient-text { + background: linear-gradient(135deg, #ffffff 0%, #ef4444 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* Glass morphism card */ +.glass-card { + background: rgba(31, 41, 55, 0.8); + backdrop-filter: blur(10px); + border: 1px solid rgba(55, 65, 81, 0.5); +} + +/* Subtle grid background */ +.grid-bg { + background-image: + linear-gradient(rgba(239, 68, 68, 0.03) 1px, transparent 1px), + linear-gradient(90deg, rgba(239, 68, 68, 0.03) 1px, transparent 1px); + background-size: 40px 40px; +} + +/* Radial glow */ +.radial-glow { + background: radial-gradient(ellipse at center, rgba(239, 68, 68, 0.1) 0%, transparent 70%); +} + +/* Custom scrollbar */ +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: var(--bg-primary); +} + +::-webkit-scrollbar-thumb { + background: var(--bg-tertiary); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #4b5563; +} + +/* Button hover effect */ +.btn-primary { + @apply bg-gradient-to-r from-red-500 to-red-600 text-white font-semibold + py-3 px-8 rounded-xl shadow-lg transition-all duration-300 + hover:scale-105 hover:shadow-xl hover:shadow-red-500/30 + active:scale-95; +} + +.btn-secondary { + @apply bg-transparent border border-gray-600 text-gray-300 font-medium + py-3 px-8 rounded-xl transition-all duration-300 + hover:border-gray-500 hover:text-white hover:bg-gray-800/50; +} + +/* Status badge animations */ +@keyframes spin { + to { transform: rotate(360deg); } +} + +.spinner { + animation: spin 1s linear infinite; +} + +/* Draw check animation for success */ +.check-path { + stroke-dasharray: 100; + stroke-dashoffset: 100; + animation: drawCheck 0.5s ease-out forwards; +} + +/* Reduced motion support */ +@media (prefers-reduced-motion: reduce) { + *, *::before, *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} diff --git a/v3/internal/setupwizard/frontend/src/main.tsx b/v3/internal/setupwizard/frontend/src/main.tsx new file mode 100644 index 000000000..964aeb4c7 --- /dev/null +++ b/v3/internal/setupwizard/frontend/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/v3/internal/setupwizard/frontend/src/types.ts b/v3/internal/setupwizard/frontend/src/types.ts new file mode 100644 index 000000000..e8da97ba9 --- /dev/null +++ b/v3/internal/setupwizard/frontend/src/types.ts @@ -0,0 +1,61 @@ +export interface DependencyStatus { + name: string; + installed: boolean; + version?: string; + path?: string; + status: 'installed' | 'not_installed' | 'needs_update' | 'checking'; + required: boolean; + message?: string; +} + +export interface DockerStatus { + installed: boolean; + running: boolean; + version?: string; + imageBuilt: boolean; + imageName: string; + pullProgress: number; + pullStatus: 'idle' | 'pulling' | 'complete' | 'error'; + pullError?: string; +} + +export interface UserConfig { + developerName: string; + email: string; + defaultFramework: string; + projectDirectory: string; + editor: string; +} + +export interface WailsConfig { + info: { + companyName: string; + productName: string; + productIdentifier: string; + description: string; + copyright: string; + comments: string; + version: string; + }; +} + +export interface SystemInfo { + os: string; + arch: string; + wailsVersion: string; + goVersion: string; + homeDir: string; + gitName?: string; + gitEmail?: string; +} + +export interface WizardState { + currentStep: number; + dependencies: DependencyStatus[]; + docker: DockerStatus; + config: UserConfig; + system: SystemInfo; + startTime: string; +} + +export type Step = 'splash' | 'welcome' | 'dependencies' | 'docker' | 'config' | 'wails-config' | 'complete'; diff --git a/v3/internal/setupwizard/frontend/tailwind.config.js b/v3/internal/setupwizard/frontend/tailwind.config.js new file mode 100644 index 000000000..bdefa8bb3 --- /dev/null +++ b/v3/internal/setupwizard/frontend/tailwind.config.js @@ -0,0 +1,56 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: { + colors: { + 'wails-red': { + DEFAULT: '#ef4444', + dark: '#dc2626', + light: '#f87171', + }, + }, + fontFamily: { + sans: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'sans-serif'], + }, + animation: { + 'fade-in': 'fadeIn 0.5s ease-out', + 'slide-up': 'slideUp 0.5s ease-out', + 'scale-in': 'scaleIn 0.3s ease-out', + 'pulse-glow': 'pulseGlow 2s ease-in-out infinite', + 'draw-check': 'drawCheck 0.5s ease-out forwards', + 'shimmer': 'shimmer 2s linear infinite', + }, + keyframes: { + fadeIn: { + '0%': { opacity: '0' }, + '100%': { opacity: '1' }, + }, + slideUp: { + '0%': { opacity: '0', transform: 'translateY(20px)' }, + '100%': { opacity: '1', transform: 'translateY(0)' }, + }, + scaleIn: { + '0%': { opacity: '0', transform: 'scale(0.9)' }, + '100%': { opacity: '1', transform: 'scale(1)' }, + }, + pulseGlow: { + '0%, 100%': { boxShadow: '0 0 20px rgba(239, 68, 68, 0.4)' }, + '50%': { boxShadow: '0 0 40px rgba(239, 68, 68, 0.6)' }, + }, + drawCheck: { + '0%': { strokeDashoffset: '100' }, + '100%': { strokeDashoffset: '0' }, + }, + shimmer: { + '0%': { backgroundPosition: '-200% 0' }, + '100%': { backgroundPosition: '200% 0' }, + }, + }, + }, + }, + plugins: [], +} diff --git a/v3/internal/setupwizard/frontend/tsconfig.json b/v3/internal/setupwizard/frontend/tsconfig.json new file mode 100644 index 000000000..109f0ac28 --- /dev/null +++ b/v3/internal/setupwizard/frontend/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/v3/internal/setupwizard/frontend/vite.config.ts b/v3/internal/setupwizard/frontend/vite.config.ts new file mode 100644 index 000000000..927fd4858 --- /dev/null +++ b/v3/internal/setupwizard/frontend/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + plugins: [react()], + build: { + outDir: 'dist', + emptyOutDir: true, + }, +}) diff --git a/v3/internal/setupwizard/wizard.go b/v3/internal/setupwizard/wizard.go new file mode 100644 index 000000000..8f37843f8 --- /dev/null +++ b/v3/internal/setupwizard/wizard.go @@ -0,0 +1,328 @@ +package setupwizard + +import ( + "context" + "embed" + "encoding/json" + "fmt" + "io/fs" + "net" + "net/http" + "os" + "os/exec" + "path/filepath" + "runtime" + "strings" + "sync" + "time" + + "github.com/pkg/browser" + "github.com/wailsapp/wails/v3/internal/operatingsystem" + "github.com/wailsapp/wails/v3/internal/version" + "gopkg.in/yaml.v3" +) + +//go:embed frontend/dist/* +var frontendFS embed.FS + +// DependencyStatus represents the status of a dependency +type DependencyStatus struct { + Name string `json:"name"` + Installed bool `json:"installed"` + Version string `json:"version,omitempty"` + Status string `json:"status"` // "installed", "not_installed", "needs_update" + Required bool `json:"required"` + Message string `json:"message,omitempty"` +} + +// WailsConfigInfo represents the info section of wails.yaml +type WailsConfigInfo struct { + CompanyName string `json:"companyName" yaml:"companyName"` + ProductName string `json:"productName" yaml:"productName"` + ProductIdentifier string `json:"productIdentifier" yaml:"productIdentifier"` + Description string `json:"description" yaml:"description"` + Copyright string `json:"copyright" yaml:"copyright"` + Comments string `json:"comments,omitempty" yaml:"comments,omitempty"` + Version string `json:"version" yaml:"version"` +} + +// WailsConfig represents the wails.yaml configuration +type WailsConfig struct { + Info WailsConfigInfo `json:"info" yaml:"info"` +} + +// SystemInfo contains detected system information +type SystemInfo struct { + OS string `json:"os"` + Arch string `json:"arch"` + WailsVersion string `json:"wailsVersion"` + GoVersion string `json:"goVersion"` + HomeDir string `json:"homeDir"` + OSName string `json:"osName,omitempty"` + OSVersion string `json:"osVersion,omitempty"` +} + +// WizardState represents the complete wizard state +type WizardState struct { + Dependencies []DependencyStatus `json:"dependencies"` + System SystemInfo `json:"system"` + StartTime time.Time `json:"startTime"` +} + +// Wizard is the setup wizard server +type Wizard struct { + server *http.Server + state WizardState + stateMu sync.RWMutex + done chan struct{} + shutdown chan struct{} +} + +// New creates a new setup wizard +func New() *Wizard { + return &Wizard{ + done: make(chan struct{}), + shutdown: make(chan struct{}), + state: WizardState{ + StartTime: time.Now(), + }, + } +} + +// Run starts the wizard and opens it in the browser +func (w *Wizard) Run() error { + // Initialize system info + w.initSystemInfo() + + // Find an available port + listener, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + return fmt.Errorf("failed to find available port: %w", err) + } + + port := listener.Addr().(*net.TCPAddr).Port + url := fmt.Sprintf("http://127.0.0.1:%d", port) + + // Set up HTTP routes + mux := http.NewServeMux() + w.setupRoutes(mux) + + w.server = &http.Server{ + Handler: mux, + } + + // Start server in goroutine + go func() { + if err := w.server.Serve(listener); err != nil && err != http.ErrServerClosed { + fmt.Fprintf(os.Stderr, "Server error: %v\n", err) + } + }() + + fmt.Printf("Setup wizard running at %s\n", url) + + // Open browser + if err := browser.OpenURL(url); err != nil { + fmt.Printf("Please open %s in your browser\n", url) + } + + // Wait for completion or shutdown + select { + case <-w.done: + fmt.Println("\nSetup completed successfully!") + case <-w.shutdown: + fmt.Println("\nSetup wizard closed.") + } + + // Shutdown server + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + return w.server.Shutdown(ctx) +} + +func (w *Wizard) setupRoutes(mux *http.ServeMux) { + // API routes + mux.HandleFunc("/api/state", w.handleState) + mux.HandleFunc("/api/dependencies/check", w.handleCheckDependencies) + mux.HandleFunc("/api/wails-config", w.handleWailsConfig) + mux.HandleFunc("/api/complete", w.handleComplete) + mux.HandleFunc("/api/close", w.handleClose) + + // Serve frontend + frontendDist, err := fs.Sub(frontendFS, "frontend/dist") + if err != nil { + panic(err) + } + fileServer := http.FileServer(http.FS(frontendDist)) + + mux.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) { + // Try to serve the file + path := r.URL.Path + if path == "/" { + path = "/index.html" + } + + // Check if file exists + if _, err := fs.Stat(frontendDist, strings.TrimPrefix(path, "/")); err != nil { + // Serve index.html for SPA routing + r.URL.Path = "/" + } + + fileServer.ServeHTTP(rw, r) + }) +} + +func (w *Wizard) initSystemInfo() { + w.stateMu.Lock() + defer w.stateMu.Unlock() + + homeDir, _ := os.UserHomeDir() + + w.state.System = SystemInfo{ + OS: runtime.GOOS, + Arch: runtime.GOARCH, + WailsVersion: version.String(), + GoVersion: runtime.Version(), + HomeDir: homeDir, + } + + // Get OS details + if info, err := operatingsystem.Info(); err == nil { + w.state.System.OSName = info.Name + w.state.System.OSVersion = info.Version + } +} + +func (w *Wizard) handleState(rw http.ResponseWriter, r *http.Request) { + w.stateMu.RLock() + defer w.stateMu.RUnlock() + + rw.Header().Set("Content-Type", "application/json") + json.NewEncoder(rw).Encode(w.state) +} + +func (w *Wizard) handleCheckDependencies(rw http.ResponseWriter, r *http.Request) { + deps := w.checkAllDependencies() + + w.stateMu.Lock() + w.state.Dependencies = deps + w.stateMu.Unlock() + + rw.Header().Set("Content-Type", "application/json") + json.NewEncoder(rw).Encode(deps) +} + +func (w *Wizard) handleWailsConfig(rw http.ResponseWriter, r *http.Request) { + rw.Header().Set("Content-Type", "application/json") + + // Find wails.yaml in current directory or parent directories + configPath := findWailsConfig() + + switch r.Method { + case http.MethodGet: + if configPath == "" { + json.NewEncoder(rw).Encode(nil) + return + } + + data, err := os.ReadFile(configPath) + if err != nil { + json.NewEncoder(rw).Encode(nil) + return + } + + var config WailsConfig + if err := yaml.Unmarshal(data, &config); err != nil { + json.NewEncoder(rw).Encode(nil) + return + } + + json.NewEncoder(rw).Encode(config) + + case http.MethodPost: + var config WailsConfig + if err := json.NewDecoder(r.Body).Decode(&config); err != nil { + http.Error(rw, err.Error(), http.StatusBadRequest) + return + } + + if configPath == "" { + configPath = "wails.yaml" + } + + data, err := yaml.Marshal(&config) + if err != nil { + http.Error(rw, err.Error(), http.StatusInternalServerError) + return + } + + if err := os.WriteFile(configPath, data, 0644); err != nil { + http.Error(rw, err.Error(), http.StatusInternalServerError) + return + } + + json.NewEncoder(rw).Encode(map[string]string{"status": "saved", "path": configPath}) + + default: + http.Error(rw, "Method not allowed", http.StatusMethodNotAllowed) + } +} + +func findWailsConfig() string { + dir, err := os.Getwd() + if err != nil { + return "" + } + + for { + configPath := filepath.Join(dir, "wails.yaml") + if _, err := os.Stat(configPath); err == nil { + return configPath + } + + parent := filepath.Dir(dir) + if parent == dir { + break + } + dir = parent + } + + return "" +} + +func (w *Wizard) handleComplete(rw http.ResponseWriter, r *http.Request) { + w.stateMu.RLock() + state := w.state + w.stateMu.RUnlock() + + duration := time.Since(state.StartTime) + + response := map[string]interface{}{ + "status": "complete", + "duration": duration.String(), + } + + rw.Header().Set("Content-Type", "application/json") + json.NewEncoder(rw).Encode(response) + + close(w.done) +} + +func (w *Wizard) handleClose(rw http.ResponseWriter, r *http.Request) { + rw.Header().Set("Content-Type", "application/json") + json.NewEncoder(rw).Encode(map[string]string{"status": "closing"}) + + close(w.shutdown) +} + +// execCommand runs a command and returns its output +func execCommand(name string, args ...string) (string, error) { + cmd := exec.Command(name, args...) + output, err := cmd.Output() + return strings.TrimSpace(string(output)), err +} + +// commandExists checks if a command exists in PATH +func commandExists(name string) bool { + _, err := exec.LookPath(name) + return err == nil +} diff --git a/v3/internal/setupwizard/wizard_darwin.go b/v3/internal/setupwizard/wizard_darwin.go new file mode 100644 index 000000000..aab27d118 --- /dev/null +++ b/v3/internal/setupwizard/wizard_darwin.go @@ -0,0 +1,135 @@ +//go:build darwin + +package setupwizard + +import ( + "os/exec" + "strconv" + "strings" +) + +func (w *Wizard) checkAllDependencies() []DependencyStatus { + var deps []DependencyStatus + + // Check Xcode Command Line Tools + deps = append(deps, checkXcode()) + + // Check npm (common dependency) + deps = append(deps, checkNpm()) + + // Check Docker (optional) + deps = append(deps, checkDocker()) + + return deps +} + +func checkXcode() DependencyStatus { + dep := DependencyStatus{ + Name: "Xcode Command Line Tools", + Required: true, + } + + path, err := execCommand("xcode-select", "-p") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "Run: xcode-select --install" + return dep + } + + dep.Installed = true + dep.Status = "installed" + + // Try to get version + cmd := exec.Command("pkgutil", "--pkg-info=com.apple.pkg.CLTools_Executables") + output, err := cmd.Output() + if err == nil { + lines := strings.Split(string(output), "\n") + for _, line := range lines { + if strings.HasPrefix(line, "version:") { + dep.Version = strings.TrimSpace(strings.TrimPrefix(line, "version:")) + break + } + } + } + + _ = path // suppress unused warning + return dep +} + +func checkNpm() DependencyStatus { + dep := DependencyStatus{ + Name: "npm", + Required: true, + } + + version, err := execCommand("npm", "-v") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "npm is required. Install Node.js from https://nodejs.org/" + return dep + } + + dep.Version = version + + // Check minimum version (7.0.0) + parts := strings.Split(version, ".") + if len(parts) > 0 { + major, _ := strconv.Atoi(parts[0]) + if major < 7 { + dep.Status = "needs_update" + dep.Installed = true + dep.Message = "npm 7.0.0 or higher is required" + return dep + } + } + + dep.Installed = true + dep.Status = "installed" + return dep +} + +func checkDocker() DependencyStatus { + dep := DependencyStatus{ + Name: "docker", + Required: false, // Optional for cross-compilation + } + + version, err := execCommand("docker", "--version") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "Optional - for cross-compilation" + return dep + } + + // Parse version from "Docker version 24.0.7, build afdd53b" + parts := strings.Split(version, ",") + if len(parts) > 0 { + dep.Version = strings.TrimPrefix(strings.TrimSpace(parts[0]), "Docker version ") + } + + // Check if daemon is running + _, err = execCommand("docker", "info") + if err != nil { + dep.Installed = true + dep.Status = "installed" + dep.Message = "Daemon not running" + return dep + } + + // Check for wails-cross image + imageCheck, _ := execCommand("docker", "image", "inspect", "wails-cross") + if imageCheck == "" || strings.Contains(imageCheck, "Error") { + dep.Installed = true + dep.Status = "installed" + dep.Message = "wails-cross image not built" + } else { + dep.Installed = true + dep.Status = "installed" + dep.Message = "Cross-compilation ready" + } + + return dep +} diff --git a/v3/internal/setupwizard/wizard_linux.go b/v3/internal/setupwizard/wizard_linux.go new file mode 100644 index 000000000..cb9e1bd46 --- /dev/null +++ b/v3/internal/setupwizard/wizard_linux.go @@ -0,0 +1,130 @@ +//go:build linux + +package setupwizard + +import ( + "strconv" + "strings" + + "github.com/wailsapp/wails/v3/internal/doctor/packagemanager" + "github.com/wailsapp/wails/v3/internal/operatingsystem" +) + +func (w *Wizard) checkAllDependencies() []DependencyStatus { + var deps []DependencyStatus + + // Get OS info for package manager detection + info, _ := operatingsystem.Info() + + // Find the package manager + pm := packagemanager.Find(info.ID) + if pm != nil { + // Get platform dependencies from the doctor package + platformDeps, _ := packagemanager.Dependencies(pm) + for _, dep := range platformDeps { + status := DependencyStatus{ + Name: dep.Name, + Required: !dep.Optional, + } + + if dep.Installed { + status.Installed = true + status.Status = "installed" + status.Version = dep.Version + } else { + status.Installed = false + status.Status = "not_installed" + if dep.InstallCommand != "" { + status.Message = "Install with: " + dep.InstallCommand + } + } + + deps = append(deps, status) + } + } + + // Check npm (common dependency) + deps = append(deps, checkNpm()) + + // Check Docker (optional) + deps = append(deps, checkDocker()) + + return deps +} + +func checkNpm() DependencyStatus { + dep := DependencyStatus{ + Name: "npm", + Required: true, + } + + version, err := execCommand("npm", "-v") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "npm is required. Install Node.js from https://nodejs.org/" + return dep + } + + dep.Version = version + + // Check minimum version (7.0.0) + parts := strings.Split(version, ".") + if len(parts) > 0 { + major, _ := strconv.Atoi(parts[0]) + if major < 7 { + dep.Status = "needs_update" + dep.Installed = true + dep.Message = "npm 7.0.0 or higher is required" + return dep + } + } + + dep.Installed = true + dep.Status = "installed" + return dep +} + +func checkDocker() DependencyStatus { + dep := DependencyStatus{ + Name: "docker", + Required: false, // Optional for cross-compilation + } + + version, err := execCommand("docker", "--version") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "Optional - for cross-compilation" + return dep + } + + // Parse version from "Docker version 24.0.7, build afdd53b" + parts := strings.Split(version, ",") + if len(parts) > 0 { + dep.Version = strings.TrimPrefix(strings.TrimSpace(parts[0]), "Docker version ") + } + + // Check if daemon is running + _, err = execCommand("docker", "info") + if err != nil { + dep.Installed = true + dep.Status = "installed" + dep.Message = "Daemon not running" + return dep + } + + // Check for wails-cross image + imageCheck, _ := execCommand("docker", "image", "inspect", "wails-cross") + if imageCheck == "" || strings.Contains(imageCheck, "Error") { + dep.Installed = true + dep.Status = "installed" + dep.Message = "wails-cross image not built" + } else { + dep.Installed = true + dep.Status = "installed" + dep.Message = "Cross-compilation ready" + } + + return dep +} diff --git a/v3/internal/setupwizard/wizard_windows.go b/v3/internal/setupwizard/wizard_windows.go new file mode 100644 index 000000000..afa2653a4 --- /dev/null +++ b/v3/internal/setupwizard/wizard_windows.go @@ -0,0 +1,142 @@ +//go:build windows + +package setupwizard + +import ( + "os" + "path/filepath" + "strconv" + "strings" +) + +func (w *Wizard) checkAllDependencies() []DependencyStatus { + var deps []DependencyStatus + + // Check WebView2 Runtime + deps = append(deps, checkWebView2()) + + // Check npm (common dependency) + deps = append(deps, checkNpm()) + + // Check Docker (optional) + deps = append(deps, checkDocker()) + + return deps +} + +func checkWebView2() DependencyStatus { + dep := DependencyStatus{ + Name: "WebView2 Runtime", + Required: true, + } + + // Check common installation paths + paths := []string{ + filepath.Join(os.Getenv("PROGRAMFILES(X86)"), "Microsoft", "EdgeWebView", "Application"), + filepath.Join(os.Getenv("LOCALAPPDATA"), "Microsoft", "EdgeWebView", "Application"), + filepath.Join(os.Getenv("PROGRAMFILES"), "Microsoft", "EdgeWebView", "Application"), + } + + for _, path := range paths { + if info, err := os.Stat(path); err == nil && info.IsDir() { + dep.Installed = true + dep.Status = "installed" + + // Try to get version from directory name + entries, _ := os.ReadDir(path) + for _, entry := range entries { + if entry.IsDir() { + name := entry.Name() + // Version directories look like "120.0.2210.91" + if len(name) > 0 && name[0] >= '0' && name[0] <= '9' { + dep.Version = name + break + } + } + } + return dep + } + } + + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "Download from Microsoft Edge WebView2" + return dep +} + +func checkNpm() DependencyStatus { + dep := DependencyStatus{ + Name: "npm", + Required: true, + } + + version, err := execCommand("npm", "-v") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "npm is required. Install Node.js from https://nodejs.org/" + return dep + } + + dep.Version = version + + // Check minimum version (7.0.0) + parts := strings.Split(version, ".") + if len(parts) > 0 { + major, _ := strconv.Atoi(parts[0]) + if major < 7 { + dep.Status = "needs_update" + dep.Installed = true + dep.Message = "npm 7.0.0 or higher is required" + return dep + } + } + + dep.Installed = true + dep.Status = "installed" + return dep +} + +func checkDocker() DependencyStatus { + dep := DependencyStatus{ + Name: "docker", + Required: false, // Optional for cross-compilation + } + + version, err := execCommand("docker", "--version") + if err != nil { + dep.Status = "not_installed" + dep.Installed = false + dep.Message = "Optional - for cross-compilation" + return dep + } + + // Parse version from "Docker version 24.0.7, build afdd53b" + parts := strings.Split(version, ",") + if len(parts) > 0 { + dep.Version = strings.TrimPrefix(strings.TrimSpace(parts[0]), "Docker version ") + } + + // Check if daemon is running + _, err = execCommand("docker", "info") + if err != nil { + dep.Installed = true + dep.Status = "installed" + dep.Message = "Daemon not running" + return dep + } + + // Check for wails-cross image + imageCheck, _ := execCommand("docker", "image", "inspect", "wails-cross") + if imageCheck == "" || strings.Contains(imageCheck, "Error") { + dep.Installed = true + dep.Status = "installed" + dep.Message = "wails-cross image not built" + } else { + dep.Installed = true + dep.Status = "installed" + dep.Message = "Cross-compilation ready" + } + + return dep +}