From 5478f2815e2b8ff628fff1803a43bab665dc6dde Mon Sep 17 00:00:00 2001 From: sayan Date: Fri, 27 Mar 2026 22:35:25 +0530 Subject: [PATCH] feat: Added frontend for The Catalyst tab (#10) Added frontend for "The Catalyst" tab. Co-authored-by: Sayan Datta Reviewed-on: https://git.desineuron.in/sagnik/Project_Velocity/pulls/10 --- app/dist/assets/index-Cs3AYztb.js | 4176 - app/dist/assets/index-J4PPDOa9.css | 1 - app/dist/index.html | 4 +- app/node_modules/.bin/tsc | 0 app/node_modules/.bin/vite | 0 app/node_modules/.package-lock.json | 106 +- .../.tmp/tsconfig.app.tsbuildinfo | 2 +- app/node_modules/.vite/deps/@dnd-kit_core.js | 3591 - .../.vite/deps/@dnd-kit_core.js.map | 7 - .../.vite/deps/@dnd-kit_utilities.js | 56 - .../.vite/deps/@dnd-kit_utilities.js.map | 7 - .../.vite/deps/@radix-ui_react-avatar.js | 12 +- .../deps/@radix-ui_react-dropdown-menu.js | 4929 +- .../deps/@radix-ui_react-dropdown-menu.js.map | 8 +- .../.vite/deps/@radix-ui_react-scroll-area.js | 755 - .../deps/@radix-ui_react-scroll-area.js.map | 7 - .../.vite/deps/@radix-ui_react-select.js | 1359 - .../.vite/deps/@radix-ui_react-select.js.map | 7 - .../.vite/deps/@react-three_drei.js | 76836 ++++++- .../.vite/deps/@react-three_drei.js.map | 8 +- .../.vite/deps/@react-three_fiber.js | 4 +- app/node_modules/.vite/deps/_metadata.json | 272 +- app/node_modules/.vite/deps/chunk-6ZMM2PAV.js | 9 - .../.vite/deps/chunk-6ZMM2PAV.js.map | 7 - app/node_modules/.vite/deps/chunk-KOYBCGV3.js | 10153 - .../.vite/deps/chunk-KOYBCGV3.js.map | 7 - app/node_modules/.vite/deps/chunk-M3NXY72O.js | 3841 - .../.vite/deps/chunk-M3NXY72O.js.map | 7 - app/node_modules/.vite/deps/chunk-SMEXDMMQ.js | 143 - .../.vite/deps/chunk-SMEXDMMQ.js.map | 7 - app/node_modules/.vite/deps/chunk-TGAC7IAX.js | 158486 --------------- .../.vite/deps/chunk-TGAC7IAX.js.map | 7 - app/node_modules/.vite/deps/chunk-VPWBNV4W.js | 241 - .../.vite/deps/chunk-VPWBNV4W.js.map | 7 - app/node_modules/.vite/deps/chunk-YJZCGBGU.js | 311 - .../.vite/deps/chunk-YJZCGBGU.js.map | 7 - app/node_modules/.vite/deps/recharts.js | 6 +- app/node_modules/.vite/deps/three-stdlib.js | 711 - .../.vite/deps/three-stdlib.js.map | 7 - app/node_modules/@esbuild/win32-x64/README.md | 3 - .../@esbuild/win32-x64/esbuild.exe | Bin 11365376 -> 0 bytes .../@esbuild/win32-x64/package.json | 20 - .../@rollup/rollup-win32-x64-gnu/README.md | 3 - .../@rollup/rollup-win32-x64-gnu/package.json | 22 - .../rollup.win32-x64-gnu.node | Bin 1964032 -> 0 bytes .../@rollup/rollup-win32-x64-msvc/README.md | 3 - .../rollup-win32-x64-msvc/package.json | 22 - .../rollup.win32-x64-msvc.node | Bin 2525696 -> 0 bytes app/package-lock.json | 58 + app/package.json | 1 + app/src/App.tsx | 117 +- app/src/components/layout/Sidebar.tsx | 110 +- app/src/components/modules/Catalyst.tsx | 873 + app/src/main.tsx | 5 +- app/src/store/useMarketingStore.ts | 214 + app/src/types/index.ts | 77 +- 56 files changed, 80532 insertions(+), 187100 deletions(-) delete mode 100644 app/dist/assets/index-Cs3AYztb.js delete mode 100644 app/dist/assets/index-J4PPDOa9.css mode change 100644 => 100755 app/node_modules/.bin/tsc mode change 100644 => 100755 app/node_modules/.bin/vite delete mode 100644 app/node_modules/.vite/deps/@dnd-kit_core.js delete mode 100644 app/node_modules/.vite/deps/@dnd-kit_core.js.map delete mode 100644 app/node_modules/.vite/deps/@dnd-kit_utilities.js delete mode 100644 app/node_modules/.vite/deps/@dnd-kit_utilities.js.map delete mode 100644 app/node_modules/.vite/deps/@radix-ui_react-scroll-area.js delete mode 100644 app/node_modules/.vite/deps/@radix-ui_react-scroll-area.js.map delete mode 100644 app/node_modules/.vite/deps/@radix-ui_react-select.js delete mode 100644 app/node_modules/.vite/deps/@radix-ui_react-select.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-6ZMM2PAV.js delete mode 100644 app/node_modules/.vite/deps/chunk-6ZMM2PAV.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-KOYBCGV3.js delete mode 100644 app/node_modules/.vite/deps/chunk-KOYBCGV3.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-M3NXY72O.js delete mode 100644 app/node_modules/.vite/deps/chunk-M3NXY72O.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-SMEXDMMQ.js delete mode 100644 app/node_modules/.vite/deps/chunk-SMEXDMMQ.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-TGAC7IAX.js delete mode 100644 app/node_modules/.vite/deps/chunk-TGAC7IAX.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-VPWBNV4W.js delete mode 100644 app/node_modules/.vite/deps/chunk-VPWBNV4W.js.map delete mode 100644 app/node_modules/.vite/deps/chunk-YJZCGBGU.js delete mode 100644 app/node_modules/.vite/deps/chunk-YJZCGBGU.js.map delete mode 100644 app/node_modules/.vite/deps/three-stdlib.js delete mode 100644 app/node_modules/.vite/deps/three-stdlib.js.map delete mode 100644 app/node_modules/@esbuild/win32-x64/README.md delete mode 100644 app/node_modules/@esbuild/win32-x64/esbuild.exe delete mode 100644 app/node_modules/@esbuild/win32-x64/package.json delete mode 100644 app/node_modules/@rollup/rollup-win32-x64-gnu/README.md delete mode 100644 app/node_modules/@rollup/rollup-win32-x64-gnu/package.json delete mode 100644 app/node_modules/@rollup/rollup-win32-x64-gnu/rollup.win32-x64-gnu.node delete mode 100644 app/node_modules/@rollup/rollup-win32-x64-msvc/README.md delete mode 100644 app/node_modules/@rollup/rollup-win32-x64-msvc/package.json delete mode 100644 app/node_modules/@rollup/rollup-win32-x64-msvc/rollup.win32-x64-msvc.node create mode 100644 app/src/components/modules/Catalyst.tsx create mode 100644 app/src/store/useMarketingStore.ts diff --git a/app/dist/assets/index-Cs3AYztb.js b/app/dist/assets/index-Cs3AYztb.js deleted file mode 100644 index bedf2a17..00000000 --- a/app/dist/assets/index-Cs3AYztb.js +++ /dev/null @@ -1,4176 +0,0 @@ -function HQ(t,e){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var cS=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ar(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var pC={exports:{}},j0={};var C2;function VQ(){if(C2)return j0;C2=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(r,i,a){var s=null;if(a!==void 0&&(s=""+a),i.key!==void 0&&(s=""+i.key),"key"in i){a={};for(var o in i)o!=="key"&&(a[o]=i[o])}else a=i;return i=a.ref,{$$typeof:t,type:r,key:s,ref:i!==void 0?i:null,props:a}}return j0.Fragment=e,j0.jsx=n,j0.jsxs=n,j0}var R2;function WQ(){return R2||(R2=1,pC.exports=VQ()),pC.exports}var M=WQ(),mC={exports:{}},cn={};var O2;function qQ(){if(O2)return cn;O2=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),v=Symbol.iterator;function y(X){return X===null||typeof X!="object"?null:(X=v&&X[v]||X["@@iterator"],typeof X=="function"?X:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,_={};function S(X,ae,ue){this.props=X,this.context=ae,this.refs=_,this.updater=ue||b}S.prototype.isReactComponent={},S.prototype.setState=function(X,ae){if(typeof X!="object"&&typeof X!="function"&&X!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,X,ae,"setState")},S.prototype.forceUpdate=function(X){this.updater.enqueueForceUpdate(this,X,"forceUpdate")};function E(){}E.prototype=S.prototype;function T(X,ae,ue){this.props=X,this.context=ae,this.refs=_,this.updater=ue||b}var P=T.prototype=new E;P.constructor=T,w(P,S.prototype),P.isPureReactComponent=!0;var R=Array.isArray;function D(){}var I={H:null,A:null,T:null,S:null},k=Object.prototype.hasOwnProperty;function B(X,ae,ue){var Se=ue.ref;return{$$typeof:t,type:X,key:ae,ref:Se!==void 0?Se:null,props:ue}}function U(X,ae){return B(X.type,ae,X.props)}function z(X){return typeof X=="object"&&X!==null&&X.$$typeof===t}function q(X){var ae={"=":"=0",":":"=2"};return"$"+X.replace(/[=:]/g,function(ue){return ae[ue]})}var W=/\/+/g;function ee(X,ae){return typeof X=="object"&&X!==null&&X.key!=null?q(""+X.key):ae.toString(36)}function Q(X){switch(X.status){case"fulfilled":return X.value;case"rejected":throw X.reason;default:switch(typeof X.status=="string"?X.then(D,D):(X.status="pending",X.then(function(ae){X.status==="pending"&&(X.status="fulfilled",X.value=ae)},function(ae){X.status==="pending"&&(X.status="rejected",X.reason=ae)})),X.status){case"fulfilled":return X.value;case"rejected":throw X.reason}}throw X}function V(X,ae,ue,Se,$e){var me=typeof X;(me==="undefined"||me==="boolean")&&(X=null);var ve=!1;if(X===null)ve=!0;else switch(me){case"bigint":case"string":case"number":ve=!0;break;case"object":switch(X.$$typeof){case t:case e:ve=!0;break;case h:return ve=X._init,V(ve(X._payload),ae,ue,Se,$e)}}if(ve)return $e=$e(X),ve=Se===""?"."+ee(X,0):Se,R($e)?(ue="",ve!=null&&(ue=ve.replace(W,"$&/")+"/"),V($e,ae,ue,"",function(Fe){return Fe})):$e!=null&&(z($e)&&($e=U($e,ue+($e.key==null||X&&X.key===$e.key?"":(""+$e.key).replace(W,"$&/")+"/")+ve)),ae.push($e)),1;ve=0;var We=Se===""?".":Se+":";if(R(X))for(var _e=0;_e>>1,de=V[ie];if(0>>1;iei(ue,Y))Sei($e,ue)?(V[ie]=$e,V[Se]=Y,ie=Se):(V[ie]=ue,V[ae]=Y,ie=ae);else if(Sei($e,Y))V[ie]=$e,V[Se]=Y,ie=Se;else break e}}return $}function i(V,$){var Y=V.sortIndex-$.sortIndex;return Y!==0?Y:V.id-$.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,o=s.now();t.unstable_now=function(){return s.now()-o}}var c=[],u=[],h=1,p=null,v=3,y=!1,b=!1,w=!1,_=!1,S=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,T=typeof setImmediate<"u"?setImmediate:null;function P(V){for(var $=n(u);$!==null;){if($.callback===null)r(u);else if($.startTime<=V)r(u),$.sortIndex=$.expirationTime,e(c,$);else break;$=n(u)}}function R(V){if(w=!1,P(V),!b)if(n(c)!==null)b=!0,D||(D=!0,q());else{var $=n(u);$!==null&&Q(R,$.startTime-V)}}var D=!1,I=-1,k=5,B=-1;function U(){return _?!0:!(t.unstable_now()-BV&&U());){var ie=p.callback;if(typeof ie=="function"){p.callback=null,v=p.priorityLevel;var de=ie(p.expirationTime<=V);if(V=t.unstable_now(),typeof de=="function"){p.callback=de,P(V),$=!0;break t}p===n(c)&&r(c),P(V)}else r(c);p=n(c)}if(p!==null)$=!0;else{var X=n(u);X!==null&&Q(R,X.startTime-V),$=!1}}break e}finally{p=null,v=Y,y=!1}$=void 0}}finally{$?q():D=!1}}}var q;if(typeof T=="function")q=function(){T(z)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,ee=W.port2;W.port1.onmessage=z,q=function(){ee.postMessage(null)}}else q=function(){S(z,0)};function Q(V,$){I=S(function(){V(t.unstable_now())},$)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125ie?(V.sortIndex=Y,e(u,V),n(c)===null&&V===n(u)&&(w?(E(I),I=-1):w=!0,Q(R,Y-ie))):(V.sortIndex=de,e(c,V),b||y||(b=!0,D||(D=!0,q()))),V},t.unstable_shouldYield=U,t.unstable_wrapCallback=function(V){var $=v;return function(){var Y=v;v=$;try{return V.apply(this,arguments)}finally{v=Y}}}})(yC)),yC}var N2;function RV(){return N2||(N2=1,vC.exports=$Q()),vC.exports}var xC={exports:{}},Ea={};var I2;function XQ(){if(I2)return Ea;I2=1;var t=qb();function e(c){var u="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),xC.exports=XQ(),xC.exports}var L2;function KQ(){if(L2)return z0;L2=1;var t=RV(),e=qb(),n=OV();function r(l){var f="https://react.dev/errors/"+l;if(1de||(l.current=ie[de],ie[de]=null,de--)}function ue(l,f){de++,ie[de]=l.current,l.current=f}var Se=X(null),$e=X(null),me=X(null),ve=X(null);function We(l,f){switch(ue(me,f),ue($e,l),ue(Se,null),f.nodeType){case 9:case 11:l=(l=f.documentElement)&&(l=l.namespaceURI)?Jk(l):0;break;default:if(l=f.tagName,f=f.namespaceURI)f=Jk(f),l=Zk(f,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}ae(Se),ue(Se,l)}function _e(){ae(Se),ae($e),ae(me)}function Fe(l){l.memoizedState!==null&&ue(ve,l);var f=Se.current,g=Zk(f,l.type);f!==g&&(ue($e,l),ue(Se,g))}function Xe(l){$e.current===l&&(ae(Se),ae($e)),ve.current===l&&(ae(ve),L0._currentValue=Y)}var Re,ot;function we(l){if(Re===void 0)try{throw Error()}catch(g){var f=g.stack.trim().match(/\n( *(at )?)/);Re=f&&f[1]||"",ot=-1)":-1O||le[x]!==Ee[O]){var ze=` -`+le[x].replace(" at new "," at ");return l.displayName&&ze.includes("")&&(ze=ze.replace("",l.displayName)),ze}while(1<=x&&0<=O);break}}}finally{Ue=!1,Error.prepareStackTrace=g}return(g=l?l.displayName||l.name:"")?we(g):""}function Ye(l,f){switch(l.tag){case 26:case 27:case 5:return we(l.type);case 16:return we("Lazy");case 13:return l.child!==f&&f!==null?we("Suspense Fallback"):we("Suspense");case 19:return we("SuspenseList");case 0:case 15:return Be(l.type,!1);case 11:return Be(l.type.render,!1);case 1:return Be(l.type,!0);case 31:return we("Activity");default:return""}}function re(l){try{var f="",g=null;do f+=Ye(l,g),g=l,l=l.return;while(l);return f}catch(x){return` -Error generating stack: `+x.message+` -`+x.stack}}var At=Object.prototype.hasOwnProperty,ft=t.unstable_scheduleCallback,Et=t.unstable_cancelCallback,Ze=t.unstable_shouldYield,te=t.unstable_requestPaint,H=t.unstable_now,he=t.unstable_getCurrentPriorityLevel,Ne=t.unstable_ImmediatePriority,je=t.unstable_UserBlockingPriority,Ie=t.unstable_NormalPriority,_t=t.unstable_LowPriority,lt=t.unstable_IdlePriority,Tt=t.log,Gt=t.unstable_setDisableYieldValue,Qe=null,st=null;function vt(l){if(typeof Tt=="function"&&Gt(l),st&&typeof st.setStrictMode=="function")try{st.setStrictMode(Qe,l)}catch{}}var se=Math.clz32?Math.clz32:oe,Ae=Math.log,dt=Math.LN2;function oe(l){return l>>>=0,l===0?32:31-(Ae(l)/dt|0)|0}var it=256,et=262144,pt=4194304;function tt(l){var f=l&42;if(f!==0)return f;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function He(l,f,g){var x=l.pendingLanes;if(x===0)return 0;var O=0,N=l.suspendedLanes,G=l.pingedLanes;l=l.warmLanes;var Z=x&134217727;return Z!==0?(x=Z&~N,x!==0?O=tt(x):(G&=Z,G!==0?O=tt(G):g||(g=Z&~l,g!==0&&(O=tt(g))))):(Z=x&~N,Z!==0?O=tt(Z):G!==0?O=tt(G):g||(g=x&~l,g!==0&&(O=tt(g)))),O===0?0:f!==0&&f!==O&&(f&N)===0&&(N=O&-O,g=f&-f,N>=g||N===32&&(g&4194048)!==0)?f:O}function at(l,f){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&f)===0}function jt(l,f){switch(l){case 1:case 2:case 4:case 8:case 64:return f+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return f+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function un(){var l=pt;return pt<<=1,(pt&62914560)===0&&(pt=4194304),l}function hn(l){for(var f=[],g=0;31>g;g++)f.push(l);return f}function Mr(l,f){l.pendingLanes|=f,f!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function oi(l,f,g,x,O,N){var G=l.pendingLanes;l.pendingLanes=g,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=g,l.entangledLanes&=g,l.errorRecoveryDisabledLanes&=g,l.shellSuspendCounter=0;var Z=l.entanglements,le=l.expirationTimes,Ee=l.hiddenUpdates;for(g=G&~g;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Bn=/[\n"\\]/g;function Jt(l){return l.replace(Bn,function(f){return"\\"+f.charCodeAt(0).toString(16)+" "})}function Jr(l,f,g,x,O,N,G,Z){l.name="",G!=null&&typeof G!="function"&&typeof G!="symbol"&&typeof G!="boolean"?l.type=G:l.removeAttribute("type"),f!=null?G==="number"?(f===0&&l.value===""||l.value!=f)&&(l.value=""+Xt(f)):l.value!==""+Xt(f)&&(l.value=""+Xt(f)):G!=="submit"&&G!=="reset"||l.removeAttribute("value"),f!=null?hr(l,G,Xt(f)):g!=null?hr(l,G,Xt(g)):x!=null&&l.removeAttribute("value"),O==null&&N!=null&&(l.defaultChecked=!!N),O!=null&&(l.checked=O&&typeof O!="function"&&typeof O!="symbol"),Z!=null&&typeof Z!="function"&&typeof Z!="symbol"&&typeof Z!="boolean"?l.name=""+Xt(Z):l.removeAttribute("name")}function Us(l,f,g,x,O,N,G,Z){if(N!=null&&typeof N!="function"&&typeof N!="symbol"&&typeof N!="boolean"&&(l.type=N),f!=null||g!=null){if(!(N!=="submit"&&N!=="reset"||f!=null)){Qn(l);return}g=g!=null?""+Xt(g):"",f=f!=null?""+Xt(f):g,Z||f===l.value||(l.value=f),l.defaultValue=f}x=x??O,x=typeof x!="function"&&typeof x!="symbol"&&!!x,l.checked=Z?l.checked:!!x,l.defaultChecked=!!x,G!=null&&typeof G!="function"&&typeof G!="symbol"&&typeof G!="boolean"&&(l.name=G),Qn(l)}function hr(l,f,g){f==="number"&>(l.ownerDocument)===l||l.defaultValue===""+g||(l.defaultValue=""+g)}function ea(l,f,g,x){if(l=l.options,f){f={};for(var O=0;O"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),xy=!1;if(oo)try{var mf={};Object.defineProperty(mf,"passive",{get:function(){xy=!0}}),window.addEventListener("test",mf,mf),window.removeEventListener("test",mf,mf)}catch{xy=!1}var Ga=null,Zp=null,ru=null;function $d(){if(ru)return ru;var l,f=Zp,g=f.length,x,O="value"in Ga?Ga.value:Ga.textContent,N=O.length;for(l=0;l=bf),G1=" ",Zd=!1;function sm(l,f){switch(l){case"keyup":return z1.indexOf(f.keyCode)!==-1;case"keydown":return f.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ey(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var su=!1;function H1(l,f){switch(l){case"compositionend":return Ey(f);case"keypress":return f.which!==32?null:(Zd=!0,G1);case"textInput":return l=f.data,l===G1&&Zd?null:l;default:return null}}function Ty(l,f){if(su)return l==="compositionend"||!au&&sm(l,f)?(l=$d(),ru=Zp=Ga=null,su=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(f.ctrlKey||f.altKey||f.metaKey)||f.ctrlKey&&f.altKey){if(f.char&&1=f)return{node:g,offset:f-l};l=x}e:{for(;g;){if(g.nextSibling){g=g.nextSibling;break e}g=g.parentNode}g=void 0}g=th(g)}}function or(l,f){return l&&f?l===f?!0:l&&l.nodeType===3?!1:f&&f.nodeType===3?or(l,f.parentNode):"contains"in l?l.contains(f):l.compareDocumentPosition?!!(l.compareDocumentPosition(f)&16):!1:!1}function X1(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var f=gt(l.document);f instanceof l.HTMLIFrameElement;){try{var g=typeof f.contentWindow.location.href=="string"}catch{g=!1}if(g)l=f.contentWindow;else break;f=gt(l.document)}return f}function By(l){var f=l&&l.nodeName&&l.nodeName.toLowerCase();return f&&(f==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||f==="textarea"||l.contentEditable==="true")}var K1=oo&&"documentMode"in document&&11>=document.documentMode,co=null,uo=null,wf=null,lm=!1;function Mf(l,f,g){var x=g.window===g?g.document:g.nodeType===9?g:g.ownerDocument;lm||co==null||co!==gt(x)||(x=co,"selectionStart"in x&&By(x)?x={start:x.selectionStart,end:x.selectionEnd}:(x=(x.ownerDocument&&x.ownerDocument.defaultView||window).getSelection(),x={anchorNode:x.anchorNode,anchorOffset:x.anchorOffset,focusNode:x.focusNode,focusOffset:x.focusOffset}),wf&&Sf(wf,x)||(wf=x,x=X_(uo,"onSelect"),0>=G,O-=G,Cr=1<<32-se(f)+O|g<xn?(kn=Ft,Ft=null):kn=Ft.sibling;var Xn=Oe(ye,Ft,Me[xn],qe);if(Xn===null){Ft===null&&(Ft=kn);break}l&&Ft&&Xn.alternate===null&&f(ye,Ft),pe=N(Xn,pe,xn),$n===null?Wt=Xn:$n.sibling=Xn,$n=Xn,Ft=kn}if(xn===Me.length)return g(ye,Ft),Rn&&ho(ye,xn),Wt;if(Ft===null){for(;xnxn?(kn=Ft,Ft=null):kn=Ft.sibling;var nd=Oe(ye,Ft,Xn.value,qe);if(nd===null){Ft===null&&(Ft=kn);break}l&&Ft&&nd.alternate===null&&f(ye,Ft),pe=N(nd,pe,xn),$n===null?Wt=nd:$n.sibling=nd,$n=nd,Ft=kn}if(Xn.done)return g(ye,Ft),Rn&&ho(ye,xn),Wt;if(Ft===null){for(;!Xn.done;xn++,Xn=Me.next())Xn=Ke(ye,Xn.value,qe),Xn!==null&&(pe=N(Xn,pe,xn),$n===null?Wt=Xn:$n.sibling=Xn,$n=Xn);return Rn&&ho(ye,xn),Wt}for(Ft=x(Ft);!Xn.done;xn++,Xn=Me.next())Xn=ke(Ft,ye,xn,Xn.value,qe),Xn!==null&&(l&&Xn.alternate!==null&&Ft.delete(Xn.key===null?xn:Xn.key),pe=N(Xn,pe,xn),$n===null?Wt=Xn:$n.sibling=Xn,$n=Xn);return l&&Ft.forEach(function(GQ){return f(ye,GQ)}),Rn&&ho(ye,xn),Wt}function fr(ye,pe,Me,qe){if(typeof Me=="object"&&Me!==null&&Me.type===w&&Me.key===null&&(Me=Me.props.children),typeof Me=="object"&&Me!==null){switch(Me.$$typeof){case y:e:{for(var Wt=Me.key;pe!==null;){if(pe.key===Wt){if(Wt=Me.type,Wt===w){if(pe.tag===7){g(ye,pe.sibling),qe=O(pe,Me.props.children),qe.return=ye,ye=qe;break e}}else if(pe.elementType===Wt||typeof Wt=="object"&&Wt!==null&&Wt.$$typeof===k&&fu(Wt)===pe.type){g(ye,pe.sibling),qe=O(pe,Me.props),xs(qe,Me),qe.return=ye,ye=qe;break e}g(ye,pe);break}else f(ye,pe);pe=pe.sibling}Me.type===w?(qe=tc(Me.props.children,ye.mode,qe,Me.key),qe.return=ye,ye=qe):(qe=fo(Me.type,Me.key,Me.props,null,ye.mode,qe),xs(qe,Me),qe.return=ye,ye=qe)}return G(ye);case b:e:{for(Wt=Me.key;pe!==null;){if(pe.key===Wt)if(pe.tag===4&&pe.stateNode.containerInfo===Me.containerInfo&&pe.stateNode.implementation===Me.implementation){g(ye,pe.sibling),qe=O(pe,Me.children||[]),qe.return=ye,ye=qe;break e}else{g(ye,pe);break}else f(ye,pe);pe=pe.sibling}qe=hm(Me,ye.mode,qe),qe.return=ye,ye=qe}return G(ye);case k:return Me=fu(Me),fr(ye,pe,Me,qe)}if(Q(Me))return Nt(ye,pe,Me,qe);if(q(Me)){if(Wt=q(Me),typeof Wt!="function")throw Error(r(150));return Me=Wt.call(Me),Zt(ye,pe,Me,qe)}if(typeof Me.then=="function")return fr(ye,pe,fh(Me),qe);if(Me.$$typeof===T)return fr(ye,pe,Nf(ye,Me),qe);If(ye,Me)}return typeof Me=="string"&&Me!==""||typeof Me=="number"||typeof Me=="bigint"?(Me=""+Me,pe!==null&&pe.tag===6?(g(ye,pe.sibling),qe=O(pe,Me),qe.return=ye,ye=qe):(g(ye,pe),qe=dm(Me,ye.mode,qe),qe.return=ye,ye=qe),G(ye)):g(ye,pe)}return function(ye,pe,Me,qe){try{mu=0;var Wt=fr(ye,pe,Me,qe);return pu=null,Wt}catch(Ft){if(Ft===uu||Ft===pn)throw Ft;var $n=Tr(29,Ft,null,ye.mode);return $n.lanes=qe,$n.return=ye,$n}}}var fl=Am(!0),wm=Am(!1),ia=!1;function dh(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Wy(l,f){l=l.updateQueue,f.updateQueue===l&&(f.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function dl(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function lc(l,f,g){var x=l.updateQueue;if(x===null)return null;if(x=x.shared,(Ut&2)!==0){var O=x.pending;return O===null?f.next=f:(f.next=O.next,O.next=f),x.pending=f,f=vs(l),Ql(l,null,g),f}return _i(l,x,f,g),vs(l)}function cc(l,f,g){if(f=f.updateQueue,f!==null&&(f=f.shared,(g&4194048)!==0)){var x=f.lanes;x&=l.pendingLanes,g|=x,f.lanes=g,ql(l,g)}}function Vt(l,f){var g=l.updateQueue,x=l.alternate;if(x!==null&&(x=x.updateQueue,g===x)){var O=null,N=null;if(g=g.firstBaseUpdate,g!==null){do{var G={lane:g.lane,tag:g.tag,payload:g.payload,callback:null,next:null};N===null?O=N=G:N=N.next=G,g=g.next}while(g!==null);N===null?O=N=f:N=N.next=f}else O=N=f;g={baseState:x.baseState,firstBaseUpdate:O,lastBaseUpdate:N,shared:x.shared,callbacks:x.callbacks},l.updateQueue=g;return}l=g.lastBaseUpdate,l===null?g.firstBaseUpdate=f:l.next=f,g.lastBaseUpdate=f}var qy=!1;function hh(){if(qy){var l=ys;if(l!==null)throw l}}function Bf(l,f,g,x){qy=!1;var O=l.updateQueue;ia=!1;var N=O.firstBaseUpdate,G=O.lastBaseUpdate,Z=O.shared.pending;if(Z!==null){O.shared.pending=null;var le=Z,Ee=le.next;le.next=null,G===null?N=Ee:G.next=Ee,G=le;var ze=l.alternate;ze!==null&&(ze=ze.updateQueue,Z=ze.lastBaseUpdate,Z!==G&&(Z===null?ze.firstBaseUpdate=Ee:Z.next=Ee,ze.lastBaseUpdate=le))}if(N!==null){var Ke=O.baseState;G=0,ze=Ee=le=null,Z=N;do{var Oe=Z.lane&-536870913,ke=Oe!==Z.lane;if(ke?(fn&Oe)===Oe:(x&Oe)===Oe){Oe!==0&&Oe===ul&&(qy=!0),ze!==null&&(ze=ze.next={lane:0,tag:Z.tag,payload:Z.payload,callback:null,next:null});e:{var Nt=l,Zt=Z;Oe=f;var fr=g;switch(Zt.tag){case 1:if(Nt=Zt.payload,typeof Nt=="function"){Ke=Nt.call(fr,Ke,Oe);break e}Ke=Nt;break e;case 3:Nt.flags=Nt.flags&-65537|128;case 0:if(Nt=Zt.payload,Oe=typeof Nt=="function"?Nt.call(fr,Ke,Oe):Nt,Oe==null)break e;Ke=p({},Ke,Oe);break e;case 2:ia=!0}}Oe=Z.callback,Oe!==null&&(l.flags|=64,ke&&(l.flags|=8192),ke=O.callbacks,ke===null?O.callbacks=[Oe]:ke.push(Oe))}else ke={lane:Oe,tag:Z.tag,payload:Z.payload,callback:Z.callback,next:null},ze===null?(Ee=ze=ke,le=Ke):ze=ze.next=ke,G|=Oe;if(Z=Z.next,Z===null){if(Z=O.shared.pending,Z===null)break;ke=Z,Z=ke.next,ke.next=null,O.lastBaseUpdate=ke,O.shared.pending=null}}while(!0);ze===null&&(le=Ke),O.baseState=le,O.firstBaseUpdate=Ee,O.lastBaseUpdate=ze,N===null&&(O.shared.lanes=0),To|=G,l.lanes=G,l.memoizedState=Ke}}function Lf(l,f){if(typeof l!="function")throw Error(r(191,l));l.call(f)}function i_(l,f){var g=l.callbacks;if(g!==null)for(l.callbacks=null,l=0;lN?N:8;var G=V.T,Z={};V.T=Z,m0(l,!1,f,g);try{var le=O(),Ee=V.S;if(Ee!==null&&Ee(Z,le),le!==null&&typeof le=="object"&&typeof le.then=="function"){var ze=Hy(le,x);vh(l,f,ze,Ja(l))}else vh(l,f,x,Ja(l))}catch(Ke){vh(l,f,{then:function(){},status:"rejected",reason:Ke},Ja())}finally{$.p=N,G!==null&&Z.types!==null&&(G.types=Z.types),V.T=G}}function zT(){}function h0(l,f,g,x){if(l.tag!==5)throw Error(r(476));var O=P_(l).queue;O_(l,O,f,Y,g===null?zT:function(){return D_(l),g(x)})}function P_(l){var f=l.memoizedState;if(f!==null)return f;f={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:pl,lastRenderedState:Y},next:null};var g={};return f.next={memoizedState:g,baseState:g,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:pl,lastRenderedState:g},next:null},l.memoizedState=f,l=l.alternate,l!==null&&(l.memoizedState=f),f}function D_(l){var f=P_(l);f.next===null&&(f=l.alternate.memoizedState),vh(l,f.next.queue,{},Ja())}function p0(){return Qt(L0)}function N_(){return Vr().memoizedState}function I_(){return Vr().memoizedState}function GT(l){for(var f=l.return;f!==null;){switch(f.tag){case 24:case 3:var g=Ja();l=dl(g);var x=lc(f,l,g);x!==null&&(gn(x,f,g),cc(x,f,g)),f={cache:jy()},l.payload=f;return}f=f.return}}function HT(l,f,g){var x=Ja();g={lane:x,revertLane:0,gesture:null,action:g,hasEagerState:!1,eagerState:null,next:null},Nm(l)?L_(f,g):(g=um(l,f,g,x),g!==null&&(gn(g,l,x),k_(g,f,x)))}function B_(l,f,g){var x=Ja();vh(l,f,g,x)}function vh(l,f,g,x){var O={lane:x,revertLane:0,gesture:null,action:g,hasEagerState:!1,eagerState:null,next:null};if(Nm(l))L_(f,O);else{var N=l.alternate;if(l.lanes===0&&(N===null||N.lanes===0)&&(N=f.lastRenderedReducer,N!==null))try{var G=f.lastRenderedState,Z=N(G,g);if(O.hasEagerState=!0,O.eagerState=Z,na(Z,G))return _i(l,f,O,0),nn===null&&sh(),!1}catch{}if(g=um(l,f,O,x),g!==null)return gn(g,l,x),k_(g,f,x),!0}return!1}function m0(l,f,g,x){if(x={lane:2,revertLane:De(),gesture:null,action:x,hasEagerState:!1,eagerState:null,next:null},Nm(l)){if(f)throw Error(r(479))}else f=um(l,g,x,2),f!==null&&gn(f,l,2)}function Nm(l){var f=l.alternate;return l===on||f!==null&&f===on}function L_(l,f){Ff=bs=!0;var g=l.pending;g===null?f.next=f:(f.next=g.next,g.next=f),l.pending=f}function k_(l,f,g){if((g&4194048)!==0){var x=f.lanes;x&=l.pendingLanes,g|=x,f.lanes=g,ql(l,g)}}var jf={readContext:Qt,use:uc,useCallback:Rr,useContext:Rr,useEffect:Rr,useImperativeHandle:Rr,useLayoutEffect:Rr,useInsertionEffect:Rr,useMemo:Rr,useReducer:Rr,useRef:Rr,useState:Rr,useDebugValue:Rr,useDeferredValue:Rr,useTransition:Rr,useSyncExternalStore:Rr,useId:Rr,useHostTransitionStatus:Rr,useFormState:Rr,useActionState:Rr,useOptimistic:Rr,useMemoCache:Rr,useCacheRefresh:Rr};jf.useEffectEvent=Rr;var F_={readContext:Qt,use:uc,useCallback:function(l,f){return ui().memoizedState=[l,f===void 0?null:f],l},useContext:Qt,useEffect:b_,useImperativeHandle:function(l,f,g){g=g!=null?g.concat([l]):null,Pm(4194308,4,M_.bind(null,f,l),g)},useLayoutEffect:function(l,f){return Pm(4194308,4,l,f)},useInsertionEffect:function(l,f){Pm(4,2,l,f)},useMemo:function(l,f){var g=ui();f=f===void 0?null:f;var x=l();if(gu){vt(!0);try{l()}finally{vt(!1)}}return g.memoizedState=[x,f],x},useReducer:function(l,f,g){var x=ui();if(g!==void 0){var O=g(f);if(gu){vt(!0);try{g(f)}finally{vt(!1)}}}else O=f;return x.memoizedState=x.baseState=O,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:O},x.queue=l,l=l.dispatch=HT.bind(null,on,l),[x.memoizedState,l]},useRef:function(l){var f=ui();return l={current:l},f.memoizedState=l},useState:function(l){l=r0(l);var f=l.queue,g=B_.bind(null,on,f);return f.dispatch=g,[l.memoizedState,g]},useDebugValue:f0,useDeferredValue:function(l,f){var g=ui();return d0(g,l,f)},useTransition:function(){var l=r0(!1);return l=O_.bind(null,on,l.queue,!0,!1),ui().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,f,g){var x=on,O=ui();if(Rn){if(g===void 0)throw Error(r(407));g=g()}else{if(g=f(),nn===null)throw Error(r(349));(fn&127)!==0||c_(x,f,g)}O.memoizedState=g;var N={value:g,getSnapshot:f};return O.queue=N,b_(f_.bind(null,x,N,l),[l]),x.flags|=2048,fc(9,{destroy:void 0},u_.bind(null,x,N,g,f),null),g},useId:function(){var l=ui(),f=nn.identifierPrefix;if(Rn){var g=js,x=Cr;g=(x&~(1<<32-se(x)-1)).toString(32)+g,f="_"+f+"R_"+g,g=Em++,0<\/script>",N=N.removeChild(N.firstChild);break;case"select":N=typeof x.is=="string"?G.createElement("select",{is:x.is}):G.createElement("select"),x.multiple?N.multiple=!0:x.size&&(N.size=x.size);break;default:N=typeof x.is=="string"?G.createElement(O,{is:x.is}):G.createElement(O)}}N[Er]=f,N[li]=x;e:for(G=f.child;G!==null;){if(G.tag===5||G.tag===6)N.appendChild(G.stateNode);else if(G.tag!==4&&G.tag!==27&&G.child!==null){G.child.return=G,G=G.child;continue}if(G===f)break e;for(;G.sibling===null;){if(G.return===null||G.return===f)break e;G=G.return}G.sibling.return=G.return,G=G.sibling}f.stateNode=N;e:switch(ua(N,O,x),O){case"button":case"input":case"select":case"textarea":x=!!x.autoFocus;break e;case"img":x=!0;break e;default:x=!1}x&&So(f)}}return tr(f),_h(f,f.type,l===null?null:l.memoizedProps,f.pendingProps,g),null;case 6:if(l&&f.stateNode!=null)l.memoizedProps!==x&&So(f);else{if(typeof x!="string"&&f.stateNode===null)throw Error(r(166));if(l=me.current,Pf(f)){if(l=f.stateNode,g=f.memoizedProps,x=null,O=Br,O!==null)switch(O.tag){case 27:case 5:x=O.memoizedProps}l[Er]=f,l=!!(l.nodeValue===g||x!==null&&x.suppressHydrationWarning===!0||Kk(l.nodeValue,g)),l||mo(f,!0)}else l=K_(l).createTextNode(x),l[Er]=f,f.stateNode=l}return tr(f),null;case 31:if(g=f.memoizedState,l===null||l.memoizedState!==null){if(x=Pf(f),g!==null){if(l===null){if(!x)throw Error(r(318));if(l=f.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(r(557));l[Er]=f}else ic(),(f.flags&128)===0&&(f.memoizedState=null),f.flags|=4;tr(f),l=!1}else g=gm(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=g),l=!0;if(!l)return f.flags&256?(Hr(f),f):(Hr(f),null);if((f.flags&128)!==0)throw Error(r(558))}return tr(f),null;case 13:if(x=f.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(O=Pf(f),x!==null&&x.dehydrated!==null){if(l===null){if(!O)throw Error(r(318));if(O=f.memoizedState,O=O!==null?O.dehydrated:null,!O)throw Error(r(317));O[Er]=f}else ic(),(f.flags&128)===0&&(f.memoizedState=null),f.flags|=4;tr(f),O=!1}else O=gm(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=O),O=!0;if(!O)return f.flags&256?(Hr(f),f):(Hr(f),null)}return Hr(f),(f.flags&128)!==0?(f.lanes=g,f):(g=x!==null,l=l!==null&&l.memoizedState!==null,g&&(x=f.child,O=null,x.alternate!==null&&x.alternate.memoizedState!==null&&x.alternate.memoizedState.cachePool!==null&&(O=x.alternate.memoizedState.cachePool.pool),N=null,x.memoizedState!==null&&x.memoizedState.cachePool!==null&&(N=x.memoizedState.cachePool.pool),N!==O&&(x.flags|=2048)),g!==l&&g&&(f.child.flags|=8192),ml(f,f.updateQueue),tr(f),null);case 4:return _e(),l===null&&XT(f.stateNode.containerInfo),tr(f),null;case 10:return yo(f.type),tr(f),null;case 19:if(ae(On),x=f.memoizedState,x===null)return tr(f),null;if(O=(f.flags&128)!==0,N=x.rendering,N===null)if(O)Ao(x,!1);else{if(Or!==0||l!==null&&(l.flags&128)!==0)for(l=f.child;l!==null;){if(N=qa(l),N!==null){for(f.flags|=128,Ao(x,!1),l=N.updateQueue,f.updateQueue=l,ml(f,l),f.subtreeFlags=0,l=g,g=f.child;g!==null;)Ef(g,l),g=g.sibling;return ue(On,On.current&1|2),Rn&&ho(f,x.treeForkCount),f.child}l=l.sibling}x.tail!==null&&H()>qr&&(f.flags|=128,O=!0,Ao(x,!1),f.lanes=4194304)}else{if(!O)if(l=qa(N),l!==null){if(f.flags|=128,O=!0,l=l.updateQueue,f.updateQueue=l,ml(f,l),Ao(x,!0),x.tail===null&&x.tailMode==="hidden"&&!N.alternate&&!Rn)return tr(f),null}else 2*H()-x.renderingStartTime>qr&&g!==536870912&&(f.flags|=128,O=!0,Ao(x,!1),f.lanes=4194304);x.isBackwards?(N.sibling=f.child,f.child=N):(l=x.last,l!==null?l.sibling=N:f.child=N,x.last=N)}return x.tail!==null?(l=x.tail,x.rendering=l,x.tail=l.sibling,x.renderingStartTime=H(),l.sibling=null,g=On.current,ue(On,O?g&1|2:g&1),Rn&&ho(f,x.treeForkCount),l):(tr(f),null);case 22:case 23:return Hr(f),ph(),x=f.memoizedState!==null,l!==null?l.memoizedState!==null!==x&&(f.flags|=8192):x&&(f.flags|=8192),x?(g&536870912)!==0&&(f.flags&128)===0&&(tr(f),f.subtreeFlags&6&&(f.flags|=8192)):tr(f),g=f.updateQueue,g!==null&&ml(f,g.retryQueue),g=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(g=l.memoizedState.cachePool.pool),x=null,f.memoizedState!==null&&f.memoizedState.cachePool!==null&&(x=f.memoizedState.cachePool.pool),x!==g&&(f.flags|=2048),l!==null&&ae(oc),null;case 24:return g=null,l!==null&&(g=l.memoizedState.cache),f.memoizedState.cache!==g&&(f.flags|=2048),yo(Qr),tr(f),null;case 25:return null;case 30:return null}throw Error(r(156,f.tag))}function Ss(l,f){switch(pm(f),f.tag){case 1:return l=f.flags,l&65536?(f.flags=l&-65537|128,f):null;case 3:return yo(Qr),_e(),l=f.flags,(l&65536)!==0&&(l&128)===0?(f.flags=l&-65537|128,f):null;case 26:case 27:case 5:return Xe(f),null;case 31:if(f.memoizedState!==null){if(Hr(f),f.alternate===null)throw Error(r(340));ic()}return l=f.flags,l&65536?(f.flags=l&-65537|128,f):null;case 13:if(Hr(f),l=f.memoizedState,l!==null&&l.dehydrated!==null){if(f.alternate===null)throw Error(r(340));ic()}return l=f.flags,l&65536?(f.flags=l&-65537|128,f):null;case 19:return ae(On),null;case 4:return _e(),null;case 10:return yo(f.type),null;case 22:case 23:return Hr(f),ph(),l!==null&&ae(oc),l=f.flags,l&65536?(f.flags=l&-65537|128,f):null;case 24:return yo(Qr),null;case 25:return null;default:return null}}function $a(l,f){switch(pm(f),f.tag){case 3:yo(Qr),_e();break;case 26:case 27:case 5:Xe(f);break;case 4:_e();break;case 31:f.memoizedState!==null&&Hr(f);break;case 13:Hr(f);break;case 19:ae(On);break;case 10:yo(f.type);break;case 22:case 23:Hr(f),ph(),l!==null&&ae(oc);break;case 24:yo(Qr)}}function As(l,f){try{var g=f.updateQueue,x=g!==null?g.lastEffect:null;if(x!==null){var O=x.next;g=O;do{if((g.tag&l)===l){x=void 0;var N=g.create,G=g.inst;x=N(),G.destroy=x}g=g.next}while(g!==O)}}catch(Z){jn(f,f.return,Z)}}function Di(l,f,g){try{var x=f.updateQueue,O=x!==null?x.lastEffect:null;if(O!==null){var N=O.next;x=N;do{if((x.tag&l)===l){var G=x.inst,Z=G.destroy;if(Z!==void 0){G.destroy=void 0,O=f;var le=g,Ee=Z;try{Ee()}catch(ze){jn(O,le,ze)}}}x=x.next}while(x!==N)}}catch(ze){jn(f,f.return,ze)}}function zs(l){var f=l.updateQueue;if(f!==null){var g=l.stateNode;try{i_(f,g)}catch(x){jn(l,l.return,x)}}}function Ai(l,f,g){g.props=dc(l.type,l.memoizedProps),g.state=l.memoizedState;try{g.componentWillUnmount()}catch(x){jn(l,f,x)}}function gl(l,f){try{var g=l.ref;if(g!==null){switch(l.tag){case 26:case 27:case 5:var x=l.stateNode;break;case 30:x=l.stateNode;break;default:x=l.stateNode}typeof g=="function"?l.refCleanup=g(x):g.current=x}}catch(O){jn(l,f,O)}}function Ni(l,f){var g=l.ref,x=l.refCleanup;if(g!==null)if(typeof x=="function")try{x()}catch(O){jn(l,f,O)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof g=="function")try{g(null)}catch(O){jn(l,f,O)}else g.current=null}function Ah(l){var f=l.type,g=l.memoizedProps,x=l.stateNode;try{e:switch(f){case"button":case"input":case"select":case"textarea":g.autoFocus&&x.focus();break e;case"img":g.src?x.src=g.src:g.srcSet&&(x.srcset=g.srcSet)}}catch(O){jn(l,l.return,O)}}function di(l,f,g){try{var x=l.stateNode;dQ(x,l.type,g,f),x[li]=f}catch(O){jn(l,l.return,O)}}function br(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&Jf(l.type)||l.tag===4}function Mn(l){e:for(;;){for(;l.sibling===null;){if(l.return===null||br(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&Jf(l.type)||l.flags&2||l.child===null||l.tag===4)continue e;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function wo(l,f,g){var x=l.tag;if(x===5||x===6)l=l.stateNode,f?(g.nodeType===9?g.body:g.nodeName==="HTML"?g.ownerDocument.body:g).insertBefore(l,f):(f=g.nodeType===9?g.body:g.nodeName==="HTML"?g.ownerDocument.body:g,f.appendChild(l),g=g._reactRootContainer,g!=null||f.onclick!==null||(f.onclick=il));else if(x!==4&&(x===27&&Jf(l.type)&&(g=l.stateNode,f=null),l=l.child,l!==null))for(wo(l,f,g),l=l.sibling;l!==null;)wo(l,f,g),l=l.sibling}function sa(l,f,g){var x=l.tag;if(x===5||x===6)l=l.stateNode,f?g.insertBefore(l,f):g.appendChild(l);else if(x!==4&&(x===27&&Jf(l.type)&&(g=l.stateNode),l=l.child,l!==null))for(sa(l,f,g),l=l.sibling;l!==null;)sa(l,f,g),l=l.sibling}function Wm(l){var f=l.stateNode,g=l.memoizedProps;try{for(var x=l.type,O=f.attributes;O.length;)f.removeAttributeNode(O[0]);ua(f,x,g),f[Er]=l,f[li]=g}catch(N){jn(l,l.return,N)}}var ws=!1,cr=!1,Gs=!1,q_=typeof WeakSet=="function"?WeakSet:Set,wi=null;function WT(l,f){if(l=l.containerInfo,JT=nS,l=X1(l),By(l)){if("selectionStart"in l)var g={start:l.selectionStart,end:l.selectionEnd};else e:{g=(g=l.ownerDocument)&&g.defaultView||window;var x=g.getSelection&&g.getSelection();if(x&&x.rangeCount!==0){g=x.anchorNode;var O=x.anchorOffset,N=x.focusNode;x=x.focusOffset;try{g.nodeType,N.nodeType}catch{g=null;break e}var G=0,Z=-1,le=-1,Ee=0,ze=0,Ke=l,Oe=null;t:for(;;){for(var ke;Ke!==g||O!==0&&Ke.nodeType!==3||(Z=G+O),Ke!==N||x!==0&&Ke.nodeType!==3||(le=G+x),Ke.nodeType===3&&(G+=Ke.nodeValue.length),(ke=Ke.firstChild)!==null;)Oe=Ke,Ke=ke;for(;;){if(Ke===l)break t;if(Oe===g&&++Ee===O&&(Z=G),Oe===N&&++ze===x&&(le=G),(ke=Ke.nextSibling)!==null)break;Ke=Oe,Oe=Ke.parentNode}Ke=ke}g=Z===-1||le===-1?null:{start:Z,end:le}}else g=null}g=g||{start:0,end:0}}else g=null;for(ZT={focusedElem:l,selectionRange:g},nS=!1,wi=f;wi!==null;)if(f=wi,l=f.child,(f.subtreeFlags&1028)!==0&&l!==null)l.return=f,wi=l;else for(;wi!==null;){switch(f=wi,N=f.alternate,l=f.flags,f.tag){case 0:if((l&4)!==0&&(l=f.updateQueue,l=l!==null?l.events:null,l!==null))for(g=0;g title"))),ua(N,x,g),N[Er]=l,J(N),x=N;break e;case"link":var G=d2("link","href",O).get(x+(g.href||""));if(G){for(var Z=0;Zfr&&(G=fr,fr=Zt,Zt=G);var ye=Af(Z,Zt),pe=Af(Z,fr);if(ye&&pe&&(ke.rangeCount!==1||ke.anchorNode!==ye.node||ke.anchorOffset!==ye.offset||ke.focusNode!==pe.node||ke.focusOffset!==pe.offset)){var Me=Ke.createRange();Me.setStart(ye.node,ye.offset),ke.removeAllRanges(),Zt>fr?(ke.addRange(Me),ke.extend(pe.node,pe.offset)):(Me.setEnd(pe.node,pe.offset),ke.addRange(Me))}}}}for(Ke=[],ke=Z;ke=ke.parentNode;)ke.nodeType===1&&Ke.push({element:ke,left:ke.scrollLeft,top:ke.scrollTop});for(typeof Z.focus=="function"&&Z.focus(),Z=0;Zg?32:g,V.T=null,g=qf,qf=null;var N=Ya,G=Rs;if(Jn=0,Vf=Ya=null,Rs=0,(Ut&6)!==0)throw Error(r(331));var Z=Ut;if(Ut|=4,Aa(N.current),C0(N,N.current,G,g),Ut=Z,Mt(0,!1),st&&typeof st.onPostCommitFiberRoot=="function")try{st.onPostCommitFiberRoot(Qe,N)}catch{}return!0}finally{$.p=O,V.T=x,Ro(l,f)}}function P0(l,f,g){f=Ha(g,f),f=_0(l.stateNode,f,2),l=lc(l,f,2),l!==null&&(Mr(l,2),nt(l))}function jn(l,f,g){if(l.tag===3)P0(l,l,g);else for(;f!==null;){if(f.tag===3){P0(f,l,g);break}else if(f.tag===1){var x=f.stateNode;if(typeof f.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&($r===null||!$r.has(x))){l=Ha(g,l),g=S0(2),x=lc(f,g,2),x!==null&&(z_(g,x,f,l),Mr(x,2),nt(x));break}}f=f.return}}function Oh(l,f,g){var x=l.pingCache;if(x===null){x=l.pingCache=new ln;var O=new Set;x.set(f,O)}else O=x.get(f),O===void 0&&(O=new Set,x.set(f,O));O.has(g)||(R0=!0,O.add(g),l=d.bind(null,l,f,g),f.then(l,l))}function d(l,f,g){var x=l.pingCache;x!==null&&x.delete(f),l.pingedLanes|=l.suspendedLanes&g,l.warmLanes&=~g,nn===l&&(fn&g)===g&&(Or===4||Or===3&&(fn&62914560)===fn&&300>H()-Hf?(Ut&2)===0&&bc(l,0):Mh|=g,pr===fn&&(pr=0)),nt(l)}function m(l,f){f===0&&(f=un()),l=ra(l,f),l!==null&&(Mr(l,f),nt(l))}function A(l){var f=l.memoizedState,g=0;f!==null&&(g=f.retryLane),m(l,g)}function C(l,f){var g=0;switch(l.tag){case 31:case 13:var x=l.stateNode,O=l.memoizedState;O!==null&&(g=O.retryLane);break;case 19:x=l.stateNode;break;case 22:x=l.stateNode._retryCache;break;default:throw Error(r(314))}x!==null&&x.delete(f),m(l,g)}function L(l,f){return ft(l,f)}var F=null,K=null,ce=!1,Le=!1,Je=!1,ht=0;function nt(l){l!==K&&l.next===null&&(K===null?F=K=l:K=K.next=l),Le=!0,ce||(ce=!0,be())}function Mt(l,f){if(!Je&&Le){Je=!0;do for(var g=!1,x=F;x!==null;){if(l!==0){var O=x.pendingLanes;if(O===0)var N=0;else{var G=x.suspendedLanes,Z=x.pingedLanes;N=(1<<31-se(42|l)+1)-1,N&=O&~(G&~Z),N=N&201326741?N&201326741|1:N?N|2:0}N!==0&&(g=!0,Ce(x,N))}else N=fn,N=He(x,x===nn?N:0,x.cancelPendingCommit!==null||x.timeoutHandle!==-1),(N&3)===0||at(x,N)||(g=!0,Ce(x,N));x=x.next}while(g);Je=!1}}function sn(){Xr()}function Xr(){Le=ce=!1;var l=0;ht!==0&&pQ()&&(l=ht);for(var f=H(),g=null,x=F;x!==null;){var O=x.next,N=Yf(x,f);N===0?(x.next=null,g===null?F=O:g.next=O,O===null&&(K=g)):(g=x,(l!==0||(N&3)!==0)&&(Le=!0)),x=O}Jn!==0&&Jn!==5||Mt(l),ht!==0&&(ht=0)}function Yf(l,f){for(var g=l.suspendedLanes,x=l.pingedLanes,O=l.expirationTimes,N=l.pendingLanes&-62914561;0Z)break;var ze=le.transferSize,Ke=le.initiatorType;ze&&Yk(Ke)&&(le=le.responseEnd,G+=ze*(le"u"?null:document;function l2(l,f,g){var x=Jm;if(x&&typeof f=="string"&&f){var O=Jt(f);O='link[rel="'+l+'"][href="'+O+'"]',typeof g=="string"&&(O+='[crossorigin="'+g+'"]'),o2.has(O)||(o2.add(O),l={rel:l,crossOrigin:g,href:f},x.querySelector(O)===null&&(f=x.createElement("link"),ua(f,"link",l),J(f),x.head.appendChild(f)))}}function AQ(l){Ou.D(l),l2("dns-prefetch",l,null)}function wQ(l,f){Ou.C(l,f),l2("preconnect",l,f)}function MQ(l,f,g){Ou.L(l,f,g);var x=Jm;if(x&&l&&f){var O='link[rel="preload"][as="'+Jt(f)+'"]';f==="image"&&g&&g.imageSrcSet?(O+='[imagesrcset="'+Jt(g.imageSrcSet)+'"]',typeof g.imageSizes=="string"&&(O+='[imagesizes="'+Jt(g.imageSizes)+'"]')):O+='[href="'+Jt(l)+'"]';var N=O;switch(f){case"style":N=Zm(l);break;case"script":N=Qm(l)}Po.has(N)||(l=p({rel:"preload",href:f==="image"&&g&&g.imageSrcSet?void 0:l,as:f},g),Po.set(N,l),x.querySelector(O)!==null||f==="style"&&x.querySelector(I0(N))||f==="script"&&x.querySelector(B0(N))||(f=x.createElement("link"),ua(f,"link",l),J(f),x.head.appendChild(f)))}}function EQ(l,f){Ou.m(l,f);var g=Jm;if(g&&l){var x=f&&typeof f.as=="string"?f.as:"script",O='link[rel="modulepreload"][as="'+Jt(x)+'"][href="'+Jt(l)+'"]',N=O;switch(x){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":N=Qm(l)}if(!Po.has(N)&&(l=p({rel:"modulepreload",href:l},f),Po.set(N,l),g.querySelector(O)===null)){switch(x){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(g.querySelector(B0(N)))return}x=g.createElement("link"),ua(x,"link",l),J(x),g.head.appendChild(x)}}}function TQ(l,f,g){Ou.S(l,f,g);var x=Jm;if(x&&l){var O=so(x).hoistableStyles,N=Zm(l);f=f||"default";var G=O.get(N);if(!G){var Z={loading:0,preload:null};if(G=x.querySelector(I0(N)))Z.loading=5;else{l=p({rel:"stylesheet",href:l,"data-precedence":f},g),(g=Po.get(N))&&aC(l,g);var le=G=x.createElement("link");J(le),ua(le,"link",l),le._p=new Promise(function(Ee,ze){le.onload=Ee,le.onerror=ze}),le.addEventListener("load",function(){Z.loading|=1}),le.addEventListener("error",function(){Z.loading|=2}),Z.loading|=4,J_(G,f,x)}G={type:"stylesheet",instance:G,count:1,state:Z},O.set(N,G)}}}function CQ(l,f){Ou.X(l,f);var g=Jm;if(g&&l){var x=so(g).hoistableScripts,O=Qm(l),N=x.get(O);N||(N=g.querySelector(B0(O)),N||(l=p({src:l,async:!0},f),(f=Po.get(O))&&sC(l,f),N=g.createElement("script"),J(N),ua(N,"link",l),g.head.appendChild(N)),N={type:"script",instance:N,count:1,state:null},x.set(O,N))}}function RQ(l,f){Ou.M(l,f);var g=Jm;if(g&&l){var x=so(g).hoistableScripts,O=Qm(l),N=x.get(O);N||(N=g.querySelector(B0(O)),N||(l=p({src:l,async:!0,type:"module"},f),(f=Po.get(O))&&sC(l,f),N=g.createElement("script"),J(N),ua(N,"link",l),g.head.appendChild(N)),N={type:"script",instance:N,count:1,state:null},x.set(O,N))}}function c2(l,f,g,x){var O=(O=me.current)?Y_(O):null;if(!O)throw Error(r(446));switch(l){case"meta":case"title":return null;case"style":return typeof g.precedence=="string"&&typeof g.href=="string"?(f=Zm(g.href),g=so(O).hoistableStyles,x=g.get(f),x||(x={type:"style",instance:null,count:0,state:null},g.set(f,x)),x):{type:"void",instance:null,count:0,state:null};case"link":if(g.rel==="stylesheet"&&typeof g.href=="string"&&typeof g.precedence=="string"){l=Zm(g.href);var N=so(O).hoistableStyles,G=N.get(l);if(G||(O=O.ownerDocument||O,G={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},N.set(l,G),(N=O.querySelector(I0(l)))&&!N._p&&(G.instance=N,G.state.loading=5),Po.has(l)||(g={rel:"preload",as:"style",href:g.href,crossOrigin:g.crossOrigin,integrity:g.integrity,media:g.media,hrefLang:g.hrefLang,referrerPolicy:g.referrerPolicy},Po.set(l,g),N||OQ(O,l,g,G.state))),f&&x===null)throw Error(r(528,""));return G}if(f&&x!==null)throw Error(r(529,""));return null;case"script":return f=g.async,g=g.src,typeof g=="string"&&f&&typeof f!="function"&&typeof f!="symbol"?(f=Qm(g),g=so(O).hoistableScripts,x=g.get(f),x||(x={type:"script",instance:null,count:0,state:null},g.set(f,x)),x):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,l))}}function Zm(l){return'href="'+Jt(l)+'"'}function I0(l){return'link[rel="stylesheet"]['+l+"]"}function u2(l){return p({},l,{"data-precedence":l.precedence,precedence:null})}function OQ(l,f,g,x){l.querySelector('link[rel="preload"][as="style"]['+f+"]")?x.loading=1:(f=l.createElement("link"),x.preload=f,f.addEventListener("load",function(){return x.loading|=1}),f.addEventListener("error",function(){return x.loading|=2}),ua(f,"link",g),J(f),l.head.appendChild(f))}function Qm(l){return'[src="'+Jt(l)+'"]'}function B0(l){return"script[async]"+l}function f2(l,f,g){if(f.count++,f.instance===null)switch(f.type){case"style":var x=l.querySelector('style[data-href~="'+Jt(g.href)+'"]');if(x)return f.instance=x,J(x),x;var O=p({},g,{"data-href":g.href,"data-precedence":g.precedence,href:null,precedence:null});return x=(l.ownerDocument||l).createElement("style"),J(x),ua(x,"style",O),J_(x,g.precedence,l),f.instance=x;case"stylesheet":O=Zm(g.href);var N=l.querySelector(I0(O));if(N)return f.state.loading|=4,f.instance=N,J(N),N;x=u2(g),(O=Po.get(O))&&aC(x,O),N=(l.ownerDocument||l).createElement("link"),J(N);var G=N;return G._p=new Promise(function(Z,le){G.onload=Z,G.onerror=le}),ua(N,"link",x),f.state.loading|=4,J_(N,g.precedence,l),f.instance=N;case"script":return N=Qm(g.src),(O=l.querySelector(B0(N)))?(f.instance=O,J(O),O):(x=g,(O=Po.get(N))&&(x=p({},g),sC(x,O)),l=l.ownerDocument||l,O=l.createElement("script"),J(O),ua(O,"link",x),l.head.appendChild(O),f.instance=O);case"void":return null;default:throw Error(r(443,f.type))}else f.type==="stylesheet"&&(f.state.loading&4)===0&&(x=f.instance,f.state.loading|=4,J_(x,g.precedence,l));return f.instance}function J_(l,f,g){for(var x=g.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),O=x.length?x[x.length-1]:null,N=O,G=0;G title"):null)}function PQ(l,f,g){if(g===1||f.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof f.precedence!="string"||typeof f.href!="string"||f.href==="")break;return!0;case"link":if(typeof f.rel!="string"||typeof f.href!="string"||f.href===""||f.onLoad||f.onError)break;return f.rel==="stylesheet"?(l=f.disabled,typeof f.precedence=="string"&&l==null):!0;case"script":if(f.async&&typeof f.async!="function"&&typeof f.async!="symbol"&&!f.onLoad&&!f.onError&&f.src&&typeof f.src=="string")return!0}return!1}function p2(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function DQ(l,f,g,x){if(g.type==="stylesheet"&&(typeof x.media!="string"||matchMedia(x.media).matches!==!1)&&(g.state.loading&4)===0){if(g.instance===null){var O=Zm(x.href),N=f.querySelector(I0(O));if(N){f=N._p,f!==null&&typeof f=="object"&&typeof f.then=="function"&&(l.count++,l=Q_.bind(l),f.then(l,l)),g.state.loading|=4,g.instance=N,J(N);return}N=f.ownerDocument||f,x=u2(x),(O=Po.get(O))&&aC(x,O),N=N.createElement("link"),J(N);var G=N;G._p=new Promise(function(Z,le){G.onload=Z,G.onerror=le}),ua(N,"link",x),g.instance=N}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(g,f),(f=g.state.preload)&&(g.state.loading&3)===0&&(l.count++,g=Q_.bind(l),f.addEventListener("load",g),f.addEventListener("error",g))}}var oC=0;function NQ(l,f){return l.stylesheets&&l.count===0&&tS(l,l.stylesheets),0oC?50:800)+f);return l.unsuspend=g,function(){l.unsuspend=null,clearTimeout(x),clearTimeout(O)}}:null}function Q_(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)tS(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var eS=null;function tS(l,f){l.stylesheets=null,l.unsuspend!==null&&(l.count++,eS=new Map,f.forEach(IQ,l),eS=null,Q_.call(l))}function IQ(l,f){if(!(f.state.loading&4)){var g=eS.get(l);if(g)var x=g.get(null);else{g=new Map,eS.set(l,g);for(var O=l.querySelectorAll("link[data-precedence],style[data-precedence]"),N=0;N"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),gC.exports=KQ(),gC.exports}var PV=YQ();const IB=j.createContext({});function BB(t){const e=j.useRef(null);return e.current===null&&(e.current=t()),e.current}const DV=typeof window<"u",NV=DV?j.useLayoutEffect:j.useEffect,sE=j.createContext(null);function LB(t,e){t.indexOf(e)===-1&&t.push(e)}function WA(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const jc=(t,e,n)=>n>e?e:n{};const tf={},IV=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);function BV(t){return typeof t=="object"&&t!==null}const LV=t=>/^0[^.\s]+$/u.test(t);function kV(t){let e;return()=>(e===void 0&&(e=t()),e)}const Go=t=>t,JQ=(t,e)=>n=>e(t(n)),$b=(...t)=>t.reduce(JQ),Hx=(t,e,n)=>{const r=e-t;return r===0?1:(n-t)/r};class FB{constructor(){this.subscriptions=[]}add(e){return LB(this.subscriptions,e),()=>WA(this.subscriptions,e)}notify(e,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](e,n,r);else for(let a=0;at*1e3,Uo=t=>t/1e3;function FV(t,e){return e?t*(1e3/e):0}const UV=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,ZQ=1e-7,QQ=12;function eee(t,e,n,r,i){let a,s,o=0;do s=e+(n-e)/2,a=UV(s,r,i)-t,a>0?n=s:e=s;while(Math.abs(a)>ZQ&&++oeee(a,0,1,t,n);return a=>a===0||a===1?a:UV(i(a),e,r)}const jV=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,zV=t=>e=>1-t(1-e),GV=Xb(.33,1.53,.69,.99),UB=zV(GV),HV=jV(UB),VV=t=>(t*=2)<1?.5*UB(t):.5*(2-Math.pow(2,-10*(t-1))),jB=t=>1-Math.sin(Math.acos(t)),WV=zV(jB),qV=jV(jB),tee=Xb(.42,0,1,1),nee=Xb(0,0,.58,1),$V=Xb(.42,0,.58,1),ree=t=>Array.isArray(t)&&typeof t[0]!="number",XV=t=>Array.isArray(t)&&typeof t[0]=="number",iee={linear:Go,easeIn:tee,easeInOut:$V,easeOut:nee,circIn:jB,circInOut:qV,circOut:WV,backIn:UB,backInOut:HV,backOut:GV,anticipate:VV},aee=t=>typeof t=="string",F2=t=>{if(XV(t)){kB(t.length===4);const[e,n,r,i]=t;return Xb(e,n,r,i)}else if(aee(t))return iee[t];return t},uS=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function see(t,e){let n=new Set,r=new Set,i=!1,a=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function c(h){s.has(h)&&(u.schedule(h),t()),h(o)}const u={schedule:(h,p=!1,v=!1)=>{const b=v&&i?n:r;return p&&s.add(h),b.has(h)||b.add(h),h},cancel:h=>{r.delete(h),s.delete(h)},process:h=>{if(o=h,i){a=!0;return}i=!0,[n,r]=[r,n],n.forEach(c),n.clear(),i=!1,a&&(a=!1,u.process(h))}};return u}const oee=40;function KV(t,e){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},a=()=>n=!0,s=uS.reduce((T,P)=>(T[P]=see(a),T),{}),{setup:o,read:c,resolveKeyframes:u,preUpdate:h,update:p,preRender:v,render:y,postRender:b}=s,w=()=>{const T=tf.useManualTiming?i.timestamp:performance.now();n=!1,tf.useManualTiming||(i.delta=r?1e3/60:Math.max(Math.min(T-i.timestamp,oee),1)),i.timestamp=T,i.isProcessing=!0,o.process(i),c.process(i),u.process(i),h.process(i),p.process(i),v.process(i),y.process(i),b.process(i),i.isProcessing=!1,n&&e&&(r=!1,t(w))},_=()=>{n=!0,r=!0,i.isProcessing||t(w)};return{schedule:uS.reduce((T,P)=>{const R=s[P];return T[P]=(D,I=!1,k=!1)=>(n||_(),R.schedule(D,I,k)),T},{}),cancel:T=>{for(let P=0;P(OA===void 0&&rs.set(da.isProcessing||tf.useManualTiming?da.timestamp:performance.now()),OA),set:t=>{OA=t,queueMicrotask(lee)}},YV=t=>e=>typeof e=="string"&&e.startsWith(t),JV=YV("--"),cee=YV("var(--"),zB=t=>cee(t)?uee.test(t.split("/*")[0].trim()):!1,uee=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function U2(t){return typeof t!="string"?!1:t.split("/*")[0].includes("var(--")}const Vv={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},Vx={...Vv,transform:t=>jc(0,1,t)},fS={...Vv,default:1},Sx=t=>Math.round(t*1e5)/1e5,GB=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function fee(t){return t==null}const dee=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,HB=(t,e)=>n=>!!(typeof n=="string"&&dee.test(n)&&n.startsWith(t)||e&&!fee(n)&&Object.prototype.hasOwnProperty.call(n,e)),ZV=(t,e,n)=>r=>{if(typeof r!="string")return r;const[i,a,s,o]=r.match(GB);return{[t]:parseFloat(i),[e]:parseFloat(a),[n]:parseFloat(s),alpha:o!==void 0?parseFloat(o):1}},hee=t=>jc(0,255,t),_C={...Vv,transform:t=>Math.round(hee(t))},tp={test:HB("rgb","red"),parse:ZV("red","green","blue"),transform:({red:t,green:e,blue:n,alpha:r=1})=>"rgba("+_C.transform(t)+", "+_C.transform(e)+", "+_C.transform(n)+", "+Sx(Vx.transform(r))+")"};function pee(t){let e="",n="",r="",i="";return t.length>5?(e=t.substring(1,3),n=t.substring(3,5),r=t.substring(5,7),i=t.substring(7,9)):(e=t.substring(1,2),n=t.substring(2,3),r=t.substring(3,4),i=t.substring(4,5),e+=e,n+=n,r+=r,i+=i),{red:parseInt(e,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const iN={test:HB("#"),parse:pee,transform:tp.transform},Kb=t=>({test:e=>typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),dd=Kb("deg"),Bc=Kb("%"),Lt=Kb("px"),mee=Kb("vh"),gee=Kb("vw"),j2={...Bc,parse:t=>Bc.parse(t)/100,transform:t=>Bc.transform(t*100)},Bg={test:HB("hsl","hue"),parse:ZV("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:n,alpha:r=1})=>"hsla("+Math.round(t)+", "+Bc.transform(Sx(e))+", "+Bc.transform(Sx(n))+", "+Sx(Vx.transform(r))+")"},Ci={test:t=>tp.test(t)||iN.test(t)||Bg.test(t),parse:t=>tp.test(t)?tp.parse(t):Bg.test(t)?Bg.parse(t):iN.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?tp.transform(t):Bg.transform(t),getAnimatableNone:t=>{const e=Ci.parse(t);return e.alpha=0,Ci.transform(e)}},vee=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function yee(t){return isNaN(t)&&typeof t=="string"&&(t.match(GB)?.length||0)+(t.match(vee)?.length||0)>0}const QV="number",e7="color",xee="var",bee="var(",z2="${}",_ee=/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 Wx(t){const e=t.toString(),n=[],r={color:[],number:[],var:[]},i=[];let a=0;const o=e.replace(_ee,c=>(Ci.test(c)?(r.color.push(a),i.push(e7),n.push(Ci.parse(c))):c.startsWith(bee)?(r.var.push(a),i.push(xee),n.push(c)):(r.number.push(a),i.push(QV),n.push(parseFloat(c))),++a,z2)).split(z2);return{values:n,split:o,indexes:r,types:i}}function t7(t){return Wx(t).values}function n7(t){const{split:e,types:n}=Wx(t),r=e.length;return i=>{let a="";for(let s=0;stypeof t=="number"?0:Ci.test(t)?Ci.getAnimatableNone(t):t;function Aee(t){const e=t7(t);return n7(t)(e.map(See))}const kl={test:yee,parse:t7,createTransformer:n7,getAnimatableNone:Aee};function SC(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function wee({hue:t,saturation:e,lightness:n,alpha:r}){t/=360,e/=100,n/=100;let i=0,a=0,s=0;if(!e)i=a=s=n;else{const o=n<.5?n*(1+e):n+e-n*e,c=2*n-o;i=SC(c,o,t+1/3),a=SC(c,o,t),s=SC(c,o,t-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(s*255),alpha:r}}function qA(t,e){return n=>n>0?e:t}const Kr=(t,e,n)=>t+(e-t)*n,AC=(t,e,n)=>{const r=t*t,i=n*(e*e-r)+r;return i<0?0:Math.sqrt(i)},Mee=[iN,tp,Bg],Eee=t=>Mee.find(e=>e.test(t));function G2(t){const e=Eee(t);if(!e)return!1;let n=e.parse(t);return e===Bg&&(n=wee(n)),n}const H2=(t,e)=>{const n=G2(t),r=G2(e);if(!n||!r)return qA(t,e);const i={...n};return a=>(i.red=AC(n.red,r.red,a),i.green=AC(n.green,r.green,a),i.blue=AC(n.blue,r.blue,a),i.alpha=Kr(n.alpha,r.alpha,a),tp.transform(i))},aN=new Set(["none","hidden"]);function Tee(t,e){return aN.has(t)?n=>n<=0?t:e:n=>n>=1?e:t}function Cee(t,e){return n=>Kr(t,e,n)}function VB(t){return typeof t=="number"?Cee:typeof t=="string"?zB(t)?qA:Ci.test(t)?H2:Pee:Array.isArray(t)?r7:typeof t=="object"?Ci.test(t)?H2:Ree:qA}function r7(t,e){const n=[...t],r=n.length,i=t.map((a,s)=>VB(a)(a,e[s]));return a=>{for(let s=0;s{for(const a in r)n[a]=r[a](i);return n}}function Oee(t,e){const n=[],r={color:0,var:0,number:0};for(let i=0;i{const n=kl.createTransformer(e),r=Wx(t),i=Wx(e);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?aN.has(t)&&!i.values.length||aN.has(e)&&!r.values.length?Tee(t,e):$b(r7(Oee(r,i),i.values),n):qA(t,e)};function i7(t,e,n){return typeof t=="number"&&typeof e=="number"&&typeof n=="number"?Kr(t,e,n):VB(t)(t,e)}const Dee=t=>{const e=({timestamp:n})=>t(n);return{start:(n=!0)=>wr.update(e,n),stop:()=>Td(e),now:()=>da.isProcessing?da.timestamp:rs.now()}},a7=(t,e,n=10)=>{let r="";const i=Math.max(Math.round(e/n),2);for(let a=0;a=$A?1/0:e}function Nee(t,e=100,n){const r=n({...t,keyframes:[0,e]}),i=Math.min(WB(r),$A);return{type:"keyframes",ease:a=>r.next(i*a).value/e,duration:Uo(i)}}const Iee=5;function s7(t,e,n){const r=Math.max(e-Iee,0);return FV(n-t(r),e-r)}const ii={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},wC=.001;function Bee({duration:t=ii.duration,bounce:e=ii.bounce,velocity:n=ii.velocity,mass:r=ii.mass}){let i,a,s=1-e;s=jc(ii.minDamping,ii.maxDamping,s),t=jc(ii.minDuration,ii.maxDuration,Uo(t)),s<1?(i=u=>{const h=u*s,p=h*t,v=h-n,y=sN(u,s),b=Math.exp(-p);return wC-v/y*b},a=u=>{const p=u*s*t,v=p*n+n,y=Math.pow(s,2)*Math.pow(u,2)*t,b=Math.exp(-p),w=sN(Math.pow(u,2),s);return(-i(u)+wC>0?-1:1)*((v-y)*b)/w}):(i=u=>{const h=Math.exp(-u*t),p=(u-n)*t+1;return-wC+h*p},a=u=>{const h=Math.exp(-u*t),p=(n-u)*(t*t);return h*p});const o=5/t,c=kee(i,a,o);if(t=Ll(t),isNaN(c))return{stiffness:ii.stiffness,damping:ii.damping,duration:t};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:s*2*Math.sqrt(r*u),duration:t}}}const Lee=12;function kee(t,e,n){let r=n;for(let i=1;it[n]!==void 0)}function jee(t){let e={velocity:ii.velocity,stiffness:ii.stiffness,damping:ii.damping,mass:ii.mass,isResolvedFromDuration:!1,...t};if(!V2(t,Uee)&&V2(t,Fee))if(t.visualDuration){const n=t.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,a=2*jc(.05,1,1-(t.bounce||0))*Math.sqrt(i);e={...e,mass:ii.mass,stiffness:i,damping:a}}else{const n=Bee(t);e={...e,...n,mass:ii.mass},e.isResolvedFromDuration=!0}return e}function XA(t=ii.visualDuration,e=ii.bounce){const n=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:r,restDelta:i}=n;const a=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],o={done:!1,value:a},{stiffness:c,damping:u,mass:h,duration:p,velocity:v,isResolvedFromDuration:y}=jee({...n,velocity:-Uo(n.velocity||0)}),b=v||0,w=u/(2*Math.sqrt(c*h)),_=s-a,S=Uo(Math.sqrt(c/h)),E=Math.abs(_)<5;r||(r=E?ii.restSpeed.granular:ii.restSpeed.default),i||(i=E?ii.restDelta.granular:ii.restDelta.default);let T;if(w<1){const R=sN(S,w);T=D=>{const I=Math.exp(-w*S*D);return s-I*((b+w*S*_)/R*Math.sin(R*D)+_*Math.cos(R*D))}}else if(w===1)T=R=>s-Math.exp(-S*R)*(_+(b+S*_)*R);else{const R=S*Math.sqrt(w*w-1);T=D=>{const I=Math.exp(-w*S*D),k=Math.min(R*D,300);return s-I*((b+w*S*_)*Math.sinh(k)+R*_*Math.cosh(k))/R}}const P={calculatedDuration:y&&p||null,next:R=>{const D=T(R);if(y)o.done=R>=p;else{let I=R===0?b:0;w<1&&(I=R===0?Ll(b):s7(T,R,D));const k=Math.abs(I)<=r,B=Math.abs(s-D)<=i;o.done=k&&B}return o.value=o.done?s:D,o},toString:()=>{const R=Math.min(WB(P),$A),D=a7(I=>P.next(R*I).value,R,30);return R+"ms "+D},toTransition:()=>{}};return P}XA.applyToOptions=t=>{const e=Nee(t,100,XA);return t.ease=e.ease,t.duration=Ll(e.duration),t.type="keyframes",t};function oN({keyframes:t,velocity:e=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:s,min:o,max:c,restDelta:u=.5,restSpeed:h}){const p=t[0],v={done:!1,value:p},y=k=>o!==void 0&&kc,b=k=>o===void 0?c:c===void 0||Math.abs(o-k)-w*Math.exp(-k/r),T=k=>S+E(k),P=k=>{const B=E(k),U=T(k);v.done=Math.abs(B)<=u,v.value=v.done?S:U};let R,D;const I=k=>{y(v.value)&&(R=k,D=XA({keyframes:[v.value,b(v.value)],velocity:s7(T,k,v.value),damping:i,stiffness:a,restDelta:u,restSpeed:h}))};return I(0),{calculatedDuration:null,next:k=>{let B=!1;return!D&&R===void 0&&(B=!0,P(k),I(k)),R!==void 0&&k>=R?D.next(k-R):(!B&&P(k),v)}}}function zee(t,e,n){const r=[],i=n||tf.mix||i7,a=t.length-1;for(let s=0;se[0];if(a===2&&e[0]===e[1])return()=>e[1];const s=t[0]===t[1];t[0]>t[a-1]&&(t=[...t].reverse(),e=[...e].reverse());const o=zee(e,r,i),c=o.length,u=h=>{if(s&&h1)for(;pu(jc(t[0],t[a-1],h)):u}function Hee(t,e){const n=t[t.length-1];for(let r=1;r<=e;r++){const i=Hx(0,e,r);t.push(Kr(n,1,i))}}function Vee(t){const e=[0];return Hee(e,t.length-1),e}function Wee(t,e){return t.map(n=>n*e)}function qee(t,e){return t.map(()=>e||$V).splice(0,t.length-1)}function Ax({duration:t=300,keyframes:e,times:n,ease:r="easeInOut"}){const i=ree(r)?r.map(F2):F2(r),a={done:!1,value:e[0]},s=Wee(n&&n.length===e.length?n:Vee(e),t),o=Gee(s,e,{ease:Array.isArray(i)?i:qee(e,i)});return{calculatedDuration:t,next:c=>(a.value=o(c),a.done=c>=t,a)}}const $ee=t=>t!==null;function qB(t,{repeat:e,repeatType:n="loop"},r,i=1){const a=t.filter($ee),o=i<0||e&&n!=="loop"&&e%2===1?0:a.length-1;return!o||r===void 0?a[o]:r}const Xee={decay:oN,inertia:oN,tween:Ax,keyframes:Ax,spring:XA};function o7(t){typeof t.type=="string"&&(t.type=Xee[t.type])}class $B{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,n){return this.finished.then(e,n)}}const Kee=t=>t/100;class XB extends $B{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==rs.now()&&this.tick(rs.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){const{options:e}=this;o7(e);const{type:n=Ax,repeat:r=0,repeatDelay:i=0,repeatType:a,velocity:s=0}=e;let{keyframes:o}=e;const c=n||Ax;c!==Ax&&typeof o[0]!="number"&&(this.mixKeyframes=$b(Kee,i7(o[0],o[1])),o=[0,100]);const u=c({...e,keyframes:o});a==="mirror"&&(this.mirroredGenerator=c({...e,keyframes:[...o].reverse(),velocity:-s})),u.calculatedDuration===null&&(u.calculatedDuration=WB(u));const{calculatedDuration:h}=u;this.calculatedDuration=h,this.resolvedDuration=h+i,this.totalDuration=this.resolvedDuration*(r+1)-i,this.generator=u}updateTime(e){const n=Math.round(e-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(e,n=!1){const{generator:r,totalDuration:i,mixKeyframes:a,mirroredGenerator:s,resolvedDuration:o,calculatedDuration:c}=this;if(this.startTime===null)return r.next(0);const{delay:u=0,keyframes:h,repeat:p,repeatType:v,repeatDelay:y,type:b,onUpdate:w,finalKeyframe:_}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-i/this.speed,this.startTime)),n?this.currentTime=e:this.updateTime(e);const S=this.currentTime-u*(this.playbackSpeed>=0?1:-1),E=this.playbackSpeed>=0?S<0:S>i;this.currentTime=Math.max(S,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let T=this.currentTime,P=r;if(p){const k=Math.min(this.currentTime,i)/o;let B=Math.floor(k),U=k%1;!U&&k>=1&&(U=1),U===1&&B--,B=Math.min(B,p+1),B%2&&(v==="reverse"?(U=1-U,y&&(U-=y/o)):v==="mirror"&&(P=s)),T=jc(0,1,U)*o}const R=E?{done:!1,value:h[0]}:P.next(T);a&&(R.value=a(R.value));let{done:D}=R;!E&&c!==null&&(D=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const I=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&D);return I&&b!==oN&&(R.value=qB(h,this.options,_,this.speed)),w&&w(R.value),I&&this.finish(),R}then(e,n){return this.finished.then(e,n)}get duration(){return Uo(this.calculatedDuration)}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+Uo(e)}get time(){return Uo(this.currentTime)}set time(e){e=Ll(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(e){this.updateTime(rs.now());const n=this.playbackSpeed!==e;this.playbackSpeed=e,n&&(this.time=Uo(this.currentTime))}play(){if(this.isStopped)return;const{driver:e=Dee,startTime:n}=this.options;this.driver||(this.driver=e(i=>this.tick(i))),this.options.onPlay?.();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(rs.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}function Yee(t){for(let e=1;et*180/Math.PI,lN=t=>{const e=np(Math.atan2(t[1],t[0]));return cN(e)},Jee={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:lN,rotateZ:lN,skewX:t=>np(Math.atan(t[1])),skewY:t=>np(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},cN=t=>(t=t%360,t<0&&(t+=360),t),W2=lN,q2=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),$2=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),Zee={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:q2,scaleY:$2,scale:t=>(q2(t)+$2(t))/2,rotateX:t=>cN(np(Math.atan2(t[6],t[5]))),rotateY:t=>cN(np(Math.atan2(-t[2],t[0]))),rotateZ:W2,rotate:W2,skewX:t=>np(Math.atan(t[4])),skewY:t=>np(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function uN(t){return t.includes("scale")?1:0}function fN(t,e){if(!t||t==="none")return uN(e);const n=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,i;if(n)r=Zee,i=n;else{const o=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=Jee,i=o}if(!i)return uN(e);const a=r[e],s=i[1].split(",").map(ete);return typeof a=="function"?a(s):s[a]}const Qee=(t,e)=>{const{transform:n="none"}=getComputedStyle(t);return fN(n,e)};function ete(t){return parseFloat(t.trim())}const Wv=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],qv=new Set(Wv),X2=t=>t===Vv||t===Lt,tte=new Set(["x","y","z"]),nte=Wv.filter(t=>!tte.has(t));function rte(t){const e=[];return nte.forEach(n=>{const r=t.getValue(n);r!==void 0&&(e.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),e}const xd={width:({x:t},{paddingLeft:e="0",paddingRight:n="0"})=>t.max-t.min-parseFloat(e)-parseFloat(n),height:({y:t},{paddingTop:e="0",paddingBottom:n="0"})=>t.max-t.min-parseFloat(e)-parseFloat(n),top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>fN(e,"x"),y:(t,{transform:e})=>fN(e,"y")};xd.translateX=xd.x;xd.translateY=xd.y;const gp=new Set;let dN=!1,hN=!1,pN=!1;function l7(){if(hN){const t=Array.from(gp).filter(r=>r.needsMeasurement),e=new Set(t.map(r=>r.element)),n=new Map;e.forEach(r=>{const i=rte(r);i.length&&(n.set(r,i),r.render())}),t.forEach(r=>r.measureInitialState()),e.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([a,s])=>{r.getValue(a)?.set(s)})}),t.forEach(r=>r.measureEndState()),t.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}hN=!1,dN=!1,gp.forEach(t=>t.complete(pN)),gp.clear()}function c7(){gp.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(hN=!0)})}function ite(){pN=!0,c7(),l7(),pN=!1}class KB{constructor(e,n,r,i,a,s=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=n,this.name=r,this.motionValue=i,this.element=a,this.isAsync=s}scheduleResolve(){this.state="scheduled",this.isAsync?(gp.add(this),dN||(dN=!0,wr.read(c7),wr.resolveKeyframes(l7))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:n,element:r,motionValue:i}=this;if(e[0]===null){const a=i?.get(),s=e[e.length-1];if(a!==void 0)e[0]=a;else if(r&&n){const o=r.readValue(n,s);o!=null&&(e[0]=o)}e[0]===void 0&&(e[0]=s),i&&a===void 0&&i.set(e[0])}Yee(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),gp.delete(this)}cancel(){this.state==="scheduled"&&(gp.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const ate=t=>t.startsWith("--");function ste(t,e,n){ate(e)?t.style.setProperty(e,n):t.style[e]=n}const ote={};function u7(t,e){const n=kV(t);return()=>ote[e]??n()}const lte=u7(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),f7=u7(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),px=([t,e,n,r])=>`cubic-bezier(${t}, ${e}, ${n}, ${r})`,K2={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:px([0,.65,.55,1]),circOut:px([.55,0,1,.45]),backIn:px([.31,.01,.66,-.59]),backOut:px([.33,1.53,.69,.99])};function d7(t,e){if(t)return typeof t=="function"?f7()?a7(t,e):"ease-out":XV(t)?px(t):Array.isArray(t)?t.map(n=>d7(n,e)||K2.easeOut):K2[t]}function cte(t,e,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:s="loop",ease:o="easeOut",times:c}={},u=void 0){const h={[e]:n};c&&(h.offset=c);const p=d7(o,i);Array.isArray(p)&&(h.easing=p);const v={delay:r,duration:i,easing:Array.isArray(p)?"linear":p,fill:"both",iterations:a+1,direction:s==="reverse"?"alternate":"normal"};return u&&(v.pseudoElement=u),t.animate(h,v)}function h7(t){return typeof t=="function"&&"applyToOptions"in t}function ute({type:t,...e}){return h7(t)&&f7()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class p7 extends $B{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:n,name:r,keyframes:i,pseudoElement:a,allowFlatten:s=!1,finalKeyframe:o,onComplete:c}=e;this.isPseudoElement=!!a,this.allowFlatten=s,this.options=e,kB(typeof e.type!="string");const u=ute(e);this.animation=cte(n,r,i,u,a),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!a){const h=qB(i,this.options,o,this.speed);this.updateMotionValue?this.updateMotionValue(h):ste(n,r,h),this.animation.cancel()}c?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){const e=this.animation.effect?.getComputedTiming?.().duration||0;return Uo(Number(e))}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+Uo(e)}get time(){return Uo(Number(this.animation.currentTime)||0)}set time(e){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Ll(e)}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&<e()?(this.animation.timeline=e,Go):n(this)}}const m7={anticipate:VV,backInOut:HV,circInOut:qV};function fte(t){return t in m7}function dte(t){typeof t.ease=="string"&&fte(t.ease)&&(t.ease=m7[t.ease])}const MC=10;class hte extends p7{constructor(e){dte(e),o7(e),super(e),e.startTime!==void 0&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){const{motionValue:n,onUpdate:r,onComplete:i,element:a,...s}=this.options;if(!n)return;if(e!==void 0){n.set(e);return}const o=new XB({...s,autoplay:!1}),c=Math.max(MC,rs.now()-this.startTime),u=jc(0,MC,c-MC);n.setWithVelocity(o.sample(Math.max(0,c-u)).value,o.sample(c).value,u),o.stop()}}const Y2=(t,e)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(kl.test(t)||t==="0")&&!t.startsWith("url("));function pte(t){const e=t[0];if(t.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function yte(t){const{motionValue:e,name:n,repeatDelay:r,repeatType:i,damping:a,type:s}=t;if(!(e?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=e.owner.getProps();return vte()&&n&>e.has(n)&&(n!=="transform"||!u)&&!c&&!r&&i!=="mirror"&&a!==0&&s!=="inertia"}const xte=40;class bte extends $B{constructor({autoplay:e=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:a=0,repeatType:s="loop",keyframes:o,name:c,motionValue:u,element:h,...p}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=rs.now();const v={autoplay:e,delay:n,type:r,repeat:i,repeatDelay:a,repeatType:s,name:c,motionValue:u,element:h,...p},y=h?.KeyframeResolver||KB;this.keyframeResolver=new y(o,(b,w,_)=>this.onKeyframesResolved(b,w,v,!_),c,u,h),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,n,r,i){this.keyframeResolver=void 0;const{name:a,type:s,velocity:o,delay:c,isHandoff:u,onUpdate:h}=r;this.resolvedAt=rs.now(),mte(e,a,s,o)||((tf.instantAnimations||!c)&&h?.(qB(e,r,n)),e[0]=e[e.length-1],mN(r),r.repeat=0);const v={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>xte?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...r,keyframes:e},y=!u&&yte(v),b=v.motionValue?.owner?.current,w=y?new hte({...v,element:b}):new XB(v);w.finished.then(()=>{this.notifyFinished()}).catch(Go),this.pendingTimeline&&(this.stopTimeline=w.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=w}get finished(){return this._animation?this.animation.finished:this._finished}then(e,n){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),ite()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function g7(t,e,n,r=0,i=1){const a=Array.from(t).sort((u,h)=>u.sortNodePosition(h)).indexOf(e),s=t.size,o=(s-1)*r;return typeof n=="function"?n(a,s):i===1?a*r:o-a*r}const _te=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Ste(t){const e=_te.exec(t);if(!e)return[,];const[,n,r,i]=e;return[`--${n??r}`,i]}function v7(t,e,n=1){const[r,i]=Ste(t);if(!r)return;const a=window.getComputedStyle(e).getPropertyValue(r);if(a){const s=a.trim();return IV(s)?parseFloat(s):s}return zB(i)?v7(i,e,n+1):i}const Ate={type:"spring",stiffness:500,damping:25,restSpeed:10},wte=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),Mte={type:"keyframes",duration:.8},Ete={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Tte=(t,{keyframes:e})=>e.length>2?Mte:qv.has(t)?t.startsWith("scale")?wte(e[1]):Ate:Ete,Cte=t=>t!==null;function Rte(t,{repeat:e,repeatType:n="loop"},r){const i=t.filter(Cte),a=e&&n!=="loop"&&e%2===1?0:i.length-1;return i[a]}function y7(t,e){if(t?.inherit&&e){const{inherit:n,...r}=t;return{...e,...r}}return t}function YB(t,e){const n=t?.[e]??t?.default??t;return n!==t?y7(n,t):n}function Ote({when:t,delay:e,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:a,repeatType:s,repeatDelay:o,from:c,elapsed:u,...h}){return!!Object.keys(h).length}const JB=(t,e,n,r={},i,a)=>s=>{const o=YB(r,t)||{},c=o.delay||r.delay||0;let{elapsed:u=0}=r;u=u-Ll(c);const h={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:e.getVelocity(),...o,delay:-u,onUpdate:v=>{e.set(v),o.onUpdate&&o.onUpdate(v)},onComplete:()=>{s(),o.onComplete&&o.onComplete()},name:t,motionValue:e,element:a?void 0:i};Ote(o)||Object.assign(h,Tte(t,h)),h.duration&&(h.duration=Ll(h.duration)),h.repeatDelay&&(h.repeatDelay=Ll(h.repeatDelay)),h.from!==void 0&&(h.keyframes[0]=h.from);let p=!1;if((h.type===!1||h.duration===0&&!h.repeatDelay)&&(mN(h),h.delay===0&&(p=!0)),(tf.instantAnimations||tf.skipAnimations||i?.shouldSkipAnimations)&&(p=!0,mN(h),h.delay=0),h.allowFlatten=!o.type&&!o.ease,p&&!a&&e.get()!==void 0){const v=Rte(h.keyframes,o);if(v!==void 0){wr.update(()=>{h.onUpdate(v),h.onComplete()});return}}return o.isSync?new XB(h):new bte(h)};function J2(t){const e=[{},{}];return t?.values.forEach((n,r)=>{e[0][r]=n.get(),e[1][r]=n.getVelocity()}),e}function ZB(t,e,n,r){if(typeof e=="function"){const[i,a]=J2(r);e=e(n!==void 0?n:t.custom,i,a)}if(typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"){const[i,a]=J2(r);e=e(n!==void 0?n:t.custom,i,a)}return e}function Vg(t,e,n){const r=t.getProps();return ZB(r,e,n!==void 0?n:r.custom,t)}const x7=new Set(["width","height","top","left","right","bottom",...Wv]),Z2=30,Pte=t=>!isNaN(parseFloat(t));class Dte{constructor(e,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=r=>{const i=rs.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=n.owner}setCurrent(e){this.current=e,this.updatedAt=rs.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=Pte(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,n){this.events[e]||(this.events[e]=new FB);const r=this.events[e].add(n);return e==="change"?()=>{r(),wr.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,n){this.passiveEffect=e,this.stopPassiveEffect=n}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-r}jump(e,n=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const e=rs.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>Z2)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Z2);return FV(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(e){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=e(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(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function nv(t,e){return new Dte(t,e)}const gN=t=>Array.isArray(t);function Nte(t,e,n){t.hasValue(e)?t.getValue(e).set(n):t.addValue(e,nv(n))}function Ite(t){return gN(t)?t[t.length-1]||0:t}function Bte(t,e){const n=Vg(t,e);let{transitionEnd:r={},transition:i={},...a}=n||{};a={...a,...r};for(const s in a){const o=Ite(a[s]);Nte(t,s,o)}}const Ia=t=>!!(t&&t.getVelocity);function Lte(t){return!!(Ia(t)&&t.add)}function vN(t,e){const n=t.getValue("willChange");if(Lte(n))return n.add(e);if(!n&&tf.WillChange){const r=new tf.WillChange("auto");t.addValue("willChange",r),r.add(e)}}function QB(t){return t.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}const kte="framerAppearId",b7="data-"+QB(kte);function _7(t){return t.props[b7]}function Fte({protectedKeys:t,needsAnimating:e},n){const r=t.hasOwnProperty(n)&&e[n]!==!0;return e[n]=!1,r}function S7(t,e,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:a,transitionEnd:s,...o}=e;const c=t.getDefaultTransition();a=a?y7(a,c):c;const u=a?.reduceMotion;r&&(a=r);const h=[],p=i&&t.animationState&&t.animationState.getState()[i];for(const v in o){const y=t.getValue(v,t.latestValues[v]??null),b=o[v];if(b===void 0||p&&Fte(p,v))continue;const w={delay:n,...YB(a||{},v)},_=y.get();if(_!==void 0&&!y.isAnimating&&!Array.isArray(b)&&b===_&&!w.velocity)continue;let S=!1;if(window.MotionHandoffAnimation){const P=_7(t);if(P){const R=window.MotionHandoffAnimation(P,v,wr);R!==null&&(w.startTime=R,S=!0)}}vN(t,v);const E=u??t.shouldReduceMotion;y.start(JB(v,y,b,E&&x7.has(v)?{type:!1}:w,t,S));const T=y.animation;T&&h.push(T)}if(s){const v=()=>wr.update(()=>{s&&Bte(t,s)});h.length?Promise.all(h).then(v):v()}return h}function yN(t,e,n={}){const r=Vg(t,e,n.type==="exit"?t.presenceContext?.custom:void 0);let{transition:i=t.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const a=r?()=>Promise.all(S7(t,r,n)):()=>Promise.resolve(),s=t.variantChildren&&t.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:h,staggerDirection:p}=i;return Ute(t,e,c,u,h,p,n)}:()=>Promise.resolve(),{when:o}=i;if(o){const[c,u]=o==="beforeChildren"?[a,s]:[s,a];return c().then(()=>u())}else return Promise.all([a(),s(n.delay)])}function Ute(t,e,n=0,r=0,i=0,a=1,s){const o=[];for(const c of t.variantChildren)c.notify("AnimationStart",e),o.push(yN(c,e,{...s,delay:n+(typeof r=="function"?0:r)+g7(t.variantChildren,c,r,i,a)}).then(()=>c.notify("AnimationComplete",e)));return Promise.all(o)}function jte(t,e,n={}){t.notify("AnimationStart",e);let r;if(Array.isArray(e)){const i=e.map(a=>yN(t,a,n));r=Promise.all(i)}else if(typeof e=="string")r=yN(t,e,n);else{const i=typeof e=="function"?Vg(t,e,n.custom):e;r=Promise.all(S7(t,i,n))}return r.then(()=>{t.notify("AnimationComplete",e)})}const zte={test:t=>t==="auto",parse:t=>t},A7=t=>e=>e.test(t),w7=[Vv,Lt,Bc,dd,gee,mee,zte],Q2=t=>w7.find(A7(t));function Gte(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||LV(t):!0}const Hte=new Set(["brightness","contrast","saturate","opacity"]);function Vte(t){const[e,n]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[r]=n.match(GB)||[];if(!r)return t;const i=n.replace(r,"");let a=Hte.has(e)?1:0;return r!==n&&(a*=100),e+"("+a+i+")"}const Wte=/\b([a-z-]*)\(.*?\)/gu,xN={...kl,getAnimatableNone:t=>{const e=t.match(Wte);return e?e.map(Vte).join(" "):t}},bN={...kl,getAnimatableNone:t=>{const e=kl.parse(t);return kl.createTransformer(t)(e.map(r=>typeof r=="number"?0:typeof r=="object"?{...r,alpha:1}:r))}},eF={...Vv,transform:Math.round},qte={rotate:dd,rotateX:dd,rotateY:dd,rotateZ:dd,scale:fS,scaleX:fS,scaleY:fS,scaleZ:fS,skew:dd,skewX:dd,skewY:dd,distance:Lt,translateX:Lt,translateY:Lt,translateZ:Lt,x:Lt,y:Lt,z:Lt,perspective:Lt,transformPerspective:Lt,opacity:Vx,originX:j2,originY:j2,originZ:Lt},eL={borderWidth:Lt,borderTopWidth:Lt,borderRightWidth:Lt,borderBottomWidth:Lt,borderLeftWidth:Lt,borderRadius:Lt,borderTopLeftRadius:Lt,borderTopRightRadius:Lt,borderBottomRightRadius:Lt,borderBottomLeftRadius:Lt,width:Lt,maxWidth:Lt,height:Lt,maxHeight:Lt,top:Lt,right:Lt,bottom:Lt,left:Lt,inset:Lt,insetBlock:Lt,insetBlockStart:Lt,insetBlockEnd:Lt,insetInline:Lt,insetInlineStart:Lt,insetInlineEnd:Lt,padding:Lt,paddingTop:Lt,paddingRight:Lt,paddingBottom:Lt,paddingLeft:Lt,paddingBlock:Lt,paddingBlockStart:Lt,paddingBlockEnd:Lt,paddingInline:Lt,paddingInlineStart:Lt,paddingInlineEnd:Lt,margin:Lt,marginTop:Lt,marginRight:Lt,marginBottom:Lt,marginLeft:Lt,marginBlock:Lt,marginBlockStart:Lt,marginBlockEnd:Lt,marginInline:Lt,marginInlineStart:Lt,marginInlineEnd:Lt,fontSize:Lt,backgroundPositionX:Lt,backgroundPositionY:Lt,...qte,zIndex:eF,fillOpacity:Vx,strokeOpacity:Vx,numOctaves:eF},$te={...eL,color:Ci,backgroundColor:Ci,outlineColor:Ci,fill:Ci,stroke:Ci,borderColor:Ci,borderTopColor:Ci,borderRightColor:Ci,borderBottomColor:Ci,borderLeftColor:Ci,filter:xN,WebkitFilter:xN,mask:bN,WebkitMask:bN},M7=t=>$te[t],Xte=new Set([xN,bN]);function E7(t,e){let n=M7(t);return Xte.has(n)||(n=kl),n.getAnimatableNone?n.getAnimatableNone(e):void 0}const Kte=new Set(["auto","none","0"]);function Yte(t,e,n){let r=0,i;for(;r{e.getValue(o).set(c)}),this.resolveNoneKeyframes()}}const Zte=new Set(["opacity","clipPath","filter","transform"]);function T7(t,e,n){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){let r=document;const i=n?.[t]??r.querySelectorAll(t);return i?Array.from(i):[]}return Array.from(t).filter(r=>r!=null)}const C7=(t,e)=>e&&typeof t=="number"?e.transform(t):t;function _N(t){return BV(t)&&"offsetHeight"in t}const{schedule:tL}=KV(queueMicrotask,!1),Tl={x:!1,y:!1};function R7(){return Tl.x||Tl.y}function Qte(t){return t==="x"||t==="y"?Tl[t]?null:(Tl[t]=!0,()=>{Tl[t]=!1}):Tl.x||Tl.y?null:(Tl.x=Tl.y=!0,()=>{Tl.x=Tl.y=!1})}function O7(t,e){const n=T7(t),r=new AbortController,i={passive:!0,...e,signal:r.signal};return[n,i,()=>r.abort()]}function ene(t){return!(t.pointerType==="touch"||R7())}function tne(t,e,n={}){const[r,i,a]=O7(t,n);return r.forEach(s=>{let o=!1,c=!1,u;const h=()=>{s.removeEventListener("pointerleave",b)},p=_=>{u&&(u(_),u=void 0),h()},v=_=>{o=!1,window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",v),c&&(c=!1,p(_))},y=()=>{o=!0,window.addEventListener("pointerup",v,i),window.addEventListener("pointercancel",v,i)},b=_=>{if(_.pointerType!=="touch"){if(o){c=!0;return}p(_)}},w=_=>{if(!ene(_))return;c=!1;const S=e(s,_);typeof S=="function"&&(u=S,s.addEventListener("pointerleave",b,i))};s.addEventListener("pointerenter",w,i),s.addEventListener("pointerdown",y,i)}),a}const P7=(t,e)=>e?t===e?!0:P7(t,e.parentElement):!1,nL=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,nne=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function rne(t){return nne.has(t.tagName)||t.isContentEditable===!0}const ine=new Set(["INPUT","SELECT","TEXTAREA"]);function ane(t){return ine.has(t.tagName)||t.isContentEditable===!0}const PA=new WeakSet;function tF(t){return e=>{e.key==="Enter"&&t(e)}}function EC(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}const sne=(t,e)=>{const n=t.currentTarget;if(!n)return;const r=tF(()=>{if(PA.has(n))return;EC(n,"down");const i=tF(()=>{EC(n,"up")}),a=()=>EC(n,"cancel");n.addEventListener("keyup",i,e),n.addEventListener("blur",a,e)});n.addEventListener("keydown",r,e),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),e)};function nF(t){return nL(t)&&!R7()}const rF=new WeakSet;function one(t,e,n={}){const[r,i,a]=O7(t,n),s=o=>{const c=o.currentTarget;if(!nF(o)||rF.has(o))return;PA.add(c),n.stopPropagation&&rF.add(o);const u=e(c,o),h=(y,b)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",v),PA.has(c)&&PA.delete(c),nF(y)&&typeof u=="function"&&u(y,{success:b})},p=y=>{h(y,c===window||c===document||n.useGlobalTarget||P7(c,y.target))},v=y=>{h(y,!1)};window.addEventListener("pointerup",p,i),window.addEventListener("pointercancel",v,i)};return r.forEach(o=>{(n.useGlobalTarget?window:o).addEventListener("pointerdown",s,i),_N(o)&&(o.addEventListener("focus",u=>sne(u,i)),!rne(o)&&!o.hasAttribute("tabindex")&&(o.tabIndex=0))}),a}function rL(t){return BV(t)&&"ownerSVGElement"in t}const DA=new WeakMap;let NA;const D7=(t,e,n)=>(r,i)=>i&&i[0]?i[0][t+"Size"]:rL(r)&&"getBBox"in r?r.getBBox()[e]:r[n],lne=D7("inline","width","offsetWidth"),cne=D7("block","height","offsetHeight");function une({target:t,borderBoxSize:e}){DA.get(t)?.forEach(n=>{n(t,{get width(){return lne(t,e)},get height(){return cne(t,e)}})})}function fne(t){t.forEach(une)}function dne(){typeof ResizeObserver>"u"||(NA=new ResizeObserver(fne))}function hne(t,e){NA||dne();const n=T7(t);return n.forEach(r=>{let i=DA.get(r);i||(i=new Set,DA.set(r,i)),i.add(e),NA?.observe(r)}),()=>{n.forEach(r=>{const i=DA.get(r);i?.delete(e),i?.size||NA?.unobserve(r)})}}const IA=new Set;let Lg;function pne(){Lg=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};IA.forEach(e=>e(t))},window.addEventListener("resize",Lg)}function mne(t){return IA.add(t),Lg||pne(),()=>{IA.delete(t),!IA.size&&typeof Lg=="function"&&(window.removeEventListener("resize",Lg),Lg=void 0)}}function iF(t,e){return typeof t=="function"?mne(t):hne(t,e)}function gne(t){return rL(t)&&t.tagName==="svg"}const vne=[...w7,Ci,kl],yne=t=>vne.find(A7(t)),aF=()=>({translate:0,scale:1,origin:0,originPoint:0}),kg=()=>({x:aF(),y:aF()}),sF=()=>({min:0,max:0}),Ui=()=>({x:sF(),y:sF()}),xne=new WeakMap;function oE(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function qx(t){return typeof t=="string"||Array.isArray(t)}const iL=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],aL=["initial",...iL];function lE(t){return oE(t.animate)||aL.some(e=>qx(t[e]))}function N7(t){return!!(lE(t)||t.variants)}function bne(t,e,n){for(const r in e){const i=e[r],a=n[r];if(Ia(i))t.addValue(r,i);else if(Ia(a))t.addValue(r,nv(i,{owner:t}));else if(a!==i)if(t.hasValue(r)){const s=t.getValue(r);s.liveStyle===!0?s.jump(i):s.hasAnimated||s.set(i)}else{const s=t.getStaticValue(r);t.addValue(r,nv(s!==void 0?s:i,{owner:t}))}}for(const r in n)e[r]===void 0&&t.removeValue(r);return e}const SN={current:null},I7={current:!1},_ne=typeof window<"u";function Sne(){if(I7.current=!0,!!_ne)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>SN.current=t.matches;t.addEventListener("change",e),e()}else SN.current=!1}const oF=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let KA={};function B7(t){KA=t}function Ane(){return KA}class wne{scrapeMotionValuesFromProps(e,n,r){return{}}constructor({parent:e,props:n,presenceContext:r,reducedMotionConfig:i,skipAnimations:a,blockInitialAnimation:s,visualState:o},c={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=KB,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,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 y=rs.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(I7.current||Sne(),this.shouldReduceMotion=SN.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),Td(this.notifyUpdate),Td(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const e in this.events)this.events[e].clear();for(const e in this.features){const n=this.features[e];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,n){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),n.accelerate&&Zte.has(e)&&this.current instanceof HTMLElement){const{factory:s,keyframes:o,times:c,ease:u,duration:h}=n.accelerate,p=new p7({element:this.current,name:e,keyframes:o,times:c,ease:u,duration:Ll(h)}),v=s(p);this.valueSubscriptions.set(e,()=>{v(),p.cancel()});return}const r=qv.has(e);r&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",s=>{this.latestValues[e]=s,this.props.onUpdate&&wr.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let a;typeof window<"u"&&window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,e,n)),this.valueSubscriptions.set(e,()=>{i(),a&&a(),n.owner&&n.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e="animation";for(e in KA){const n=KA[e];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[e]&&i&&r(this.props)&&(this.features[e]=new i(this)),this.features[e]){const a=this.features[e];a.isMounted?a.update():(a.mount(),a.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Ui()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,n){this.latestValues[e]=n}update(e,n){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(e)}addValue(e,n){const r=this.values.get(e);n!==r&&(r&&this.removeValue(e),this.bindToMotionValue(e,n),this.values.set(e,n),this.latestValues[e]=n.get())}removeValue(e){this.values.delete(e);const n=this.valueSubscriptions.get(e);n&&(n(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,n){if(this.props.values&&this.props.values[e])return this.props.values[e];let r=this.values.get(e);return r===void 0&&n!==void 0&&(r=nv(n===null?void 0:n,{owner:this}),this.addValue(e,r)),r}readValue(e,n){let r=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return r!=null&&(typeof r=="string"&&(IV(r)||LV(r))?r=parseFloat(r):!yne(r)&&kl.test(n)&&(r=E7(e,n)),this.setBaseTarget(e,Ia(r)?r.get():r)),Ia(r)?r.get():r}setBaseTarget(e,n){this.baseTarget[e]=n}getBaseTarget(e){const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const a=ZB(this.props,n,this.presenceContext?.custom);a&&(r=a[e])}if(n&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,e);return i!==void 0&&!Ia(i)?i:this.initialValues[e]!==void 0&&r===void 0?void 0:this.baseTarget[e]}on(e,n){return this.events[e]||(this.events[e]=new FB),this.events[e].add(n)}notify(e,...n){this.events[e]&&this.events[e].notify(...n)}scheduleRenderMicrotask(){tL.render(this.render)}}class L7 extends wne{constructor(){super(...arguments),this.KeyframeResolver=Jte}sortInstanceNodePosition(e,n){return e.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(e,n){const r=e.style;return r?r[n]:void 0}removeValueFromRenderState(e,{vars:n,style:r}){delete n[e],delete r[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;Ia(e)&&(this.childSubscription=e.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class Bd{constructor(e){this.isMounted=!1,this.node=e}update(){}}function k7({top:t,left:e,right:n,bottom:r}){return{x:{min:e,max:n},y:{min:t,max:r}}}function Mne({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function Ene(t,e){if(!e)return t;const n=e({x:t.left,y:t.top}),r=e({x:t.right,y:t.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function TC(t){return t===void 0||t===1}function AN({scale:t,scaleX:e,scaleY:n}){return!TC(t)||!TC(e)||!TC(n)}function Kh(t){return AN(t)||F7(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function F7(t){return lF(t.x)||lF(t.y)}function lF(t){return t&&t!=="0%"}function YA(t,e,n){const r=t-n,i=e*r;return n+i}function cF(t,e,n,r,i){return i!==void 0&&(t=YA(t,i,r)),YA(t,n,r)+e}function wN(t,e=0,n=1,r,i){t.min=cF(t.min,e,n,r,i),t.max=cF(t.max,e,n,r,i)}function U7(t,{x:e,y:n}){wN(t.x,e.translate,e.scale,e.originPoint),wN(t.y,n.translate,n.scale,n.originPoint)}const uF=.999999999999,fF=1.0000000000001;function Tne(t,e,n,r=!1){const i=n.length;if(!i)return;e.x=e.y=1;let a,s;for(let o=0;ouF&&(e.x=1),e.yuF&&(e.y=1)}function Fg(t,e){t.min=t.min+e,t.max=t.max+e}function dF(t,e,n,r,i=.5){const a=Kr(t.min,t.max,i);wN(t,e,n,a,r)}function Ug(t,e){dF(t.x,e.x,e.scaleX,e.scale,e.originX),dF(t.y,e.y,e.scaleY,e.scale,e.originY)}function j7(t,e){return k7(Ene(t.getBoundingClientRect(),e))}function Cne(t,e,n){const r=j7(t,n),{scroll:i}=e;return i&&(Fg(r.x,i.offset.x),Fg(r.y,i.offset.y)),r}const Rne={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},One=Wv.length;function Pne(t,e,n){let r="",i=!0;for(let a=0;a{if(!e.target)return t;if(typeof t=="string")if(Lt.test(t))t=parseFloat(t);else return t;const n=hF(t,e.target.x),r=hF(t,e.target.y);return`${n}% ${r}%`}},Dne={correct:(t,{treeScale:e,projectionDelta:n})=>{const r=t,i=kl.parse(t);if(i.length>5)return r;const a=kl.createTransformer(t),s=typeof i[0]!="number"?1:0,o=n.x.scale*e.x,c=n.y.scale*e.y;i[0+s]/=o,i[1+s]/=c;const u=Kr(o,c,.5);return typeof i[2+s]=="number"&&(i[2+s]/=u),typeof i[3+s]=="number"&&(i[3+s]/=u),a(i)}},MN={borderRadius:{...G0,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:G0,borderTopRightRadius:G0,borderBottomLeftRadius:G0,borderBottomRightRadius:G0,boxShadow:Dne};function G7(t,{layout:e,layoutId:n}){return qv.has(t)||t.startsWith("origin")||(e||n!==void 0)&&(!!MN[t]||t==="opacity")}function oL(t,e,n){const r=t.style,i=e?.style,a={};if(!r)return a;for(const s in r)(Ia(r[s])||i&&Ia(i[s])||G7(s,t)||n?.getValue(s)?.liveStyle!==void 0)&&(a[s]=r[s]);return a}function Nne(t){return window.getComputedStyle(t)}class Ine extends L7{constructor(){super(...arguments),this.type="html",this.renderInstance=z7}readValueFromInstance(e,n){if(qv.has(n))return this.projection?.isProjecting?uN(n):Qee(e,n);{const r=Nne(e),i=(JV(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(e,{transformPagePoint:n}){return j7(e,n)}build(e,n,r){sL(e,n,r.transformTemplate)}scrapeMotionValuesFromProps(e,n,r){return oL(e,n,r)}}const Bne={offset:"stroke-dashoffset",array:"stroke-dasharray"},Lne={offset:"strokeDashoffset",array:"strokeDasharray"};function kne(t,e,n=1,r=0,i=!0){t.pathLength=1;const a=i?Bne:Lne;t[a.offset]=`${-r}`,t[a.array]=`${e} ${n}`}const Fne=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function H7(t,{attrX:e,attrY:n,attrScale:r,pathLength:i,pathSpacing:a=1,pathOffset:s=0,...o},c,u,h){if(sL(t,o,u),c){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:p,style:v}=t;p.transform&&(v.transform=p.transform,delete p.transform),(v.transform||p.transformOrigin)&&(v.transformOrigin=p.transformOrigin??"50% 50%",delete p.transformOrigin),v.transform&&(v.transformBox=h?.transformBox??"fill-box",delete p.transformBox);for(const y of Fne)p[y]!==void 0&&(v[y]=p[y],delete p[y]);e!==void 0&&(p.x=e),n!==void 0&&(p.y=n),r!==void 0&&(p.scale=r),i!==void 0&&kne(p,i,a,s,!1)}const V7=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"]),W7=t=>typeof t=="string"&&t.toLowerCase()==="svg";function Une(t,e,n,r){z7(t,e,void 0,r);for(const i in e.attrs)t.setAttribute(V7.has(i)?i:QB(i),e.attrs[i])}function q7(t,e,n){const r=oL(t,e,n);for(const i in t)if(Ia(t[i])||Ia(e[i])){const a=Wv.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[a]=t[i]}return r}class jne extends L7{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Ui}getBaseTargetFromProps(e,n){return e[n]}readValueFromInstance(e,n){if(qv.has(n)){const r=M7(n);return r&&r.default||0}return n=V7.has(n)?n:QB(n),e.getAttribute(n)}scrapeMotionValuesFromProps(e,n,r){return q7(e,n,r)}build(e,n,r){H7(e,n,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(e,n,r,i){Une(e,n,r,i)}mount(e){this.isSVGTag=W7(e.tagName),super.mount(e)}}const zne=aL.length;function $7(t){if(!t)return;if(!t.isControllingVariants){const n=t.parent?$7(t.parent)||{}:{};return t.props.initial!==void 0&&(n.initial=t.props.initial),n}const e={};for(let n=0;nPromise.all(e.map(({animation:n,options:r})=>jte(t,n,r)))}function Wne(t){let e=Vne(t),n=pF(),r=!0;const i=c=>(u,h)=>{const p=Vg(t,h,c==="exit"?t.presenceContext?.custom:void 0);if(p){const{transition:v,transitionEnd:y,...b}=p;u={...u,...b,...y}}return u};function a(c){e=c(t)}function s(c){const{props:u}=t,h=$7(t.parent)||{},p=[],v=new Set;let y={},b=1/0;for(let _=0;_b&&P,B=!1;const U=Array.isArray(T)?T:[T];let z=U.reduce(i(S),{});R===!1&&(z={});const{prevResolvedValues:q={}}=E,W={...q,...z},ee=$=>{k=!0,v.has($)&&(B=!0,v.delete($)),E.needsAnimating[$]=!0;const Y=t.getValue($);Y&&(Y.liveStyle=!1)};for(const $ in W){const Y=z[$],ie=q[$];if(y.hasOwnProperty($))continue;let de=!1;gN(Y)&&gN(ie)?de=!X7(Y,ie):de=Y!==ie,de?Y!=null?ee($):v.add($):Y!==void 0&&v.has($)?ee($):E.protectedKeys[$]=!0}E.prevProp=T,E.prevResolvedValues=z,E.isActive&&(y={...y,...z}),r&&t.blockInitialAnimation&&(k=!1);const Q=D&&I;k&&(!Q||B)&&p.push(...U.map($=>{const Y={type:S};if(typeof $=="string"&&r&&!Q&&t.manuallyAnimateOnMount&&t.parent){const{parent:ie}=t,de=Vg(ie,$);if(ie.enteringChildren&&de){const{delayChildren:X}=de.transition||{};Y.delay=g7(ie.enteringChildren,t,X)}}return{animation:$,options:Y}}))}if(v.size){const _={};if(typeof u.initial!="boolean"){const S=Vg(t,Array.isArray(u.initial)?u.initial[0]:u.initial);S&&S.transition&&(_.transition=S.transition)}v.forEach(S=>{const E=t.getBaseTarget(S),T=t.getValue(S);T&&(T.liveStyle=!0),_[S]=E??null}),p.push({animation:_})}let w=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!t.manuallyAnimateOnMount&&(w=!1),r=!1,w?e(p):Promise.resolve()}function o(c,u){if(n[c].isActive===u)return Promise.resolve();t.variantChildren?.forEach(p=>p.animationState?.setActive(c,u)),n[c].isActive=u;const h=s(c);for(const p in n)n[p].protectedKeys={};return h}return{animateChanges:s,setActive:o,setAnimateFunction:a,getState:()=>n,reset:()=>{n=pF()}}}function qne(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!X7(e,t):!1}function Ph(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function pF(){return{animate:Ph(!0),whileInView:Ph(),whileHover:Ph(),whileTap:Ph(),whileDrag:Ph(),whileFocus:Ph(),exit:Ph()}}function mF(t,e){t.min=e.min,t.max=e.max}function Sl(t,e){mF(t.x,e.x),mF(t.y,e.y)}function gF(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}const K7=1e-4,$ne=1-K7,Xne=1+K7,Y7=.01,Kne=0-Y7,Yne=0+Y7;function is(t){return t.max-t.min}function Jne(t,e,n){return Math.abs(t-e)<=n}function vF(t,e,n,r=.5){t.origin=r,t.originPoint=Kr(e.min,e.max,t.origin),t.scale=is(n)/is(e),t.translate=Kr(n.min,n.max,t.origin)-t.originPoint,(t.scale>=$ne&&t.scale<=Xne||isNaN(t.scale))&&(t.scale=1),(t.translate>=Kne&&t.translate<=Yne||isNaN(t.translate))&&(t.translate=0)}function wx(t,e,n,r){vF(t.x,e.x,n.x,r?r.originX:void 0),vF(t.y,e.y,n.y,r?r.originY:void 0)}function yF(t,e,n){t.min=n.min+e.min,t.max=t.min+is(e)}function Zne(t,e,n){yF(t.x,e.x,n.x),yF(t.y,e.y,n.y)}function xF(t,e,n){t.min=e.min-n.min,t.max=t.min+is(e)}function JA(t,e,n){xF(t.x,e.x,n.x),xF(t.y,e.y,n.y)}function bF(t,e,n,r,i){return t-=e,t=YA(t,1/n,r),i!==void 0&&(t=YA(t,1/i,r)),t}function Qne(t,e=0,n=1,r=.5,i,a=t,s=t){if(Bc.test(e)&&(e=parseFloat(e),e=Kr(s.min,s.max,e/100)-s.min),typeof e!="number")return;let o=Kr(a.min,a.max,r);t===a&&(o-=e),t.min=bF(t.min,e,n,o,i),t.max=bF(t.max,e,n,o,i)}function _F(t,e,[n,r,i],a,s){Qne(t,e[n],e[r],e[i],e.scale,a,s)}const ere=["x","scaleX","originX"],tre=["y","scaleY","originY"];function SF(t,e,n,r){_F(t.x,e,ere,n?n.x:void 0,r?r.x:void 0),_F(t.y,e,tre,n?n.y:void 0,r?r.y:void 0)}function AF(t){return t.translate===0&&t.scale===1}function J7(t){return AF(t.x)&&AF(t.y)}function wF(t,e){return t.min===e.min&&t.max===e.max}function nre(t,e){return wF(t.x,e.x)&&wF(t.y,e.y)}function MF(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function Z7(t,e){return MF(t.x,e.x)&&MF(t.y,e.y)}function EF(t){return is(t.x)/is(t.y)}function TF(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}function Tc(t){return[t("x"),t("y")]}function rre(t,e,n){let r="";const i=t.x.translate/e.x,a=t.y.translate/e.y,s=n?.z||0;if((i||a||s)&&(r=`translate3d(${i}px, ${a}px, ${s}px) `),(e.x!==1||e.y!==1)&&(r+=`scale(${1/e.x}, ${1/e.y}) `),n){const{transformPerspective:u,rotate:h,rotateX:p,rotateY:v,skewX:y,skewY:b}=n;u&&(r=`perspective(${u}px) ${r}`),h&&(r+=`rotate(${h}deg) `),p&&(r+=`rotateX(${p}deg) `),v&&(r+=`rotateY(${v}deg) `),y&&(r+=`skewX(${y}deg) `),b&&(r+=`skewY(${b}deg) `)}const o=t.x.scale*e.x,c=t.y.scale*e.y;return(o!==1||c!==1)&&(r+=`scale(${o}, ${c})`),r||"none"}const Q7=["TopLeft","TopRight","BottomLeft","BottomRight"],ire=Q7.length,CF=t=>typeof t=="string"?parseFloat(t):t,RF=t=>typeof t=="number"||Lt.test(t);function are(t,e,n,r,i,a){i?(t.opacity=Kr(0,n.opacity??1,sre(r)),t.opacityExit=Kr(e.opacity??1,0,ore(r))):a&&(t.opacity=Kr(e.opacity??1,n.opacity??1,r));for(let s=0;sre?1:n(Hx(t,e,r))}function lre(t,e,n){const r=Ia(t)?t:nv(t);return r.start(JB("",r,e,n)),r.animation}function $x(t,e,n,r={passive:!0}){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n)}const cre=(t,e)=>t.depth-e.depth;class ure{constructor(){this.children=[],this.isDirty=!1}add(e){LB(this.children,e),this.isDirty=!0}remove(e){WA(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(cre),this.isDirty=!1,this.children.forEach(e)}}function fre(t,e){const n=rs.now(),r=({timestamp:i})=>{const a=i-n;a>=e&&(Td(r),t(a-e))};return wr.setup(r,!0),()=>Td(r)}function BA(t){return Ia(t)?t.get():t}class dre{constructor(){this.members=[]}add(e){LB(this.members,e);for(let n=this.members.length-1;n>=0;n--){const r=this.members[n];if(r===e||r===this.lead||r===this.prevLead)continue;const i=r.instance;i&&i.isConnected===!1&&r.isPresent!==!1&&!r.snapshot&&WA(this.members,r)}e.scheduleRender()}remove(e){if(WA(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(e){const n=this.members.findIndex(i=>e===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const a=this.members[i],s=a.instance;if(a.isPresent!==!1&&(!s||s.isConnected!==!1)){r=a;break}}return r?(this.promote(r),!0):!1}promote(e,n){const r=this.lead;if(e!==r&&(this.prevLead=r,this.lead=e,e.show(),r)){r.instance&&r.scheduleRender(),e.scheduleRender();const i=r.options.layoutDependency,a=e.options.layoutDependency;if(!(i!==void 0&&a!==void 0&&i===a)){const c=r.instance;c&&c.isConnected===!1&&!r.snapshot||(e.resumeFrom=r,n&&(e.resumeFrom.preserveOpacity=!0),r.snapshot&&(e.snapshot=r.snapshot,e.snapshot.latestValues=r.animationValues||r.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0))}const{crossfade:o}=e.options;o===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(e=>{const{options:n,resumingFrom:r}=e;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}const LA={hasAnimatedSinceResize:!0,hasEverUpdated:!1},CC=["","X","Y","Z"],hre=1e3;let pre=0;function RC(t,e,n,r){const{latestValues:i}=e;i[t]&&(n[t]=i[t],e.setStaticValue(t,0),r&&(r[t]=0))}function tW(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:e}=t.options;if(!e)return;const n=_7(e);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:a}=t.options;window.MotionCancelOptimisedAnimation(n,"transform",wr,!(i||a))}const{parent:r}=t;r&&!r.hasCheckedOptimisedAppear&&tW(r)}function nW({attachResizeListener:t,defaultParent:e,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(s={},o=e?.()){this.id=pre++,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(vre),this.nodes.forEach(_re),this.nodes.forEach(Sre),this.nodes.forEach(yre)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=s,this.root=o?o.root||o:this,this.path=o?[...o.path,o]:[],this.parent=o,this.depth=o?o.depth+1:0;for(let c=0;cthis.root.updateBlockedByResize=!1;wr.read(()=>{p=window.innerWidth}),t(s,()=>{const y=window.innerWidth;y!==p&&(p=y,this.root.updateBlockedByResize=!0,h&&h(),h=fre(v,250),LA.hasAnimatedSinceResize&&(LA.hasAnimatedSinceResize=!1,this.nodes.forEach(NF)))})}o&&this.root.registerSharedNode(o,this),this.options.animate!==!1&&u&&(o||c)&&this.addEventListener("didUpdate",({delta:h,hasLayoutChanged:p,hasRelativeLayoutChanged:v,layout:y})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const b=this.options.transition||u.getDefaultTransition()||Tre,{onLayoutAnimationStart:w,onLayoutAnimationComplete:_}=u.getProps(),S=!this.targetLayout||!Z7(this.targetLayout,y),E=!p&&v;if(this.options.layoutRoot||this.resumeFrom||E||p&&(S||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const T={...YB(b,"layout"),onPlay:w,onComplete:_};(u.shouldReduceMotion||this.options.layoutRoot)&&(T.delay=0,T.type=!1),this.startAnimation(T),this.setAnimationOrigin(h,E)}else p||NF(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=y})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const s=this.getStack();s&&s.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Td(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(Are),this.animationId++)}getTransformTemplate(){const{visualElement:s}=this.options;return s&&s.getProps().transformTemplate}willUpdate(s=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&tW(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let h=0;h{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!is(this.snapshot.measuredBox.x)&&!is(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 c=0;c{const R=P/1e3;IF(p.x,s.x,R),IF(p.y,s.y,R),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(JA(v,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Mre(this.relativeTarget,this.relativeTargetOrigin,v,R),T&&nre(this.relativeTarget,T)&&(this.isProjectionDirty=!1),T||(T=Ui()),Sl(T,this.relativeTarget)),w&&(this.animationValues=h,are(h,u,this.latestValues,R,E,S)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=R},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(s){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Td(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=wr.update(()=>{LA.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=nv(0)),this.currentAnimation=lre(this.motionValue,[0,1e3],{...s,velocity:0,isSync:!0,onUpdate:o=>{this.mixTargetDelta(o),s.onUpdate&&s.onUpdate(o)},onStop:()=>{},onComplete:()=>{s.onComplete&&s.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 s=this.getStack();s&&s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(hre),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:o,target:c,layout:u,latestValues:h}=s;if(!(!o||!c||!u)){if(this!==s&&this.layout&&u&&rW(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Ui();const p=is(this.layout.layoutBox.x);c.x.min=s.target.x.min,c.x.max=c.x.min+p;const v=is(this.layout.layoutBox.y);c.y.min=s.target.y.min,c.y.max=c.y.min+v}Sl(o,c),Ug(o,h),wx(this.projectionDeltaWithTransform,this.layoutCorrected,o,h)}}registerSharedNode(s,o){this.sharedNodes.has(s)||this.sharedNodes.set(s,new dre),this.sharedNodes.get(s).add(o);const u=o.options.initialPromotionConfig;o.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(o):void 0})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){const{layoutId:s}=this.options;return s?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:s}=this.options;return s?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:o,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),s&&(this.projectionDelta=void 0,this.needsReset=!0),o&&this.setOptions({transition:o})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}resetSkewAndRotation(){const{visualElement:s}=this.options;if(!s)return;let o=!1;const{latestValues:c}=s;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(o=!0),!o)return;const u={};c.z&&RC("z",s,u,this.animationValues);for(let h=0;hs.currentAnimation?.stop()),this.root.nodes.forEach(PF),this.root.sharedNodes.clear()}}}function mre(t){t.updateLayout()}function gre(t){const e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:r}=t.layout,{animationType:i}=t.options,a=e.source!==t.layout.source;i==="size"?Tc(h=>{const p=a?e.measuredBox[h]:e.layoutBox[h],v=is(p);p.min=n[h].min,p.max=p.min+v}):rW(i,e.layoutBox,n)&&Tc(h=>{const p=a?e.measuredBox[h]:e.layoutBox[h],v=is(n[h]);p.max=p.min+v,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[h].max=t.relativeTarget[h].min+v)});const s=kg();wx(s,n,e.layoutBox);const o=kg();a?wx(o,t.applyTransform(r,!0),e.measuredBox):wx(o,n,e.layoutBox);const c=!J7(s);let u=!1;if(!t.resumeFrom){const h=t.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:p,layout:v}=h;if(p&&v){const y=Ui();JA(y,e.layoutBox,p.layoutBox);const b=Ui();JA(b,n,v.layoutBox),Z7(y,b)||(u=!0),h.options.layoutRoot&&(t.relativeTarget=b,t.relativeTargetOrigin=y,t.relativeParent=h)}}}t.notifyListeners("didUpdate",{layout:n,snapshot:e,delta:o,layoutDelta:s,hasLayoutChanged:c,hasRelativeLayoutChanged:u})}else if(t.isLead()){const{onExitComplete:n}=t.options;n&&n()}t.options.transition=void 0}function vre(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function yre(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function xre(t){t.clearSnapshot()}function PF(t){t.clearMeasurements()}function DF(t){t.isLayoutDirty=!1}function bre(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function NF(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function _re(t){t.resolveTargetDelta()}function Sre(t){t.calcProjection()}function Are(t){t.resetSkewAndRotation()}function wre(t){t.removeLeadSnapshot()}function IF(t,e,n){t.translate=Kr(e.translate,0,n),t.scale=Kr(e.scale,1,n),t.origin=e.origin,t.originPoint=e.originPoint}function BF(t,e,n,r){t.min=Kr(e.min,n.min,r),t.max=Kr(e.max,n.max,r)}function Mre(t,e,n,r){BF(t.x,e.x,n.x,r),BF(t.y,e.y,n.y,r)}function Ere(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const Tre={duration:.45,ease:[.4,0,.1,1]},LF=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),kF=LF("applewebkit/")&&!LF("chrome/")?Math.round:Go;function FF(t){t.min=kF(t.min),t.max=kF(t.max)}function Cre(t){FF(t.x),FF(t.y)}function rW(t,e,n){return t==="position"||t==="preserve-aspect"&&!Jne(EF(e),EF(n),.2)}function Rre(t){return t!==t.root&&t.scroll?.wasRoot}const Ore=nW({attachResizeListener:(t,e)=>$x(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),OC={current:void 0},iW=nW({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!OC.current){const t=new Ore({});t.mount(window),t.setOptions({layoutScroll:!0}),OC.current=t}return OC.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),lL=j.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function UF(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function Pre(...t){return e=>{let n=!1;const r=t.map(i=>{const a=UF(i,e);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let i=0;i{const{width:v,height:y,top:b,left:w,right:_,bottom:S}=c.current;if(e||a===!1||!o.current||!v||!y)return;const E=n==="left"?`left: ${w}`:`right: ${_}`,T=r==="bottom"?`bottom: ${S}`:`top: ${b}`;o.current.dataset.motionPopId=s;const P=document.createElement("style");u&&(P.nonce=u);const R=i??document.head;return R.appendChild(P),P.sheet&&P.sheet.insertRule(` - [data-motion-pop-id="${s}"] { - position: absolute !important; - width: ${v}px !important; - height: ${y}px !important; - ${E}px !important; - ${T}px !important; - } - `),()=>{R.contains(P)&&R.removeChild(P)}},[e]),M.jsx(Nre,{isPresent:e,childRef:o,sizeRef:c,pop:a,children:a===!1?t:j.cloneElement(t,{ref:p})})}const Bre=({children:t,initial:e,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:s,anchorX:o,anchorY:c,root:u})=>{const h=BB(Lre),p=j.useId();let v=!0,y=j.useMemo(()=>(v=!1,{id:p,initial:e,isPresent:n,custom:i,onExitComplete:b=>{h.set(b,!0);for(const w of h.values())if(!w)return;r&&r()},register:b=>(h.set(b,!1),()=>h.delete(b))}),[n,h,r]);return a&&v&&(y={...y}),j.useMemo(()=>{h.forEach((b,w)=>h.set(w,!1))},[n]),j.useEffect(()=>{!n&&!h.size&&r&&r()},[n]),t=M.jsx(Ire,{pop:s==="popLayout",isPresent:n,anchorX:o,anchorY:c,root:u,children:t}),M.jsx(sE.Provider,{value:y,children:t})};function Lre(){return new Map}function aW(t=!0){const e=j.useContext(sE);if(e===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=e,a=j.useId();j.useEffect(()=>{if(t)return i(a)},[t]);const s=j.useCallback(()=>t&&r&&r(a),[a,r,t]);return!n&&r?[!1,s]:[!0]}const dS=t=>t.key||"";function jF(t){const e=[];return j.Children.forEach(t,n=>{j.isValidElement(n)&&e.push(n)}),e}const Bs=({children:t,custom:e,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:a="sync",propagate:s=!1,anchorX:o="left",anchorY:c="top",root:u})=>{const[h,p]=aW(s),v=j.useMemo(()=>jF(t),[t]),y=s&&!h?[]:v.map(dS),b=j.useRef(!0),w=j.useRef(v),_=BB(()=>new Map),S=j.useRef(new Set),[E,T]=j.useState(v),[P,R]=j.useState(v);NV(()=>{b.current=!1,w.current=v;for(let k=0;k{const B=dS(k),U=s&&!h?!1:v===P||y.includes(B),z=()=>{if(S.current.has(B))return;if(S.current.add(B),_.has(B))_.set(B,!0);else return;let q=!0;_.forEach(W=>{W||(q=!1)}),q&&(I?.(),R(w.current),s&&p?.(),r&&r())};return M.jsx(Bre,{isPresent:U,initial:!b.current||n?void 0:!1,custom:e,presenceAffectsLayout:i,mode:a,root:u,onExitComplete:U?void 0:z,anchorX:o,anchorY:c,children:k},B)})})},sW=j.createContext({strict:!1}),zF={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"]};let GF=!1;function kre(){if(GF)return;const t={};for(const e in zF)t[e]={isEnabled:n=>zF[e].some(r=>!!n[r])};B7(t),GF=!0}function oW(){return kre(),Ane()}function Fre(t){const e=oW();for(const n in t)e[n]={...e[n],...t[n]};B7(e)}const Ure=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","propagate","ignoreStrict","viewport"]);function ZA(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||Ure.has(t)}let lW=t=>!ZA(t);function jre(t){typeof t=="function"&&(lW=e=>e.startsWith("on")?!ZA(e):t(e))}try{jre(require("@emotion/is-prop-valid").default)}catch{}function zre(t,e,n){const r={};for(const i in t)i==="values"&&typeof t.values=="object"||(lW(i)||n===!0&&ZA(i)||!e&&!ZA(i)||t.draggable&&i.startsWith("onDrag"))&&(r[i]=t[i]);return r}const cE=j.createContext({});function Gre(t,e){if(lE(t)){const{initial:n,animate:r}=t;return{initial:n===!1||qx(n)?n:void 0,animate:qx(r)?r:void 0}}return t.inherit!==!1?e:{}}function Hre(t){const{initial:e,animate:n}=Gre(t,j.useContext(cE));return j.useMemo(()=>({initial:e,animate:n}),[HF(e),HF(n)])}function HF(t){return Array.isArray(t)?t.join(" "):t}const cL=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function cW(t,e,n){for(const r in e)!Ia(e[r])&&!G7(r,n)&&(t[r]=e[r])}function Vre({transformTemplate:t},e){return j.useMemo(()=>{const n=cL();return sL(n,e,t),Object.assign({},n.vars,n.style)},[e])}function Wre(t,e){const n=t.style||{},r={};return cW(r,n,t),Object.assign(r,Vre(t,e)),r}function qre(t,e){const n={},r=Wre(t,e);return t.drag&&t.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(n.tabIndex=0),n.style=r,n}const uW=()=>({...cL(),attrs:{}});function $re(t,e,n,r){const i=j.useMemo(()=>{const a=uW();return H7(a,e,W7(r),t.transformTemplate,t.style),{...a.attrs,style:{...a.style}}},[e]);if(t.style){const a={};cW(a,t.style,t),i.style={...a,...i.style}}return i}const Xre=["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 uL(t){return typeof t!="string"||t.includes("-")?!1:!!(Xre.indexOf(t)>-1||/[A-Z]/u.test(t))}function Kre(t,e,n,{latestValues:r},i,a=!1,s){const c=(s??uL(t)?$re:qre)(e,r,i,t),u=zre(e,typeof t=="string",a),h=t!==j.Fragment?{...u,...c,ref:n}:{},{children:p}=e,v=j.useMemo(()=>Ia(p)?p.get():p,[p]);return j.createElement(t,{...h,children:v})}function Yre({scrapeMotionValuesFromProps:t,createRenderState:e},n,r,i){return{latestValues:Jre(n,r,i,t),renderState:e()}}function Jre(t,e,n,r){const i={},a=r(t,{});for(const v in a)i[v]=BA(a[v]);let{initial:s,animate:o}=t;const c=lE(t),u=N7(t);e&&u&&!c&&t.inherit!==!1&&(s===void 0&&(s=e.initial),o===void 0&&(o=e.animate));let h=n?n.initial===!1:!1;h=h||s===!1;const p=h?o:s;if(p&&typeof p!="boolean"&&!oE(p)){const v=Array.isArray(p)?p:[p];for(let y=0;y(e,n)=>{const r=j.useContext(cE),i=j.useContext(sE),a=()=>Yre(t,e,r,i);return n?a():BB(a)},Zre=fW({scrapeMotionValuesFromProps:oL,createRenderState:cL}),Qre=fW({scrapeMotionValuesFromProps:q7,createRenderState:uW}),eie=Symbol.for("motionComponentSymbol");function tie(t,e,n){const r=j.useRef(n);j.useInsertionEffect(()=>{r.current=n});const i=j.useRef(null);return j.useCallback(a=>{a&&t.onMount?.(a),e&&(a?e.mount(a):e.unmount());const s=r.current;if(typeof s=="function")if(a){const o=s(a);typeof o=="function"&&(i.current=o)}else i.current?(i.current(),i.current=null):s(a);else s&&(s.current=a)},[e])}const dW=j.createContext({});function Ig(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function nie(t,e,n,r,i,a){const{visualElement:s}=j.useContext(cE),o=j.useContext(sW),c=j.useContext(sE),u=j.useContext(lL),h=u.reducedMotion,p=u.skipAnimations,v=j.useRef(null),y=j.useRef(!1);r=r||o.renderer,!v.current&&r&&(v.current=r(t,{visualState:e,parent:s,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:h,skipAnimations:p,isSVG:a}),y.current&&v.current&&(v.current.manuallyAnimateOnMount=!0));const b=v.current,w=j.useContext(dW);b&&!b.projection&&i&&(b.type==="html"||b.type==="svg")&&rie(v.current,n,i,w);const _=j.useRef(!1);j.useInsertionEffect(()=>{b&&_.current&&b.update(n,c)});const S=n[b7],E=j.useRef(!!S&&!window.MotionHandoffIsComplete?.(S)&&window.MotionHasOptimisedAnimation?.(S));return NV(()=>{y.current=!0,b&&(_.current=!0,window.MotionIsMounted=!0,b.updateFeatures(),b.scheduleRenderMicrotask(),E.current&&b.animationState&&b.animationState.animateChanges())}),j.useEffect(()=>{b&&(!E.current&&b.animationState&&b.animationState.animateChanges(),E.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(S)}),E.current=!1),b.enteringChildren=void 0)}),b}function rie(t,e,n,r){const{layoutId:i,layout:a,drag:s,dragConstraints:o,layoutScroll:c,layoutRoot:u,layoutCrossfade:h}=e;t.projection=new n(t.latestValues,e["data-framer-portal-id"]?void 0:hW(t.parent)),t.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!s||o&&Ig(o),visualElement:t,animationType:typeof a=="string"?a:"both",initialPromotionConfig:r,crossfade:h,layoutScroll:c,layoutRoot:u})}function hW(t){if(t)return t.options.allowProjection!==!1?t.projection:hW(t.parent)}function PC(t,{forwardMotionProps:e=!1,type:n}={},r,i){r&&Fre(r);const a=n?n==="svg":uL(t),s=a?Qre:Zre;function o(u,h){let p;const v={...j.useContext(lL),...u,layoutId:iie(u)},{isStatic:y}=v,b=Hre(u),w=s(u,y);if(!y&&DV){aie();const _=sie(v);p=_.MeasureLayout,b.visualElement=nie(t,w,v,i,_.ProjectionNode,a)}return M.jsxs(cE.Provider,{value:b,children:[p&&b.visualElement?M.jsx(p,{visualElement:b.visualElement,...v}):null,Kre(t,u,tie(w,b.visualElement,h),w,y,e,a)]})}o.displayName=`motion.${typeof t=="string"?t:`create(${t.displayName??t.name??""})`}`;const c=j.forwardRef(o);return c[eie]=t,c}function iie({layoutId:t}){const e=j.useContext(IB).id;return e&&t!==void 0?e+"-"+t:t}function aie(t,e){j.useContext(sW).strict}function sie(t){const e=oW(),{drag:n,layout:r}=e;if(!n&&!r)return{};const i={...n,...r};return{MeasureLayout:n?.isEnabled(t)||r?.isEnabled(t)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function oie(t,e){if(typeof Proxy>"u")return PC;const n=new Map,r=(a,s)=>PC(a,s,t,e),i=(a,s)=>r(a,s);return new Proxy(i,{get:(a,s)=>s==="create"?r:(n.has(s)||n.set(s,PC(s,void 0,t,e)),n.get(s))})}const lie=(t,e)=>e.isSVG??uL(t)?new jne(e):new Ine(e,{allowProjection:t!==j.Fragment});class cie extends Bd{constructor(e){super(e),e.animationState||(e.animationState=Wne(e))}updateAnimationControlsSubscription(){const{animate:e}=this.node.getProps();oE(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:e}=this.node.getProps(),{animate:n}=this.node.prevProps||{};e!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let uie=0;class fie extends Bd{constructor(){super(...arguments),this.id=uie++}update(){if(!this.node.presenceContext)return;const{isPresent:e,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===r)return;const i=this.node.animationState.setActive("exit",!e);n&&!e&&i.then(()=>{n(this.id)})}mount(){const{register:e,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),e&&(this.unmount=e(this.id))}unmount(){}}const die={animation:{Feature:cie},exit:{Feature:fie}};function Yb(t){return{point:{x:t.pageX,y:t.pageY}}}const hie=t=>e=>nL(e)&&t(e,Yb(e));function Mx(t,e,n,r){return $x(t,e,hie(n),r)}const pW=({current:t})=>t?t.ownerDocument.defaultView:null,VF=(t,e)=>Math.abs(t-e);function pie(t,e){const n=VF(t.x,e.x),r=VF(t.y,e.y);return Math.sqrt(n**2+r**2)}const WF=new Set(["auto","scroll"]);class mW{constructor(e,n,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:a=!1,distanceThreshold:s=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=y=>{this.handleScroll(y.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const y=NC(this.lastMoveEventInfo,this.history),b=this.startEvent!==null,w=pie(y.offset,{x:0,y:0})>=this.distanceThreshold;if(!b&&!w)return;const{point:_}=y,{timestamp:S}=da;this.history.push({..._,timestamp:S});const{onStart:E,onMove:T}=this.handlers;b||(E&&E(this.lastMoveEvent,y),this.startEvent=this.lastMoveEvent),T&&T(this.lastMoveEvent,y)},this.handlePointerMove=(y,b)=>{this.lastMoveEvent=y,this.lastMoveEventInfo=DC(b,this.transformPagePoint),wr.update(this.updatePoint,!0)},this.handlePointerUp=(y,b)=>{this.end();const{onEnd:w,onSessionEnd:_,resumeAnimation:S}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&S&&S(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const E=NC(y.type==="pointercancel"?this.lastMoveEventInfo:DC(b,this.transformPagePoint),this.history);this.startEvent&&w&&w(y,E),_&&_(y,E)},!nL(e))return;this.dragSnapToOrigin=a,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=s,this.contextWindow=i||window;const c=Yb(e),u=DC(c,this.transformPagePoint),{point:h}=u,{timestamp:p}=da;this.history=[{...h,timestamp:p}];const{onSessionStart:v}=n;v&&v(e,NC(u,this.history)),this.removeListeners=$b(Mx(this.contextWindow,"pointermove",this.handlePointerMove),Mx(this.contextWindow,"pointerup",this.handlePointerUp),Mx(this.contextWindow,"pointercancel",this.handlePointerUp)),o&&this.startScrollTracking(o)}startScrollTracking(e){let n=e.parentElement;for(;n;){const r=getComputedStyle(n);(WF.has(r.overflowX)||WF.has(r.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(e){const n=this.scrollPositions.get(e);if(!n)return;const r=e===window,i=r?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},a={x:i.x-n.x,y:i.y-n.y};a.x===0&&a.y===0||(r?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=a.x,this.lastMoveEventInfo.point.y+=a.y):this.history.length>0&&(this.history[0].x-=a.x,this.history[0].y-=a.y),this.scrollPositions.set(e,i),wr.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Td(this.updatePoint)}}function DC(t,e){return e?{point:e(t.point)}:t}function qF(t,e){return{x:t.x-e.x,y:t.y-e.y}}function NC({point:t},e){return{point:t,delta:qF(t,gW(e)),offset:qF(t,mie(e)),velocity:gie(e,.1)}}function mie(t){return t[0]}function gW(t){return t[t.length-1]}function gie(t,e){if(t.length<2)return{x:0,y:0};let n=t.length-1,r=null;const i=gW(t);for(;n>=0&&(r=t[n],!(i.timestamp-r.timestamp>Ll(e)));)n--;if(!r)return{x:0,y:0};r===t[0]&&t.length>2&&i.timestamp-r.timestamp>Ll(e)*2&&(r=t[1]);const a=Uo(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};const s={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function vie(t,{min:e,max:n},r){return e!==void 0&&tn&&(t=r?Kr(n,t,r.max):Math.min(t,n)),t}function $F(t,e,n){return{min:e!==void 0?t.min+e:void 0,max:n!==void 0?t.max+n-(t.max-t.min):void 0}}function yie(t,{top:e,left:n,bottom:r,right:i}){return{x:$F(t.x,n,i),y:$F(t.y,e,r)}}function XF(t,e){let n=e.min-t.min,r=e.max-t.max;return e.max-e.minr?n=Hx(e.min,e.max-r,t.min):r>i&&(n=Hx(t.min,t.max-i,e.min)),jc(0,1,n)}function _ie(t,e){const n={};return e.min!==void 0&&(n.min=e.min-t.min),e.max!==void 0&&(n.max=e.max-t.min),n}const EN=.35;function Sie(t=EN){return t===!1?t=0:t===!0&&(t=EN),{x:KF(t,"left","right"),y:KF(t,"top","bottom")}}function KF(t,e,n){return{min:YF(t,e),max:YF(t,n)}}function YF(t,e){return typeof t=="number"?t:t[e]||0}const Aie=new WeakMap;class wie{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Ui(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const a=p=>{n&&this.snapToCursor(Yb(p).point),this.stopAnimation()},s=(p,v)=>{const{drag:y,dragPropagation:b,onDragStart:w}=this.getProps();if(y&&!b&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Qte(y),!this.openDragLock))return;this.latestPointerEvent=p,this.latestPanInfo=v,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Tc(S=>{let E=this.getAxisMotionValue(S).get()||0;if(Bc.test(E)){const{projection:T}=this.visualElement;if(T&&T.layout){const P=T.layout.layoutBox[S];P&&(E=is(P)*(parseFloat(E)/100))}}this.originPoint[S]=E}),w&&wr.update(()=>w(p,v),!1,!0),vN(this.visualElement,"transform");const{animationState:_}=this.visualElement;_&&_.setActive("whileDrag",!0)},o=(p,v)=>{this.latestPointerEvent=p,this.latestPanInfo=v;const{dragPropagation:y,dragDirectionLock:b,onDirectionLock:w,onDrag:_}=this.getProps();if(!y&&!this.openDragLock)return;const{offset:S}=v;if(b&&this.currentDirection===null){this.currentDirection=Eie(S),this.currentDirection!==null&&w&&w(this.currentDirection);return}this.updateAxis("x",v.point,S),this.updateAxis("y",v.point,S),this.visualElement.render(),_&&wr.update(()=>_(p,v),!1,!0)},c=(p,v)=>{this.latestPointerEvent=p,this.latestPanInfo=v,this.stop(p,v),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>{const{dragSnapToOrigin:p}=this.getProps();(p||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:h}=this.getProps();this.panSession=new mW(e,{onSessionStart:a,onStart:s,onMove:o,onSessionEnd:c,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:h,distanceThreshold:r,contextWindow:pW(this.visualElement),element:this.visualElement.current})}stop(e,n){const r=e||this.latestPointerEvent,i=n||this.latestPanInfo,a=this.isDragging;if(this.cancel(),!a||!i||!r)return;const{velocity:s}=i;this.startAnimation(s);const{onDragEnd:o}=this.getProps();o&&wr.postRender(()=>o(r,i))}cancel(){this.isDragging=!1;const{projection:e,animationState:n}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,n,r){const{drag:i}=this.getProps();if(!r||!hS(e,i,this.currentDirection))return;const a=this.getAxisMotionValue(e);let s=this.originPoint[e]+r[e];this.constraints&&this.constraints[e]&&(s=vie(s,this.constraints[e],this.elastic[e])),a.set(s)}resolveConstraints(){const{dragConstraints:e,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;e&&Ig(e)?this.constraints||(this.constraints=this.resolveRefConstraints()):e&&r?this.constraints=yie(r.layoutBox,e):this.constraints=!1,this.elastic=Sie(n),i!==this.constraints&&!Ig(e)&&r&&this.constraints&&!this.hasMutatedConstraints&&Tc(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=_ie(r.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:e,onMeasureDragConstraints:n}=this.getProps();if(!e||!Ig(e))return!1;const r=e.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const a=Cne(r,i.root,this.visualElement.getTransformPagePoint());let s=xie(i.layout.layoutBox,a);if(n){const o=n(Mne(s));this.hasMutatedConstraints=!!o,o&&(s=k7(o))}return s}startAnimation(e){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:a,dragSnapToOrigin:s,onDragTransitionEnd:o}=this.getProps(),c=this.constraints||{},u=Tc(h=>{if(!hS(h,n,this.currentDirection))return;let p=c&&c[h]||{};s&&(p={min:0,max:0});const v=i?200:1e6,y=i?40:1e7,b={type:"inertia",velocity:r?e[h]:0,bounceStiffness:v,bounceDamping:y,timeConstant:750,restDelta:1,restSpeed:10,...a,...p};return this.startAxisValueAnimation(h,b)});return Promise.all(u).then(o)}startAxisValueAnimation(e,n){const r=this.getAxisMotionValue(e);return vN(this.visualElement,e),r.start(JB(e,r,0,n,this.visualElement,!1))}stopAnimation(){Tc(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){const n=`_drag${e.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(e,(r.initial?r.initial[e]:void 0)||0)}snapToCursor(e){Tc(n=>{const{drag:r}=this.getProps();if(!hS(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,a=this.getAxisMotionValue(n);if(i&&i.layout){const{min:s,max:o}=i.layout.layoutBox[n],c=a.get()||0;a.set(e[n]-Kr(s,o,.5)+c)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:e,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Ig(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Tc(s=>{const o=this.getAxisMotionValue(s);if(o&&this.constraints!==!1){const c=o.get();i[s]=bie({min:c,max:c},this.constraints[s])}});const{transformTemplate:a}=this.visualElement.getProps();this.visualElement.current.style.transform=a?a({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.constraints=!1,this.resolveConstraints(),Tc(s=>{if(!hS(s,e,null))return;const o=this.getAxisMotionValue(s),{min:c,max:u}=this.constraints[s];o.set(Kr(c,u,i[s]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;Aie.set(this.visualElement,this);const e=this.visualElement.current,n=Mx(e,"pointerdown",u=>{const{drag:h,dragListener:p=!0}=this.getProps(),v=u.target,y=v!==e&&ane(v);h&&p&&!y&&this.start(u)});let r;const i=()=>{const{dragConstraints:u}=this.getProps();Ig(u)&&u.current&&(this.constraints=this.resolveRefConstraints(),r||(r=Mie(e,u.current,()=>this.scalePositionWithinConstraints())))},{projection:a}=this.visualElement,s=a.addEventListener("measure",i);a&&!a.layout&&(a.root&&a.root.updateScroll(),a.updateLayout()),wr.read(i);const o=$x(window,"resize",()=>this.scalePositionWithinConstraints()),c=a.addEventListener("didUpdate",(({delta:u,hasLayoutChanged:h})=>{this.isDragging&&h&&(Tc(p=>{const v=this.getAxisMotionValue(p);v&&(this.originPoint[p]+=u[p].translate,v.set(v.get()+u[p].translate))}),this.visualElement.render())}));return()=>{o(),n(),s(),c&&c(),r&&r()}}getProps(){const e=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:a=!1,dragElastic:s=EN,dragMomentum:o=!0}=e;return{...e,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:a,dragElastic:s,dragMomentum:o}}}function JF(t){let e=!0;return()=>{if(e){e=!1;return}t()}}function Mie(t,e,n){const r=iF(t,JF(n)),i=iF(e,JF(n));return()=>{r(),i()}}function hS(t,e,n){return(e===!0||e===t)&&(n===null||n===t)}function Eie(t,e=10){let n=null;return Math.abs(t.y)>e?n="y":Math.abs(t.x)>e&&(n="x"),n}class Tie extends Bd{constructor(e){super(e),this.removeGroupControls=Go,this.removeListeners=Go,this.controls=new wie(e)}mount(){const{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Go}update(){const{dragControls:e}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};e!==n&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const IC=t=>(e,n)=>{t&&wr.update(()=>t(e,n),!1,!0)};class Cie extends Bd{constructor(){super(...arguments),this.removePointerDownListener=Go}onPointerDown(e){this.session=new mW(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:pW(this.node)})}createPanHandlers(){const{onPanSessionStart:e,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:IC(e),onStart:IC(n),onMove:IC(r),onEnd:(a,s)=>{delete this.session,i&&wr.postRender(()=>i(a,s))}}}mount(){this.removePointerDownListener=Mx(this.node.current,"pointerdown",e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let BC=!1;class Rie extends j.Component{componentDidMount(){const{visualElement:e,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:a}=e;a&&(n.group&&n.group.add(a),r&&r.register&&i&&r.register(a),BC&&a.root.didUpdate(),a.addEventListener("animationComplete",()=>{this.safeToRemove()}),a.setOptions({...a.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),LA.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){const{layoutDependency:n,visualElement:r,drag:i,isPresent:a}=this.props,{projection:s}=r;return s&&(s.isPresent=a,e.layoutDependency!==n&&s.setOptions({...s.options,layoutDependency:n}),BC=!0,i||e.layoutDependency!==n||n===void 0||e.isPresent!==a?s.willUpdate():this.safeToRemove(),e.isPresent!==a&&(a?s.promote():s.relegate()||wr.postRender(()=>{const o=s.getStack();(!o||!o.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),tL.postRender(()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:e,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=e;BC=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:e}=this.props;e&&e()}render(){return null}}function vW(t){const[e,n]=aW(),r=j.useContext(IB);return M.jsx(Rie,{...t,layoutGroup:r,switchLayoutGroup:j.useContext(dW),isPresent:e,safeToRemove:n})}const Oie={pan:{Feature:Cie},drag:{Feature:Tie,ProjectionNode:iW,MeasureLayout:vW}};function ZF(t,e,n){const{props:r}=t;t.animationState&&r.whileHover&&t.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,a=r[i];a&&wr.postRender(()=>a(e,Yb(e)))}class Pie extends Bd{mount(){const{current:e}=this.node;e&&(this.unmount=tne(e,(n,r)=>(ZF(this.node,r,"Start"),i=>ZF(this.node,i,"End"))))}unmount(){}}class Die extends Bd{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(":focus-visible")}catch{e=!0}!e||!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=$b($x(this.node.current,"focus",()=>this.onFocus()),$x(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function QF(t,e,n){const{props:r}=t;if(t.current instanceof HTMLButtonElement&&t.current.disabled)return;t.animationState&&r.whileTap&&t.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),a=r[i];a&&wr.postRender(()=>a(e,Yb(e)))}class Nie extends Bd{mount(){const{current:e}=this.node;if(!e)return;const{globalTapTarget:n,propagate:r}=this.node.props;this.unmount=one(e,(i,a)=>(QF(this.node,a,"Start"),(s,{success:o})=>QF(this.node,s,o?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:r?.tap===!1})}unmount(){}}const TN=new WeakMap,LC=new WeakMap,Iie=t=>{const e=TN.get(t.target);e&&e(t)},Bie=t=>{t.forEach(Iie)};function Lie({root:t,...e}){const n=t||document;LC.has(n)||LC.set(n,{});const r=LC.get(n),i=JSON.stringify(e);return r[i]||(r[i]=new IntersectionObserver(Bie,{root:t,...e})),r[i]}function kie(t,e,n){const r=Lie(e);return TN.set(t,n),r.observe(t),()=>{TN.delete(t),r.unobserve(t)}}const Fie={some:0,all:1};class Uie extends Bd{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:e={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:a}=e,s={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:Fie[i]},o=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,a&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:h,onViewportLeave:p}=this.node.getProps(),v=u?h:p;v&&v(c)};return kie(this.node.current,s,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:e,prevProps:n}=this.node;["amount","margin","root"].some(jie(e,n))&&this.startObserver()}unmount(){}}function jie({viewport:t={}},{viewport:e={}}={}){return n=>t[n]!==e[n]}const zie={inView:{Feature:Uie},tap:{Feature:Nie},focus:{Feature:Die},hover:{Feature:Pie}},Gie={layout:{ProjectionNode:iW,MeasureLayout:vW}},Hie={...die,...zie,...Oie,...Gie},yt=oie(Hie,lie),e4=t=>{let e;const n=new Set,r=(u,h)=>{const p=typeof u=="function"?u(e):u;if(!Object.is(p,e)){const v=e;e=h??(typeof p!="object"||p===null)?p:Object.assign({},e,p),n.forEach(y=>y(e,v))}},i=()=>e,o={setState:r,getState:i,getInitialState:()=>c,subscribe:u=>(n.add(u),()=>n.delete(u))},c=e=t(r,i,o);return o},yW=(t=>t?e4(t):e4),Vie=t=>t;function Wie(t,e=Vie){const n=fe.useSyncExternalStore(t.subscribe,fe.useCallback(()=>e(t.getState()),[t,e]),fe.useCallback(()=>e(t.getInitialState()),[t,e]));return fe.useDebugValue(n),n}const qie=t=>{const e=yW(t),n=r=>Wie(e,r);return Object.assign(n,e),n},$ie=(t=>qie);function Xie(t,e){let n;try{n=t()}catch{return}return{getItem:i=>{var a;const s=c=>c===null?null:JSON.parse(c,void 0),o=(a=n.getItem(i))!=null?a:null;return o instanceof Promise?o.then(s):s(o)},setItem:(i,a)=>n.setItem(i,JSON.stringify(a,void 0)),removeItem:i=>n.removeItem(i)}}const CN=t=>e=>{try{const n=t(e);return n instanceof Promise?n:{then(r){return CN(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return CN(r)(n)}}}},Kie=(t,e)=>(n,r,i)=>{let a={storage:Xie(()=>window.localStorage),partialize:_=>_,version:0,merge:(_,S)=>({...S,..._}),...e},s=!1,o=0;const c=new Set,u=new Set;let h=a.storage;if(!h)return t((..._)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(..._)},r,i);const p=()=>{const _=a.partialize({...r()});return h.setItem(a.name,{state:_,version:a.version})},v=i.setState;i.setState=(_,S)=>(v(_,S),p());const y=t((..._)=>(n(..._),p()),r,i);i.getInitialState=()=>y;let b;const w=()=>{var _,S;if(!h)return;const E=++o;s=!1,c.forEach(P=>{var R;return P((R=r())!=null?R:y)});const T=((S=a.onRehydrateStorage)==null?void 0:S.call(a,(_=r())!=null?_:y))||void 0;return CN(h.getItem.bind(h))(a.name).then(P=>{if(P)if(typeof P.version=="number"&&P.version!==a.version){if(a.migrate){const R=a.migrate(P.state,P.version);return R instanceof Promise?R.then(D=>[!0,D]):[!0,R]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,P.state];return[!1,void 0]}).then(P=>{var R;if(E!==o)return;const[D,I]=P;if(b=a.merge(I,(R=r())!=null?R:y),n(b,!0),D)return p()}).then(()=>{E===o&&(T?.(b,void 0),b=r(),s=!0,u.forEach(P=>P(b)))}).catch(P=>{E===o&&T?.(void 0,P)})};return i.persist={setOptions:_=>{a={...a,..._},_.storage&&(h=_.storage)},clearStorage:()=>{h?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>w(),hasHydrated:()=>s,onHydrate:_=>(c.add(_),()=>{c.delete(_)}),onFinishHydration:_=>(u.add(_),()=>{u.delete(_)})},a.skipHydration||w(),b||y},Yie=Kie,Jie=[{id:"1",name:"Mohammed Al-Rashid",phone:"+971 55 123 4567",source:"whatsapp",status:"hot",lastMessage:"Can we schedule a viewing for the penthouse tomorrow?",lastActive:new Date(Date.now()-1e3*60*5),unreadCount:2,qualification:"whale",budget:"AED 15M+",interest:"Penthouse Suite"},{id:"2",name:"Sarah Chen",phone:"+971 50 987 6543",source:"walkin",status:"engaged",lastMessage:"Thank you for the brochure. I will review with my partner.",lastActive:new Date(Date.now()-1e3*60*30),unreadCount:0,qualification:"potential",budget:"AED 5-8M",interest:"2 Bedroom Sea View"},{id:"3",name:"James Wilson",phone:"+971 52 456 7890",source:"website",status:"new",lastMessage:"Interested in investment opportunities.",lastActive:new Date(Date.now()-1e3*60*60*2),unreadCount:1,qualification:"potential",budget:"AED 3-5M",interest:"1 Bedroom Investment"},{id:"4",name:"Fatima Hassan",phone:"+971 54 321 0987",source:"whatsapp",status:"qualified",lastMessage:"What are the payment plan options?",lastActive:new Date(Date.now()-1e3*60*60*4),unreadCount:0,qualification:"whale",budget:"AED 12M+",interest:"3 Bedroom + Maid"},{id:"5",name:"David Kumar",phone:"+971 56 789 0123",source:"walkin",status:"closed",lastMessage:"Contract signed. Thank you!",lastActive:new Date(Date.now()-1e3*60*60*24),unreadCount:0,qualification:"whale",budget:"AED 20M",interest:"Full Floor"}],Zie={1:[{id:"m1",sender:"user",content:"Hi, I am interested in the penthouse units.",timestamp:new Date(Date.now()-1e3*60*60*2)},{id:"m2",sender:"oracle",content:"Welcome! Our penthouse collection features 4 exclusive units with panoramic sea views. Prices start at AED 15M. Would you like to know more about specific floor plans?",timestamp:new Date(Date.now()-1e3*60*60*2+1e3*30)},{id:"m3",sender:"user",content:"Can we schedule a viewing for the penthouse tomorrow?",timestamp:new Date(Date.now()-1e3*60*5)}],2:[{id:"m4",sender:"oracle",content:"Hello Sarah! Thank you for visiting our Experience Center today. Here is the digital brochure for the 2-bedroom units we discussed.",timestamp:new Date(Date.now()-1e3*60*60*4)},{id:"m5",sender:"user",content:"Thank you for the brochure. I will review with my partner.",timestamp:new Date(Date.now()-1e3*60*30)}]},Qie=[{id:"v1",faceId:"face_001",sentiment:"excited",confidence:.92,dwellTime:450,zone:"Penthouse Showroom",timestamp:new Date},{id:"v2",faceId:"face_002",sentiment:"interested",confidence:.87,dwellTime:320,zone:"Amenity Deck VR",timestamp:new Date},{id:"v3",faceId:"face_003",sentiment:"neutral",confidence:.78,dwellTime:180,zone:"Reception",timestamp:new Date}],eae=Array.from({length:12},(t,e)=>({time:`${9+Math.floor(e/2)}:${e%2===0?"00":"30"}`,generated:Math.floor(Math.random()*8)+2,closed:Math.floor(Math.random()*3)})),tae=[{id:"u1",unitNumber:"PH-01",type:"penthouse",floor:45,area:520,price:25e6,status:"available",view:"Panoramic Sea",lastUpdated:new Date},{id:"u2",unitNumber:"PH-02",type:"penthouse",floor:45,area:480,price:22e6,status:"reserved",view:"Sea & Marina",lastUpdated:new Date},{id:"u3",unitNumber:"4501",type:"3br",floor:45,area:280,price:12e6,status:"available",view:"Sea View",lastUpdated:new Date},{id:"u4",unitNumber:"4502",type:"3br",floor:45,area:265,price:115e5,status:"sold",view:"Marina View",lastUpdated:new Date},{id:"u5",unitNumber:"4401",type:"2br",floor:44,area:180,price:75e5,status:"available",view:"Sea View",lastUpdated:new Date},{id:"u6",unitNumber:"4402",type:"2br",floor:44,area:175,price:72e5,status:"hold",view:"City View",lastUpdated:new Date},{id:"u7",unitNumber:"4301",type:"1br",floor:43,area:95,price:42e5,status:"available",view:"Sea View",lastUpdated:new Date},{id:"u8",unitNumber:"4302",type:"1br",floor:43,area:92,price:4e6,status:"available",view:"City View",lastUpdated:new Date}],ao=$ie()(Yie(t=>({isAuthenticated:!1,user:null,login:e=>t({isAuthenticated:!0,user:e}),logout:()=>t({isAuthenticated:!1,user:null}),activeModule:"dashboard",sidebarExpanded:!1,setActiveModule:e=>t({activeModule:e}),toggleSidebar:()=>t(e=>({sidebarExpanded:!e.sidebarExpanded})),setSidebarExpanded:e=>t({sidebarExpanded:e}),leads:Jie,activeLeadId:null,messages:Zie,isOracleThinking:!1,setActiveLead:e=>t({activeLeadId:e}),addMessage:(e,n)=>t(r=>({messages:{...r.messages,[e]:[...r.messages[e]||[],n]}})),setOracleThinking:e=>t({isOracleThinking:e}),markLeadAsRead:e=>t(n=>({leads:n.leads.map(r=>r.id===e?{...r,unreadCount:0}:r)})),visitors:Qie,isAlertActive:!1,alertMessage:"",addVisitor:e=>t(n=>({visitors:[...n.visitors,e]})),removeVisitor:e=>t(n=>({visitors:n.visitors.filter(r=>r.id!==e)})),triggerAlert:e=>t({isAlertActive:!0,alertMessage:e}),clearAlert:()=>t({isAlertActive:!1,alertMessage:""}),metrics:{activeVisitors:12,todayLeads:24,closedDeals:3,conversionRate:12.5,sentiment:78,systemHealth:{cpu:34,gpu:28,memory:42,temperature:58}},velocityData:eae,updateMetrics:e=>t(n=>({metrics:{...n.metrics,...e}})),addVelocityDataPoint:e=>t(n=>({velocityData:[...n.velocityData.slice(1),e]})),units:tae,selectedUnitId:null,filterStatus:"all",setSelectedUnit:e=>t({selectedUnitId:e}),setFilterStatus:e=>t({filterStatus:e}),status:{isConnected:!0,serverStatus:"online",lastSync:new Date,version:"2.1.0"},updateStatus:e=>t(n=>({status:{...n.status,...e}}))}),{name:"velocity-webos-storage",partialize:t=>({user:t.user,activeModule:t.activeModule})}));const nae=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),rae=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,r)=>r?r.toUpperCase():n.toLowerCase()),t4=t=>{const e=rae(t);return e.charAt(0).toUpperCase()+e.slice(1)},xW=(...t)=>t.filter((e,n,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===n).join(" ").trim(),iae=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var aae={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const sae=j.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:a,iconNode:s,...o},c)=>j.createElement("svg",{ref:c,...aae,width:e,height:e,stroke:t,strokeWidth:r?Number(n)*24/Number(e):n,className:xW("lucide",i),...!a&&!iae(o)&&{"aria-hidden":"true"},...o},[...s.map(([u,h])=>j.createElement(u,h)),...Array.isArray(a)?a:[a]]));const kt=(t,e)=>{const n=j.forwardRef(({className:r,...i},a)=>j.createElement(sae,{ref:a,iconNode:e,className:xW(`lucide-${nae(t4(t))}`,`lucide-${t}`,r),...i}));return n.displayName=t4(t),n};const oae=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],fL=kt("activity",oae);const lae=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],n4=kt("arrow-right",lae);const cae=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],bW=kt("arrow-up-right",cae);const uae=[["path",{d:"M10 4 8 6",key:"1rru8s"}],["path",{d:"M17 19v2",key:"ts1sot"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"M7 19v2",key:"12npes"}],["path",{d:"M9 5 7.621 3.621A2.121 2.121 0 0 0 4 5v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5",key:"14ym8i"}]],fae=kt("bath",uae);const dae=[["path",{d:"M2 4v16",key:"vw9hq8"}],["path",{d:"M2 8h18a2 2 0 0 1 2 2v10",key:"1dgv2r"}],["path",{d:"M2 17h20",key:"18nfp3"}],["path",{d:"M6 8v9",key:"1yriud"}]],hae=kt("bed",dae);const pae=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],mae=kt("bell",pae);const gae=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],vae=kt("bot",gae);const yae=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],xae=kt("brain",yae);const bae=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],_ae=kt("briefcase",bae);const Sae=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],Aae=kt("building-2",Sae);const wae=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],Ex=kt("calendar-clock",wae);const Mae=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],Eae=kt("calendar",Mae);const Tae=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],r4=kt("check",Tae);const Cae=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],_W=kt("chevron-down",Cae);const Rae=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Oae=kt("chevron-right",Rae);const Pae=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Dae=kt("circle-check",Pae);const Nae=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],Iae=kt("circle-x",Nae);const Bae=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],RN=kt("clock",Bae);const Lae=[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],kae=kt("compass",Lae);const Fae=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],i4=kt("copy",Fae);const Uae=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],jae=kt("cpu",Uae);const zae=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Gae=kt("database",zae);const Hae=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],Vae=kt("ellipsis-vertical",Hae);const Wae=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],SW=kt("eye",Wae);const qae=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],$ae=kt("folder",qae);const Xae=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],Kae=kt("git-branch",Xae);const Yae=[["path",{d:"M5 3v14",key:"9nsxs2"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"M19 3v18",key:"1sk56x"}]],a4=kt("kanban",Yae);const Jae=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],AW=kt("layers",Jae);const Zae=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Qae=kt("layout-grid",Zae);const ese=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],tse=kt("lock",ese);const nse=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],rse=kt("log-out",nse);const ise=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],dL=kt("map-pin",ise);const ase=[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]],Tx=kt("map-pinned",ase);const sse=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],ose=kt("maximize-2",sse);const lse=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]],cse=kt("message-square-plus",lse);const use=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]],fse=kt("message-square-text",use);const dse=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],hse=kt("message-square",dse);const pse=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],mse=kt("mic",pse);const gse=[["path",{d:"M5 12h14",key:"1ays0h"}]],wW=kt("minus",gse);const vse=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],yse=kt("monitor",vse);const xse=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],kA=kt("phone",xse);const bse=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],_se=kt("power",bse);const Sse=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],MW=kt("refresh-cw",Sse);const Ase=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["path",{d:"M9 9h.01",key:"1q5me6"}],["path",{d:"M15 9h.01",key:"x1ddxp"}]],hL=kt("scan-face",Ase);const wse=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]],Mse=kt("scan",wse);const Ese=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Tse=kt("search",Ese);const Cse=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],Rse=kt("send",Cse);const Ose=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Pse=kt("server",Ose);const Dse=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Nse=kt("settings-2",Dse);const Ise=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Bse=kt("shield",Ise);const Lse=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],kse=kt("sliders-vertical",Lse);const Fse=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],s4=kt("smartphone",Fse);const Use=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],ON=kt("sparkles",Use);const jse=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],zse=kt("tag",jse);const Gse=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],EW=kt("target",Gse);const Hse=[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]],TW=kt("trending-down",Hse);const Vse=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Jb=kt("trending-up",Vse);const Wse=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],PN=kt("triangle-alert",Wse);const qse=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],$se=kt("trophy",qse);const Xse=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],CW=kt("user",Xse);const Kse=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Cx=kt("users",Kse);const Yse=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],RW=kt("wifi",Yse);const Jse=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Zse=kt("x",Jse);const Qse=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],eoe=kt("zap",Qse),toe=[{id:"dashboard",label:"Dashboard",icon:Qae},{id:"oracle",label:"The Oracle",icon:cse},{id:"sentinel",label:"The Sentinel",icon:hL},{id:"inventory",label:"Inventory",icon:Aae},{id:"settings",label:"Settings",icon:kse}];function noe(){const{activeModule:t,setActiveModule:e,sidebarExpanded:n,setSidebarExpanded:r,status:i}=ao();return M.jsxs(yt.aside,{"code-path":"src\\components\\layout\\Sidebar.tsx:25:5",className:"fixed left-0 top-0 h-screen z-50 flex flex-col overflow-hidden",initial:{width:72},animate:{width:n?232:72},transition:{type:"spring",stiffness:320,damping:32,mass:.8},onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[M.jsx("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:34:7",className:"absolute inset-0",style:{background:"rgba(13, 14, 18, 0.65)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)",borderRight:"1px solid rgba(255,255,255,0.07)"}}),M.jsxs("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:45:7",className:"relative flex flex-col h-full py-5",children:[M.jsx("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:48:9",className:"flex items-center px-4 mb-8 overflow-hidden",style:{height:36},children:M.jsxs(yt.div,{"code-path":"src\\components\\layout\\Sidebar.tsx:50:11",className:"overflow-hidden whitespace-nowrap",initial:{opacity:0,width:0},animate:{opacity:n?1:0,width:n?"auto":0},transition:{duration:.2},children:[M.jsx("p",{"code-path":"src\\components\\layout\\Sidebar.tsx:56:13",className:"font-bold text-white tracking-tight",style:{fontSize:18},children:"Velocity"}),M.jsx("p",{"code-path":"src\\components\\layout\\Sidebar.tsx:57:13",className:"text-[10px]",style:{color:"hsl(var(--muted-fg))"},children:"v.1.1"})]})}),M.jsx("nav",{"code-path":"src\\components\\layout\\Sidebar.tsx:63:9",className:"flex-1 px-3 space-y-1",children:toe.map(a=>{const s=a.icon,o=t===a.id;return M.jsxs(yt.button,{"code-path":"src\\components\\layout\\Sidebar.tsx:69:15",onClick:()=>e(a.id),className:"relative w-full flex items-center rounded-xl transition-colors duration-150",style:{height:44,background:o?"hsl(var(--accent) / 0.12)":"transparent",color:o?"hsl(var(--accent))":"hsl(var(--muted-fg))"},whileHover:{x:2},whileTap:{scale:.97},onHoverStart:c=>{o||(c.target.style.background="hsl(var(--surface-2))")},onHoverEnd:c=>{o||(c.target.style.background="transparent")},children:[o&&M.jsx(yt.div,{"code-path":"src\\components\\layout\\Sidebar.tsx:89:19",layoutId:"activeBar",className:"absolute left-0 top-2 bottom-2 w-0.5 rounded-full",style:{background:"hsl(var(--accent))"},transition:{type:"spring",stiffness:400,damping:30}}),M.jsx("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:97:17",className:"w-11 flex justify-center flex-shrink-0",children:M.jsx(s,{"code-path":"src\\components\\layout\\Sidebar.tsx:98:19",className:"w-[18px] h-[18px]"})}),M.jsx(yt.span,{"code-path":"src\\components\\layout\\Sidebar.tsx:101:17",className:"whitespace-nowrap font-medium text-sm overflow-hidden",initial:{opacity:0},animate:{opacity:n?1:0},transition:{duration:.15,delay:n?.08:0},children:a.label})]},a.id)})}),M.jsx("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:115:9",className:"px-4 pt-4",style:{borderTop:"1px solid hsl(var(--border-subtle))"},children:M.jsxs("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:116:11",className:"flex items-center gap-3",children:[M.jsxs("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:117:13",className:"relative flex-shrink-0",children:[M.jsx("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:118:15",className:`w-2 h-2 rounded-full ${i.serverStatus==="online"?"bg-green-500":i.serverStatus==="offline"?"bg-red-500":"bg-amber-500"}`}),i.serverStatus==="online"&&M.jsx("div",{"code-path":"src\\components\\layout\\Sidebar.tsx:124:17",className:"absolute inset-0 rounded-full bg-green-500 status-pulse"})]}),M.jsx(Bs,{"code-path":"src\\components\\layout\\Sidebar.tsx:127:13",children:n&&M.jsxs(yt.div,{"code-path":"src\\components\\layout\\Sidebar.tsx:129:17",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},children:[M.jsxs("p",{"code-path":"src\\components\\layout\\Sidebar.tsx:135:19",className:"text-xs whitespace-nowrap",style:{color:"hsl(var(--muted-fg))"},children:[i.serverStatus==="online"&&"Server Connected",i.serverStatus==="offline"&&"Server Offline",i.serverStatus==="syncing"&&"Syncing…"]}),M.jsxs("p",{"code-path":"src\\components\\layout\\Sidebar.tsx:140:19",className:"text-[10px] whitespace-nowrap",style:{color:"hsl(var(--subtle-fg))"},children:["v",i.version]})]})})]})})]})]})}function roe(){const{login:t}=ao(),[e,n]=j.useState("idle"),[r,i]=j.useState(!1),[a,s]=j.useState(""),[o,c]=j.useState(""),u=e!=="idle",h=()=>{n("scanning"),c(""),setTimeout(()=>{n("success")},2100),setTimeout(()=>{n("idle"),t({id:"1",name:"Ahmed Al-Farsi",role:"sales_director"})},2500)},p=v=>{v.preventDefault(),a==="admin"||a===""?t({id:"1",name:"Ahmed Al-Farsi",role:"sales_director"}):c("Invalid credentials")};return M.jsxs("div",{"code-path":"src\\components\\layout\\LoginScreen.tsx:47:5",className:"min-h-screen flex items-center justify-center relative overflow-hidden",style:{background:"hsl(var(--background))"},children:[M.jsx(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:51:7",className:"absolute top-1/4 left-1/3 w-[500px] h-[500px] rounded-full blur-3xl pointer-events-none",style:{background:"hsl(var(--accent) / 0.06)"},animate:{scale:[1,1.15,1],opacity:[.5,.8,.5]},transition:{duration:9,repeat:1/0,ease:"easeInOut"}}),M.jsx(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:57:7",className:"absolute bottom-1/4 right-1/3 w-96 h-96 rounded-full blur-3xl pointer-events-none",style:{background:"hsl(var(--info) / 0.07)"},animate:{scale:[1.15,1,1.15],opacity:[.4,.7,.4]},transition:{duration:9,repeat:1/0,ease:"easeInOut",delay:2}}),M.jsxs(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:64:7",className:"relative z-10 w-full max-w-sm p-8 rounded-3xl",style:{background:"hsl(var(--surface))",border:"1px solid hsl(var(--border-subtle))",boxShadow:"var(--shadow-xl)"},initial:{opacity:0,y:24,scale:.96},animate:{opacity:1,y:0,scale:1},transition:{type:"spring",stiffness:220,damping:26,mass:.8},children:[M.jsx(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:75:9",className:"flex justify-center mb-7",initial:{scale:0},animate:{scale:1},transition:{delay:.2,type:"spring",stiffness:300},children:M.jsx("div",{"code-path":"src\\components\\layout\\LoginScreen.tsx:81:11",className:"w-14 h-14 rounded-2xl flex items-center justify-center",style:{background:"hsl(var(--accent))",boxShadow:"0 0 32px hsl(var(--accent) / 0.35)"},children:M.jsx(Mse,{"code-path":"src\\components\\layout\\LoginScreen.tsx:88:13",className:"w-7 h-7",style:{color:"hsl(var(--accent-fg))"}})})}),M.jsxs(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:92:9",className:"text-center mb-7",initial:{opacity:0},animate:{opacity:1},transition:{delay:.3},children:[M.jsx("h1",{"code-path":"src\\components\\layout\\LoginScreen.tsx:98:11",className:"text-xl font-bold text-white tracking-tight mb-1",children:"Velocity WebOS"}),M.jsx("p",{"code-path":"src\\components\\layout\\LoginScreen.tsx:99:11",className:"text-sm",style:{color:"hsl(var(--muted-fg))"},children:"Real Estate Operating System"})]}),M.jsx(Bs,{"code-path":"src\\components\\layout\\LoginScreen.tsx:102:9",mode:"wait",children:r?M.jsxs(yt.form,{"code-path":"src\\components\\layout\\LoginScreen.tsx:183:13",onSubmit:p,className:"space-y-3",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[M.jsxs("div",{"code-path":"src\\components\\layout\\LoginScreen.tsx:191:15",className:"relative",children:[M.jsx(tse,{"code-path":"src\\components\\layout\\LoginScreen.tsx:192:17",className:"absolute left-3.5 top-1/2 -translate-y-1/2 w-4 h-4",style:{color:"hsl(var(--muted-fg))"}}),M.jsx("input",{"code-path":"src\\components\\layout\\LoginScreen.tsx:196:17",type:"password",value:a,onChange:v=>s(v.target.value),placeholder:"Enter password",className:"w-full rounded-xl py-3 pl-10 pr-4 text-sm text-white placeholder:text-zinc-500 focus:outline-none transition-all",style:{background:"hsl(var(--surface-2))",border:"1px solid hsl(var(--border-subtle))"},autoFocus:!0})]}),o&&M.jsx(yt.p,{"code-path":"src\\components\\layout\\LoginScreen.tsx:211:17",className:"text-red-400 text-sm text-center",initial:{opacity:0,y:-8},animate:{opacity:1,y:0},children:o}),M.jsx("button",{"code-path":"src\\components\\layout\\LoginScreen.tsx:220:15",type:"submit",className:"w-full font-semibold py-3 rounded-xl transition-opacity hover:opacity-90 text-sm",style:{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"},children:"Sign In"}),M.jsx("button",{"code-path":"src\\components\\layout\\LoginScreen.tsx:231:15",type:"button",onClick:()=>{i(!1),c("")},className:"w-full text-sm transition-colors py-1",style:{color:"hsl(var(--subtle-fg))"},children:"Back to FaceID"})]},"password"):M.jsxs(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:104:13",className:"flex flex-col items-center",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[M.jsxs(yt.button,{"code-path":"src\\components\\layout\\LoginScreen.tsx:111:15",onClick:h,disabled:u,className:"relative w-28 h-28 rounded-full flex items-center justify-center mb-5 transition-colors",style:{border:"2px solid hsl(var(--border))"},whileHover:{scale:1.03,borderColor:"hsl(var(--accent) / 0.5)"},whileTap:{scale:.97},children:[u&&M.jsxs(M.Fragment,{children:[M.jsx(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:121:21",className:"absolute inset-0 rounded-full",style:{border:`2px solid ${e==="success"?"hsl(var(--success))":"hsl(var(--accent))"}`,boxShadow:e==="success"?"0 0 26px rgba(34,197,94,0.8), 0 0 58px rgba(34,197,94,0.45), inset 0 0 16px rgba(34,197,94,0.3)":"0 0 32px rgba(59,130,246,0.95), 0 0 86px rgba(59,130,246,0.6), 0 0 140px rgba(59,130,246,0.35), inset 0 0 24px rgba(59,130,246,0.25)"},animate:{scale:[1,1.08,1],opacity:[.86,1,.86]},transition:{duration:e==="success"?.35:1.05,repeat:e==="success"?0:1/0,ease:"easeInOut"}}),M.jsx(yt.div,{"code-path":"src\\components\\layout\\LoginScreen.tsx:137:21",className:"absolute -inset-2 rounded-full",style:{background:e==="success"?"radial-gradient(circle, rgba(34,197,94,0.22) 0%, rgba(34,197,94,0.08) 38%, transparent 72%)":"radial-gradient(circle, rgba(59,130,246,0.3) 0%, rgba(59,130,246,0.12) 40%, transparent 72%)",filter:"blur(10px)"},animate:{opacity:[.65,1,.65]},transition:{duration:1.2,repeat:1/0,ease:"easeInOut"}})]}),M.jsx(CW,{"code-path":"src\\components\\layout\\LoginScreen.tsx:151:17",className:"w-10 h-10 transition-colors",style:{color:e==="success"?"hsl(var(--success))":u?"hsl(var(--accent))":"hsl(var(--muted-fg))"}})]}),M.jsx("p",{"code-path":"src\\components\\layout\\LoginScreen.tsx:164:15",className:"text-sm mb-5",style:{color:"hsl(var(--muted-fg))"},children:e==="success"?"Face verified":u?"Scanning...":"Tap to authenticate with FaceID"}),M.jsx("button",{"code-path":"src\\components\\layout\\LoginScreen.tsx:172:15",onClick:()=>i(!0),className:"text-sm transition-colors",style:{color:"hsl(var(--subtle-fg))"},onMouseEnter:v=>v.currentTarget.style.color="hsl(var(--muted-fg))",onMouseLeave:v=>v.currentTarget.style.color="hsl(var(--subtle-fg))",children:"Use password instead"})]},"faceid")}),M.jsx(yt.p,{"code-path":"src\\components\\layout\\LoginScreen.tsx:243:9",className:"mt-7 text-center text-xs",style:{color:"hsl(var(--subtle-fg))"},initial:{opacity:0},animate:{opacity:1},transition:{delay:.5},children:"Secured by On-Premise Python Backend"})]})]})}function OW(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e-1}return hR=e,hR}var pR,F4;function boe(){if(F4)return pR;F4=1;var t=fE();function e(n,r){var i=this.__data__,a=t(i,n);return a<0?(++this.size,i.push([n,r])):i[a][1]=r,this}return pR=e,pR}var mR,U4;function dE(){if(U4)return mR;U4=1;var t=goe(),e=voe(),n=yoe(),r=xoe(),i=boe();function a(s){var o=-1,c=s==null?0:s.length;for(this.clear();++o0?1:-1},rp=function(e){return Sp(e)&&e.indexOf("%")===e.length-1},mt=function(e){return Hoe(e)&&!Kv(e)},Voe=function(e){return Cn(e)},ji=function(e){return mt(e)||Sp(e)},Woe=0,Yv=function(e){var n=++Woe;return"".concat(e||"").concat(n)},Ap=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!mt(e)&&!Sp(e))return r;var a;if(rp(e)){var s=e.indexOf("%");a=n*parseFloat(e.slice(0,s))/100}else a=+e;return Kv(a)&&(a=r),i&&a>n&&(a=n),a},gd=function(e){if(!e)return null;var n=Object.keys(e);return n&&n.length?e[n[0]]:null},qoe=function(e){if(!Array.isArray(e))return!1;for(var n=e.length,r={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Qoe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function NN(t){"@babel/helpers - typeof";return NN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},NN(t)}var hU={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Xu=function(e){return typeof e=="string"?e:e?e.displayName||e.name||"Component":""},pU=null,zR=null,SL=function t(e){if(e===pU&&Array.isArray(zR))return zR;var n=[];return j.Children.forEach(e,function(r){Cn(r)||(Uoe.isFragment(r)?n=n.concat(t(r.props.children)):n.push(r))}),zR=n,pU=e,n};function Vo(t,e){var n=[],r=[];return Array.isArray(e)?r=e.map(function(i){return Xu(i)}):r=[Xu(e)],SL(t).forEach(function(i){var a=Ho(i,"type.displayName")||Ho(i,"type.name");r.indexOf(a)!==-1&&n.push(i)}),n}function Ks(t,e){var n=Vo(t,e);return n&&n[0]}var mU=function(e){if(!e||!e.props)return!1;var n=e.props,r=n.width,i=n.height;return!(!mt(r)||r<=0||!mt(i)||i<=0)},ele=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],tle=function(e){return e&&e.type&&Sp(e.type)&&ele.indexOf(e.type)>=0},FW=function(e){return e&&NN(e)==="object"&&"clipDot"in e},nle=function(e,n,r,i){var a,s=(a=jR?.[i])!==null&&a!==void 0?a:[];return n.startsWith("data-")||!yn(e)&&(i&&s.includes(n)||Koe.includes(n))||r&&_L.includes(n)},_n=function(e,n,r){if(!e||typeof e=="function"||typeof e=="boolean")return null;var i=e;if(j.isValidElement(e)&&(i=e.props),!Xv(i))return null;var a={};return Object.keys(i).forEach(function(s){var o;nle((o=i)===null||o===void 0?void 0:o[s],s,n,r)&&(a[s]=i[s])}),a},IN=function t(e,n){if(e===n)return!0;var r=j.Children.count(e);if(r!==j.Children.count(n))return!1;if(r===0)return!0;if(r===1)return gU(Array.isArray(e)?e[0]:e,Array.isArray(n)?n[0]:n);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function ole(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function LN(t){var e=t.children,n=t.width,r=t.height,i=t.viewBox,a=t.className,s=t.style,o=t.title,c=t.desc,u=sle(t,ale),h=i||{width:n,height:r,x:0,y:0},p=In("recharts-surface",a);return fe.createElement("svg",BN({},_n(u,!0,"svg"),{className:p,width:n,height:r,style:s,viewBox:"".concat(h.x," ").concat(h.y," ").concat(h.width," ").concat(h.height)}),fe.createElement("title",null,o),fe.createElement("desc",null,c),e)}var lle=["children","className"];function kN(){return kN=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function ule(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var Ar=fe.forwardRef(function(t,e){var n=t.children,r=t.className,i=cle(t,lle),a=In("recharts-layer",r);return fe.createElement("g",kN({className:a},_n(i,!0),{ref:e}),n)}),Ku=function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;aa?0:a+n),r=r>a?a:r,r<0&&(r+=a),a=n>r?0:r-n>>>0,n>>>=0;for(var s=Array(a);++i=a?n:t(n,r,i)}return HR=e,HR}var VR,bU;function UW(){if(bU)return VR;bU=1;var t="\\ud800-\\udfff",e="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=e+n+r,a="\\ufe0e\\ufe0f",s="\\u200d",o=RegExp("["+s+t+i+a+"]");function c(u){return o.test(u)}return VR=c,VR}var WR,_U;function hle(){if(_U)return WR;_U=1;function t(e){return e.split("")}return WR=t,WR}var qR,SU;function ple(){if(SU)return qR;SU=1;var t="\\ud800-\\udfff",e="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=e+n+r,a="\\ufe0e\\ufe0f",s="["+t+"]",o="["+i+"]",c="\\ud83c[\\udffb-\\udfff]",u="(?:"+o+"|"+c+")",h="[^"+t+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",v="[\\ud800-\\udbff][\\udc00-\\udfff]",y="\\u200d",b=u+"?",w="["+a+"]?",_="(?:"+y+"(?:"+[h,p,v].join("|")+")"+w+b+")*",S=w+b+_,E="(?:"+[h+o+"?",o,p,v,s].join("|")+")",T=RegExp(c+"(?="+c+")|"+E+S,"g");function P(R){return R.match(T)||[]}return qR=P,qR}var $R,AU;function mle(){if(AU)return $R;AU=1;var t=hle(),e=UW(),n=ple();function r(i){return e(i)?n(i):t(i)}return $R=r,$R}var XR,wU;function gle(){if(wU)return XR;wU=1;var t=dle(),e=UW(),n=mle(),r=IW();function i(a){return function(s){s=r(s);var o=e(s)?n(s):void 0,c=o?o[0]:s.charAt(0),u=o?t(o,1).join(""):s.slice(1);return c[a]()+u}}return XR=i,XR}var KR,MU;function vle(){if(MU)return KR;MU=1;var t=gle(),e=t("toUpperCase");return KR=e,KR}var yle=vle();const mE=ar(yle);function Sr(t){return function(){return t}}const jW=Math.cos,nw=Math.sin,Gl=Math.sqrt,rw=Math.PI,gE=2*rw,FN=Math.PI,UN=2*FN,Yh=1e-6,xle=UN-Yh;function zW(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return zW;const n=10**e;return function(r){this._+=r[0];for(let i=1,a=r.length;iYh)if(!(Math.abs(p*c-u*h)>Yh)||!a)this._append`L${this._x1=e},${this._y1=n}`;else{let y=r-s,b=i-o,w=c*c+u*u,_=y*y+b*b,S=Math.sqrt(w),E=Math.sqrt(v),T=a*Math.tan((FN-Math.acos((w+v-_)/(2*S*E)))/2),P=T/E,R=T/S;Math.abs(P-1)>Yh&&this._append`L${e+P*h},${n+P*p}`,this._append`A${a},${a},0,0,${+(p*y>h*b)},${this._x1=e+R*c},${this._y1=n+R*u}`}}arc(e,n,r,i,a,s){if(e=+e,n=+n,r=+r,s=!!s,r<0)throw new Error(`negative radius: ${r}`);let o=r*Math.cos(i),c=r*Math.sin(i),u=e+o,h=n+c,p=1^s,v=s?i-a:a-i;this._x1===null?this._append`M${u},${h}`:(Math.abs(this._x1-u)>Yh||Math.abs(this._y1-h)>Yh)&&this._append`L${u},${h}`,r&&(v<0&&(v=v%UN+UN),v>xle?this._append`A${r},${r},0,1,${p},${e-o},${n-c}A${r},${r},0,1,${p},${this._x1=u},${this._y1=h}`:v>Yh&&this._append`A${r},${r},0,${+(v>=FN)},${p},${this._x1=e+r*Math.cos(a)},${this._y1=n+r*Math.sin(a)}`)}rect(e,n,r,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}};function AL(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new _le(e)}function wL(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function GW(t){this._context=t}GW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function vE(t){return new GW(t)}function HW(t){return t[0]}function VW(t){return t[1]}function WW(t,e){var n=Sr(!0),r=null,i=vE,a=null,s=AL(o);t=typeof t=="function"?t:t===void 0?HW:Sr(t),e=typeof e=="function"?e:e===void 0?VW:Sr(e);function o(c){var u,h=(c=wL(c)).length,p,v=!1,y;for(r==null&&(a=i(y=s())),u=0;u<=h;++u)!(u=y;--b)o.point(T[b],P[b]);o.lineEnd(),o.areaEnd()}S&&(T[v]=+t(_,v,p),P[v]=+e(_,v,p),o.point(r?+r(_,v,p):T[v],n?+n(_,v,p):P[v]))}if(E)return o=null,E+""||null}function h(){return WW().defined(i).curve(s).context(a)}return u.x=function(p){return arguments.length?(t=typeof p=="function"?p:Sr(+p),r=null,u):t},u.x0=function(p){return arguments.length?(t=typeof p=="function"?p:Sr(+p),u):t},u.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Sr(+p),u):r},u.y=function(p){return arguments.length?(e=typeof p=="function"?p:Sr(+p),n=null,u):e},u.y0=function(p){return arguments.length?(e=typeof p=="function"?p:Sr(+p),u):e},u.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Sr(+p),u):n},u.lineX0=u.lineY0=function(){return h().x(t).y(e)},u.lineY1=function(){return h().x(t).y(n)},u.lineX1=function(){return h().x(r).y(e)},u.defined=function(p){return arguments.length?(i=typeof p=="function"?p:Sr(!!p),u):i},u.curve=function(p){return arguments.length?(s=p,a!=null&&(o=s(a)),u):s},u.context=function(p){return arguments.length?(p==null?a=o=null:o=s(a=p),u):a},u}class qW{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}}function Sle(t){return new qW(t,!0)}function Ale(t){return new qW(t,!1)}const ML={draw(t,e){const n=Gl(e/rw);t.moveTo(n,0),t.arc(0,0,n,0,gE)}},wle={draw(t,e){const n=Gl(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},$W=Gl(1/3),Mle=$W*2,Ele={draw(t,e){const n=Gl(e/Mle),r=n*$W;t.moveTo(0,-n),t.lineTo(r,0),t.lineTo(0,n),t.lineTo(-r,0),t.closePath()}},Tle={draw(t,e){const n=Gl(e),r=-n/2;t.rect(r,r,n,n)}},Cle=.8908130915292852,XW=nw(rw/10)/nw(7*rw/10),Rle=nw(gE/10)*XW,Ole=-jW(gE/10)*XW,Ple={draw(t,e){const n=Gl(e*Cle),r=Rle*n,i=Ole*n;t.moveTo(0,-n),t.lineTo(r,i);for(let a=1;a<5;++a){const s=gE*a/5,o=jW(s),c=nw(s);t.lineTo(c*n,-o*n),t.lineTo(o*r-c*i,c*r+o*i)}t.closePath()}},YR=Gl(3),Dle={draw(t,e){const n=-Gl(e/(YR*3));t.moveTo(0,n*2),t.lineTo(-YR*n,-n),t.lineTo(YR*n,-n),t.closePath()}},Do=-.5,No=Gl(3)/2,jN=1/Gl(12),Nle=(jN/2+1)*3,Ile={draw(t,e){const n=Gl(e/Nle),r=n/2,i=n*jN,a=r,s=n*jN+n,o=-a,c=s;t.moveTo(r,i),t.lineTo(a,s),t.lineTo(o,c),t.lineTo(Do*r-No*i,No*r+Do*i),t.lineTo(Do*a-No*s,No*a+Do*s),t.lineTo(Do*o-No*c,No*o+Do*c),t.lineTo(Do*r+No*i,Do*i-No*r),t.lineTo(Do*a+No*s,Do*s-No*a),t.lineTo(Do*o+No*c,Do*c-No*o),t.closePath()}};function Ble(t,e){let n=null,r=AL(i);t=typeof t=="function"?t:Sr(t||ML),e=typeof e=="function"?e:Sr(e===void 0?64:+e);function i(){let a;if(n||(n=a=r()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),a)return n=null,a+""||null}return i.type=function(a){return arguments.length?(t=typeof a=="function"?a:Sr(a),i):t},i.size=function(a){return arguments.length?(e=typeof a=="function"?a:Sr(+a),i):e},i.context=function(a){return arguments.length?(n=a??null,i):n},i}function iw(){}function aw(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function KW(t){this._context=t}KW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:aw(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:aw(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Lle(t){return new KW(t)}function YW(t){this._context=t}YW.prototype={areaStart:iw,areaEnd:iw,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:aw(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function kle(t){return new YW(t)}function JW(t){this._context=t}JW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:aw(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Fle(t){return new JW(t)}function ZW(t){this._context=t}ZW.prototype={areaStart:iw,areaEnd:iw,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Ule(t){return new ZW(t)}function EU(t){return t<0?-1:1}function TU(t,e,n){var r=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(r||i<0&&-0),s=(n-t._y1)/(i||r<0&&-0),o=(a*i+s*r)/(r+i);return(EU(a)+EU(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(o))||0}function CU(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function JR(t,e,n){var r=t._x0,i=t._y0,a=t._x1,s=t._y1,o=(a-r)/3;t._context.bezierCurveTo(r+o,i+o*e,a-o,s-o*n,a,s)}function sw(t){this._context=t}sw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:JR(this,this._t0,CU(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,JR(this,CU(this,n=TU(this,t,e)),n);break;default:JR(this,this._t0,n=TU(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function QW(t){this._context=new eq(t)}(QW.prototype=Object.create(sw.prototype)).point=function(t,e){sw.prototype.point.call(this,e,t)};function eq(t){this._context=t}eq.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,i,a){this._context.bezierCurveTo(e,t,r,n,a,i)}};function jle(t){return new sw(t)}function zle(t){return new QW(t)}function tq(t){this._context=t}tq.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=RU(t),i=RU(e),a=0,s=1;s=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[n-1]=(t[n]+i[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function Hle(t){return new yE(t,.5)}function Vle(t){return new yE(t,0)}function Wle(t){return new yE(t,1)}function rv(t,e){if((s=t.length)>1)for(var n=1,r,i,a=t[e[0]],s,o=a.length;n=0;)n[e]=e;return n}function qle(t,e){return t[e]}function $le(t){const e=[];return e.key=t,e}function Xle(){var t=Sr([]),e=zN,n=rv,r=qle;function i(a){var s=Array.from(t.apply(this,arguments),$le),o,c=s.length,u=-1,h;for(const p of a)for(o=0,++u;o0){for(var n,r,i=0,a=t[0].length,s;i0){for(var n=0,r=t[e[0]],i,a=r.length;n0)||!((a=(i=t[e[0]]).length)>0))){for(var n=0,r=1,i,a,s;r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function rce(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var nq={symbolCircle:ML,symbolCross:wle,symbolDiamond:Ele,symbolSquare:Tle,symbolStar:Ple,symbolTriangle:Dle,symbolWye:Ile},ice=Math.PI/180,ace=function(e){var n="symbol".concat(mE(e));return nq[n]||ML},sce=function(e,n,r){if(n==="area")return e;switch(r){case"cross":return 5*e*e/9;case"diamond":return .5*e*e/Math.sqrt(3);case"square":return e*e;case"star":{var i=18*ice;return 1.25*e*e*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*e*e/4;case"wye":return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},oce=function(e,n){nq["symbol".concat(mE(e))]=n},EL=function(e){var n=e.type,r=n===void 0?"circle":n,i=e.size,a=i===void 0?64:i,s=e.sizeType,o=s===void 0?"area":s,c=nce(e,Zle),u=PU(PU({},c),{},{type:r,size:a,sizeType:o}),h=function(){var _=ace(r),S=Ble().type(_).size(sce(a,o,r));return S()},p=u.className,v=u.cx,y=u.cy,b=_n(u,!0);return v===+v&&y===+y&&a===+a?fe.createElement("path",GN({},b,{className:In("recharts-symbols",p),transform:"translate(".concat(v,", ").concat(y,")"),d:h()})):null};EL.registerSymbol=oce;function iv(t){"@babel/helpers - typeof";return iv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},iv(t)}function HN(){return HN=Object.assign?Object.assign.bind():function(t){for(var e=1;e`);var E=y.inactive?u:y.color;return fe.createElement("li",HN({className:_,style:p,key:"legend-item-".concat(b)},tw(r.props,y,b)),fe.createElement(LN,{width:s,height:s,viewBox:h,style:v},r.renderIcon(y)),fe.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(S,y,b):S))})}},{key:"render",value:function(){var r=this.props,i=r.payload,a=r.layout,s=r.align;if(!i||!i.length)return null;var o={padding:0,margin:0,textAlign:a==="horizontal"?s:"left"};return fe.createElement("ul",{className:"recharts-default-legend",style:o},this.renderItems())}}])})(j.PureComponent);Kx(TL,"displayName","Legend");Kx(TL,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var ZR,NU;function vce(){if(NU)return ZR;NU=1;var t=dE();function e(){this.__data__=new t,this.size=0}return ZR=e,ZR}var QR,IU;function yce(){if(IU)return QR;IU=1;function t(e){var n=this.__data__,r=n.delete(e);return this.size=n.size,r}return QR=t,QR}var eO,BU;function xce(){if(BU)return eO;BU=1;function t(e){return this.__data__.get(e)}return eO=t,eO}var tO,LU;function bce(){if(LU)return tO;LU=1;function t(e){return this.__data__.has(e)}return tO=t,tO}var nO,kU;function _ce(){if(kU)return nO;kU=1;var t=dE(),e=vL(),n=yL(),r=200;function i(a,s){var o=this.__data__;if(o instanceof t){var c=o.__data__;if(!e||c.lengthy))return!1;var w=p.get(s),_=p.get(o);if(w&&_)return w==o&&_==s;var S=-1,E=!0,T=c&i?new t:void 0;for(p.set(s,o),p.set(o,s);++S-1&&r%1==0&&r-1&&n%1==0&&n<=t}return wO=e,wO}var MO,oj;function Ice(){if(oj)return MO;oj=1;var t=uf(),e=PL(),n=ff(),r="[object Arguments]",i="[object Array]",a="[object Boolean]",s="[object Date]",o="[object Error]",c="[object Function]",u="[object Map]",h="[object Number]",p="[object Object]",v="[object RegExp]",y="[object Set]",b="[object String]",w="[object WeakMap]",_="[object ArrayBuffer]",S="[object DataView]",E="[object Float32Array]",T="[object Float64Array]",P="[object Int8Array]",R="[object Int16Array]",D="[object Int32Array]",I="[object Uint8Array]",k="[object Uint8ClampedArray]",B="[object Uint16Array]",U="[object Uint32Array]",z={};z[E]=z[T]=z[P]=z[R]=z[D]=z[I]=z[k]=z[B]=z[U]=!0,z[r]=z[i]=z[_]=z[a]=z[S]=z[s]=z[o]=z[c]=z[u]=z[h]=z[p]=z[v]=z[y]=z[b]=z[w]=!1;function q(W){return n(W)&&e(W.length)&&!!z[t(W)]}return MO=q,MO}var EO,lj;function dq(){if(lj)return EO;lj=1;function t(e){return function(n){return e(n)}}return EO=t,EO}var gx={exports:{}};gx.exports;var cj;function Bce(){return cj||(cj=1,(function(t,e){var n=PW(),r=e&&!e.nodeType&&e,i=r&&!0&&t&&!t.nodeType&&t,a=i&&i.exports===r,s=a&&n.process,o=(function(){try{var c=i&&i.require&&i.require("util").types;return c||s&&s.binding&&s.binding("util")}catch{}})();t.exports=o})(gx,gx.exports)),gx.exports}var TO,uj;function hq(){if(uj)return TO;uj=1;var t=Ice(),e=dq(),n=Bce(),r=n&&n.isTypedArray,i=r?e(r):t;return TO=i,TO}var CO,fj;function Lce(){if(fj)return CO;fj=1;var t=Pce(),e=RL(),n=ks(),r=fq(),i=OL(),a=hq(),s=Object.prototype,o=s.hasOwnProperty;function c(u,h){var p=n(u),v=!p&&e(u),y=!p&&!v&&r(u),b=!p&&!v&&!y&&a(u),w=p||v||y||b,_=w?t(u.length,String):[],S=_.length;for(var E in u)(h||o.call(u,E))&&!(w&&(E=="length"||y&&(E=="offset"||E=="parent")||b&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||i(E,S)))&&_.push(E);return _}return CO=c,CO}var RO,dj;function kce(){if(dj)return RO;dj=1;var t=Object.prototype;function e(n){var r=n&&n.constructor,i=typeof r=="function"&&r.prototype||t;return n===i}return RO=e,RO}var OO,hj;function pq(){if(hj)return OO;hj=1;function t(e,n){return function(r){return e(n(r))}}return OO=t,OO}var PO,pj;function Fce(){if(pj)return PO;pj=1;var t=pq(),e=t(Object.keys,Object);return PO=e,PO}var DO,mj;function Uce(){if(mj)return DO;mj=1;var t=kce(),e=Fce(),n=Object.prototype,r=n.hasOwnProperty;function i(a){if(!t(a))return e(a);var s=[];for(var o in Object(a))r.call(a,o)&&o!="constructor"&&s.push(o);return s}return DO=i,DO}var NO,gj;function Qb(){if(gj)return NO;gj=1;var t=mL(),e=PL();function n(r){return r!=null&&e(r.length)&&!t(r)}return NO=n,NO}var IO,vj;function xE(){if(vj)return IO;vj=1;var t=Lce(),e=Uce(),n=Qb();function r(i){return n(i)?t(i):e(i)}return IO=r,IO}var BO,yj;function jce(){if(yj)return BO;yj=1;var t=Tce(),e=Oce(),n=xE();function r(i){return t(i,n,e)}return BO=r,BO}var LO,xj;function zce(){if(xj)return LO;xj=1;var t=jce(),e=1,n=Object.prototype,r=n.hasOwnProperty;function i(a,s,o,c,u,h){var p=o&e,v=t(a),y=v.length,b=t(s),w=b.length;if(y!=w&&!p)return!1;for(var _=y;_--;){var S=v[_];if(!(p?S in s:r.call(s,S)))return!1}var E=h.get(a),T=h.get(s);if(E&&T)return E==s&&T==a;var P=!0;h.set(a,s),h.set(s,a);for(var R=p;++_-1}return lP=e,lP}var cP,qj;function oue(){if(qj)return cP;qj=1;function t(e,n,r){for(var i=-1,a=e==null?0:e.length;++i=s){var S=u?null:i(c);if(S)return a(S);b=!1,v=r,_=new t}else _=u?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Sue(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Aue(t){return t.value}function wue(t,e){if(fe.isValidElement(t))return fe.cloneElement(t,e);if(typeof t=="function")return fe.createElement(t,e);e.ref;var n=_ue(e,hue);return fe.createElement(TL,n)}var ez=1,qg=(function(t){function e(){var n;pue(this,e);for(var r=arguments.length,i=new Array(r),a=0;aez||Math.abs(i.height-this.lastBoundingBox.height)>ez)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,r&&r(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Pu({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var i=this.props,a=i.layout,s=i.align,o=i.verticalAlign,c=i.margin,u=i.chartWidth,h=i.chartHeight,p,v;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(s==="center"&&a==="vertical"){var y=this.getBBoxSnapshot();p={left:((u||0)-y.width)/2}}else p=s==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(o==="middle"){var b=this.getBBoxSnapshot();v={top:((h||0)-b.height)/2}}else v=o==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return Pu(Pu({},p),v)}},{key:"render",value:function(){var r=this,i=this.props,a=i.content,s=i.width,o=i.height,c=i.wrapperStyle,u=i.payloadUniqBy,h=i.payload,p=Pu(Pu({position:"absolute",width:s||"auto",height:o||"auto"},this.getDefaultPosition(c)),c);return fe.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(y){r.wrapperNode=y}},wue(a,Pu(Pu({},this.props),{},{payload:xq(h,u,Aue)})))}}],[{key:"getWithHeight",value:function(r,i){var a=Pu(Pu({},this.defaultProps),r.props),s=a.layout;return s==="vertical"&&mt(r.props.height)?{height:r.props.height}:s==="horizontal"?{width:r.props.width||i}:null}}])})(j.PureComponent);bE(qg,"displayName","Legend");bE(qg,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var pP,tz;function Mue(){if(tz)return pP;tz=1;var t=Zb(),e=RL(),n=ks(),r=t?t.isConcatSpreadable:void 0;function i(a){return n(a)||e(a)||!!(r&&a&&a[r])}return pP=i,pP}var mP,nz;function Sq(){if(nz)return mP;nz=1;var t=uq(),e=Mue();function n(r,i,a,s,o){var c=-1,u=r.length;for(a||(a=e),o||(o=[]);++c0&&a(h)?i>1?n(h,i-1,a,s,o):t(o,h):s||(o[o.length]=h)}return o}return mP=n,mP}var gP,rz;function Eue(){if(rz)return gP;rz=1;function t(e){return function(n,r,i){for(var a=-1,s=Object(n),o=i(n),c=o.length;c--;){var u=o[e?c:++a];if(r(s[u],u,s)===!1)break}return n}}return gP=t,gP}var vP,iz;function Tue(){if(iz)return vP;iz=1;var t=Eue(),e=t();return vP=e,vP}var yP,az;function Aq(){if(az)return yP;az=1;var t=Tue(),e=xE();function n(r,i){return r&&t(r,i,e)}return yP=n,yP}var xP,sz;function Cue(){if(sz)return xP;sz=1;var t=Qb();function e(n,r){return function(i,a){if(i==null)return i;if(!t(i))return n(i,a);for(var s=i.length,o=r?s:-1,c=Object(i);(r?o--:++or||o&&c&&h&&!u&&!p||a&&c&&h||!i&&h||!s)return 1;if(!a&&!o&&!p&&n=u)return h;var p=i[a];return h*(p=="desc"?-1:1)}}return n.index-r.index}return wP=e,wP}var MP,dz;function Due(){if(dz)return MP;dz=1;var t=xL(),e=bL(),n=kd(),r=wq(),i=Rue(),a=dq(),s=Pue(),o=Jv(),c=ks();function u(h,p,v){p.length?p=t(p,function(w){return c(w)?function(_){return e(_,w.length===1?w[0]:w)}:w}):p=[o];var y=-1;p=t(p,a(n));var b=r(h,function(w,_,S){var E=t(p,function(T){return T(w)});return{criteria:E,index:++y,value:w}});return i(b,function(w,_){return s(w,_,v)})}return MP=u,MP}var EP,hz;function Nue(){if(hz)return EP;hz=1;function t(e,n,r){switch(r.length){case 0:return e.call(n);case 1:return e.call(n,r[0]);case 2:return e.call(n,r[0],r[1]);case 3:return e.call(n,r[0],r[1],r[2])}return e.apply(n,r)}return EP=t,EP}var TP,pz;function Iue(){if(pz)return TP;pz=1;var t=Nue(),e=Math.max;function n(r,i,a){return i=e(i===void 0?r.length-1:i,0),function(){for(var s=arguments,o=-1,c=e(s.length-i,0),u=Array(c);++o0){if(++a>=t)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}return PP=r,PP}var DP,xz;function Fue(){if(xz)return DP;xz=1;var t=Lue(),e=kue(),n=e(t);return DP=n,DP}var NP,bz;function Uue(){if(bz)return NP;bz=1;var t=Jv(),e=Iue(),n=Fue();function r(i,a){return n(e(i,a,t),i+"")}return NP=r,NP}var IP,_z;function _E(){if(_z)return IP;_z=1;var t=gL(),e=Qb(),n=OL(),r=Ld();function i(a,s,o){if(!r(o))return!1;var c=typeof s;return(c=="number"?e(o)&&n(s,o.length):c=="string"&&s in o)?t(o[s],a):!1}return IP=i,IP}var BP,Sz;function jue(){if(Sz)return BP;Sz=1;var t=Sq(),e=Due(),n=Uue(),r=_E(),i=n(function(a,s){if(a==null)return[];var o=s.length;return o>1&&r(a,s[0],s[1])?s=[]:o>2&&r(s[0],s[1],s[2])&&(s=[s[0]]),e(a,t(s,1),[])});return BP=i,BP}var zue=jue();const IL=ar(zue);function Yx(t){"@babel/helpers - typeof";return Yx=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yx(t)}function qN(){return qN=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e.x),"".concat(H0,"-left"),mt(n)&&e&&mt(e.x)&&n=e.y),"".concat(H0,"-top"),mt(r)&&e&&mt(e.y)&&rw?Math.max(h,c[r]):Math.max(p,c[r])}function nfe(t){var e=t.translateX,n=t.translateY,r=t.useTranslate3d;return{transform:r?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")}}function rfe(t){var e=t.allowEscapeViewBox,n=t.coordinate,r=t.offsetTopLeft,i=t.position,a=t.reverseDirection,s=t.tooltipBox,o=t.useTranslate3d,c=t.viewBox,u,h,p;return s.height>0&&s.width>0&&n?(h=Mz({allowEscapeViewBox:e,coordinate:n,key:"x",offsetTopLeft:r,position:i,reverseDirection:a,tooltipDimension:s.width,viewBox:c,viewBoxDimension:c.width}),p=Mz({allowEscapeViewBox:e,coordinate:n,key:"y",offsetTopLeft:r,position:i,reverseDirection:a,tooltipDimension:s.height,viewBox:c,viewBoxDimension:c.height}),u=nfe({translateX:h,translateY:p,useTranslate3d:o})):u=efe,{cssProperties:u,cssClasses:tfe({translateX:h,translateY:p,coordinate:n})}}function sv(t){"@babel/helpers - typeof";return sv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sv(t)}function Ez(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Tz(t){for(var e=1;eCz||Math.abs(r.height-this.state.lastBoundingBox.height)>Cz)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,i=this.props,a=i.active,s=i.allowEscapeViewBox,o=i.animationDuration,c=i.animationEasing,u=i.children,h=i.coordinate,p=i.hasPayload,v=i.isAnimationActive,y=i.offset,b=i.position,w=i.reverseDirection,_=i.useTranslate3d,S=i.viewBox,E=i.wrapperStyle,T=rfe({allowEscapeViewBox:s,coordinate:h,offsetTopLeft:y,position:b,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:_,viewBox:S}),P=T.cssClasses,R=T.cssProperties,D=Tz(Tz({transition:v&&a?"transform ".concat(o,"ms ").concat(c):void 0},R),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return fe.createElement("div",{tabIndex:-1,className:P,style:D,ref:function(k){r.wrapperNode=k}},u)}}])})(j.PureComponent),hfe=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Fp={isSsr:hfe()};function ov(t){"@babel/helpers - typeof";return ov=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ov(t)}function Rz(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Oz(t){for(var e=1;e0;return fe.createElement(dfe,{allowEscapeViewBox:s,animationDuration:o,animationEasing:c,isAnimationActive:v,active:a,coordinate:h,hasPayload:D,offset:y,position:_,reverseDirection:S,useTranslate3d:E,viewBox:T,wrapperStyle:P},Afe(u,Oz(Oz({},this.props),{},{payload:R})))}}])})(j.PureComponent);BL(Rl,"displayName","Tooltip");BL(Rl,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Fp.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var kP,Pz;function wfe(){if(Pz)return kP;Pz=1;var t=Kc(),e=function(){return t.Date.now()};return kP=e,kP}var FP,Dz;function Mfe(){if(Dz)return FP;Dz=1;var t=/\s/;function e(n){for(var r=n.length;r--&&t.test(n.charAt(r)););return r}return FP=e,FP}var UP,Nz;function Efe(){if(Nz)return UP;Nz=1;var t=Mfe(),e=/^\s+/;function n(r){return r&&r.slice(0,t(r)+1).replace(e,"")}return UP=n,UP}var jP,Iz;function Oq(){if(Iz)return jP;Iz=1;var t=Efe(),e=Ld(),n=$v(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,s=/^0o[0-7]+$/i,o=parseInt;function c(u){if(typeof u=="number")return u;if(n(u))return r;if(e(u)){var h=typeof u.valueOf=="function"?u.valueOf():u;u=e(h)?h+"":h}if(typeof u!="string")return u===0?u:+u;u=t(u);var p=a.test(u);return p||s.test(u)?o(u.slice(2),p?2:8):i.test(u)?r:+u}return jP=c,jP}var zP,Bz;function Tfe(){if(Bz)return zP;Bz=1;var t=Ld(),e=wfe(),n=Oq(),r="Expected a function",i=Math.max,a=Math.min;function s(o,c,u){var h,p,v,y,b,w,_=0,S=!1,E=!1,T=!0;if(typeof o!="function")throw new TypeError(r);c=n(c)||0,t(u)&&(S=!!u.leading,E="maxWait"in u,v=E?i(n(u.maxWait)||0,c):v,T="trailing"in u?!!u.trailing:T);function P(W){var ee=h,Q=p;return h=p=void 0,_=W,y=o.apply(Q,ee),y}function R(W){return _=W,b=setTimeout(k,c),S?P(W):y}function D(W){var ee=W-w,Q=W-_,V=c-ee;return E?a(V,v-Q):V}function I(W){var ee=W-w,Q=W-_;return w===void 0||ee>=c||ee<0||E&&Q>=v}function k(){var W=e();if(I(W))return B(W);b=setTimeout(k,D(W))}function B(W){return b=void 0,T&&h?P(W):(h=p=void 0,y)}function U(){b!==void 0&&clearTimeout(b),_=0,h=w=p=b=void 0}function z(){return b===void 0?y:B(e())}function q(){var W=e(),ee=I(W);if(h=arguments,p=this,w=W,ee){if(b===void 0)return R(w);if(E)return clearTimeout(b),b=setTimeout(k,c),P(w)}return b===void 0&&(b=setTimeout(k,c)),y}return q.cancel=U,q.flush=z,q}return zP=s,zP}var GP,Lz;function Cfe(){if(Lz)return GP;Lz=1;var t=Tfe(),e=Ld(),n="Expected a function";function r(i,a,s){var o=!0,c=!0;if(typeof i!="function")throw new TypeError(n);return e(s)&&(o="leading"in s?!!s.leading:o,c="trailing"in s?!!s.trailing:c),t(i,a,{leading:o,maxWait:a,trailing:c})}return GP=r,GP}var Rfe=Cfe();const Pq=ar(Rfe);function Zx(t){"@babel/helpers - typeof";return Zx=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zx(t)}function kz(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function gS(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&(W=Pq(W,w,{trailing:!0,leading:!1}));var ee=new ResizeObserver(W),Q=R.current.getBoundingClientRect(),V=Q.width,$=Q.height;return z(V,$),ee.observe(R.current),function(){ee.disconnect()}},[z,w]);var q=j.useMemo(function(){var W=B.containerWidth,ee=B.containerHeight;if(W<0||ee<0)return null;Ku(rp(s)||rp(c),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,s,c),Ku(!n||n>0,"The aspect(%s) must be greater than zero.",n);var Q=rp(s)?W:s,V=rp(c)?ee:c;n&&n>0&&(Q?V=Q/n:V&&(Q=V*n),v&&V>v&&(V=v)),Ku(Q>0||V>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,Q,V,s,c,h,p,n);var $=!Array.isArray(y)&&Xu(y.type).endsWith("Chart");return fe.Children.map(y,function(Y){return fe.isValidElement(Y)?j.cloneElement(Y,gS({width:Q,height:V},$?{style:gS({height:"100%",width:"100%",maxHeight:V,maxWidth:Q},Y.props.style)}:{})):Y})},[n,y,c,v,p,h,B,s]);return fe.createElement("div",{id:_?"".concat(_):void 0,className:In("recharts-responsive-container",S),style:gS(gS({},P),{},{width:s,height:c,minWidth:h,minHeight:p,maxHeight:v}),ref:R},q)}),Nq=function(e){return null};Nq.displayName="Cell";function Qx(t){"@babel/helpers - typeof";return Qx=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qx(t)}function Uz(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function YN(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Fp.isSsr)return{width:0,height:0};var r=Hfe(n),i=JSON.stringify({text:e,copyStyle:r});if(tg.widthCache[i])return tg.widthCache[i];try{var a=document.getElementById(jz);a||(a=document.createElement("span"),a.setAttribute("id",jz),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var s=YN(YN({},Gfe),r);Object.assign(a.style,s),a.textContent="".concat(e);var o=a.getBoundingClientRect(),c={width:o.width,height:o.height};return tg.widthCache[i]=c,++tg.cacheCount>zfe&&(tg.cacheCount=0,tg.widthCache={}),c}catch{return{width:0,height:0}}},Vfe=function(e){return{top:e.top+window.scrollY-document.documentElement.clientTop,left:e.left+window.scrollX-document.documentElement.clientLeft}};function eb(t){"@babel/helpers - typeof";return eb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},eb(t)}function fw(t,e){return Xfe(t)||$fe(t,e)||qfe(t,e)||Wfe()}function Wfe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qfe(t,e){if(t){if(typeof t=="string")return zz(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zz(t,e)}}function zz(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function lde(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function $z(t,e){return dde(t)||fde(t,e)||ude(t,e)||cde()}function cde(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ude(t,e){if(t){if(typeof t=="string")return Xz(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xz(t,e)}}function Xz(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&arguments[0]!==void 0?arguments[0]:[];return Q.reduce(function(V,$){var Y=$.word,ie=$.width,de=V[V.length-1];if(de&&(i==null||a||de.width+ie+r$.width?V:$})};if(!h)return y;for(var w="…",_=function(Q){var V=p.slice(0,Q),$=kq({breakAll:u,style:c,children:V+w}).wordsWithComputedWidth,Y=v($),ie=Y.length>s||b(Y).width>Number(i);return[ie,Y]},S=0,E=p.length-1,T=0,P;S<=E&&T<=p.length-1;){var R=Math.floor((S+E)/2),D=R-1,I=_(D),k=$z(I,2),B=k[0],U=k[1],z=_(R),q=$z(z,1),W=q[0];if(!B&&!W&&(S=R+1),B&&W&&(E=R-1),!B&&W){P=U;break}T++}return P||y},Kz=function(e){var n=Cn(e)?[]:e.toString().split(Lq);return[{words:n}]},pde=function(e){var n=e.width,r=e.scaleToFit,i=e.children,a=e.style,s=e.breakAll,o=e.maxLines;if((n||r)&&!Fp.isSsr){var c,u,h=kq({breakAll:s,children:i,style:a});if(h){var p=h.wordsWithComputedWidth,v=h.spaceWidth;c=p,u=v}else return Kz(i);return hde({breakAll:s,children:i,maxLines:o,style:a},c,u,n,r)}return Kz(i)},Yz="#808080",dw=function(e){var n=e.x,r=n===void 0?0:n,i=e.y,a=i===void 0?0:i,s=e.lineHeight,o=s===void 0?"1em":s,c=e.capHeight,u=c===void 0?"0.71em":c,h=e.scaleToFit,p=h===void 0?!1:h,v=e.textAnchor,y=v===void 0?"start":v,b=e.verticalAnchor,w=b===void 0?"end":b,_=e.fill,S=_===void 0?Yz:_,E=qz(e,sde),T=j.useMemo(function(){return pde({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),P=E.dx,R=E.dy,D=E.angle,I=E.className,k=E.breakAll,B=qz(E,ode);if(!ji(r)||!ji(a))return null;var U=r+(mt(P)?P:0),z=a+(mt(R)?R:0),q;switch(w){case"start":q=HP("calc(".concat(u,")"));break;case"middle":q=HP("calc(".concat((T.length-1)/2," * -").concat(o," + (").concat(u," / 2))"));break;default:q=HP("calc(".concat(T.length-1," * -").concat(o,")"));break}var W=[];if(p){var ee=T[0].width,Q=E.width;W.push("scale(".concat((mt(Q)?Q/ee:1)/ee,")"))}return D&&W.push("rotate(".concat(D,", ").concat(U,", ").concat(z,")")),W.length&&(B.transform=W.join(" ")),fe.createElement("text",JN({},_n(B,!0),{x:U,y:z,className:In("recharts-text",I),textAnchor:y,fill:S.includes("url")?Yz:S}),T.map(function(V,$){var Y=V.words.join(k?"":" ");return fe.createElement("tspan",{x:U,dy:$===0?q:o,key:"".concat(Y,"-").concat($)},Y)}))};function Md(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function mde(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function LL(t){let e,n,r;t.length!==2?(e=Md,n=(o,c)=>Md(t(o),c),r=(o,c)=>t(o)-c):(e=t===Md||t===mde?t:gde,n=t,r=t);function i(o,c,u=0,h=o.length){if(u>>1;n(o[p],c)<0?u=p+1:h=p}while(u>>1;n(o[p],c)<=0?u=p+1:h=p}while(uu&&r(o[p-1],c)>-r(o[p],c)?p-1:p}return{left:i,center:s,right:a}}function gde(){return 0}function Fq(t){return t===null?NaN:+t}function*vde(t,e){for(let n of t)n!=null&&(n=+n)>=n&&(yield n)}const yde=LL(Md),e1=yde.right;LL(Fq).center;class Jz extends Map{constructor(e,n=_de){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[r,i]of e)this.set(r,i)}get(e){return super.get(Zz(this,e))}has(e){return super.has(Zz(this,e))}set(e,n){return super.set(xde(this,e),n)}delete(e){return super.delete(bde(this,e))}}function Zz({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function xde({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function bde({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function _de(t){return t!==null&&typeof t=="object"?t.valueOf():t}function Sde(t=Md){if(t===Md)return Uq;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const r=t(e,n);return r||r===0?r:(t(n,n)===0)-(t(e,e)===0)}}function Uq(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(te?1:0)}const Ade=Math.sqrt(50),wde=Math.sqrt(10),Mde=Math.sqrt(2);function hw(t,e,n){const r=(e-t)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/Math.pow(10,i),s=a>=Ade?10:a>=wde?5:a>=Mde?2:1;let o,c,u;return i<0?(u=Math.pow(10,-i)/s,o=Math.round(t*u),c=Math.round(e*u),o/ue&&--c,u=-u):(u=Math.pow(10,i)*s,o=Math.round(t/u),c=Math.round(e/u),o*ue&&--c),c0))return[];if(t===e)return[t];const r=e=i))return[];const o=a-i+1,c=new Array(o);if(r)if(s<0)for(let u=0;u=r)&&(n=r);return n}function e9(t,e){let n;for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function jq(t,e,n=0,r=1/0,i){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(t.length-1,r)),!(n<=e&&e<=r))return t;for(i=i===void 0?Uq:Sde(i);r>n;){if(r-n>600){const c=r-n+1,u=e-n+1,h=Math.log(c),p=.5*Math.exp(2*h/3),v=.5*Math.sqrt(h*p*(c-p)/c)*(u-c/2<0?-1:1),y=Math.max(n,Math.floor(e-u*p/c+v)),b=Math.min(r,Math.floor(e+(c-u)*p/c+v));jq(t,e,y,b,i)}const a=t[e];let s=n,o=r;for(V0(t,n,e),i(t[r],a)>0&&V0(t,n,r);s0;)--o}i(t[n],a)===0?V0(t,n,o):(++o,V0(t,o,r)),o<=e&&(n=o+1),e<=o&&(r=o-1)}return t}function V0(t,e,n){const r=t[e];t[e]=t[n],t[n]=r}function Ede(t,e,n){if(t=Float64Array.from(vde(t)),!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return e9(t);if(e>=1)return Qz(t);var r,i=(r-1)*e,a=Math.floor(i),s=Qz(jq(t,a).subarray(0,a+1)),o=e9(t.subarray(a+1));return s+(o-s)*(i-a)}}function Tde(t,e,n=Fq){if(!(!(r=t.length)||isNaN(e=+e))){if(e<=0||r<2)return+n(t[0],0,t);if(e>=1)return+n(t[r-1],r-1,t);var r,i=(r-1)*e,a=Math.floor(i),s=+n(t[a],a,t),o=+n(t[a+1],a+1,t);return s+(o-s)*(i-a)}}function Cde(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((e-t)/n))|0,a=new Array(i);++r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?yS(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?yS(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Ode.exec(t))?new Is(e[1],e[2],e[3],1):(e=Pde.exec(t))?new Is(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Dde.exec(t))?yS(e[1],e[2],e[3],e[4]):(e=Nde.exec(t))?yS(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Ide.exec(t))?o9(e[1],e[2]/100,e[3]/100,1):(e=Bde.exec(t))?o9(e[1],e[2]/100,e[3]/100,e[4]):t9.hasOwnProperty(t)?i9(t9[t]):t==="transparent"?new Is(NaN,NaN,NaN,0):null}function i9(t){return new Is(t>>16&255,t>>8&255,t&255,1)}function yS(t,e,n,r){return r<=0&&(t=e=n=NaN),new Is(t,e,n,r)}function Fde(t){return t instanceof t1||(t=ib(t)),t?(t=t.rgb(),new Is(t.r,t.g,t.b,t.opacity)):new Is}function nI(t,e,n,r){return arguments.length===1?Fde(t):new Is(t,e,n,r??1)}function Is(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}FL(Is,nI,Gq(t1,{brighter(t){return t=t==null?pw:Math.pow(pw,t),new Is(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?nb:Math.pow(nb,t),new Is(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Is(vp(this.r),vp(this.g),vp(this.b),mw(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:a9,formatHex:a9,formatHex8:Ude,formatRgb:s9,toString:s9}));function a9(){return`#${ip(this.r)}${ip(this.g)}${ip(this.b)}`}function Ude(){return`#${ip(this.r)}${ip(this.g)}${ip(this.b)}${ip((isNaN(this.opacity)?1:this.opacity)*255)}`}function s9(){const t=mw(this.opacity);return`${t===1?"rgb(":"rgba("}${vp(this.r)}, ${vp(this.g)}, ${vp(this.b)}${t===1?")":`, ${t})`}`}function mw(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function vp(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ip(t){return t=vp(t),(t<16?"0":"")+t.toString(16)}function o9(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Nl(t,e,n,r)}function Hq(t){if(t instanceof Nl)return new Nl(t.h,t.s,t.l,t.opacity);if(t instanceof t1||(t=ib(t)),!t)return new Nl;if(t instanceof Nl)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),s=NaN,o=a-i,c=(a+i)/2;return o?(e===a?s=(n-r)/o+(n0&&c<1?0:s,new Nl(s,o,c,t.opacity)}function jde(t,e,n,r){return arguments.length===1?Hq(t):new Nl(t,e,n,r??1)}function Nl(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}FL(Nl,jde,Gq(t1,{brighter(t){return t=t==null?pw:Math.pow(pw,t),new Nl(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?nb:Math.pow(nb,t),new Nl(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Is(VP(t>=240?t-240:t+120,i,r),VP(t,i,r),VP(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Nl(l9(this.h),xS(this.s),xS(this.l),mw(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=mw(this.opacity);return`${t===1?"hsl(":"hsla("}${l9(this.h)}, ${xS(this.s)*100}%, ${xS(this.l)*100}%${t===1?")":`, ${t})`}`}}));function l9(t){return t=(t||0)%360,t<0?t+360:t}function xS(t){return Math.max(0,Math.min(1,t||0))}function VP(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const UL=t=>()=>t;function zde(t,e){return function(n){return t+n*e}}function Gde(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Hde(t){return(t=+t)==1?Vq:function(e,n){return n-e?Gde(e,n,t):UL(isNaN(e)?n:e)}}function Vq(t,e){var n=e-t;return n?zde(t,n):UL(isNaN(t)?e:t)}const c9=(function t(e){var n=Hde(e);function r(i,a){var s=n((i=nI(i)).r,(a=nI(a)).r),o=n(i.g,a.g),c=n(i.b,a.b),u=Vq(i.opacity,a.opacity);return function(h){return i.r=s(h),i.g=o(h),i.b=c(h),i.opacity=u(h),i+""}}return r.gamma=t,r})(1);function Vde(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),i;return function(a){for(i=0;in&&(a=e.slice(n,a),o[s]?o[s]+=a:o[++s]=a),(r=r[0])===(i=i[0])?o[s]?o[s]+=i:o[++s]=i:(o[++s]=null,c.push({i:s,x:gw(r,i)})),n=WP.lastIndex;return ne&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function the(t,e,n){var r=t[0],i=t[1],a=e[0],s=e[1];return i2?nhe:the,c=u=null,p}function p(v){return v==null||isNaN(v=+v)?a:(c||(c=o(t.map(r),e,n)))(r(s(v)))}return p.invert=function(v){return s(i((u||(u=o(e,t.map(r),gw)))(v)))},p.domain=function(v){return arguments.length?(t=Array.from(v,vw),h()):t.slice()},p.range=function(v){return arguments.length?(e=Array.from(v),h()):e.slice()},p.rangeRound=function(v){return e=Array.from(v),n=jL,h()},p.clamp=function(v){return arguments.length?(s=v?!0:as,h()):s!==as},p.interpolate=function(v){return arguments.length?(n=v,h()):n},p.unknown=function(v){return arguments.length?(a=v,p):a},function(v,y){return r=v,i=y,h()}}function zL(){return SE()(as,as)}function rhe(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function yw(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function lv(t){return t=yw(Math.abs(t)),t?t[1]:NaN}function ihe(t,e){return function(n,r){for(var i=n.length,a=[],s=0,o=t[0],c=0;i>0&&o>0&&(c+o+1>r&&(o=Math.max(1,r-c)),a.push(n.substring(i-=o,i+o)),!((c+=o+1)>r));)o=t[s=(s+1)%t.length];return a.reverse().join(e)}}function ahe(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var she=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ab(t){if(!(e=she.exec(t)))throw new Error("invalid format: "+t);var e;return new GL({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}ab.prototype=GL.prototype;function GL(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}GL.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function ohe(t){e:for(var e=t.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(i+1):t}var Wq;function lhe(t,e){var n=yw(t,e);if(!n)return t+"";var r=n[0],i=n[1],a=i-(Wq=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=r.length;return a===s?r:a>s?r+new Array(a-s+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+yw(t,Math.max(0,e+a-1))[0]}function f9(t,e){var n=yw(t,e);if(!n)return t+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const d9={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:rhe,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>f9(t*100,e),r:f9,s:lhe,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function h9(t){return t}var p9=Array.prototype.map,m9=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function che(t){var e=t.grouping===void 0||t.thousands===void 0?h9:ihe(p9.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?h9:ahe(p9.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function u(p){p=ab(p);var v=p.fill,y=p.align,b=p.sign,w=p.symbol,_=p.zero,S=p.width,E=p.comma,T=p.precision,P=p.trim,R=p.type;R==="n"?(E=!0,R="g"):d9[R]||(T===void 0&&(T=12),P=!0,R="g"),(_||v==="0"&&y==="=")&&(_=!0,v="0",y="=");var D=w==="$"?n:w==="#"&&/[boxX]/.test(R)?"0"+R.toLowerCase():"",I=w==="$"?r:/[%p]/.test(R)?s:"",k=d9[R],B=/[defgprs%]/.test(R);T=T===void 0?6:/[gprs]/.test(R)?Math.max(1,Math.min(21,T)):Math.max(0,Math.min(20,T));function U(z){var q=D,W=I,ee,Q,V;if(R==="c")W=k(z)+W,z="";else{z=+z;var $=z<0||1/z<0;if(z=isNaN(z)?c:k(Math.abs(z),T),P&&(z=ohe(z)),$&&+z==0&&b!=="+"&&($=!1),q=($?b==="("?b:o:b==="-"||b==="("?"":b)+q,W=(R==="s"?m9[8+Wq/3]:"")+W+($&&b==="("?")":""),B){for(ee=-1,Q=z.length;++eeV||V>57){W=(V===46?i+z.slice(ee+1):z.slice(ee))+W,z=z.slice(0,ee);break}}}E&&!_&&(z=e(z,1/0));var Y=q.length+z.length+W.length,ie=Y>1)+q+z+W+ie.slice(Y);break;default:z=ie+q+z+W;break}return a(z)}return U.toString=function(){return p+""},U}function h(p,v){var y=u((p=ab(p),p.type="f",p)),b=Math.max(-8,Math.min(8,Math.floor(lv(v)/3)))*3,w=Math.pow(10,-b),_=m9[8+b/3];return function(S){return y(w*S)+_}}return{format:u,formatPrefix:h}}var bS,HL,qq;uhe({thousands:",",grouping:[3],currency:["$",""]});function uhe(t){return bS=che(t),HL=bS.format,qq=bS.formatPrefix,bS}function fhe(t){return Math.max(0,-lv(Math.abs(t)))}function dhe(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(lv(e)/3)))*3-lv(Math.abs(t)))}function hhe(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,lv(e)-lv(t))+1}function $q(t,e,n,r){var i=eI(t,e,n),a;switch(r=ab(r??",f"),r.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(a=dhe(i,s))&&(r.precision=a),qq(r,s)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=hhe(i,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=fhe(i))&&(r.precision=a-(r.type==="%")*2);break}}return HL(r)}function Fd(t){var e=t.domain;return t.ticks=function(n){var r=e();return ZN(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var i=e();return $q(i[0],i[i.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),i=0,a=r.length-1,s=r[i],o=r[a],c,u,h=10;for(o0;){if(u=QN(s,o,n),u===c)return r[i]=s,r[a]=o,e(r);if(u>0)s=Math.floor(s/u)*u,o=Math.ceil(o/u)*u;else if(u<0)s=Math.ceil(s*u)/u,o=Math.floor(o*u)/u;else break;c=u}return t},t}function xw(){var t=zL();return t.copy=function(){return n1(t,xw())},Jo.apply(t,arguments),Fd(t)}function Xq(t){var e;function n(r){return r==null||isNaN(r=+r)?e:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(t=Array.from(r,vw),n):t.slice()},n.unknown=function(r){return arguments.length?(e=r,n):e},n.copy=function(){return Xq(t).unknown(e)},t=arguments.length?Array.from(t,vw):[0,1],Fd(n)}function Kq(t,e){t=t.slice();var n=0,r=t.length-1,i=t[n],a=t[r],s;return aMath.pow(t,e)}function yhe(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function y9(t){return(e,n)=>-t(-e,n)}function VL(t){const e=t(g9,v9),n=e.domain;let r=10,i,a;function s(){return i=yhe(r),a=vhe(r),n()[0]<0?(i=y9(i),a=y9(a),t(phe,mhe)):t(g9,v9),e}return e.base=function(o){return arguments.length?(r=+o,s()):r},e.domain=function(o){return arguments.length?(n(o),s()):n()},e.ticks=o=>{const c=n();let u=c[0],h=c[c.length-1];const p=h0){for(;v<=y;++v)for(b=1;bh)break;S.push(w)}}else for(;v<=y;++v)for(b=r-1;b>=1;--b)if(w=v>0?b/a(-v):b*a(v),!(wh)break;S.push(w)}S.length*2<_&&(S=ZN(u,h,_))}else S=ZN(v,y,Math.min(y-v,_)).map(a);return p?S.reverse():S},e.tickFormat=(o,c)=>{if(o==null&&(o=10),c==null&&(c=r===10?"s":","),typeof c!="function"&&(!(r%1)&&(c=ab(c)).precision==null&&(c.trim=!0),c=HL(c)),o===1/0)return c;const u=Math.max(1,r*o/e.ticks().length);return h=>{let p=h/a(Math.round(i(h)));return p*rn(Kq(n(),{floor:o=>a(Math.floor(i(o))),ceil:o=>a(Math.ceil(i(o)))})),e}function Yq(){const t=VL(SE()).domain([1,10]);return t.copy=()=>n1(t,Yq()).base(t.base()),Jo.apply(t,arguments),t}function x9(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function b9(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function WL(t){var e=1,n=t(x9(e),b9(e));return n.constant=function(r){return arguments.length?t(x9(e=+r),b9(e)):e},Fd(n)}function Jq(){var t=WL(SE());return t.copy=function(){return n1(t,Jq()).constant(t.constant())},Jo.apply(t,arguments)}function _9(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function xhe(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function bhe(t){return t<0?-t*t:t*t}function qL(t){var e=t(as,as),n=1;function r(){return n===1?t(as,as):n===.5?t(xhe,bhe):t(_9(n),_9(1/n))}return e.exponent=function(i){return arguments.length?(n=+i,r()):n},Fd(e)}function $L(){var t=qL(SE());return t.copy=function(){return n1(t,$L()).exponent(t.exponent())},Jo.apply(t,arguments),t}function _he(){return $L.apply(null,arguments).exponent(.5)}function S9(t){return Math.sign(t)*t*t}function She(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function Zq(){var t=zL(),e=[0,1],n=!1,r;function i(a){var s=She(t(a));return isNaN(s)?r:n?Math.round(s):s}return i.invert=function(a){return t.invert(S9(a))},i.domain=function(a){return arguments.length?(t.domain(a),i):t.domain()},i.range=function(a){return arguments.length?(t.range((e=Array.from(a,vw)).map(S9)),i):e.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(n=!!a,i):n},i.clamp=function(a){return arguments.length?(t.clamp(a),i):t.clamp()},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return Zq(t.domain(),e).round(n).clamp(t.clamp()).unknown(r)},Jo.apply(i,arguments),Fd(i)}function Qq(){var t=[],e=[],n=[],r;function i(){var s=0,o=Math.max(1,e.length);for(n=new Array(o-1);++s0?n[o-1]:t[0],o=n?[r[n-1],e]:[r[u-1],r[u]]},s.unknown=function(c){return arguments.length&&(a=c),s},s.thresholds=function(){return r.slice()},s.copy=function(){return e$().domain([t,e]).range(i).unknown(a)},Jo.apply(Fd(s),arguments)}function t$(){var t=[.5],e=[0,1],n,r=1;function i(a){return a!=null&&a<=a?e[e1(t,a,0,r)]:n}return i.domain=function(a){return arguments.length?(t=Array.from(a),r=Math.min(t.length,e.length-1),i):t.slice()},i.range=function(a){return arguments.length?(e=Array.from(a),r=Math.min(t.length,e.length-1),i):e.slice()},i.invertExtent=function(a){var s=e.indexOf(a);return[t[s-1],t[s]]},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return t$().domain(t).range(e).unknown(n)},Jo.apply(i,arguments)}const qP=new Date,$P=new Date;function Vi(t,e,n,r){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{const s=i(a),o=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,o)=>{const c=[];if(a=i.ceil(a),o=o==null?1:Math.floor(o),!(a0))return c;let u;do c.push(u=new Date(+a)),e(a,o),t(a);while(uVi(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,o)=>{if(s>=s)if(o<0)for(;++o<=0;)for(;e(s,-1),!a(s););else for(;--o>=0;)for(;e(s,1),!a(s););}),n&&(i.count=(a,s)=>(qP.setTime(+a),$P.setTime(+s),t(qP),t($P),Math.floor(n(qP,$P))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?s=>r(s)%a===0:s=>i.count(0,s)%a===0):i)),i}const bw=Vi(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);bw.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Vi(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):bw);bw.range;const Hu=1e3,jo=Hu*60,Vu=jo*60,nf=Vu*24,XL=nf*7,A9=nf*30,XP=nf*365,ap=Vi(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Hu)},(t,e)=>(e-t)/Hu,t=>t.getUTCSeconds());ap.range;const KL=Vi(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Hu)},(t,e)=>{t.setTime(+t+e*jo)},(t,e)=>(e-t)/jo,t=>t.getMinutes());KL.range;const YL=Vi(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*jo)},(t,e)=>(e-t)/jo,t=>t.getUTCMinutes());YL.range;const JL=Vi(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Hu-t.getMinutes()*jo)},(t,e)=>{t.setTime(+t+e*Vu)},(t,e)=>(e-t)/Vu,t=>t.getHours());JL.range;const ZL=Vi(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Vu)},(t,e)=>(e-t)/Vu,t=>t.getUTCHours());ZL.range;const r1=Vi(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*jo)/nf,t=>t.getDate()-1);r1.range;const AE=Vi(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/nf,t=>t.getUTCDate()-1);AE.range;const n$=Vi(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/nf,t=>Math.floor(t/nf));n$.range;function Up(t){return Vi(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*jo)/XL)}const wE=Up(0),_w=Up(1),Ahe=Up(2),whe=Up(3),cv=Up(4),Mhe=Up(5),Ehe=Up(6);wE.range;_w.range;Ahe.range;whe.range;cv.range;Mhe.range;Ehe.range;function jp(t){return Vi(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/XL)}const ME=jp(0),Sw=jp(1),The=jp(2),Che=jp(3),uv=jp(4),Rhe=jp(5),Ohe=jp(6);ME.range;Sw.range;The.range;Che.range;uv.range;Rhe.range;Ohe.range;const QL=Vi(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());QL.range;const e5=Vi(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());e5.range;const rf=Vi(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());rf.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Vi(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});rf.range;const af=Vi(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());af.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Vi(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});af.range;function r$(t,e,n,r,i,a){const s=[[ap,1,Hu],[ap,5,5*Hu],[ap,15,15*Hu],[ap,30,30*Hu],[a,1,jo],[a,5,5*jo],[a,15,15*jo],[a,30,30*jo],[i,1,Vu],[i,3,3*Vu],[i,6,6*Vu],[i,12,12*Vu],[r,1,nf],[r,2,2*nf],[n,1,XL],[e,1,A9],[e,3,3*A9],[t,1,XP]];function o(u,h,p){const v=h_).right(s,v);if(y===s.length)return t.every(eI(u/XP,h/XP,p));if(y===0)return bw.every(Math.max(eI(u,h,p),1));const[b,w]=s[v/s[y-1][2]53)return null;"w"in Re||(Re.w=1),"Z"in Re?(we=YP(W0(Re.y,0,1)),Ue=we.getUTCDay(),we=Ue>4||Ue===0?Sw.ceil(we):Sw(we),we=AE.offset(we,(Re.V-1)*7),Re.y=we.getUTCFullYear(),Re.m=we.getUTCMonth(),Re.d=we.getUTCDate()+(Re.w+6)%7):(we=KP(W0(Re.y,0,1)),Ue=we.getDay(),we=Ue>4||Ue===0?_w.ceil(we):_w(we),we=r1.offset(we,(Re.V-1)*7),Re.y=we.getFullYear(),Re.m=we.getMonth(),Re.d=we.getDate()+(Re.w+6)%7)}else("W"in Re||"U"in Re)&&("w"in Re||(Re.w="u"in Re?Re.u%7:"W"in Re?1:0),Ue="Z"in Re?YP(W0(Re.y,0,1)).getUTCDay():KP(W0(Re.y,0,1)).getDay(),Re.m=0,Re.d="W"in Re?(Re.w+6)%7+Re.W*7-(Ue+5)%7:Re.w+Re.U*7-(Ue+6)%7);return"Z"in Re?(Re.H+=Re.Z/100|0,Re.M+=Re.Z%100,YP(Re)):KP(Re)}}function k(_e,Fe,Xe,Re){for(var ot=0,we=Fe.length,Ue=Xe.length,Be,Ye;ot=Ue)return-1;if(Be=Fe.charCodeAt(ot++),Be===37){if(Be=Fe.charAt(ot++),Ye=R[Be in w9?Fe.charAt(ot++):Be],!Ye||(Re=Ye(_e,Xe,Re))<0)return-1}else if(Be!=Xe.charCodeAt(Re++))return-1}return Re}function B(_e,Fe,Xe){var Re=u.exec(Fe.slice(Xe));return Re?(_e.p=h.get(Re[0].toLowerCase()),Xe+Re[0].length):-1}function U(_e,Fe,Xe){var Re=y.exec(Fe.slice(Xe));return Re?(_e.w=b.get(Re[0].toLowerCase()),Xe+Re[0].length):-1}function z(_e,Fe,Xe){var Re=p.exec(Fe.slice(Xe));return Re?(_e.w=v.get(Re[0].toLowerCase()),Xe+Re[0].length):-1}function q(_e,Fe,Xe){var Re=S.exec(Fe.slice(Xe));return Re?(_e.m=E.get(Re[0].toLowerCase()),Xe+Re[0].length):-1}function W(_e,Fe,Xe){var Re=w.exec(Fe.slice(Xe));return Re?(_e.m=_.get(Re[0].toLowerCase()),Xe+Re[0].length):-1}function ee(_e,Fe,Xe){return k(_e,e,Fe,Xe)}function Q(_e,Fe,Xe){return k(_e,n,Fe,Xe)}function V(_e,Fe,Xe){return k(_e,r,Fe,Xe)}function $(_e){return s[_e.getDay()]}function Y(_e){return a[_e.getDay()]}function ie(_e){return c[_e.getMonth()]}function de(_e){return o[_e.getMonth()]}function X(_e){return i[+(_e.getHours()>=12)]}function ae(_e){return 1+~~(_e.getMonth()/3)}function ue(_e){return s[_e.getUTCDay()]}function Se(_e){return a[_e.getUTCDay()]}function $e(_e){return c[_e.getUTCMonth()]}function me(_e){return o[_e.getUTCMonth()]}function ve(_e){return i[+(_e.getUTCHours()>=12)]}function We(_e){return 1+~~(_e.getUTCMonth()/3)}return{format:function(_e){var Fe=D(_e+="",T);return Fe.toString=function(){return _e},Fe},parse:function(_e){var Fe=I(_e+="",!1);return Fe.toString=function(){return _e},Fe},utcFormat:function(_e){var Fe=D(_e+="",P);return Fe.toString=function(){return _e},Fe},utcParse:function(_e){var Fe=I(_e+="",!0);return Fe.toString=function(){return _e},Fe}}}var w9={"-":"",_:" ",0:"0"},Qi=/^\s*\d+/,Lhe=/^%/,khe=/[\\^$*+?|[\]().{}]/g;function Kn(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a[e.toLowerCase(),n]))}function Uhe(t,e,n){var r=Qi.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function jhe(t,e,n){var r=Qi.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function zhe(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Ghe(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Hhe(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function M9(t,e,n){var r=Qi.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function E9(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Vhe(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Whe(t,e,n){var r=Qi.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function qhe(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function T9(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function $he(t,e,n){var r=Qi.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function C9(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Xhe(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Khe(t,e,n){var r=Qi.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Yhe(t,e,n){var r=Qi.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Jhe(t,e,n){var r=Qi.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Zhe(t,e,n){var r=Lhe.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Qhe(t,e,n){var r=Qi.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function epe(t,e,n){var r=Qi.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function R9(t,e){return Kn(t.getDate(),e,2)}function tpe(t,e){return Kn(t.getHours(),e,2)}function npe(t,e){return Kn(t.getHours()%12||12,e,2)}function rpe(t,e){return Kn(1+r1.count(rf(t),t),e,3)}function i$(t,e){return Kn(t.getMilliseconds(),e,3)}function ipe(t,e){return i$(t,e)+"000"}function ape(t,e){return Kn(t.getMonth()+1,e,2)}function spe(t,e){return Kn(t.getMinutes(),e,2)}function ope(t,e){return Kn(t.getSeconds(),e,2)}function lpe(t){var e=t.getDay();return e===0?7:e}function cpe(t,e){return Kn(wE.count(rf(t)-1,t),e,2)}function a$(t){var e=t.getDay();return e>=4||e===0?cv(t):cv.ceil(t)}function upe(t,e){return t=a$(t),Kn(cv.count(rf(t),t)+(rf(t).getDay()===4),e,2)}function fpe(t){return t.getDay()}function dpe(t,e){return Kn(_w.count(rf(t)-1,t),e,2)}function hpe(t,e){return Kn(t.getFullYear()%100,e,2)}function ppe(t,e){return t=a$(t),Kn(t.getFullYear()%100,e,2)}function mpe(t,e){return Kn(t.getFullYear()%1e4,e,4)}function gpe(t,e){var n=t.getDay();return t=n>=4||n===0?cv(t):cv.ceil(t),Kn(t.getFullYear()%1e4,e,4)}function vpe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Kn(e/60|0,"0",2)+Kn(e%60,"0",2)}function O9(t,e){return Kn(t.getUTCDate(),e,2)}function ype(t,e){return Kn(t.getUTCHours(),e,2)}function xpe(t,e){return Kn(t.getUTCHours()%12||12,e,2)}function bpe(t,e){return Kn(1+AE.count(af(t),t),e,3)}function s$(t,e){return Kn(t.getUTCMilliseconds(),e,3)}function _pe(t,e){return s$(t,e)+"000"}function Spe(t,e){return Kn(t.getUTCMonth()+1,e,2)}function Ape(t,e){return Kn(t.getUTCMinutes(),e,2)}function wpe(t,e){return Kn(t.getUTCSeconds(),e,2)}function Mpe(t){var e=t.getUTCDay();return e===0?7:e}function Epe(t,e){return Kn(ME.count(af(t)-1,t),e,2)}function o$(t){var e=t.getUTCDay();return e>=4||e===0?uv(t):uv.ceil(t)}function Tpe(t,e){return t=o$(t),Kn(uv.count(af(t),t)+(af(t).getUTCDay()===4),e,2)}function Cpe(t){return t.getUTCDay()}function Rpe(t,e){return Kn(Sw.count(af(t)-1,t),e,2)}function Ope(t,e){return Kn(t.getUTCFullYear()%100,e,2)}function Ppe(t,e){return t=o$(t),Kn(t.getUTCFullYear()%100,e,2)}function Dpe(t,e){return Kn(t.getUTCFullYear()%1e4,e,4)}function Npe(t,e){var n=t.getUTCDay();return t=n>=4||n===0?uv(t):uv.ceil(t),Kn(t.getUTCFullYear()%1e4,e,4)}function Ipe(){return"+0000"}function P9(){return"%"}function D9(t){return+t}function N9(t){return Math.floor(+t/1e3)}var ng,l$,c$;Bpe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Bpe(t){return ng=Bhe(t),l$=ng.format,ng.parse,c$=ng.utcFormat,ng.utcParse,ng}function Lpe(t){return new Date(t)}function kpe(t){return t instanceof Date?+t:+new Date(+t)}function t5(t,e,n,r,i,a,s,o,c,u){var h=zL(),p=h.invert,v=h.domain,y=u(".%L"),b=u(":%S"),w=u("%I:%M"),_=u("%I %p"),S=u("%a %d"),E=u("%b %d"),T=u("%B"),P=u("%Y");function R(D){return(c(D)e(i/(t.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,a)=>Ede(t,a/r))},n.copy=function(){return h$(e).domain(t)},df.apply(n,arguments)}function TE(){var t=0,e=.5,n=1,r=1,i,a,s,o,c,u=as,h,p=!1,v;function y(w){return isNaN(w=+w)?v:(w=.5+((w=+h(w))-a)*(r*wn}return ZP=t,ZP}var QP,k9;function Hpe(){if(k9)return QP;k9=1;var t=v$(),e=Gpe(),n=Jv();function r(i){return i&&i.length?t(i,n,e):void 0}return QP=r,QP}var Vpe=Hpe();const bd=ar(Vpe);var e3,F9;function Wpe(){if(F9)return e3;F9=1;function t(e,n){return et.e^a.s<0?1:-1;for(r=a.d.length,i=t.d.length,e=0,n=rt.d[e]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1};Ot.decimalPlaces=Ot.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*Ir;if(e=t.d[e],e)for(;e%10==0;e/=10)n--;return n<0?0:n};Ot.dividedBy=Ot.div=function(t){return Yu(this,new this.constructor(t))};Ot.dividedToIntegerBy=Ot.idiv=function(t){var e=this,n=e.constructor;return gr(Yu(e,new n(t),0,1),n.precision)};Ot.equals=Ot.eq=function(t){return!this.cmp(t)};Ot.exponent=function(){return Ri(this)};Ot.greaterThan=Ot.gt=function(t){return this.cmp(t)>0};Ot.greaterThanOrEqualTo=Ot.gte=function(t){return this.cmp(t)>=0};Ot.isInteger=Ot.isint=function(){return this.e>this.d.length-2};Ot.isNegative=Ot.isneg=function(){return this.s<0};Ot.isPositive=Ot.ispos=function(){return this.s>0};Ot.isZero=function(){return this.s===0};Ot.lessThan=Ot.lt=function(t){return this.cmp(t)<0};Ot.lessThanOrEqualTo=Ot.lte=function(t){return this.cmp(t)<1};Ot.logarithm=Ot.log=function(t){var e,n=this,r=n.constructor,i=r.precision,a=i+5;if(t===void 0)t=new r(10);else if(t=new r(t),t.s<1||t.eq(Js))throw Error(Xo+"NaN");if(n.s<1)throw Error(Xo+(n.s?"NaN":"-Infinity"));return n.eq(Js)?new r(0):(zr=!1,e=Yu(sb(n,a),sb(t,a),a),zr=!0,gr(e,i))};Ot.minus=Ot.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?_$(e,t):x$(e,(t.s=-t.s,t))};Ot.modulo=Ot.mod=function(t){var e,n=this,r=n.constructor,i=r.precision;if(t=new r(t),!t.s)throw Error(Xo+"NaN");return n.s?(zr=!1,e=Yu(n,t,0,1).times(t),zr=!0,n.minus(e)):gr(new r(n),i)};Ot.naturalExponential=Ot.exp=function(){return b$(this)};Ot.naturalLogarithm=Ot.ln=function(){return sb(this)};Ot.negated=Ot.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};Ot.plus=Ot.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?x$(e,t):_$(e,(t.s=-t.s,t))};Ot.precision=Ot.sd=function(t){var e,n,r,i=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(yp+t);if(e=Ri(i)+1,r=i.d.length-1,n=r*Ir+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return t&&e>n?e:n};Ot.squareRoot=Ot.sqrt=function(){var t,e,n,r,i,a,s,o=this,c=o.constructor;if(o.s<1){if(!o.s)return new c(0);throw Error(Xo+"NaN")}for(t=Ri(o),zr=!1,i=Math.sqrt(+o),i==0||i==1/0?(e=Oc(o.d),(e.length+t)%2==0&&(e+="0"),i=Math.sqrt(e),t=ey((t+1)/2)-(t<0||t%2),i==1/0?e="5e"+t:(e=i.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),r=new c(e)):r=new c(i.toString()),n=c.precision,i=s=n+3;;)if(a=r,r=a.plus(Yu(o,a,s+2)).times(.5),Oc(a.d).slice(0,s)===(e=Oc(r.d)).slice(0,s)){if(e=e.slice(s-3,s+1),i==s&&e=="4999"){if(gr(a,n+1,0),a.times(a).eq(o)){r=a;break}}else if(e!="9999")break;s+=4}return zr=!0,gr(r,n)};Ot.times=Ot.mul=function(t){var e,n,r,i,a,s,o,c,u,h=this,p=h.constructor,v=h.d,y=(t=new p(t)).d;if(!h.s||!t.s)return new p(0);for(t.s*=h.s,n=h.e+t.e,c=v.length,u=y.length,c=0;){for(e=0,i=c+r;i>r;)o=a[i]+y[r]*v[i-r-1]+e,a[i--]=o%Ji|0,e=o/Ji|0;a[i]=(a[i]+e)%Ji|0}for(;!a[--s];)a.pop();return e?++n:a.shift(),t.d=a,t.e=n,zr?gr(t,p.precision):t};Ot.toDecimalPlaces=Ot.todp=function(t,e){var n=this,r=n.constructor;return n=new r(n),t===void 0?n:(zc(t,0,Qv),e===void 0?e=r.rounding:zc(e,0,8),gr(n,t+Ri(n)+1,e))};Ot.toExponential=function(t,e){var n,r=this,i=r.constructor;return t===void 0?n=wp(r,!0):(zc(t,0,Qv),e===void 0?e=i.rounding:zc(e,0,8),r=gr(new i(r),t+1,e),n=wp(r,!0,t+1)),n};Ot.toFixed=function(t,e){var n,r,i=this,a=i.constructor;return t===void 0?wp(i):(zc(t,0,Qv),e===void 0?e=a.rounding:zc(e,0,8),r=gr(new a(i),t+Ri(i)+1,e),n=wp(r.abs(),!1,t+Ri(r)+1),i.isneg()&&!i.isZero()?"-"+n:n)};Ot.toInteger=Ot.toint=function(){var t=this,e=t.constructor;return gr(new e(t),Ri(t)+1,e.rounding)};Ot.toNumber=function(){return+this};Ot.toPower=Ot.pow=function(t){var e,n,r,i,a,s,o=this,c=o.constructor,u=12,h=+(t=new c(t));if(!t.s)return new c(Js);if(o=new c(o),!o.s){if(t.s<1)throw Error(Xo+"Infinity");return o}if(o.eq(Js))return o;if(r=c.precision,t.eq(Js))return gr(o,r);if(e=t.e,n=t.d.length-1,s=e>=n,a=o.s,s){if((n=h<0?-h:h)<=y$){for(i=new c(Js),e=Math.ceil(r/Ir+4),zr=!1;n%2&&(i=i.times(o),V9(i.d,e)),n=ey(n/2),n!==0;)o=o.times(o),V9(o.d,e);return zr=!0,t.s<0?new c(Js).div(i):gr(i,r)}}else if(a<0)throw Error(Xo+"NaN");return a=a<0&&t.d[Math.max(e,n)]&1?-1:1,o.s=1,zr=!1,i=t.times(sb(o,r+u)),zr=!0,i=b$(i),i.s=a,i};Ot.toPrecision=function(t,e){var n,r,i=this,a=i.constructor;return t===void 0?(n=Ri(i),r=wp(i,n<=a.toExpNeg||n>=a.toExpPos)):(zc(t,1,Qv),e===void 0?e=a.rounding:zc(e,0,8),i=gr(new a(i),t,e),n=Ri(i),r=wp(i,t<=n||n<=a.toExpNeg,t)),r};Ot.toSignificantDigits=Ot.tosd=function(t,e){var n=this,r=n.constructor;return t===void 0?(t=r.precision,e=r.rounding):(zc(t,1,Qv),e===void 0?e=r.rounding:zc(e,0,8)),gr(new r(n),t,e)};Ot.toString=Ot.valueOf=Ot.val=Ot.toJSON=Ot[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=Ri(t),n=t.constructor;return wp(t,e<=n.toExpNeg||e>=n.toExpPos)};function x$(t,e){var n,r,i,a,s,o,c,u,h=t.constructor,p=h.precision;if(!t.s||!e.s)return e.s||(e=new h(t)),zr?gr(e,p):e;if(c=t.d,u=e.d,s=t.e,i=e.e,c=c.slice(),a=s-i,a){for(a<0?(r=c,a=-a,o=u.length):(r=u,i=s,o=c.length),s=Math.ceil(p/Ir),o=s>o?s+1:o+1,a>o&&(a=o,r.length=1),r.reverse();a--;)r.push(0);r.reverse()}for(o=c.length,a=u.length,o-a<0&&(a=o,r=u,u=c,c=r),n=0;a;)n=(c[--a]=c[a]+u[a]+n)/Ji|0,c[a]%=Ji;for(n&&(c.unshift(n),++i),o=c.length;c[--o]==0;)c.pop();return e.d=c,e.e=i,zr?gr(e,p):e}function zc(t,e,n){if(t!==~~t||tn)throw Error(yp+t)}function Oc(t){var e,n,r,i=t.length-1,a="",s=t[0];if(i>0){for(a+=s,e=1;es?1:-1;else for(o=c=0;oi[o]?1:-1;break}return c}function n(r,i,a){for(var s=0;a--;)r[a]-=s,s=r[a]1;)r.shift()}return function(r,i,a,s){var o,c,u,h,p,v,y,b,w,_,S,E,T,P,R,D,I,k,B=r.constructor,U=r.s==i.s?1:-1,z=r.d,q=i.d;if(!r.s)return new B(r);if(!i.s)throw Error(Xo+"Division by zero");for(c=r.e-i.e,I=q.length,R=z.length,y=new B(U),b=y.d=[],u=0;q[u]==(z[u]||0);)++u;if(q[u]>(z[u]||0)&&--c,a==null?E=a=B.precision:s?E=a+(Ri(r)-Ri(i))+1:E=a,E<0)return new B(0);if(E=E/Ir+2|0,u=0,I==1)for(h=0,q=q[0],E++;(u1&&(q=t(q,h),z=t(z,h),I=q.length,R=z.length),P=I,w=z.slice(0,I),_=w.length;_=Ji/2&&++D;do h=0,o=e(q,w,I,_),o<0?(S=w[0],I!=_&&(S=S*Ji+(w[1]||0)),h=S/D|0,h>1?(h>=Ji&&(h=Ji-1),p=t(q,h),v=p.length,_=w.length,o=e(p,w,v,_),o==1&&(h--,n(p,I16)throw Error(i5+Ri(t));if(!t.s)return new h(Js);for(zr=!1,o=p,s=new h(.03125);t.abs().gte(.1);)t=t.times(s),u+=5;for(r=Math.log(Jh(2,u))/Math.LN10*2+5|0,o+=r,n=i=a=new h(Js),h.precision=o;;){if(i=gr(i.times(t),o),n=n.times(++c),s=a.plus(Yu(i,n,o)),Oc(s.d).slice(0,o)===Oc(a.d).slice(0,o)){for(;u--;)a=gr(a.times(a),o);return h.precision=p,e==null?(zr=!0,gr(a,p)):a}a=s}}function Ri(t){for(var e=t.e*Ir,n=t.d[0];n>=10;n/=10)e++;return e}function a3(t,e,n){if(e>t.LN10.sd())throw zr=!0,n&&(t.precision=n),Error(Xo+"LN10 precision limit exceeded");return gr(new t(t.LN10),e)}function md(t){for(var e="";t--;)e+="0";return e}function sb(t,e){var n,r,i,a,s,o,c,u,h,p=1,v=10,y=t,b=y.d,w=y.constructor,_=w.precision;if(y.s<1)throw Error(Xo+(y.s?"NaN":"-Infinity"));if(y.eq(Js))return new w(0);if(e==null?(zr=!1,u=_):u=e,y.eq(10))return e==null&&(zr=!0),a3(w,u);if(u+=v,w.precision=u,n=Oc(b),r=n.charAt(0),a=Ri(y),Math.abs(a)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)y=y.times(t),n=Oc(y.d),r=n.charAt(0),p++;a=Ri(y),r>1?(y=new w("0."+n),a++):y=new w(r+"."+n.slice(1))}else return c=a3(w,u+2,_).times(a+""),y=sb(new w(r+"."+n.slice(1)),u-v).plus(c),w.precision=_,e==null?(zr=!0,gr(y,_)):y;for(o=s=y=Yu(y.minus(Js),y.plus(Js),u),h=gr(y.times(y),u),i=3;;){if(s=gr(s.times(h),u),c=o.plus(Yu(s,new w(i),u)),Oc(c.d).slice(0,u)===Oc(o.d).slice(0,u))return o=o.times(2),a!==0&&(o=o.plus(a3(w,u+2,_).times(a+""))),o=Yu(o,new w(p),u),w.precision=_,e==null?(zr=!0,gr(o,_)):o;o=c,i+=2}}function H9(t,e){var n,r,i;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charCodeAt(r)===48;)++r;for(i=e.length;e.charCodeAt(i-1)===48;)--i;if(e=e.slice(r,i),e){if(i-=r,n=n-r-1,t.e=ey(n/Ir),t.d=[],r=(n+1)%Ir,n<0&&(r+=Ir),rAw||t.e<-Aw))throw Error(i5+n)}else t.s=0,t.e=0,t.d=[0];return t}function gr(t,e,n){var r,i,a,s,o,c,u,h,p=t.d;for(s=1,a=p[0];a>=10;a/=10)s++;if(r=e-s,r<0)r+=Ir,i=e,u=p[h=0];else{if(h=Math.ceil((r+1)/Ir),a=p.length,h>=a)return t;for(u=a=p[h],s=1;a>=10;a/=10)s++;r%=Ir,i=r-Ir+s}if(n!==void 0&&(a=Jh(10,s-i-1),o=u/a%10|0,c=e<0||p[h+1]!==void 0||u%a,c=n<4?(o||c)&&(n==0||n==(t.s<0?3:2)):o>5||o==5&&(n==4||c||n==6&&(r>0?i>0?u/Jh(10,s-i):0:p[h-1])%10&1||n==(t.s<0?8:7))),e<1||!p[0])return c?(a=Ri(t),p.length=1,e=e-a-1,p[0]=Jh(10,(Ir-e%Ir)%Ir),t.e=ey(-e/Ir)||0):(p.length=1,p[0]=t.e=t.s=0),t;if(r==0?(p.length=h,a=1,h--):(p.length=h+1,a=Jh(10,Ir-r),p[h]=i>0?(u/Jh(10,s-i)%Jh(10,i)|0)*a:0),c)for(;;)if(h==0){(p[0]+=a)==Ji&&(p[0]=1,++t.e);break}else{if(p[h]+=a,p[h]!=Ji)break;p[h--]=0,a=1}for(r=p.length;p[--r]===0;)p.pop();if(zr&&(t.e>Aw||t.e<-Aw))throw Error(i5+Ri(t));return t}function _$(t,e){var n,r,i,a,s,o,c,u,h,p,v=t.constructor,y=v.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new v(t),zr?gr(e,y):e;if(c=t.d,p=e.d,r=e.e,u=t.e,c=c.slice(),s=u-r,s){for(h=s<0,h?(n=c,s=-s,o=p.length):(n=p,r=u,o=c.length),i=Math.max(Math.ceil(y/Ir),o)+2,s>i&&(s=i,n.length=1),n.reverse(),i=s;i--;)n.push(0);n.reverse()}else{for(i=c.length,o=p.length,h=i0;--i)c[o++]=0;for(i=p.length;i>s;){if(c[--i]0?a=a.charAt(0)+"."+a.slice(1)+md(r):s>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+md(-i-1)+a,n&&(r=n-s)>0&&(a+=md(r))):i>=s?(a+=md(i+1-s),n&&(r=n-i-1)>0&&(a=a+"."+md(r))):((r=i+1)0&&(i+1===s&&(a+="."),a+=md(r))),t.s<0?"-"+a:a}function V9(t,e){if(t.length>e)return t.length=e,!0}function S$(t){var e,n,r;function i(a){var s=this;if(!(s instanceof i))return new i(a);if(s.constructor=i,a instanceof i){s.s=a.s,s.e=a.e,s.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(yp+a);if(a>0)s.s=1;else if(a<0)a=-a,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(a===~~a&&a<1e7){s.e=0,s.d=[a];return}return H9(s,a.toString())}else if(typeof a!="string")throw Error(yp+a);if(a.charCodeAt(0)===45?(a=a.slice(1),s.s=-1):s.s=1,tme.test(a))H9(s,a);else throw Error(yp+a)}if(i.prototype=Ot,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=S$,i.config=i.set=nme,t===void 0&&(t={}),t)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e=i[e+1]&&r<=i[e+2])this[n]=r;else throw Error(yp+n+": "+r);if((r=t[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(yp+n+": "+r);return this}var a5=S$(eme);Js=new a5(1);const dr=a5;function rme(t){return ome(t)||sme(t)||ame(t)||ime()}function ime(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ame(t,e){if(t){if(typeof t=="string")return aI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return aI(t,e)}}function sme(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function ome(t){if(Array.isArray(t))return aI(t)}function aI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e?n.apply(void 0,i):t(e-s,W9(function(){for(var o=arguments.length,c=new Array(o),u=0;ut.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!(Symbol.iterator in Object(t)))){var n=[],r=!0,i=!1,a=void 0;try{for(var s=t[Symbol.iterator](),o;!(r=(o=s.next()).done)&&(n.push(o.value),!(e&&n.length===e));r=!0);}catch(c){i=!0,a=c}finally{try{!r&&s.return!=null&&s.return()}finally{if(i)throw a}}return n}}function Sme(t){if(Array.isArray(t))return t}function T$(t){var e=ob(t,2),n=e[0],r=e[1],i=n,a=r;return n>r&&(i=r,a=n),[i,a]}function C$(t,e,n){if(t.lte(0))return new dr(0);var r=OE.getDigitCount(t.toNumber()),i=new dr(10).pow(r),a=t.div(i),s=r!==1?.05:.1,o=new dr(Math.ceil(a.div(s).toNumber())).add(n).mul(s),c=o.mul(i);return e?c:new dr(Math.ceil(c))}function Ame(t,e,n){var r=1,i=new dr(t);if(!i.isint()&&n){var a=Math.abs(t);a<1?(r=new dr(10).pow(OE.getDigitCount(t)-1),i=new dr(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new dr(Math.floor(t)))}else t===0?i=new dr(Math.floor((e-1)/2)):n||(i=new dr(Math.floor(t)));var s=Math.floor((e-1)/2),o=fme(ume(function(c){return i.add(new dr(c-s).mul(r)).toNumber()}),sI);return o(0,e)}function R$(t,e,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((e-t)/(n-1)))return{step:new dr(0),tickMin:new dr(0),tickMax:new dr(0)};var a=C$(new dr(e).sub(t).div(n-1),r,i),s;t<=0&&e>=0?s=new dr(0):(s=new dr(t).add(e).div(2),s=s.sub(new dr(s).mod(a)));var o=Math.ceil(s.sub(t).div(a).toNumber()),c=Math.ceil(new dr(e).sub(s).div(a).toNumber()),u=o+c+1;return u>n?R$(t,e,n,r,i+1):(u0?c+(n-u):c,o=e>0?o:o+(n-u)),{step:a,tickMin:s.sub(new dr(o).mul(a)),tickMax:s.add(new dr(c).mul(a))})}function wme(t){var e=ob(t,2),n=e[0],r=e[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=Math.max(i,2),o=T$([n,r]),c=ob(o,2),u=c[0],h=c[1];if(u===-1/0||h===1/0){var p=h===1/0?[u].concat(lI(sI(0,i-1).map(function(){return 1/0}))):[].concat(lI(sI(0,i-1).map(function(){return-1/0})),[h]);return n>r?oI(p):p}if(u===h)return Ame(u,i,a);var v=R$(u,h,s,a),y=v.step,b=v.tickMin,w=v.tickMax,_=OE.rangeStep(b,w.add(new dr(.1).mul(y)),y);return n>r?oI(_):_}function Mme(t,e){var n=ob(t,2),r=n[0],i=n[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=T$([r,i]),o=ob(s,2),c=o[0],u=o[1];if(c===-1/0||u===1/0)return[r,i];if(c===u)return[c];var h=Math.max(e,2),p=C$(new dr(u).sub(c).div(h-1),a,0),v=[].concat(lI(OE.rangeStep(new dr(c),new dr(u).sub(new dr(.99).mul(p)),p)),[u]);return r>i?oI(v):v}var Eme=M$(wme),Tme=M$(Mme),Cme="Invariant failed";function Mp(t,e){throw new Error(Cme)}var Rme=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function dv(t){"@babel/helpers - typeof";return dv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},dv(t)}function ww(){return ww=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Lme(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function kme(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Fme(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,s=-1,o=(n=r?.length)!==null&&n!==void 0?n:0;if(o<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var c=a.range,u=0;u0?i[u-1].coordinate:i[o-1].coordinate,p=i[u].coordinate,v=u>=o-1?i[0].coordinate:i[u+1].coordinate,y=void 0;if(Il(p-h)!==Il(v-p)){var b=[];if(Il(v-p)===Il(c[1]-c[0])){y=v;var w=p+c[1]-c[0];b[0]=Math.min(w,(w+h)/2),b[1]=Math.max(w,(w+h)/2)}else{y=h;var _=v+c[1]-c[0];b[0]=Math.min(p,(_+p)/2),b[1]=Math.max(p,(_+p)/2)}var S=[Math.min(p,(y+p)/2),Math.max(p,(y+p)/2)];if(e>S[0]&&e<=S[1]||e>=b[0]&&e<=b[1]){s=i[u].index;break}}else{var E=Math.min(h,v),T=Math.max(h,v);if(e>(E+p)/2&&e<=(T+p)/2){s=i[u].index;break}}}else for(var P=0;P0&&P(r[P].coordinate+r[P-1].coordinate)/2&&e<=(r[P].coordinate+r[P+1].coordinate)/2||P===o-1&&e>(r[P].coordinate+r[P-1].coordinate)/2){s=r[P].index;break}return s},s5=function(e){var n,r=e,i=r.type.displayName,a=(n=e.type)!==null&&n!==void 0&&n.defaultProps?ai(ai({},e.type.defaultProps),e.props):e.props,s=a.stroke,o=a.fill,c;switch(i){case"Line":c=s;break;case"Area":case"Radar":c=s&&s!=="none"?s:o;break;default:c=o;break}return c},tge=function(e){var n=e.barSize,r=e.totalSize,i=e.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var s={},o=Object.keys(a),c=0,u=o.length;c=0});if(S&&S.length){var E=S[0].type.defaultProps,T=E!==void 0?ai(ai({},E),S[0].props):S[0].props,P=T.barSize,R=T[_];s[R]||(s[R]=[]);var D=Cn(P)?n:P;s[R].push({item:S[0],stackList:S.slice(1),barSize:Cn(D)?void 0:Ap(D,r,0)})}}return s},nge=function(e){var n=e.barGap,r=e.barCategoryGap,i=e.bandSize,a=e.sizeList,s=a===void 0?[]:a,o=e.maxBarSize,c=s.length;if(c<1)return null;var u=Ap(n,i,0,!0),h,p=[];if(s[0].barSize===+s[0].barSize){var v=!1,y=i/c,b=s.reduce(function(P,R){return P+R.barSize||0},0);b+=(c-1)*u,b>=i&&(b-=(c-1)*u,u=0),b>=i&&y>0&&(v=!0,y*=.9,b=c*y);var w=(i-b)/2>>0,_={offset:w-u,size:0};h=s.reduce(function(P,R){var D={item:R.item,position:{offset:_.offset+_.size+u,size:v?y:R.barSize}},I=[].concat(X9(P),[D]);return _=I[I.length-1].position,R.stackList&&R.stackList.length&&R.stackList.forEach(function(k){I.push({item:k,position:_})}),I},p)}else{var S=Ap(r,i,0,!0);i-2*S-(c-1)*u<=0&&(u=0);var E=(i-2*S-(c-1)*u)/c;E>1&&(E>>=0);var T=o===+o?Math.min(E,o):E;h=s.reduce(function(P,R,D){var I=[].concat(X9(P),[{item:R.item,position:{offset:S+(E+u)*D+(E-T)/2,size:T}}]);return R.stackList&&R.stackList.length&&R.stackList.forEach(function(k){I.push({item:k,position:I[I.length-1].position})}),I},p)}return h},rge=function(e,n,r,i){var a=r.children,s=r.width,o=r.margin,c=s-(o.left||0)-(o.right||0),u=N$({children:a,legendWidth:c});if(u){var h=i||{},p=h.width,v=h.height,y=u.align,b=u.verticalAlign,w=u.layout;if((w==="vertical"||w==="horizontal"&&b==="middle")&&y!=="center"&&mt(e[y]))return ai(ai({},e),{},Xg({},y,e[y]+(p||0)));if((w==="horizontal"||w==="vertical"&&y==="center")&&b!=="middle"&&mt(e[b]))return ai(ai({},e),{},Xg({},b,e[b]+(v||0)))}return e},ige=function(e,n,r){return Cn(n)?!0:e==="horizontal"?n==="yAxis":e==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},I$=function(e,n,r,i,a){var s=n.props.children,o=Vo(s,i1).filter(function(u){return ige(i,a,u.props.direction)});if(o&&o.length){var c=o.map(function(u){return u.props.dataKey});return e.reduce(function(u,h){var p=cs(h,r);if(Cn(p))return u;var v=Array.isArray(p)?[CE(p),bd(p)]:[p,p],y=c.reduce(function(b,w){var _=cs(h,w,0),S=v[0]-Math.abs(Array.isArray(_)?_[0]:_),E=v[1]+Math.abs(Array.isArray(_)?_[1]:_);return[Math.min(S,b[0]),Math.max(E,b[1])]},[1/0,-1/0]);return[Math.min(y[0],u[0]),Math.max(y[1],u[1])]},[1/0,-1/0])}return null},age=function(e,n,r,i,a){var s=n.map(function(o){return I$(e,o,r,a,i)}).filter(function(o){return!Cn(o)});return s&&s.length?s.reduce(function(o,c){return[Math.min(o[0],c[0]),Math.max(o[1],c[1])]},[1/0,-1/0]):null},B$=function(e,n,r,i,a){var s=n.map(function(c){var u=c.props.dataKey;return r==="number"&&u&&I$(e,c,u,i)||Px(e,u,r,a)});if(r==="number")return s.reduce(function(c,u){return[Math.min(c[0],u[0]),Math.max(c[1],u[1])]},[1/0,-1/0]);var o={};return s.reduce(function(c,u){for(var h=0,p=u.length;h=2?Il(o[0]-o[1])*2*u:u,n&&(e.ticks||e.niceTicks)){var h=(e.ticks||e.niceTicks).map(function(p){var v=a?a.indexOf(p):p;return{coordinate:i(v)+u,value:p,offset:u}});return h.filter(function(p){return!Kv(p.coordinate)})}return e.isCategorical&&e.categoricalDomain?e.categoricalDomain.map(function(p,v){return{coordinate:i(p)+u,value:p,index:v,offset:u}}):i.ticks&&!r?i.ticks(e.tickCount).map(function(p){return{coordinate:i(p)+u,value:p,offset:u}}):i.domain().map(function(p,v){return{coordinate:i(p)+u,value:a?a[p]:p,index:v,offset:u}})},s3=new WeakMap,_S=function(e,n){if(typeof n!="function")return e;s3.has(e)||s3.set(e,new WeakMap);var r=s3.get(e);if(r.has(n))return r.get(n);var i=function(){e.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,i),i},sge=function(e,n,r){var i=e.scale,a=e.type,s=e.layout,o=e.axisType;if(i==="auto")return s==="radial"&&o==="radiusAxis"?{scale:tb(),realScaleType:"band"}:s==="radial"&&o==="angleAxis"?{scale:xw(),realScaleType:"linear"}:a==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Ox(),realScaleType:"point"}:a==="category"?{scale:tb(),realScaleType:"band"}:{scale:xw(),realScaleType:"linear"};if(Sp(i)){var c="scale".concat(mE(i));return{scale:(I9[c]||Ox)(),realScaleType:I9[c]?c:"point"}}return yn(i)?{scale:i}:{scale:Ox(),realScaleType:"point"}},Y9=1e-4,oge=function(e){var n=e.domain();if(!(!n||n.length<=2)){var r=n.length,i=e.range(),a=Math.min(i[0],i[1])-Y9,s=Math.max(i[0],i[1])+Y9,o=e(n[0]),c=e(n[r-1]);(os||cs)&&e.domain([n[0],n[r-1]])}},lge=function(e,n){if(!e)return null;for(var r=0,i=e.length;ri)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(e[o][r][0]=a,e[o][r][1]=a+c,a=e[o][r][1]):(e[o][r][0]=s,e[o][r][1]=s+c,s=e[o][r][1])}},fge=function(e){var n=e.length;if(!(n<=0))for(var r=0,i=e[0].length;r=0?(e[s][r][0]=a,e[s][r][1]=a+o,a=e[s][r][1]):(e[s][r][0]=0,e[s][r][1]=0)}},dge={sign:uge,expand:Kle,none:rv,silhouette:Yle,wiggle:Jle,positive:fge},hge=function(e,n,r){var i=n.map(function(o){return o.props.dataKey}),a=dge[r],s=Xle().keys(i).value(function(o,c){return+cs(o,c,0)}).order(zN).offset(a);return s(e)},pge=function(e,n,r,i,a,s){if(!e)return null;var o=s?n.reverse():n,c={},u=o.reduce(function(p,v){var y,b=(y=v.type)!==null&&y!==void 0&&y.defaultProps?ai(ai({},v.type.defaultProps),v.props):v.props,w=b.stackId,_=b.hide;if(_)return p;var S=b[r],E=p[S]||{hasStack:!1,stackGroups:{}};if(ji(w)){var T=E.stackGroups[w]||{numericAxisId:r,cateAxisId:i,items:[]};T.items.push(v),E.hasStack=!0,E.stackGroups[w]=T}else E.stackGroups[Yv("_stackId_")]={numericAxisId:r,cateAxisId:i,items:[v]};return ai(ai({},p),{},Xg({},S,E))},c),h={};return Object.keys(u).reduce(function(p,v){var y=u[v];if(y.hasStack){var b={};y.stackGroups=Object.keys(y.stackGroups).reduce(function(w,_){var S=y.stackGroups[_];return ai(ai({},w),{},Xg({},_,{numericAxisId:r,cateAxisId:i,items:S.items,stackedData:hge(e,S.items,a)}))},b)}return ai(ai({},p),{},Xg({},v,y))},h)},mge=function(e,n){var r=n.realScaleType,i=n.type,a=n.tickCount,s=n.originalDomain,o=n.allowDecimals,c=r||n.scale;if(c!=="auto"&&c!=="linear")return null;if(a&&i==="number"&&s&&(s[0]==="auto"||s[1]==="auto")){var u=e.domain();if(!u.length)return null;var h=Eme(u,a,o);return e.domain([CE(h),bd(h)]),{niceTicks:h}}if(a&&i==="number"){var p=e.domain(),v=Tme(p,a,o);return{niceTicks:v}}return null};function Ew(t){var e=t.axis,n=t.ticks,r=t.bandSize,i=t.entry,a=t.index,s=t.dataKey;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!Cn(i[e.dataKey])){var o=QA(n,"value",i[e.dataKey]);if(o)return o.coordinate+r/2}return n[a]?n[a].coordinate+r/2:null}var c=cs(i,Cn(s)?e.dataKey:s);return Cn(c)?null:e.scale(c)}var J9=function(e){var n=e.axis,r=e.ticks,i=e.offset,a=e.bandSize,s=e.entry,o=e.index;if(n.type==="category")return r[o]?r[o].coordinate+i:null;var c=cs(s,n.dataKey,n.domain[o]);return Cn(c)?null:n.scale(c)-a/2+i},gge=function(e){var n=e.numericAxis,r=n.scale.domain();if(n.type==="number"){var i=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return i<=0&&a>=0?0:a<0?a:i}return r[0]},vge=function(e,n){var r,i=(r=e.type)!==null&&r!==void 0&&r.defaultProps?ai(ai({},e.type.defaultProps),e.props):e.props,a=i.stackId;if(ji(a)){var s=n[a];if(s){var o=s.items.indexOf(e);return o>=0?s.stackedData[o]:null}}return null},yge=function(e){return e.reduce(function(n,r){return[CE(r.concat([n[0]]).filter(mt)),bd(r.concat([n[1]]).filter(mt))]},[1/0,-1/0])},F$=function(e,n,r){return Object.keys(e).reduce(function(i,a){var s=e[a],o=s.stackedData,c=o.reduce(function(u,h){var p=yge(h.slice(n,r+1));return[Math.min(u[0],p[0]),Math.max(u[1],p[1])]},[1/0,-1/0]);return[Math.min(c[0],i[0]),Math.max(c[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},Z9=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Q9=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,dI=function(e,n,r){if(yn(e))return e(n,r);if(!Array.isArray(e))return n;var i=[];if(mt(e[0]))i[0]=r?e[0]:Math.min(e[0],n[0]);else if(Z9.test(e[0])){var a=+Z9.exec(e[0])[1];i[0]=n[0]-a}else yn(e[0])?i[0]=e[0](n[0]):i[0]=n[0];if(mt(e[1]))i[1]=r?e[1]:Math.max(e[1],n[1]);else if(Q9.test(e[1])){var s=+Q9.exec(e[1])[1];i[1]=n[1]+s}else yn(e[1])?i[1]=e[1](n[1]):i[1]=n[1];return i},Tw=function(e,n,r){if(e&&e.scale&&e.scale.bandwidth){var i=e.scale.bandwidth();if(!r||i>0)return i}if(e&&n&&n.length>=2){for(var a=IL(n,function(p){return p.coordinate}),s=1/0,o=1,c=a.length;os&&(u=2*Math.PI-u),{radius:o,angle:Sge(u),angleInRadian:u}},Mge=function(e){var n=e.startAngle,r=e.endAngle,i=Math.floor(n/360),a=Math.floor(r/360),s=Math.min(i,a);return{startAngle:n-s*360,endAngle:r-s*360}},Ege=function(e,n){var r=n.startAngle,i=n.endAngle,a=Math.floor(r/360),s=Math.floor(i/360),o=Math.min(a,s);return e+o*360},r8=function(e,n){var r=e.x,i=e.y,a=wge({x:r,y:i},n),s=a.radius,o=a.angle,c=n.innerRadius,u=n.outerRadius;if(su)return!1;if(s===0)return!0;var h=Mge(n),p=h.startAngle,v=h.endAngle,y=o,b;if(p<=v){for(;y>v;)y-=360;for(;y=p&&y<=v}else{for(;y>p;)y-=360;for(;y=v&&y<=p}return b?n8(n8({},n),{},{radius:s,angle:Ege(y,n)}):null};function fb(t){"@babel/helpers - typeof";return fb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fb(t)}var Tge=["offset"];function Cge(t){return Dge(t)||Pge(t)||Oge(t)||Rge()}function Rge(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oge(t,e){if(t){if(typeof t=="string")return hI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hI(t,e)}}function Pge(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Dge(t){if(Array.isArray(t))return hI(t)}function hI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Ige(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function i8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Fi(t){for(var e=1;e=0?1:-1,T,P;i==="insideStart"?(T=y+E*s,P=w):i==="insideEnd"?(T=b-E*s,P=!w):i==="end"&&(T=b+E*s,P=w),P=S<=0?P:!P;var R=ma(u,h,_,T),D=ma(u,h,_,T+(P?1:-1)*359),I="M".concat(R.x,",").concat(R.y,` - A`).concat(_,",").concat(_,",0,1,").concat(P?0:1,`, - `).concat(D.x,",").concat(D.y),k=Cn(e.id)?Yv("recharts-radial-line-"):e.id;return fe.createElement("text",db({},r,{dominantBaseline:"central",className:In("recharts-radial-bar-label",o)}),fe.createElement("defs",null,fe.createElement("path",{id:k,d:I})),fe.createElement("textPath",{xlinkHref:"#".concat(k)},n))},zge=function(e){var n=e.viewBox,r=e.offset,i=e.position,a=n,s=a.cx,o=a.cy,c=a.innerRadius,u=a.outerRadius,h=a.startAngle,p=a.endAngle,v=(h+p)/2;if(i==="outside"){var y=ma(s,o,u+r,v),b=y.x,w=y.y;return{x:b,y:w,textAnchor:b>=s?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:s,y:o,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:s,y:o,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:s,y:o,textAnchor:"middle",verticalAnchor:"end"};var _=(c+u)/2,S=ma(s,o,_,v),E=S.x,T=S.y;return{x:E,y:T,textAnchor:"middle",verticalAnchor:"middle"}},Gge=function(e){var n=e.viewBox,r=e.parentViewBox,i=e.offset,a=e.position,s=n,o=s.x,c=s.y,u=s.width,h=s.height,p=h>=0?1:-1,v=p*i,y=p>0?"end":"start",b=p>0?"start":"end",w=u>=0?1:-1,_=w*i,S=w>0?"end":"start",E=w>0?"start":"end";if(a==="top"){var T={x:o+u/2,y:c-p*i,textAnchor:"middle",verticalAnchor:y};return Fi(Fi({},T),r?{height:Math.max(c-r.y,0),width:u}:{})}if(a==="bottom"){var P={x:o+u/2,y:c+h+v,textAnchor:"middle",verticalAnchor:b};return Fi(Fi({},P),r?{height:Math.max(r.y+r.height-(c+h),0),width:u}:{})}if(a==="left"){var R={x:o-_,y:c+h/2,textAnchor:S,verticalAnchor:"middle"};return Fi(Fi({},R),r?{width:Math.max(R.x-r.x,0),height:h}:{})}if(a==="right"){var D={x:o+u+_,y:c+h/2,textAnchor:E,verticalAnchor:"middle"};return Fi(Fi({},D),r?{width:Math.max(r.x+r.width-D.x,0),height:h}:{})}var I=r?{width:u,height:h}:{};return a==="insideLeft"?Fi({x:o+_,y:c+h/2,textAnchor:E,verticalAnchor:"middle"},I):a==="insideRight"?Fi({x:o+u-_,y:c+h/2,textAnchor:S,verticalAnchor:"middle"},I):a==="insideTop"?Fi({x:o+u/2,y:c+v,textAnchor:"middle",verticalAnchor:b},I):a==="insideBottom"?Fi({x:o+u/2,y:c+h-v,textAnchor:"middle",verticalAnchor:y},I):a==="insideTopLeft"?Fi({x:o+_,y:c+v,textAnchor:E,verticalAnchor:b},I):a==="insideTopRight"?Fi({x:o+u-_,y:c+v,textAnchor:S,verticalAnchor:b},I):a==="insideBottomLeft"?Fi({x:o+_,y:c+h-v,textAnchor:E,verticalAnchor:y},I):a==="insideBottomRight"?Fi({x:o+u-_,y:c+h-v,textAnchor:S,verticalAnchor:y},I):Xv(a)&&(mt(a.x)||rp(a.x))&&(mt(a.y)||rp(a.y))?Fi({x:o+Ap(a.x,u),y:c+Ap(a.y,h),textAnchor:"end",verticalAnchor:"end"},I):Fi({x:o+u/2,y:c+h/2,textAnchor:"middle",verticalAnchor:"middle"},I)},Hge=function(e){return"cx"in e&&mt(e.cx)};function Da(t){var e=t.offset,n=e===void 0?5:e,r=Nge(t,Tge),i=Fi({offset:n},r),a=i.viewBox,s=i.position,o=i.value,c=i.children,u=i.content,h=i.className,p=h===void 0?"":h,v=i.textBreakAll;if(!a||Cn(o)&&Cn(c)&&!j.isValidElement(u)&&!yn(u))return null;if(j.isValidElement(u))return j.cloneElement(u,i);var y;if(yn(u)){if(y=j.createElement(u,i),j.isValidElement(y))return y}else y=Fge(i);var b=Hge(a),w=_n(i,!0);if(b&&(s==="insideStart"||s==="insideEnd"||s==="end"))return jge(i,y,w);var _=b?zge(i):Gge(i);return fe.createElement(dw,db({className:In("recharts-label",p)},w,_,{breakAll:v}),y)}Da.displayName="Label";var j$=function(e){var n=e.cx,r=e.cy,i=e.angle,a=e.startAngle,s=e.endAngle,o=e.r,c=e.radius,u=e.innerRadius,h=e.outerRadius,p=e.x,v=e.y,y=e.top,b=e.left,w=e.width,_=e.height,S=e.clockWise,E=e.labelViewBox;if(E)return E;if(mt(w)&&mt(_)){if(mt(p)&&mt(v))return{x:p,y:v,width:w,height:_};if(mt(y)&&mt(b))return{x:y,y:b,width:w,height:_}}return mt(p)&&mt(v)?{x:p,y:v,width:0,height:0}:mt(n)&&mt(r)?{cx:n,cy:r,startAngle:a||i||0,endAngle:s||i||0,innerRadius:u||0,outerRadius:h||c||o||0,clockWise:S}:e.viewBox?e.viewBox:{}},Vge=function(e,n){return e?e===!0?fe.createElement(Da,{key:"label-implicit",viewBox:n}):ji(e)?fe.createElement(Da,{key:"label-implicit",viewBox:n,value:e}):j.isValidElement(e)?e.type===Da?j.cloneElement(e,{key:"label-implicit",viewBox:n}):fe.createElement(Da,{key:"label-implicit",content:e,viewBox:n}):yn(e)?fe.createElement(Da,{key:"label-implicit",content:e,viewBox:n}):Xv(e)?fe.createElement(Da,db({viewBox:n},e,{key:"label-implicit"})):null:null},Wge=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var i=e.children,a=j$(e),s=Vo(i,Da).map(function(c,u){return j.cloneElement(c,{viewBox:n||a,key:"label-".concat(u)})});if(!r)return s;var o=Vge(e.label,n||a);return[o].concat(Cge(s))};Da.parseViewBox=j$;Da.renderCallByParent=Wge;var o3,a8;function qge(){if(a8)return o3;a8=1;function t(e){var n=e==null?0:e.length;return n?e[n-1]:void 0}return o3=t,o3}var $ge=qge();const Xge=ar($ge);function hb(t){"@babel/helpers - typeof";return hb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hb(t)}var Kge=["valueAccessor"],Yge=["data","dataKey","clockWise","id","textBreakAll"];function Jge(t){return tve(t)||eve(t)||Qge(t)||Zge()}function Zge(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qge(t,e){if(t){if(typeof t=="string")return pI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pI(t,e)}}function eve(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function tve(t){if(Array.isArray(t))return pI(t)}function pI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function ave(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var sve=function(e){return Array.isArray(e.value)?Xge(e.value):e.value};function Ju(t){var e=t.valueAccessor,n=e===void 0?sve:e,r=l8(t,Kge),i=r.data,a=r.dataKey,s=r.clockWise,o=r.id,c=r.textBreakAll,u=l8(r,Yge);return!i||!i.length?null:fe.createElement(Ar,{className:"recharts-label-list"},i.map(function(h,p){var v=Cn(a)?n(h,p):cs(h&&h.payload,a),y=Cn(o)?{}:{id:"".concat(o,"-").concat(p)};return fe.createElement(Da,Rw({},_n(h,!0),u,y,{parentViewBox:h.parentViewBox,value:v,textBreakAll:c,viewBox:Da.parseViewBox(Cn(s)?h:o8(o8({},h),{},{clockWise:s})),key:"label-".concat(p),index:p}))}))}Ju.displayName="LabelList";function ove(t,e){return t?t===!0?fe.createElement(Ju,{key:"labelList-implicit",data:e}):fe.isValidElement(t)||yn(t)?fe.createElement(Ju,{key:"labelList-implicit",data:e,content:t}):Xv(t)?fe.createElement(Ju,Rw({data:e},t,{key:"labelList-implicit"})):null:null}function lve(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var r=t.children,i=Vo(r,Ju).map(function(s,o){return j.cloneElement(s,{data:e,key:"labelList-".concat(o)})});if(!n)return i;var a=ove(t.label,e);return[a].concat(Jge(i))}Ju.renderCallByParent=lve;function pb(t){"@babel/helpers - typeof";return pb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pb(t)}function mI(){return mI=Object.assign?Object.assign.bind():function(t){for(var e=1;e180),",").concat(+(s>u),`, - `).concat(p.x,",").concat(p.y,` - `);if(i>0){var y=ma(n,r,i,s),b=ma(n,r,i,u);v+="L ".concat(b.x,",").concat(b.y,` - A `).concat(i,",").concat(i,`,0, - `).concat(+(Math.abs(c)>180),",").concat(+(s<=u),`, - `).concat(y.x,",").concat(y.y," Z")}else v+="L ".concat(n,",").concat(r," Z");return v},hve=function(e){var n=e.cx,r=e.cy,i=e.innerRadius,a=e.outerRadius,s=e.cornerRadius,o=e.forceCornerRadius,c=e.cornerIsExternal,u=e.startAngle,h=e.endAngle,p=Il(h-u),v=SS({cx:n,cy:r,radius:a,angle:u,sign:p,cornerRadius:s,cornerIsExternal:c}),y=v.circleTangency,b=v.lineTangency,w=v.theta,_=SS({cx:n,cy:r,radius:a,angle:h,sign:-p,cornerRadius:s,cornerIsExternal:c}),S=_.circleTangency,E=_.lineTangency,T=_.theta,P=c?Math.abs(u-h):Math.abs(u-h)-w-T;if(P<0)return o?"M ".concat(b.x,",").concat(b.y,` - a`).concat(s,",").concat(s,",0,0,1,").concat(s*2,`,0 - a`).concat(s,",").concat(s,",0,0,1,").concat(-s*2,`,0 - `):z$({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:u,endAngle:h});var R="M ".concat(b.x,",").concat(b.y,` - A`).concat(s,",").concat(s,",0,0,").concat(+(p<0),",").concat(y.x,",").concat(y.y,` - A`).concat(a,",").concat(a,",0,").concat(+(P>180),",").concat(+(p<0),",").concat(S.x,",").concat(S.y,` - A`).concat(s,",").concat(s,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` - `);if(i>0){var D=SS({cx:n,cy:r,radius:i,angle:u,sign:p,isExternal:!0,cornerRadius:s,cornerIsExternal:c}),I=D.circleTangency,k=D.lineTangency,B=D.theta,U=SS({cx:n,cy:r,radius:i,angle:h,sign:-p,isExternal:!0,cornerRadius:s,cornerIsExternal:c}),z=U.circleTangency,q=U.lineTangency,W=U.theta,ee=c?Math.abs(u-h):Math.abs(u-h)-B-W;if(ee<0&&s===0)return"".concat(R,"L").concat(n,",").concat(r,"Z");R+="L".concat(q.x,",").concat(q.y,` - A`).concat(s,",").concat(s,",0,0,").concat(+(p<0),",").concat(z.x,",").concat(z.y,` - A`).concat(i,",").concat(i,",0,").concat(+(ee>180),",").concat(+(p>0),",").concat(I.x,",").concat(I.y,` - A`).concat(s,",").concat(s,",0,0,").concat(+(p<0),",").concat(k.x,",").concat(k.y,"Z")}else R+="L".concat(n,",").concat(r,"Z");return R},pve={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},G$=function(e){var n=u8(u8({},pve),e),r=n.cx,i=n.cy,a=n.innerRadius,s=n.outerRadius,o=n.cornerRadius,c=n.forceCornerRadius,u=n.cornerIsExternal,h=n.startAngle,p=n.endAngle,v=n.className;if(s0&&Math.abs(h-p)<360?_=hve({cx:r,cy:i,innerRadius:a,outerRadius:s,cornerRadius:Math.min(w,b/2),forceCornerRadius:c,cornerIsExternal:u,startAngle:h,endAngle:p}):_=z$({cx:r,cy:i,innerRadius:a,outerRadius:s,startAngle:h,endAngle:p}),fe.createElement("path",mI({},_n(n,!0),{className:y,d:_,role:"img"}))};function mb(t){"@babel/helpers - typeof";return mb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mb(t)}function gI(){return gI=Object.assign?Object.assign.bind():function(t){for(var e=1;eEve.call(t,e));function zp(t,e){return t===e||!t&&!e&&t!==t&&e!==e}const Rve="__v",Ove="__o",Pve="_owner",{getOwnPropertyDescriptor:y8,keys:x8}=Object;function Dve(t,e){return t.byteLength===e.byteLength&&Ow(new Uint8Array(t),new Uint8Array(e))}function Nve(t,e,n){let r=t.length;if(e.length!==r)return!1;for(;r-- >0;)if(!n.equals(t[r],e[r],r,r,t,e,n))return!1;return!0}function Ive(t,e){return t.byteLength===e.byteLength&&Ow(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}function Bve(t,e){return zp(t.getTime(),e.getTime())}function Lve(t,e){return t.name===e.name&&t.message===e.message&&t.cause===e.cause&&t.stack===e.stack}function kve(t,e){return t===e}function b8(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const i=new Array(r),a=t.entries();let s,o,c=0;for(;(s=a.next())&&!s.done;){const u=e.entries();let h=!1,p=0;for(;(o=u.next())&&!o.done;){if(i[p]){p++;continue}const v=s.value,y=o.value;if(n.equals(v[0],y[0],c,p,t,e,n)&&n.equals(v[1],y[1],v[0],y[0],t,e,n)){h=i[p]=!0;break}p++}if(!h)return!1;c++}return!0}const Fve=zp;function Uve(t,e,n){const r=x8(t);let i=r.length;if(x8(e).length!==i)return!1;for(;i-- >0;)if(!H$(t,e,n,r[i]))return!1;return!0}function Y0(t,e,n){const r=v8(t);let i=r.length;if(v8(e).length!==i)return!1;let a,s,o;for(;i-- >0;)if(a=r[i],!H$(t,e,n,a)||(s=y8(t,a),o=y8(e,a),(s||o)&&(!s||!o||s.configurable!==o.configurable||s.enumerable!==o.enumerable||s.writable!==o.writable)))return!1;return!0}function jve(t,e){return zp(t.valueOf(),e.valueOf())}function zve(t,e){return t.source===e.source&&t.flags===e.flags}function _8(t,e,n){const r=t.size;if(r!==e.size)return!1;if(!r)return!0;const i=new Array(r),a=t.values();let s,o;for(;(s=a.next())&&!s.done;){const c=e.values();let u=!1,h=0;for(;(o=c.next())&&!o.done;){if(!i[h]&&n.equals(s.value,o.value,s.value,o.value,t,e,n)){u=i[h]=!0;break}h++}if(!u)return!1}return!0}function Ow(t,e){let n=t.byteLength;if(e.byteLength!==n||t.byteOffset!==e.byteOffset)return!1;for(;n-- >0;)if(t[n]!==e[n])return!1;return!0}function Gve(t,e){return t.hostname===e.hostname&&t.pathname===e.pathname&&t.protocol===e.protocol&&t.port===e.port&&t.hash===e.hash&&t.username===e.username&&t.password===e.password}function H$(t,e,n,r){return(r===Pve||r===Ove||r===Rve)&&(t.$$typeof||e.$$typeof)?!0:Cve(e,r)&&n.equals(t[r],e[r],r,r,t,e,n)}const Hve="[object ArrayBuffer]",Vve="[object Arguments]",Wve="[object Boolean]",qve="[object DataView]",$ve="[object Date]",Xve="[object Error]",Kve="[object Map]",Yve="[object Number]",Jve="[object Object]",Zve="[object RegExp]",Qve="[object Set]",eye="[object String]",tye={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},nye="[object URL]",rye=Object.prototype.toString;function iye({areArrayBuffersEqual:t,areArraysEqual:e,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:s,areNumbersEqual:o,areObjectsEqual:c,arePrimitiveWrappersEqual:u,areRegExpsEqual:h,areSetsEqual:p,areTypedArraysEqual:v,areUrlsEqual:y,unknownTagComparators:b}){return function(_,S,E){if(_===S)return!0;if(_==null||S==null)return!1;const T=typeof _;if(T!==typeof S)return!1;if(T!=="object")return T==="number"?o(_,S,E):T==="function"?a(_,S,E):!1;const P=_.constructor;if(P!==S.constructor)return!1;if(P===Object)return c(_,S,E);if(Array.isArray(_))return e(_,S,E);if(P===Date)return r(_,S,E);if(P===RegExp)return h(_,S,E);if(P===Map)return s(_,S,E);if(P===Set)return p(_,S,E);const R=rye.call(_);if(R===$ve)return r(_,S,E);if(R===Zve)return h(_,S,E);if(R===Kve)return s(_,S,E);if(R===Qve)return p(_,S,E);if(R===Jve)return typeof _.then!="function"&&typeof S.then!="function"&&c(_,S,E);if(R===nye)return y(_,S,E);if(R===Xve)return i(_,S,E);if(R===Vve)return c(_,S,E);if(tye[R])return v(_,S,E);if(R===Hve)return t(_,S,E);if(R===qve)return n(_,S,E);if(R===Wve||R===Yve||R===eye)return u(_,S,E);if(b){let D=b[R];if(!D){const I=Tve(_);I&&(D=b[I])}if(D)return D(_,S,E)}return!1}}function aye({circular:t,createCustomConfig:e,strict:n}){let r={areArrayBuffersEqual:Dve,areArraysEqual:n?Y0:Nve,areDataViewsEqual:Ive,areDatesEqual:Bve,areErrorsEqual:Lve,areFunctionsEqual:kve,areMapsEqual:n?f3(b8,Y0):b8,areNumbersEqual:Fve,areObjectsEqual:n?Y0:Uve,arePrimitiveWrappersEqual:jve,areRegExpsEqual:zve,areSetsEqual:n?f3(_8,Y0):_8,areTypedArraysEqual:n?f3(Ow,Y0):Ow,areUrlsEqual:Gve,unknownTagComparators:void 0};if(e&&(r=Object.assign({},r,e(r))),t){const i=wS(r.areArraysEqual),a=wS(r.areMapsEqual),s=wS(r.areObjectsEqual),o=wS(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:s,areSetsEqual:o})}return r}function sye(t){return function(e,n,r,i,a,s,o){return t(e,n,o)}}function oye({circular:t,comparator:e,createState:n,equals:r,strict:i}){if(n)return function(o,c){const{cache:u=t?new WeakMap:void 0,meta:h}=n();return e(o,c,{cache:u,equals:r,meta:h,strict:i})};if(t)return function(o,c){return e(o,c,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};const a={cache:void 0,equals:r,meta:void 0,strict:i};return function(o,c){return e(o,c,a)}}const lye=jd();jd({strict:!0});jd({circular:!0});jd({circular:!0,strict:!0});jd({createInternalComparator:()=>zp});jd({strict:!0,createInternalComparator:()=>zp});jd({circular:!0,createInternalComparator:()=>zp});jd({circular:!0,createInternalComparator:()=>zp,strict:!0});function jd(t={}){const{circular:e=!1,createInternalComparator:n,createState:r,strict:i=!1}=t,a=aye(t),s=iye(a),o=n?n(s):sye(s);return oye({circular:e,comparator:s,createState:r,equals:o,strict:i})}function cye(t){typeof requestAnimationFrame<"u"&&requestAnimationFrame(t)}function S8(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function i(a){n<0&&(n=a),a-n>e?(t(a),n=-1):cye(i)};requestAnimationFrame(r)}function vI(t){"@babel/helpers - typeof";return vI=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vI(t)}function uye(t){return pye(t)||hye(t)||dye(t)||fye()}function fye(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dye(t,e){if(t){if(typeof t=="string")return A8(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return A8(t,e)}}function A8(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1?1:S<0?0:S},w=function(S){for(var E=S>1?1:S,T=E,P=0;P<8;++P){var R=p(T)-E,D=y(T);if(Math.abs(R-E)0&&arguments[0]!==void 0?arguments[0]:{},n=e.stiff,r=n===void 0?100:n,i=e.damping,a=i===void 0?8:i,s=e.dt,o=s===void 0?17:s,c=function(h,p,v){var y=-(h-p)*r,b=v*a,w=v+(y-b)*o/1e3,_=v*o/1e3+h;return Math.abs(_-p)t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Wye(t,e){if(t==null)return{};var n={},r=Object.keys(t),i,a;for(a=0;a=0)&&(n[i]=t[i]);return n}function d3(t){return Kye(t)||Xye(t)||$ye(t)||qye()}function qye(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $ye(t,e){if(t){if(typeof t=="string")return SI(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return SI(t,e)}}function Xye(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Kye(t){if(Array.isArray(t))return SI(t)}function SI(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Nw(t){return Nw=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Nw(t)}var Gc=(function(t){e0e(n,t);var e=t0e(n);function n(r,i){var a;Yye(this,n),a=e.call(this,r,i);var s=a.props,o=s.isActive,c=s.attributeName,u=s.from,h=s.to,p=s.steps,v=s.children,y=s.duration;if(a.handleStyleChange=a.handleStyleChange.bind(MI(a)),a.changeStyle=a.changeStyle.bind(MI(a)),!o||y<=0)return a.state={style:{}},typeof v=="function"&&(a.state={style:h}),wI(a);if(p&&p.length)a.state={style:p[0].style};else if(u){if(typeof v=="function")return a.state={style:u},wI(a);a.state={style:c?vx({},c,u):u}}else a.state={style:{}};return a}return Zye(n,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,s=i.canBegin;this.mounted=!0,!(!a||!s)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,s=a.isActive,o=a.canBegin,c=a.attributeName,u=a.shouldReAnimate,h=a.to,p=a.from,v=this.state.style;if(o){if(!s){var y={style:c?vx({},c,h):h};this.state&&v&&(c&&v[c]!==h||!c&&v!==h)&&this.setState(y);return}if(!(lye(i.to,h)&&i.canBegin&&i.isActive)){var b=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=b||u?p:i.to;if(this.state&&v){var _={style:c?vx({},c,w):w};(c&&v[c]!==w||!c&&v!==w)&&this.setState(_)}this.runAnimation(Al(Al({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,s=i.from,o=i.to,c=i.duration,u=i.easing,h=i.begin,p=i.onAnimationEnd,v=i.onAnimationStart,y=Gye(s,o,Pye(u),c,this.changeStyle),b=function(){a.stopJSAnimation=y()};this.manager.start([v,h,b,c,p])}},{key:"runStepAnimation",value:function(i){var a=this,s=i.steps,o=i.begin,c=i.onAnimationStart,u=s[0],h=u.style,p=u.duration,v=p===void 0?0:p,y=function(w,_,S){if(S===0)return w;var E=_.duration,T=_.easing,P=T===void 0?"ease":T,R=_.style,D=_.properties,I=_.onAnimationEnd,k=S>0?s[S-1]:_,B=D||Object.keys(R);if(typeof P=="function"||P==="spring")return[].concat(d3(w),[a.runJSAnimation.bind(a,{from:k.style,to:R,duration:E,easing:P}),E]);var U=E8(B,E,P),z=Al(Al(Al({},k.style),R),{},{transition:U});return[].concat(d3(w),[z,E,I]).filter(xye)};return this.manager.start([c].concat(d3(s.reduce(y,[h,Math.max(v,o)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=mye());var a=i.begin,s=i.duration,o=i.attributeName,c=i.to,u=i.easing,h=i.onAnimationStart,p=i.onAnimationEnd,v=i.steps,y=i.children,b=this.manager;if(this.unSubscribe=b.subscribe(this.handleStyleChange),typeof u=="function"||typeof y=="function"||u==="spring"){this.runJSAnimation(i);return}if(v.length>1){this.runStepAnimation(i);return}var w=o?vx({},o,c):c,_=E8(Object.keys(w),s,u);b.start([h,a,Al(Al({},w),{},{transition:_}),s,p])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var s=i.duration;i.attributeName,i.easing;var o=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var c=Vye(i,Hye),u=j.Children.count(a),h=this.state.style;if(typeof a=="function")return a(h);if(!o||u===0||s<=0)return a;var p=function(y){var b=y.props,w=b.style,_=w===void 0?{}:w,S=b.className,E=j.cloneElement(y,Al(Al({},c),{},{style:Al(Al({},_),h),className:S}));return E};return u===1?p(j.Children.only(a)):fe.createElement("div",null,j.Children.map(a,function(v){return p(v)}))}}]),n})(j.PureComponent);Gc.displayName="Animate";Gc.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Gc.propTypes={from:rr.oneOfType([rr.object,rr.string]),to:rr.oneOfType([rr.object,rr.string]),attributeName:rr.string,duration:rr.number,begin:rr.number,easing:rr.oneOfType([rr.string,rr.func]),steps:rr.arrayOf(rr.shape({duration:rr.number.isRequired,style:rr.object.isRequired,easing:rr.oneOfType([rr.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),rr.func]),properties:rr.arrayOf("string"),onAnimationEnd:rr.func})),children:rr.oneOfType([rr.node,rr.func]),isActive:rr.bool,canBegin:rr.bool,onAnimationEnd:rr.func,shouldReAnimate:rr.bool,onAnimationStart:rr.func,onAnimationReStart:rr.func};function Iw(){return Iw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0?1:-1,c=r>=0?1:-1,u=i>=0&&r>=0||i<0&&r<0?1:0,h;if(s>0&&a instanceof Array){for(var p=[0,0,0,0],v=0,y=4;vs?s:a[v];h="M".concat(e,",").concat(n+o*p[0]),p[0]>0&&(h+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(u,",").concat(e+c*p[0],",").concat(n)),h+="L ".concat(e+r-c*p[1],",").concat(n),p[1]>0&&(h+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(u,`, - `).concat(e+r,",").concat(n+o*p[1])),h+="L ".concat(e+r,",").concat(n+i-o*p[2]),p[2]>0&&(h+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(u,`, - `).concat(e+r-c*p[2],",").concat(n+i)),h+="L ".concat(e+c*p[3],",").concat(n+i),p[3]>0&&(h+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(u,`, - `).concat(e,",").concat(n+i-o*p[3])),h+="Z"}else if(s>0&&a===+a&&a>0){var b=Math.min(s,a);h="M ".concat(e,",").concat(n+o*b,` - A `).concat(b,",").concat(b,",0,0,").concat(u,",").concat(e+c*b,",").concat(n,` - L `).concat(e+r-c*b,",").concat(n,` - A `).concat(b,",").concat(b,",0,0,").concat(u,",").concat(e+r,",").concat(n+o*b,` - L `).concat(e+r,",").concat(n+i-o*b,` - A `).concat(b,",").concat(b,",0,0,").concat(u,",").concat(e+r-c*b,",").concat(n+i,` - L `).concat(e+c*b,",").concat(n+i,` - A `).concat(b,",").concat(b,",0,0,").concat(u,",").concat(e,",").concat(n+i-o*b," Z")}else h="M ".concat(e,",").concat(n," h ").concat(r," v ").concat(i," h ").concat(-r," Z");return h},d0e=function(e,n){if(!e||!n)return!1;var r=e.x,i=e.y,a=n.x,s=n.y,o=n.width,c=n.height;if(Math.abs(o)>0&&Math.abs(c)>0){var u=Math.min(a,a+o),h=Math.max(a,a+o),p=Math.min(s,s+c),v=Math.max(s,s+c);return r>=u&&r<=h&&i>=p&&i<=v}return!1},h0e={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},l5=function(e){var n=I8(I8({},h0e),e),r=j.useRef(),i=j.useState(-1),a=i0e(i,2),s=a[0],o=a[1];j.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var P=r.current.getTotalLength();P&&o(P)}catch{}},[]);var c=n.x,u=n.y,h=n.width,p=n.height,v=n.radius,y=n.className,b=n.animationEasing,w=n.animationDuration,_=n.animationBegin,S=n.isAnimationActive,E=n.isUpdateAnimationActive;if(c!==+c||u!==+u||h!==+h||p!==+p||h===0||p===0)return null;var T=In("recharts-rectangle",y);return E?fe.createElement(Gc,{canBegin:s>0,from:{width:h,height:p,x:c,y:u},to:{width:h,height:p,x:c,y:u},duration:w,animationEasing:b,isActive:E},function(P){var R=P.width,D=P.height,I=P.x,k=P.y;return fe.createElement(Gc,{canBegin:s>0,from:"0px ".concat(s===-1?1:s,"px"),to:"".concat(s,"px 0px"),attributeName:"strokeDasharray",begin:_,duration:w,isActive:S,easing:b},fe.createElement("path",Bw({},_n(n,!0),{className:T,d:B8(I,k,R,D,v),ref:r})))}):fe.createElement("path",Bw({},_n(n,!0),{className:T,d:B8(c,u,h,p,v)}))};function EI(){return EI=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function b0e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var _0e=function(e,n,r,i,a,s){return"M".concat(e,",").concat(a,"v").concat(i,"M").concat(s,",").concat(n,"h").concat(r)},S0e=function(e){var n=e.x,r=n===void 0?0:n,i=e.y,a=i===void 0?0:i,s=e.top,o=s===void 0?0:s,c=e.left,u=c===void 0?0:c,h=e.width,p=h===void 0?0:h,v=e.height,y=v===void 0?0:v,b=e.className,w=x0e(e,p0e),_=m0e({x:r,y:a,top:o,left:u,width:p,height:y},w);return!mt(r)||!mt(a)||!mt(p)||!mt(y)||!mt(o)||!mt(u)?null:fe.createElement("path",TI({},_n(_,!0),{className:In("recharts-cross",b),d:_0e(r,a,p,y,o,u)}))},h3,k8;function A0e(){if(k8)return h3;k8=1;var t=pq(),e=t(Object.getPrototypeOf,Object);return h3=e,h3}var p3,F8;function w0e(){if(F8)return p3;F8=1;var t=uf(),e=A0e(),n=ff(),r="[object Object]",i=Function.prototype,a=Object.prototype,s=i.toString,o=a.hasOwnProperty,c=s.call(Object);function u(h){if(!n(h)||t(h)!=r)return!1;var p=e(h);if(p===null)return!0;var v=o.call(p,"constructor")&&p.constructor;return typeof v=="function"&&v instanceof v&&s.call(v)==c}return p3=u,p3}var M0e=w0e();const E0e=ar(M0e);var m3,U8;function T0e(){if(U8)return m3;U8=1;var t=uf(),e=ff(),n="[object Boolean]";function r(i){return i===!0||i===!1||e(i)&&t(i)==n}return m3=r,m3}var C0e=T0e();const R0e=ar(C0e);function bb(t){"@babel/helpers - typeof";return bb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bb(t)}function Lw(){return Lw=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0,from:{upperWidth:0,lowerWidth:0,height:v,x:c,y:u},to:{upperWidth:h,lowerWidth:p,height:v,x:c,y:u},duration:w,animationEasing:b,isActive:S},function(T){var P=T.upperWidth,R=T.lowerWidth,D=T.height,I=T.x,k=T.y;return fe.createElement(Gc,{canBegin:s>0,from:"0px ".concat(s===-1?1:s,"px"),to:"".concat(s,"px 0px"),attributeName:"strokeDasharray",begin:_,duration:w,easing:b},fe.createElement("path",Lw({},_n(n,!0),{className:E,d:H8(I,k,P,R,D),ref:r})))}):fe.createElement("g",null,fe.createElement("path",Lw({},_n(n,!0),{className:E,d:H8(c,u,h,p,v)})))},j0e=["option","shapeType","propTransformer","activeClassName","isActive"];function _b(t){"@babel/helpers - typeof";return _b=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_b(t)}function z0e(t,e){if(t==null)return{};var n=G0e(t,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function G0e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function V8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function kw(t){for(var e=1;e0&&r.handleDrag(i.changedTouches[0])}),Xs(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=r.props,a=i.endIndex,s=i.onDragEnd,o=i.startIndex;s?.({endIndex:a,startIndex:o})}),r.detachDragEndListener()}),Xs(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Xs(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Xs(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Xs(r,"handleSlideDragStart",function(i){var a=e6(i)?i.changedTouches[0]:i;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return gxe(e,t),dxe(e,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var i=r.startX,a=r.endX,s=this.state.scaleValues,o=this.props,c=o.gap,u=o.data,h=u.length-1,p=Math.min(i,a),v=Math.max(i,a),y=e.getIndexInRange(s,p),b=e.getIndexInRange(s,v);return{startIndex:y-y%c,endIndex:b===h?h:b-b%c}}},{key:"getTextOfTick",value:function(r){var i=this.props,a=i.data,s=i.tickFormatter,o=i.dataKey,c=cs(a[r],o,r);return yn(s)?s(c,r):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var i=this.state,a=i.slideMoveStartX,s=i.startX,o=i.endX,c=this.props,u=c.x,h=c.width,p=c.travellerWidth,v=c.startIndex,y=c.endIndex,b=c.onChange,w=r.pageX-a;w>0?w=Math.min(w,u+h-p-o,u+h-p-s):w<0&&(w=Math.max(w,u-s,u-o));var _=this.getIndex({startX:s+w,endX:o+w});(_.startIndex!==v||_.endIndex!==y)&&b&&b(_),this.setState({startX:s+w,endX:o+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,i){var a=e6(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var i=this.state,a=i.brushMoveStartX,s=i.movingTravellerId,o=i.endX,c=i.startX,u=this.state[s],h=this.props,p=h.x,v=h.width,y=h.travellerWidth,b=h.onChange,w=h.gap,_=h.data,S={startX:this.state.startX,endX:this.state.endX},E=r.pageX-a;E>0?E=Math.min(E,p+v-y-u):E<0&&(E=Math.max(E,p-u)),S[s]=u+E;var T=this.getIndex(S),P=T.startIndex,R=T.endIndex,D=function(){var k=_.length-1;return s==="startX"&&(o>c?P%w===0:R%w===0)||oc?R%w===0:P%w===0)||o>c&&R===k};this.setState(Xs(Xs({},s,u+E),"brushMoveStartX",r.pageX),function(){b&&D()&&b(T)})}},{key:"handleTravellerMoveKeyboard",value:function(r,i){var a=this,s=this.state,o=s.scaleValues,c=s.startX,u=s.endX,h=this.state[i],p=o.indexOf(h);if(p!==-1){var v=p+r;if(!(v===-1||v>=o.length)){var y=o[v];i==="startX"&&y>=u||i==="endX"&&y<=c||this.setState(Xs({},i,y),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,i=r.x,a=r.y,s=r.width,o=r.height,c=r.fill,u=r.stroke;return fe.createElement("rect",{stroke:u,fill:c,x:i,y:a,width:s,height:o})}},{key:"renderPanorama",value:function(){var r=this.props,i=r.x,a=r.y,s=r.width,o=r.height,c=r.data,u=r.children,h=r.padding,p=j.Children.only(u);return p?fe.cloneElement(p,{x:i,y:a,width:s,height:o,margin:h,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(r,i){var a,s,o=this,c=this.props,u=c.y,h=c.travellerWidth,p=c.height,v=c.traveller,y=c.ariaLabel,b=c.data,w=c.startIndex,_=c.endIndex,S=Math.max(r,this.props.x),E=b3(b3({},_n(this.props,!1)),{},{x:S,y:u,width:h,height:p}),T=y||"Min value: ".concat((a=b[w])===null||a===void 0?void 0:a.name,", Max value: ").concat((s=b[_])===null||s===void 0?void 0:s.name);return fe.createElement(Ar,{tabIndex:0,role:"slider","aria-label":T,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(R){["ArrowLeft","ArrowRight"].includes(R.key)&&(R.preventDefault(),R.stopPropagation(),o.handleTravellerMoveKeyboard(R.key==="ArrowRight"?1:-1,i))},onFocus:function(){o.setState({isTravellerFocused:!0})},onBlur:function(){o.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},e.renderTraveller(v,E))}},{key:"renderSlide",value:function(r,i){var a=this.props,s=a.y,o=a.height,c=a.stroke,u=a.travellerWidth,h=Math.min(r,i)+u,p=Math.max(Math.abs(i-r)-u,0);return fe.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:h,y:s,width:p,height:o})}},{key:"renderText",value:function(){var r=this.props,i=r.startIndex,a=r.endIndex,s=r.y,o=r.height,c=r.travellerWidth,u=r.stroke,h=this.state,p=h.startX,v=h.endX,y=5,b={pointerEvents:"none",fill:u};return fe.createElement(Ar,{className:"recharts-brush-texts"},fe.createElement(dw,Uw({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,v)-y,y:s+o/2},b),this.getTextOfTick(i)),fe.createElement(dw,Uw({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,v)+c+y,y:s+o/2},b),this.getTextOfTick(a)))}},{key:"render",value:function(){var r=this.props,i=r.data,a=r.className,s=r.children,o=r.x,c=r.y,u=r.width,h=r.height,p=r.alwaysShowText,v=this.state,y=v.startX,b=v.endX,w=v.isTextActive,_=v.isSlideMoving,S=v.isTravellerMoving,E=v.isTravellerFocused;if(!i||!i.length||!mt(o)||!mt(c)||!mt(u)||!mt(h)||u<=0||h<=0)return null;var T=In("recharts-brush",a),P=fe.Children.count(s)===1,R=uxe("userSelect","none");return fe.createElement(Ar,{className:T,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:R},this.renderBackground(),P&&this.renderPanorama(),this.renderSlide(y,b),this.renderTravellerLayer(y,"startX"),this.renderTravellerLayer(b,"endX"),(w||_||S||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var i=r.x,a=r.y,s=r.width,o=r.height,c=r.stroke,u=Math.floor(a+o/2)-1;return fe.createElement(fe.Fragment,null,fe.createElement("rect",{x:i,y:a,width:s,height:o,fill:c,stroke:"none"}),fe.createElement("line",{x1:i+1,y1:u,x2:i+s-1,y2:u,fill:"none",stroke:"#fff"}),fe.createElement("line",{x1:i+1,y1:u+2,x2:i+s-1,y2:u+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,i){var a;return fe.isValidElement(r)?a=fe.cloneElement(r,i):yn(r)?a=r(i):a=e.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(r,i){var a=r.data,s=r.width,o=r.x,c=r.travellerWidth,u=r.updateId,h=r.startIndex,p=r.endIndex;if(a!==i.prevData||u!==i.prevUpdateId)return b3({prevData:a,prevTravellerWidth:c,prevUpdateId:u,prevX:o,prevWidth:s},a&&a.length?yxe({data:a,width:s,x:o,travellerWidth:c,startIndex:h,endIndex:p}):{scale:null,scaleValues:null});if(i.scale&&(s!==i.prevWidth||o!==i.prevX||c!==i.prevTravellerWidth)){i.scale.range([o,o+s-c]);var v=i.scale.domain().map(function(y){return i.scale(y)});return{prevData:a,prevTravellerWidth:c,prevUpdateId:u,prevX:o,prevWidth:s,startX:i.scale(r.startIndex),endX:i.scale(r.endIndex),scaleValues:v}}return null}},{key:"getIndexInRange",value:function(r,i){for(var a=r.length,s=0,o=a-1;o-s>1;){var c=Math.floor((s+o)/2);r[c]>i?o=c:s=c}return i>=r[o]?o:s}}])})(j.PureComponent);Xs(mv,"displayName","Brush");Xs(mv,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var _3,t6;function xxe(){if(t6)return _3;t6=1;var t=NL();function e(n,r){var i;return t(n,function(a,s,o){return i=r(a,s,o),!i}),!!i}return _3=e,_3}var S3,n6;function bxe(){if(n6)return S3;n6=1;var t=oq(),e=kd(),n=xxe(),r=ks(),i=_E();function a(s,o,c){var u=r(s)?t:n;return c&&i(s,o,c)&&(o=void 0),u(s,e(o,3))}return S3=a,S3}var _xe=bxe();const Sxe=ar(_xe);var kc=function(e,n){var r=e.alwaysShow,i=e.ifOverflow;return r&&(i="extendDomain"),i===n},A3,r6;function Axe(){if(r6)return A3;r6=1;var t=Mq();function e(n,r,i){r=="__proto__"&&t?t(n,r,{configurable:!0,enumerable:!0,value:i,writable:!0}):n[r]=i}return A3=e,A3}var w3,i6;function wxe(){if(i6)return w3;i6=1;var t=Axe(),e=Aq(),n=kd();function r(i,a){var s={};return a=n(a,3),e(i,function(o,c,u){t(s,c,a(o,c,u))}),s}return w3=r,w3}var Mxe=wxe();const Exe=ar(Mxe);var M3,a6;function Txe(){if(a6)return M3;a6=1;function t(e,n){for(var r=-1,i=e==null?0:e.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function Lxe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function kxe(t,e){var n=t.x,r=t.y,i=Bxe(t,Pxe),a="".concat(n),s=parseInt(a,10),o="".concat(r),c=parseInt(o,10),u="".concat(e.height||i.height),h=parseInt(u,10),p="".concat(e.width||i.width),v=parseInt(p,10);return J0(J0(J0(J0(J0({},e),i),s?{x:s}:{}),c?{y:c}:{}),{},{height:h,width:v,name:e.name,radius:e.radius})}function c6(t){return fe.createElement(K0e,RI({shapeType:"rectangle",propTransformer:kxe,activeClassName:"recharts-active-bar"},t))}var Fxe=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,i){if(typeof e=="number")return e;var a=mt(r)||Voe(r);return a?e(r,i):(a||Mp(),n)}},Uxe=["value","background"],tX;function gv(t){"@babel/helpers - typeof";return gv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gv(t)}function jxe(t,e){if(t==null)return{};var n=zxe(t,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function zxe(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function zw(){return zw=Object.assign?Object.assign.bind():function(t){for(var e=1;e0&&Math.abs(Q)0&&Math.abs(ee)0&&(W=Math.min((Se||0)-(ee[$e-1]||0),W))}),Number.isFinite(W)){var Q=W/q,V=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(I=Q*V/2),w.padding==="no-gap"){var $=Ap(e.barCategoryGap,Q*V),Y=Q*V/2;I=Y-$-(Y-$)/V*$}}}i==="xAxis"?k=[r.left+(T.left||0)+(I||0),r.left+r.width-(T.right||0)-(I||0)]:i==="yAxis"?k=c==="horizontal"?[r.top+r.height-(T.bottom||0),r.top+(T.top||0)]:[r.top+(T.top||0)+(I||0),r.top+r.height-(T.bottom||0)-(I||0)]:k=w.range,R&&(k=[k[1],k[0]]);var ie=sge(w,a,v),de=ie.scale,X=ie.realScaleType;de.domain(S).range(k),oge(de);var ae=mge(de,Ol(Ol({},w),{},{realScaleType:X}));i==="xAxis"?(z=_==="top"&&!P||_==="bottom"&&P,B=r.left,U=p[D]-z*w.height):i==="yAxis"&&(z=_==="left"&&!P||_==="right"&&P,B=p[D]-z*w.width,U=r.top);var ue=Ol(Ol(Ol({},w),ae),{},{realScaleType:X,x:B,y:U,scale:de,width:i==="xAxis"?r.width:w.width,height:i==="yAxis"?r.height:w.height});return ue.bandSize=Tw(ue,ae),!w.hide&&i==="xAxis"?p[D]+=(z?-1:1)*ue.height:w.hide||(p[D]+=(z?-1:1)*ue.width),Ol(Ol({},y),{},IE({},b,ue))},{})},sX=function(e,n){var r=e.x,i=e.y,a=n.x,s=n.y;return{x:Math.min(r,a),y:Math.min(i,s),width:Math.abs(a-r),height:Math.abs(s-i)}},Zxe=function(e){var n=e.x1,r=e.y1,i=e.x2,a=e.y2;return sX({x:n,y:r},{x:i,y:a})},oX=(function(){function t(e){Kxe(this,t),this.scale=e}return Yxe(t,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.bandAware,a=r.position;if(n!==void 0){if(a)switch(a){case"start":return this.scale(n);case"middle":{var s=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+s}case"end":{var o=this.bandwidth?this.bandwidth():0;return this.scale(n)+o}default:return this.scale(n)}if(i){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+c}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),i=r[0],a=r[r.length-1];return i<=a?n>=i&&n<=a:n>=a&&n<=i}}],[{key:"create",value:function(n){return new t(n)}}])})();IE(oX,"EPS",1e-4);var c5=function(e){var n=Object.keys(e).reduce(function(r,i){return Ol(Ol({},r),{},IE({},i,oX.create(e[i])))},{});return Ol(Ol({},n),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=a.bandAware,o=a.position;return Exe(i,function(c,u){return n[u].apply(c,{bandAware:s,position:o})})},isInRange:function(i){return eX(i,function(a,s){return n[s].isInRange(a)})}})};function Qxe(t){return(t%180+180)%180}var ebe=function(e){var n=e.width,r=e.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=Qxe(i),s=a*Math.PI/180,o=Math.atan(r/n),c=s>o&&s-1?c[u?a[h]:h]:void 0}}return C3=r,C3}var R3,m6;function nbe(){if(m6)return R3;m6=1;var t=Y$();function e(n){var r=t(n),i=r%1;return r===r?i?r-i:r:0}return R3=e,R3}var O3,g6;function rbe(){if(g6)return O3;g6=1;var t=yq(),e=kd(),n=nbe(),r=Math.max;function i(a,s,o){var c=a==null?0:a.length;if(!c)return-1;var u=o==null?0:n(o);return u<0&&(u=r(c+u,0)),t(a,e(s,3),u)}return O3=i,O3}var P3,v6;function ibe(){if(v6)return P3;v6=1;var t=tbe(),e=rbe(),n=t(e);return P3=n,P3}var abe=ibe();const sbe=ar(abe);var obe=NW();const lbe=ar(obe);var cbe=lbe(function(t){return{x:t.left,y:t.top,width:t.width,height:t.height}},function(t){return["l",t.left,"t",t.top,"w",t.width,"h",t.height].join("")}),u5=j.createContext(void 0),f5=j.createContext(void 0),lX=j.createContext(void 0),cX=j.createContext({}),uX=j.createContext(void 0),fX=j.createContext(0),dX=j.createContext(0),y6=function(e){var n=e.state,r=n.xAxisMap,i=n.yAxisMap,a=n.offset,s=e.clipPathId,o=e.children,c=e.width,u=e.height,h=cbe(a);return fe.createElement(u5.Provider,{value:r},fe.createElement(f5.Provider,{value:i},fe.createElement(cX.Provider,{value:a},fe.createElement(lX.Provider,{value:h},fe.createElement(uX.Provider,{value:s},fe.createElement(fX.Provider,{value:u},fe.createElement(dX.Provider,{value:c},o)))))))},ube=function(){return j.useContext(uX)},hX=function(e){var n=j.useContext(u5);n==null&&Mp();var r=n[e];return r==null&&Mp(),r},fbe=function(){var e=j.useContext(u5);return gd(e)},dbe=function(){var e=j.useContext(f5),n=sbe(e,function(r){return eX(r.domain,Number.isFinite)});return n||gd(e)},pX=function(e){var n=j.useContext(f5);n==null&&Mp();var r=n[e];return r==null&&Mp(),r},hbe=function(){var e=j.useContext(lX);return e},pbe=function(){return j.useContext(cX)},d5=function(){return j.useContext(dX)},h5=function(){return j.useContext(fX)};function vv(t){"@babel/helpers - typeof";return vv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vv(t)}function mbe(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function gbe(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt*i)return!1;var a=n();return t*(e-t*a/2-r)>=0&&t*(e+t*a/2-i)<=0}function Jbe(t,e){return _X(t,e+1)}function Zbe(t,e,n,r,i){for(var a=(r||[]).slice(),s=e.start,o=e.end,c=0,u=1,h=s,p=function(){var b=r?.[c];if(b===void 0)return{v:_X(r,u)};var w=c,_,S=function(){return _===void 0&&(_=n(b,w)),_},E=b.coordinate,T=c===0||qw(t,E,S,h,o);T||(c=0,h=s,u+=1),T&&(h=E+t*(S()/2+i),c+=u)},v;u<=a.length;)if(v=p(),v)return v.v;return[]}function Eb(t){"@babel/helpers - typeof";return Eb=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Eb(t)}function E6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Oa(t){for(var e=1;e0?y.coordinate-_*t:y.coordinate})}else a[v]=y=Oa(Oa({},y),{},{tickCoord:y.coordinate});var S=qw(t,y.tickCoord,w,o,c);S&&(c=y.tickCoord-t*(w()/2+i),a[v]=Oa(Oa({},y),{},{isShow:!0}))},h=s-1;h>=0;h--)u(h);return a}function r1e(t,e,n,r,i,a){var s=(r||[]).slice(),o=s.length,c=e.start,u=e.end;if(a){var h=r[o-1],p=n(h,o-1),v=t*(h.coordinate+t*p/2-u);s[o-1]=h=Oa(Oa({},h),{},{tickCoord:v>0?h.coordinate-v*t:h.coordinate});var y=qw(t,h.tickCoord,function(){return p},c,u);y&&(u=h.tickCoord-t*(p/2+i),s[o-1]=Oa(Oa({},h),{},{isShow:!0}))}for(var b=a?o-1:o,w=function(E){var T=s[E],P,R=function(){return P===void 0&&(P=n(T,E)),P};if(E===0){var D=t*(T.coordinate-t*R()/2-c);s[E]=T=Oa(Oa({},T),{},{tickCoord:D<0?T.coordinate-D*t:T.coordinate})}else s[E]=T=Oa(Oa({},T),{},{tickCoord:T.coordinate});var I=qw(t,T.tickCoord,R,c,u);I&&(c=T.tickCoord+t*(R()/2+i),s[E]=Oa(Oa({},T),{},{isShow:!0}))},_=0;_=2?Il(i[1].coordinate-i[0].coordinate):1,S=Ybe(a,_,y);return c==="equidistantPreserveStart"?Zbe(_,S,w,i,s):(c==="preserveStart"||c==="preserveStartEnd"?v=r1e(_,S,w,i,s,c==="preserveStartEnd"):v=n1e(_,S,w,i,s),v.filter(function(E){return E.isShow}))}var i1e=["viewBox"],a1e=["viewBox"],s1e=["ticks"];function bv(t){"@babel/helpers - typeof";return bv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bv(t)}function zg(){return zg=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function o1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function l1e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function C6(t,e){for(var n=0;n0?c(this.props):c(y)),s<=0||o<=0||!b||!b.length?null:fe.createElement(Ar,{className:In("recharts-cartesian-axis",u),ref:function(_){r.layerReference=_}},a&&this.renderAxisLine(),this.renderTicks(b,this.state.fontSize,this.state.letterSpacing),Da.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,i,a){var s,o=In(i.className,"recharts-cartesian-axis-tick-value");return fe.isValidElement(r)?s=fe.cloneElement(r,Li(Li({},i),{},{className:o})):yn(r)?s=r(Li(Li({},i),{},{className:o})):s=fe.createElement(dw,zg({},i,{className:"recharts-cartesian-axis-tick-value"}),a),s}}])})(j.Component);v5(ty,"displayName","CartesianAxis");v5(ty,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var m1e=["x1","y1","x2","y2","key"],g1e=["offset"];function Ep(t){"@babel/helpers - typeof";return Ep=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ep(t)}function R6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Na(t){for(var e=1;e=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function b1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}var _1e=function(e){var n=e.fill;if(!n||n==="none")return null;var r=e.fillOpacity,i=e.x,a=e.y,s=e.width,o=e.height,c=e.ry;return fe.createElement("rect",{x:i,y:a,ry:c,width:s,height:o,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function wX(t,e){var n;if(fe.isValidElement(t))n=fe.cloneElement(t,e);else if(yn(t))n=t(e);else{var r=e.x1,i=e.y1,a=e.x2,s=e.y2,o=e.key,c=O6(e,m1e),u=_n(c,!1);u.offset;var h=O6(u,g1e);n=fe.createElement("line",sp({},h,{x1:r,y1:i,x2:a,y2:s,fill:"none",key:o}))}return n}function S1e(t){var e=t.x,n=t.width,r=t.horizontal,i=r===void 0?!0:r,a=t.horizontalPoints;if(!i||!a||!a.length)return null;var s=a.map(function(o,c){var u=Na(Na({},t),{},{x1:e,y1:o,x2:e+n,y2:o,key:"line-".concat(c),index:c});return wX(i,u)});return fe.createElement("g",{className:"recharts-cartesian-grid-horizontal"},s)}function A1e(t){var e=t.y,n=t.height,r=t.vertical,i=r===void 0?!0:r,a=t.verticalPoints;if(!i||!a||!a.length)return null;var s=a.map(function(o,c){var u=Na(Na({},t),{},{x1:o,y1:e,x2:o,y2:e+n,key:"line-".concat(c),index:c});return wX(i,u)});return fe.createElement("g",{className:"recharts-cartesian-grid-vertical"},s)}function w1e(t){var e=t.horizontalFill,n=t.fillOpacity,r=t.x,i=t.y,a=t.width,s=t.height,o=t.horizontalPoints,c=t.horizontal,u=c===void 0?!0:c;if(!u||!e||!e.length)return null;var h=o.map(function(v){return Math.round(v+i-i)}).sort(function(v,y){return v-y});i!==h[0]&&h.unshift(0);var p=h.map(function(v,y){var b=!h[y+1],w=b?i+s-v:h[y+1]-v;if(w<=0)return null;var _=y%e.length;return fe.createElement("rect",{key:"react-".concat(y),y:v,x:r,height:w,width:a,stroke:"none",fill:e[_],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return fe.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function M1e(t){var e=t.vertical,n=e===void 0?!0:e,r=t.verticalFill,i=t.fillOpacity,a=t.x,s=t.y,o=t.width,c=t.height,u=t.verticalPoints;if(!n||!r||!r.length)return null;var h=u.map(function(v){return Math.round(v+a-a)}).sort(function(v,y){return v-y});a!==h[0]&&h.unshift(0);var p=h.map(function(v,y){var b=!h[y+1],w=b?a+o-v:h[y+1]-v;if(w<=0)return null;var _=y%r.length;return fe.createElement("rect",{key:"react-".concat(y),x:v,y:s,width:w,height:c,stroke:"none",fill:r[_],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return fe.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var E1e=function(e,n){var r=e.xAxis,i=e.width,a=e.height,s=e.offset;return k$(g5(Na(Na(Na({},ty.defaultProps),r),{},{ticks:Wu(r,!0),viewBox:{x:0,y:0,width:i,height:a}})),s.left,s.left+s.width,n)},T1e=function(e,n){var r=e.yAxis,i=e.width,a=e.height,s=e.offset;return k$(g5(Na(Na(Na({},ty.defaultProps),r),{},{ticks:Wu(r,!0),viewBox:{x:0,y:0,width:i,height:a}})),s.top,s.top+s.height,n)},rg={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function MX(t){var e,n,r,i,a,s,o=d5(),c=h5(),u=pbe(),h=Na(Na({},t),{},{stroke:(e=t.stroke)!==null&&e!==void 0?e:rg.stroke,fill:(n=t.fill)!==null&&n!==void 0?n:rg.fill,horizontal:(r=t.horizontal)!==null&&r!==void 0?r:rg.horizontal,horizontalFill:(i=t.horizontalFill)!==null&&i!==void 0?i:rg.horizontalFill,vertical:(a=t.vertical)!==null&&a!==void 0?a:rg.vertical,verticalFill:(s=t.verticalFill)!==null&&s!==void 0?s:rg.verticalFill,x:mt(t.x)?t.x:u.left,y:mt(t.y)?t.y:u.top,width:mt(t.width)?t.width:u.width,height:mt(t.height)?t.height:u.height}),p=h.x,v=h.y,y=h.width,b=h.height,w=h.syncWithTicks,_=h.horizontalValues,S=h.verticalValues,E=fbe(),T=dbe();if(!mt(y)||y<=0||!mt(b)||b<=0||!mt(p)||p!==+p||!mt(v)||v!==+v)return null;var P=h.verticalCoordinatesGenerator||E1e,R=h.horizontalCoordinatesGenerator||T1e,D=h.horizontalPoints,I=h.verticalPoints;if((!D||!D.length)&&yn(R)){var k=_&&_.length,B=R({yAxis:T?Na(Na({},T),{},{ticks:k?_:T.ticks}):void 0,width:o,height:c,offset:u},k?!0:w);Ku(Array.isArray(B),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(Ep(B),"]")),Array.isArray(B)&&(D=B)}if((!I||!I.length)&&yn(P)){var U=S&&S.length,z=P({xAxis:E?Na(Na({},E),{},{ticks:U?S:E.ticks}):void 0,width:o,height:c,offset:u},U?!0:w);Ku(Array.isArray(z),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(Ep(z),"]")),Array.isArray(z)&&(I=z)}return fe.createElement("g",{className:"recharts-cartesian-grid"},fe.createElement(_1e,{fill:h.fill,fillOpacity:h.fillOpacity,x:h.x,y:h.y,width:h.width,height:h.height,ry:h.ry}),fe.createElement(S1e,sp({},h,{offset:u,horizontalPoints:D,xAxis:E,yAxis:T})),fe.createElement(A1e,sp({},h,{offset:u,verticalPoints:I,xAxis:E,yAxis:T})),fe.createElement(w1e,sp({},h,{horizontalPoints:D})),fe.createElement(M1e,sp({},h,{verticalPoints:I})))}MX.displayName="CartesianGrid";var C1e=["type","layout","connectNulls","ref"],R1e=["key"];function _v(t){"@babel/helpers - typeof";return _v=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_v(t)}function P6(t,e){if(t==null)return{};var n=O1e(t,e),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function O1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function Nx(){return Nx=Object.assign?Object.assign.bind():function(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);np){y=[].concat(ig(c.slice(0,b)),[p-w]);break}var _=y.length%2===0?[0,v]:[v];return[].concat(ig(e.repeat(c,h)),ig(y),_).map(function(S){return"".concat(S,"px")}).join(", ")}),Pl(n,"id",Yv("recharts-line-")),Pl(n,"pathRef",function(s){n.mainCurve=s}),Pl(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Pl(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return j1e(e,t),L1e(e,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,s=a.points,o=a.xAxis,c=a.yAxis,u=a.layout,h=a.children,p=Vo(h,i1);if(!p)return null;var v=function(w,_){return{x:w.x,y:w.y,value:w.value,errorVal:cs(w.payload,_)}},y={clipPath:r?"url(#clipPath-".concat(i,")"):null};return fe.createElement(Ar,y,p.map(function(b){return fe.cloneElement(b,{key:"bar-".concat(b.props.dataKey),data:s,xAxis:o,yAxis:c,layout:u,dataPointFormatter:v})}))}},{key:"renderDots",value:function(r,i,a){var s=this.props.isAnimationActive;if(s&&!this.state.isAnimationFinished)return null;var o=this.props,c=o.dot,u=o.points,h=o.dataKey,p=_n(this.props,!1),v=_n(c,!0),y=u.map(function(w,_){var S=$s($s($s({key:"dot-".concat(_),r:3},p),v),{},{index:_,cx:w.x,cy:w.y,value:w.value,dataKey:h,payload:w.payload,points:u});return e.renderDotItem(c,S)}),b={clipPath:r?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return fe.createElement(Ar,Nx({className:"recharts-line-dots",key:"dots"},b),y)}},{key:"renderCurveStatically",value:function(r,i,a,s){var o=this.props,c=o.type,u=o.layout,h=o.connectNulls;o.ref;var p=P6(o,C1e),v=$s($s($s({},_n(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(a,")"):null,points:r},s),{},{type:c,layout:u,connectNulls:h});return fe.createElement(Kg,Nx({},v,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,i){var a=this,s=this.props,o=s.points,c=s.strokeDasharray,u=s.isAnimationActive,h=s.animationBegin,p=s.animationDuration,v=s.animationEasing,y=s.animationId,b=s.animateNewValues,w=s.width,_=s.height,S=this.state,E=S.prevPoints,T=S.totalLength;return fe.createElement(Gc,{begin:h,duration:p,isActive:u,easing:v,from:{t:0},to:{t:1},key:"line-".concat(y),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(P){var R=P.t;if(E){var D=E.length/o.length,I=o.map(function(q,W){var ee=Math.floor(W*D);if(E[ee]){var Q=E[ee],V=ha(Q.x,q.x),$=ha(Q.y,q.y);return $s($s({},q),{},{x:V(R),y:$(R)})}if(b){var Y=ha(w*2,q.x),ie=ha(_/2,q.y);return $s($s({},q),{},{x:Y(R),y:ie(R)})}return $s($s({},q),{},{x:q.x,y:q.y})});return a.renderCurveStatically(I,r,i)}var k=ha(0,T),B=k(R),U;if(c){var z="".concat(c).split(/[,\s]+/gim).map(function(q){return parseFloat(q)});U=a.getStrokeDasharray(B,T,z)}else U=a.generateSimpleStrokeDasharray(T,B);return a.renderCurveStatically(o,r,i,{strokeDasharray:U})})}},{key:"renderCurve",value:function(r,i){var a=this.props,s=a.points,o=a.isAnimationActive,c=this.state,u=c.prevPoints,h=c.totalLength;return o&&s&&s.length&&(!u&&h>0||!fv(u,s))?this.renderCurveWithAnimation(r,i):this.renderCurveStatically(s,r,i)}},{key:"render",value:function(){var r,i=this.props,a=i.hide,s=i.dot,o=i.points,c=i.className,u=i.xAxis,h=i.yAxis,p=i.top,v=i.left,y=i.width,b=i.height,w=i.isAnimationActive,_=i.id;if(a||!o||!o.length)return null;var S=this.state.isAnimationFinished,E=o.length===1,T=In("recharts-line",c),P=u&&u.allowDataOverflow,R=h&&h.allowDataOverflow,D=P||R,I=Cn(_)?this.id:_,k=(r=_n(s,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},B=k.r,U=B===void 0?3:B,z=k.strokeWidth,q=z===void 0?2:z,W=FW(s)?s:{},ee=W.clipDot,Q=ee===void 0?!0:ee,V=U*2+q;return fe.createElement(Ar,{className:T},P||R?fe.createElement("defs",null,fe.createElement("clipPath",{id:"clipPath-".concat(I)},fe.createElement("rect",{x:P?v:v-y/2,y:R?p:p-b/2,width:P?y:y*2,height:R?b:b*2})),!Q&&fe.createElement("clipPath",{id:"clipPath-dots-".concat(I)},fe.createElement("rect",{x:v-V/2,y:p-V/2,width:y+V,height:b+V}))):null,!E&&this.renderCurve(D,I),this.renderErrorBar(D,I),(E||s)&&this.renderDots(D,Q,I),(!w||S)&&Ju.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:i.curPoints}:r.points!==i.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,i){for(var a=r.length%2!==0?[].concat(ig(r),[0]):r,s=[],o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function V1e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function op(){return op=Object.assign?Object.assign.bind():function(t){for(var e=1;e0||!fv(h,s)||!fv(p,o))?this.renderAreaWithAnimation(r,i):this.renderAreaStatically(s,o,r,i)}},{key:"render",value:function(){var r,i=this.props,a=i.hide,s=i.dot,o=i.points,c=i.className,u=i.top,h=i.left,p=i.xAxis,v=i.yAxis,y=i.width,b=i.height,w=i.isAnimationActive,_=i.id;if(a||!o||!o.length)return null;var S=this.state.isAnimationFinished,E=o.length===1,T=In("recharts-area",c),P=p&&p.allowDataOverflow,R=v&&v.allowDataOverflow,D=P||R,I=Cn(_)?this.id:_,k=(r=_n(s,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},B=k.r,U=B===void 0?3:B,z=k.strokeWidth,q=z===void 0?2:z,W=FW(s)?s:{},ee=W.clipDot,Q=ee===void 0?!0:ee,V=U*2+q;return fe.createElement(Ar,{className:T},P||R?fe.createElement("defs",null,fe.createElement("clipPath",{id:"clipPath-".concat(I)},fe.createElement("rect",{x:P?h:h-y/2,y:R?u:u-b/2,width:P?y:y*2,height:R?b:b*2})),!Q&&fe.createElement("clipPath",{id:"clipPath-dots-".concat(I)},fe.createElement("rect",{x:h-V/2,y:u-V/2,width:y+V,height:b+V}))):null,E?null:this.renderArea(D,I),(s||E)&&this.renderDots(D,Q,I),(!w||S)&&Ju.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:i.curPoints,prevBaseLine:i.curBaseLine}:r.points!==i.curPoints||r.baseLine!==i.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])})(j.PureComponent);CX=sf;Pc(sf,"displayName","Area");Pc(sf,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Fp.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});Pc(sf,"getBaseValue",function(t,e,n,r){var i=t.layout,a=t.baseValue,s=e.props.baseValue,o=s??a;if(mt(o)&&typeof o=="number")return o;var c=i==="horizontal"?r:n,u=c.scale.domain();if(c.type==="number"){var h=Math.max(u[0],u[1]),p=Math.min(u[0],u[1]);return o==="dataMin"?p:o==="dataMax"||h<0?h:Math.max(Math.min(u[0],u[1]),0)}return o==="dataMin"?u[0]:o==="dataMax"?u[1]:u[0]});Pc(sf,"getComposedData",function(t){var e=t.props,n=t.item,r=t.xAxis,i=t.yAxis,a=t.xAxisTicks,s=t.yAxisTicks,o=t.bandSize,c=t.dataKey,u=t.stackedData,h=t.dataStartIndex,p=t.displayedData,v=t.offset,y=e.layout,b=u&&u.length,w=CX.getBaseValue(e,n,r,i),_=y==="horizontal",S=!1,E=p.map(function(P,R){var D;b?D=u[h+R]:(D=cs(P,c),Array.isArray(D)?S=!0:D=[w,D]);var I=D[1]==null||b&&cs(P,c)==null;return _?{x:Ew({axis:r,ticks:a,bandSize:o,entry:P,index:R}),y:I?null:i.scale(D[1]),value:D,payload:P}:{x:I?null:r.scale(D[1]),y:Ew({axis:i,ticks:s,bandSize:o,entry:P,index:R}),value:D,payload:P}}),T;return b||S?T=E.map(function(P){var R=Array.isArray(P.value)?P.value[0]:null;return _?{x:P.x,y:R!=null&&P.y!=null?i.scale(R):null}:{x:R!=null?r.scale(R):null,y:P.y}}):T=_?i.scale(w):r.scale(w),hd({points:E,baseLine:T,layout:y,isRange:S},v)});Pc(sf,"renderDotItem",function(t,e){var n;if(fe.isValidElement(t))n=fe.cloneElement(t,e);else if(yn(t))n=t(e);else{var r=In("recharts-area-dot",typeof t!="boolean"?t.className:""),i=e.key,a=RX(e,H1e);n=fe.createElement(PE,op({},a,{key:i,className:r}))}return n});function wv(t){"@babel/helpers - typeof";return wv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wv(t)}function Z1e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Q1e(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}function j_e(t,e){if(t==null)return{};var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(e.indexOf(r)>=0)continue;n[r]=t[r]}return n}function z_e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function G_e(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n0?s:e&&e.length&&mt(i)&&mt(a)?e.slice(i,a+1):[]};function VX(t){return t==="number"?[0,"auto"]:void 0}var KI=function(e,n,r,i){var a=e.graphicalItems,s=e.tooltipAxis,o=UE(n,e);return r<0||!a||!a.length||r>=o.length?null:a.reduce(function(c,u){var h,p=(h=u.props.data)!==null&&h!==void 0?h:n;p&&e.dataStartIndex+e.dataEndIndex!==0&&e.dataEndIndex-e.dataStartIndex>=r&&(p=p.slice(e.dataStartIndex,e.dataEndIndex+1));var v;if(s.dataKey&&!s.allowDuplicatedCategory){var y=p===void 0?o:p;v=QA(y,s.dataKey,i)}else v=p&&p[r]||o[r];return v?[].concat(Tv(c),[U$(u,v)]):c},[])},G6=function(e,n,r,i){var a=i||{x:e.chartX,y:e.chartY},s=eSe(a,r),o=e.orderedTooltipTicks,c=e.tooltipAxis,u=e.tooltipTicks,h=ege(s,o,u,c);if(h>=0&&u){var p=u[h]&&u[h].value,v=KI(e,n,h,p),y=tSe(r,o,h,a);return{activeTooltipIndex:h,activeLabel:p,activePayload:v,activeCoordinate:y}}return null},nSe=function(e,n){var r=n.axes,i=n.graphicalItems,a=n.axisType,s=n.axisIdKey,o=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,h=e.layout,p=e.children,v=e.stackOffset,y=L$(h,a);return r.reduce(function(b,w){var _,S=w.type.defaultProps!==void 0?Ge(Ge({},w.type.defaultProps),w.props):w.props,E=S.type,T=S.dataKey,P=S.allowDataOverflow,R=S.allowDuplicatedCategory,D=S.scale,I=S.ticks,k=S.includeHidden,B=S[s];if(b[B])return b;var U=UE(e.data,{graphicalItems:i.filter(function(ae){var ue,Se=s in ae.props?ae.props[s]:(ue=ae.type.defaultProps)===null||ue===void 0?void 0:ue[s];return Se===B}),dataStartIndex:c,dataEndIndex:u}),z=U.length,q,W,ee;C_e(S.domain,P,E)&&(q=dI(S.domain,null,P),y&&(E==="number"||D!=="auto")&&(ee=Px(U,T,"category")));var Q=VX(E);if(!q||q.length===0){var V,$=(V=S.domain)!==null&&V!==void 0?V:Q;if(T){if(q=Px(U,T,E),E==="category"&&y){var Y=qoe(q);R&&Y?(W=q,q=Fw(0,z)):R||(q=e8($,q,w).reduce(function(ae,ue){return ae.indexOf(ue)>=0?ae:[].concat(Tv(ae),[ue])},[]))}else if(E==="category")R?q=q.filter(function(ae){return ae!==""&&!Cn(ae)}):q=e8($,q,w).reduce(function(ae,ue){return ae.indexOf(ue)>=0||ue===""||Cn(ue)?ae:[].concat(Tv(ae),[ue])},[]);else if(E==="number"){var ie=age(U,i.filter(function(ae){var ue,Se,$e=s in ae.props?ae.props[s]:(ue=ae.type.defaultProps)===null||ue===void 0?void 0:ue[s],me="hide"in ae.props?ae.props.hide:(Se=ae.type.defaultProps)===null||Se===void 0?void 0:Se.hide;return $e===B&&(k||!me)}),T,a,h);ie&&(q=ie)}y&&(E==="number"||D!=="auto")&&(ee=Px(U,T,"category"))}else y?q=Fw(0,z):o&&o[B]&&o[B].hasStack&&E==="number"?q=v==="expand"?[0,1]:F$(o[B].stackGroups,c,u):q=B$(U,i.filter(function(ae){var ue=s in ae.props?ae.props[s]:ae.type.defaultProps[s],Se="hide"in ae.props?ae.props.hide:ae.type.defaultProps.hide;return ue===B&&(k||!Se)}),E,h,!0);if(E==="number")q=qI(p,q,B,a,I),$&&(q=dI($,q,P));else if(E==="category"&&$){var de=$,X=q.every(function(ae){return de.indexOf(ae)>=0});X&&(q=de)}}return Ge(Ge({},b),{},en({},B,Ge(Ge({},S),{},{axisType:a,domain:q,categoricalDomain:ee,duplicateDomain:W,originalDomain:(_=S.domain)!==null&&_!==void 0?_:Q,isCategorical:y,layout:h})))},{})},rSe=function(e,n){var r=n.graphicalItems,i=n.Axis,a=n.axisType,s=n.axisIdKey,o=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,h=e.layout,p=e.children,v=UE(e.data,{graphicalItems:r,dataStartIndex:c,dataEndIndex:u}),y=v.length,b=L$(h,a),w=-1;return r.reduce(function(_,S){var E=S.type.defaultProps!==void 0?Ge(Ge({},S.type.defaultProps),S.props):S.props,T=E[s],P=VX("number");if(!_[T]){w++;var R;return b?R=Fw(0,y):o&&o[T]&&o[T].hasStack?(R=F$(o[T].stackGroups,c,u),R=qI(p,R,T,a)):(R=dI(P,B$(v,r.filter(function(D){var I,k,B=s in D.props?D.props[s]:(I=D.type.defaultProps)===null||I===void 0?void 0:I[s],U="hide"in D.props?D.props.hide:(k=D.type.defaultProps)===null||k===void 0?void 0:k.hide;return B===T&&!U}),"number",h),i.defaultProps.allowDataOverflow),R=qI(p,R,T,a)),Ge(Ge({},_),{},en({},T,Ge(Ge({axisType:a},i.defaultProps),{},{hide:!0,orientation:Ho(Z_e,"".concat(a,".").concat(w%2),null),domain:R,originalDomain:P,isCategorical:b,layout:h})))}return _},{})},iSe=function(e,n){var r=n.axisType,i=r===void 0?"xAxis":r,a=n.AxisComp,s=n.graphicalItems,o=n.stackGroups,c=n.dataStartIndex,u=n.dataEndIndex,h=e.children,p="".concat(i,"Id"),v=Vo(h,a),y={};return v&&v.length?y=nSe(e,{axes:v,graphicalItems:s,axisType:i,axisIdKey:p,stackGroups:o,dataStartIndex:c,dataEndIndex:u}):s&&s.length&&(y=rSe(e,{Axis:a,graphicalItems:s,axisType:i,axisIdKey:p,stackGroups:o,dataStartIndex:c,dataEndIndex:u})),y},aSe=function(e){var n=gd(e),r=Wu(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:IL(r,function(i){return i.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Tw(n,r)}},H6=function(e){var n=e.children,r=e.defaultShowTooltip,i=Ks(n,mv),a=0,s=0;return e.data&&e.data.length!==0&&(s=e.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(s=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:s,activeTooltipIndex:-1,isTooltipActive:!!r}},sSe=function(e){return!e||!e.length?!1:e.some(function(n){var r=Xu(n&&n.type);return r&&r.indexOf("Bar")>=0})},V6=function(e){return e==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:e==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:e==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},oSe=function(e,n){var r=e.props,i=e.graphicalItems,a=e.xAxisMap,s=a===void 0?{}:a,o=e.yAxisMap,c=o===void 0?{}:o,u=r.width,h=r.height,p=r.children,v=r.margin||{},y=Ks(p,mv),b=Ks(p,qg),w=Object.keys(c).reduce(function(R,D){var I=c[D],k=I.orientation;return!I.mirror&&!I.hide?Ge(Ge({},R),{},en({},k,R[k]+I.width)):R},{left:v.left||0,right:v.right||0}),_=Object.keys(s).reduce(function(R,D){var I=s[D],k=I.orientation;return!I.mirror&&!I.hide?Ge(Ge({},R),{},en({},k,Ho(R,"".concat(k))+I.height)):R},{top:v.top||0,bottom:v.bottom||0}),S=Ge(Ge({},_),w),E=S.bottom;y&&(S.bottom+=y.props.height||mv.defaultProps.height),b&&n&&(S=rge(S,i,r,n));var T=u-S.left-S.right,P=h-S.top-S.bottom;return Ge(Ge({brushBottom:E},S),{},{width:Math.max(T,0),height:Math.max(P,0)})},lSe=function(e,n){if(n==="xAxis")return e[n].width;if(n==="yAxis")return e[n].height},WX=function(e){var n=e.chartName,r=e.GraphicalChild,i=e.defaultTooltipEventType,a=i===void 0?"axis":i,s=e.validateTooltipEventTypes,o=s===void 0?["axis"]:s,c=e.axisComponents,u=e.legendContent,h=e.formatAxisMap,p=e.defaultProps,v=function(S,E){var T=E.graphicalItems,P=E.stackGroups,R=E.offset,D=E.updateId,I=E.dataStartIndex,k=E.dataEndIndex,B=S.barSize,U=S.layout,z=S.barGap,q=S.barCategoryGap,W=S.maxBarSize,ee=V6(U),Q=ee.numericAxisName,V=ee.cateAxisName,$=sSe(T),Y=[];return T.forEach(function(ie,de){var X=UE(S.data,{graphicalItems:[ie],dataStartIndex:I,dataEndIndex:k}),ae=ie.type.defaultProps!==void 0?Ge(Ge({},ie.type.defaultProps),ie.props):ie.props,ue=ae.dataKey,Se=ae.maxBarSize,$e=ae["".concat(Q,"Id")],me=ae["".concat(V,"Id")],ve={},We=c.reduce(function(Et,Ze){var te=E["".concat(Ze.axisType,"Map")],H=ae["".concat(Ze.axisType,"Id")];te&&te[H]||Ze.axisType==="zAxis"||Mp();var he=te[H];return Ge(Ge({},Et),{},en(en({},Ze.axisType,he),"".concat(Ze.axisType,"Ticks"),Wu(he)))},ve),_e=We[V],Fe=We["".concat(V,"Ticks")],Xe=P&&P[$e]&&P[$e].hasStack&&vge(ie,P[$e].stackGroups),Re=Xu(ie.type).indexOf("Bar")>=0,ot=Tw(_e,Fe),we=[],Ue=$&&tge({barSize:B,stackGroups:P,totalSize:lSe(We,V)});if(Re){var Be,Ye,re=Cn(Se)?W:Se,At=(Be=(Ye=Tw(_e,Fe,!0))!==null&&Ye!==void 0?Ye:re)!==null&&Be!==void 0?Be:0;we=nge({barGap:z,barCategoryGap:q,bandSize:At!==ot?At:ot,sizeList:Ue[me],maxBarSize:re}),At!==ot&&(we=we.map(function(Et){return Ge(Ge({},Et),{},{position:Ge(Ge({},Et.position),{},{offset:Et.position.offset-At/2})})}))}var ft=ie&&ie.type&&ie.type.getComposedData;ft&&Y.push({props:Ge(Ge({},ft(Ge(Ge({},We),{},{displayedData:X,props:S,dataKey:ue,item:ie,bandSize:ot,barPosition:we,offset:R,stackedData:Xe,layout:U,dataStartIndex:I,dataEndIndex:k}))),{},en(en(en({key:ie.key||"item-".concat(de)},Q,We[Q]),V,We[V]),"animationId",D)),childIndex:ile(ie,S.children),item:ie})}),Y},y=function(S,E){var T=S.props,P=S.dataStartIndex,R=S.dataEndIndex,D=S.updateId;if(!mU({props:T}))return null;var I=T.children,k=T.layout,B=T.stackOffset,U=T.data,z=T.reverseStackOrder,q=V6(k),W=q.numericAxisName,ee=q.cateAxisName,Q=Vo(I,r),V=pge(U,Q,"".concat(W,"Id"),"".concat(ee,"Id"),B,z),$=c.reduce(function(ae,ue){var Se="".concat(ue.axisType,"Map");return Ge(Ge({},ae),{},en({},Se,iSe(T,Ge(Ge({},ue),{},{graphicalItems:Q,stackGroups:ue.axisType===W&&V,dataStartIndex:P,dataEndIndex:R}))))},{}),Y=oSe(Ge(Ge({},$),{},{props:T,graphicalItems:Q}),E?.legendBBox);Object.keys($).forEach(function(ae){$[ae]=h(T,$[ae],Y,ae.replace("Map",""),n)});var ie=$["".concat(ee,"Map")],de=aSe(ie),X=v(T,Ge(Ge({},$),{},{dataStartIndex:P,dataEndIndex:R,updateId:D,graphicalItems:Q,stackGroups:V,offset:Y}));return Ge(Ge({formattedGraphicalItems:X,graphicalItems:Q,offset:Y,stackGroups:V},de),$)},b=(function(_){function S(E){var T,P,R;return z_e(this,S),R=V_e(this,S,[E]),en(R,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),en(R,"accessibilityManager",new T_e),en(R,"handleLegendBBoxUpdate",function(D){if(D){var I=R.state,k=I.dataStartIndex,B=I.dataEndIndex,U=I.updateId;R.setState(Ge({legendBBox:D},y({props:R.props,dataStartIndex:k,dataEndIndex:B,updateId:U},Ge(Ge({},R.state),{},{legendBBox:D}))))}}),en(R,"handleReceiveSyncEvent",function(D,I,k){if(R.props.syncId===D){if(k===R.eventEmitterSymbol&&typeof R.props.syncMethod!="function")return;R.applySyncEvent(I)}}),en(R,"handleBrushChange",function(D){var I=D.startIndex,k=D.endIndex;if(I!==R.state.dataStartIndex||k!==R.state.dataEndIndex){var B=R.state.updateId;R.setState(function(){return Ge({dataStartIndex:I,dataEndIndex:k},y({props:R.props,dataStartIndex:I,dataEndIndex:k,updateId:B},R.state))}),R.triggerSyncEvent({dataStartIndex:I,dataEndIndex:k})}}),en(R,"handleMouseEnter",function(D){var I=R.getMouseInfo(D);if(I){var k=Ge(Ge({},I),{},{isTooltipActive:!0});R.setState(k),R.triggerSyncEvent(k);var B=R.props.onMouseEnter;yn(B)&&B(k,D)}}),en(R,"triggeredAfterMouseMove",function(D){var I=R.getMouseInfo(D),k=I?Ge(Ge({},I),{},{isTooltipActive:!0}):{isTooltipActive:!1};R.setState(k),R.triggerSyncEvent(k);var B=R.props.onMouseMove;yn(B)&&B(k,D)}),en(R,"handleItemMouseEnter",function(D){R.setState(function(){return{isTooltipActive:!0,activeItem:D,activePayload:D.tooltipPayload,activeCoordinate:D.tooltipPosition||{x:D.cx,y:D.cy}}})}),en(R,"handleItemMouseLeave",function(){R.setState(function(){return{isTooltipActive:!1}})}),en(R,"handleMouseMove",function(D){D.persist(),R.throttleTriggeredAfterMouseMove(D)}),en(R,"handleMouseLeave",function(D){R.throttleTriggeredAfterMouseMove.cancel();var I={isTooltipActive:!1};R.setState(I),R.triggerSyncEvent(I);var k=R.props.onMouseLeave;yn(k)&&k(I,D)}),en(R,"handleOuterEvent",function(D){var I=rle(D),k=Ho(R.props,"".concat(I));if(I&&yn(k)){var B,U;/.*touch.*/i.test(I)?U=R.getMouseInfo(D.changedTouches[0]):U=R.getMouseInfo(D),k((B=U)!==null&&B!==void 0?B:{},D)}}),en(R,"handleClick",function(D){var I=R.getMouseInfo(D);if(I){var k=Ge(Ge({},I),{},{isTooltipActive:!0});R.setState(k),R.triggerSyncEvent(k);var B=R.props.onClick;yn(B)&&B(k,D)}}),en(R,"handleMouseDown",function(D){var I=R.props.onMouseDown;if(yn(I)){var k=R.getMouseInfo(D);I(k,D)}}),en(R,"handleMouseUp",function(D){var I=R.props.onMouseUp;if(yn(I)){var k=R.getMouseInfo(D);I(k,D)}}),en(R,"handleTouchMove",function(D){D.changedTouches!=null&&D.changedTouches.length>0&&R.throttleTriggeredAfterMouseMove(D.changedTouches[0])}),en(R,"handleTouchStart",function(D){D.changedTouches!=null&&D.changedTouches.length>0&&R.handleMouseDown(D.changedTouches[0])}),en(R,"handleTouchEnd",function(D){D.changedTouches!=null&&D.changedTouches.length>0&&R.handleMouseUp(D.changedTouches[0])}),en(R,"handleDoubleClick",function(D){var I=R.props.onDoubleClick;if(yn(I)){var k=R.getMouseInfo(D);I(k,D)}}),en(R,"handleContextMenu",function(D){var I=R.props.onContextMenu;if(yn(I)){var k=R.getMouseInfo(D);I(k,D)}}),en(R,"triggerSyncEvent",function(D){R.props.syncId!==void 0&&I3.emit(B3,R.props.syncId,D,R.eventEmitterSymbol)}),en(R,"applySyncEvent",function(D){var I=R.props,k=I.layout,B=I.syncMethod,U=R.state.updateId,z=D.dataStartIndex,q=D.dataEndIndex;if(D.dataStartIndex!==void 0||D.dataEndIndex!==void 0)R.setState(Ge({dataStartIndex:z,dataEndIndex:q},y({props:R.props,dataStartIndex:z,dataEndIndex:q,updateId:U},R.state)));else if(D.activeTooltipIndex!==void 0){var W=D.chartX,ee=D.chartY,Q=D.activeTooltipIndex,V=R.state,$=V.offset,Y=V.tooltipTicks;if(!$)return;if(typeof B=="function")Q=B(Y,D);else if(B==="value"){Q=-1;for(var ie=0;ie=0){var Xe,Re;if(W.dataKey&&!W.allowDuplicatedCategory){var ot=typeof W.dataKey=="function"?Fe:"payload.".concat(W.dataKey.toString());Xe=QA(ie,ot,Q),Re=de&&X&&QA(X,ot,Q)}else Xe=ie?.[ee],Re=de&&X&&X[ee];if(me||$e){var we=D.props.activeIndex!==void 0?D.props.activeIndex:ee;return[j.cloneElement(D,Ge(Ge(Ge({},B.props),We),{},{activeIndex:we})),null,null]}if(!Cn(Xe))return[_e].concat(Tv(R.renderActivePoints({item:B,activePoint:Xe,basePoint:Re,childIndex:ee,isRange:de})))}else{var Ue,Be=(Ue=R.getItemByXY(R.state.activeCoordinate))!==null&&Ue!==void 0?Ue:{graphicalItem:_e},Ye=Be.graphicalItem,re=Ye.item,At=re===void 0?D:re,ft=Ye.childIndex,Et=Ge(Ge(Ge({},B.props),We),{},{activeIndex:ft});return[j.cloneElement(At,Et),null,null]}return de?[_e,null,null]:[_e,null]}),en(R,"renderCustomized",function(D,I,k){return j.cloneElement(D,Ge(Ge({key:"recharts-customized-".concat(k)},R.props),R.state))}),en(R,"renderMap",{CartesianGrid:{handler:ES,once:!0},ReferenceArea:{handler:R.renderReferenceElement},ReferenceLine:{handler:ES},ReferenceDot:{handler:R.renderReferenceElement},XAxis:{handler:ES},YAxis:{handler:ES},Brush:{handler:R.renderBrush,once:!0},Bar:{handler:R.renderGraphicChild},Line:{handler:R.renderGraphicChild},Area:{handler:R.renderGraphicChild},Radar:{handler:R.renderGraphicChild},RadialBar:{handler:R.renderGraphicChild},Scatter:{handler:R.renderGraphicChild},Pie:{handler:R.renderGraphicChild},Funnel:{handler:R.renderGraphicChild},Tooltip:{handler:R.renderCursor,once:!0},PolarGrid:{handler:R.renderPolarGrid,once:!0},PolarAngleAxis:{handler:R.renderPolarAxis},PolarRadiusAxis:{handler:R.renderPolarAxis},Customized:{handler:R.renderCustomized}}),R.clipPathId="".concat((T=E.id)!==null&&T!==void 0?T:Yv("recharts"),"-clip"),R.throttleTriggeredAfterMouseMove=Pq(R.triggeredAfterMouseMove,(P=E.throttleDelay)!==null&&P!==void 0?P:1e3/60),R.state={},R}return $_e(S,_),H_e(S,[{key:"componentDidMount",value:function(){var T,P;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(T=this.props.margin.left)!==null&&T!==void 0?T:0,top:(P=this.props.margin.top)!==null&&P!==void 0?P:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var T=this.props,P=T.children,R=T.data,D=T.height,I=T.layout,k=Ks(P,Rl);if(k){var B=k.props.defaultIndex;if(!(typeof B!="number"||B<0||B>this.state.tooltipTicks.length-1)){var U=this.state.tooltipTicks[B]&&this.state.tooltipTicks[B].value,z=KI(this.state,R,B,U),q=this.state.tooltipTicks[B].coordinate,W=(this.state.offset.top+D)/2,ee=I==="horizontal",Q=ee?{x:q,y:W}:{y:q,x:W},V=this.state.formattedGraphicalItems.find(function(Y){var ie=Y.item;return ie.type.name==="Scatter"});V&&(Q=Ge(Ge({},Q),V.props.points[B].tooltipPosition),z=V.props.points[B].tooltipPayload);var $={activeTooltipIndex:B,isTooltipActive:!0,activeLabel:U,activePayload:z,activeCoordinate:Q};this.setState($),this.renderCursor(k),this.accessibilityManager.setIndex(B)}}}},{key:"getSnapshotBeforeUpdate",value:function(T,P){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==P.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==T.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==T.margin){var R,D;this.accessibilityManager.setDetails({offset:{left:(R=this.props.margin.left)!==null&&R!==void 0?R:0,top:(D=this.props.margin.top)!==null&&D!==void 0?D:0}})}return null}},{key:"componentDidUpdate",value:function(T){IN([Ks(T.children,Rl)],[Ks(this.props.children,Rl)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var T=Ks(this.props.children,Rl);if(T&&typeof T.props.shared=="boolean"){var P=T.props.shared?"axis":"item";return o.indexOf(P)>=0?P:a}return a}},{key:"getMouseInfo",value:function(T){if(!this.container)return null;var P=this.container,R=P.getBoundingClientRect(),D=Vfe(R),I={chartX:Math.round(T.pageX-D.left),chartY:Math.round(T.pageY-D.top)},k=R.width/P.offsetWidth||1,B=this.inRange(I.chartX,I.chartY,k);if(!B)return null;var U=this.state,z=U.xAxisMap,q=U.yAxisMap,W=this.getTooltipEventType(),ee=G6(this.state,this.props.data,this.props.layout,B);if(W!=="axis"&&z&&q){var Q=gd(z).scale,V=gd(q).scale,$=Q&&Q.invert?Q.invert(I.chartX):null,Y=V&&V.invert?V.invert(I.chartY):null;return Ge(Ge({},I),{},{xValue:$,yValue:Y},ee)}return ee?Ge(Ge({},I),ee):null}},{key:"inRange",value:function(T,P){var R=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,D=this.props.layout,I=T/R,k=P/R;if(D==="horizontal"||D==="vertical"){var B=this.state.offset,U=I>=B.left&&I<=B.left+B.width&&k>=B.top&&k<=B.top+B.height;return U?{x:I,y:k}:null}var z=this.state,q=z.angleAxisMap,W=z.radiusAxisMap;if(q&&W){var ee=gd(q);return r8({x:I,y:k},ee)}return null}},{key:"parseEventsOfWrapper",value:function(){var T=this.props.children,P=this.getTooltipEventType(),R=Ks(T,Rl),D={};R&&P==="axis"&&(R.props.trigger==="click"?D={onClick:this.handleClick}:D={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var I=ew(this.props,this.handleOuterEvent);return Ge(Ge({},I),D)}},{key:"addListener",value:function(){I3.on(B3,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){I3.removeListener(B3,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(T,P,R){for(var D=this.state.formattedGraphicalItems,I=0,k=D.length;I{let n=!1;const r=t.map(i=>{const a=W6(i,e);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let i=0;i{let{children:a,...s}=r;qX(a)&&typeof Qw=="function"&&(a=Qw(a._payload));const o=j.Children.toArray(a),c=o.find(mSe);if(c){const u=c.props.children,h=o.map(p=>p===c?j.Children.count(u)>1?j.Children.only(null):j.isValidElement(u)?u.props.children:null:p);return M.jsx(e,{...s,ref:i,children:j.isValidElement(u)?j.cloneElement(u,void 0,h):null})}return M.jsx(e,{...s,ref:i,children:a})});return n.displayName=`${t}.Slot`,n}var XX=$X("Slot");function hSe(t){const e=j.forwardRef((n,r)=>{let{children:i,...a}=n;if(qX(i)&&typeof Qw=="function"&&(i=Qw(i._payload)),j.isValidElement(i)){const s=vSe(i),o=gSe(a,i.props);return i.type!==j.Fragment&&(o.ref=r?Gp(r,s):s),j.cloneElement(i,o)}return j.Children.count(i)>1?j.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var pSe=Symbol("radix.slottable");function mSe(t){return j.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===pSe}function gSe(t,e){const n={...e};for(const r in e){const i=t[r],a=e[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...o)=>{const c=a(...o);return i(...o),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...a}:r==="className"&&(n[r]=[i,a].filter(Boolean).join(" "))}return{...t,...n}}function vSe(t){let e=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=Object.getOwnPropertyDescriptor(t,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}const q6=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,$6=In,KX=(t,e)=>n=>{var r;if(e?.variants==null)return $6(t,n?.class,n?.className);const{variants:i,defaultVariants:a}=e,s=Object.keys(i).map(u=>{const h=n?.[u],p=a?.[u];if(h===null)return null;const v=q6(h)||q6(p);return i[u][v]}),o=n&&Object.entries(n).reduce((u,h)=>{let[p,v]=h;return v===void 0||(u[p]=v),u},{}),c=e==null||(r=e.compoundVariants)===null||r===void 0?void 0:r.reduce((u,h)=>{let{class:p,className:v,...y}=h;return Object.entries(y).every(b=>{let[w,_]=b;return Array.isArray(_)?_.includes({...a,...o}[w]):{...a,...o}[w]===_})?[...u,p,v]:u},[]);return $6(t,s,c,n?.class,n?.className)},ySe=(t,e)=>{const n=new Array(t.length+e.length);for(let r=0;r({classGroupId:t,validator:e}),YX=(t=new Map,e=null,n)=>({nextPart:t,validators:e,classGroupId:n}),eM="-",X6=[],bSe="arbitrary..",_Se=t=>{const e=ASe(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return SSe(s);const o=s.split(eM),c=o[0]===""&&o.length>1?1:0;return JX(o,c,e)},getConflictingClassGroupIds:(s,o)=>{if(o){const c=r[s],u=n[s];return c?u?ySe(u,c):c:u||X6}return n[s]||X6}}},JX=(t,e,n)=>{if(t.length-e===0)return n.classGroupId;const i=t[e],a=n.nextPart.get(i);if(a){const u=JX(t,e+1,a);if(u)return u}const s=n.validators;if(s===null)return;const o=e===0?t.join(eM):t.slice(e).join(eM),c=s.length;for(let u=0;ut.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=t.slice(1,-1),n=e.indexOf(":"),r=e.slice(0,n);return r?bSe+r:void 0})(),ASe=t=>{const{theme:e,classGroups:n}=t;return wSe(n,e)},wSe=(t,e)=>{const n=YX();for(const r in t){const i=t[r];y5(i,n,r,e)}return n},y5=(t,e,n,r)=>{const i=t.length;for(let a=0;a{if(typeof t=="string"){ESe(t,e,n);return}if(typeof t=="function"){TSe(t,e,n,r);return}CSe(t,e,n,r)},ESe=(t,e,n)=>{const r=t===""?e:ZX(e,t);r.classGroupId=n},TSe=(t,e,n,r)=>{if(RSe(t)){y5(t(r),e,n,r);return}e.validators===null&&(e.validators=[]),e.validators.push(xSe(n,t))},CSe=(t,e,n,r)=>{const i=Object.entries(t),a=i.length;for(let s=0;s{let n=t;const r=e.split(eM),i=r.length;for(let a=0;a"isThemeGetter"in t&&t.isThemeGetter===!0,OSe=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,n=Object.create(null),r=Object.create(null);const i=(a,s)=>{n[a]=s,e++,e>t&&(e=0,r=n,n=Object.create(null))};return{get(a){let s=n[a];if(s!==void 0)return s;if((s=r[a])!==void 0)return i(a,s),s},set(a,s){a in n?n[a]=s:i(a,s)}}},YI="!",K6=":",PSe=[],Y6=(t,e,n,r,i)=>({modifiers:t,hasImportantModifier:e,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),DSe=t=>{const{prefix:e,experimentalParseClassName:n}=t;let r=i=>{const a=[];let s=0,o=0,c=0,u;const h=i.length;for(let w=0;wc?u-c:void 0;return Y6(a,y,v,b)};if(e){const i=e+K6,a=r;r=s=>s.startsWith(i)?a(s.slice(i.length)):Y6(PSe,!1,s,void 0,!0)}if(n){const i=r;r=a=>n({className:a,parseClassName:i})}return r},NSe=t=>{const e=new Map;return t.orderSensitiveModifiers.forEach((n,r)=>{e.set(n,1e6+r)}),n=>{const r=[];let i=[];for(let a=0;a0&&(i.sort(),r.push(...i),i=[]),r.push(s)):i.push(s)}return i.length>0&&(i.sort(),r.push(...i)),r}},ISe=t=>({cache:OSe(t.cacheSize),parseClassName:DSe(t),sortModifiers:NSe(t),..._Se(t)}),BSe=/\s+/,LSe=(t,e)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=e,s=[],o=t.trim().split(BSe);let c="";for(let u=o.length-1;u>=0;u-=1){const h=o[u],{isExternal:p,modifiers:v,hasImportantModifier:y,baseClassName:b,maybePostfixModifierPosition:w}=n(h);if(p){c=h+(c.length>0?" "+c:c);continue}let _=!!w,S=r(_?b.substring(0,w):b);if(!S){if(!_){c=h+(c.length>0?" "+c:c);continue}if(S=r(b),!S){c=h+(c.length>0?" "+c:c);continue}_=!1}const E=v.length===0?"":v.length===1?v[0]:a(v).join(":"),T=y?E+YI:E,P=T+S;if(s.indexOf(P)>-1)continue;s.push(P);const R=i(S,_);for(let D=0;D0?" "+c:c)}return c},kSe=(...t)=>{let e=0,n,r,i="";for(;e{if(typeof t=="string")return t;let e,n="";for(let r=0;r{let n,r,i,a;const s=c=>{const u=e.reduce((h,p)=>p(h),t());return n=ISe(u),r=n.cache.get,i=n.cache.set,a=o,o(c)},o=c=>{const u=r(c);if(u)return u;const h=LSe(c,n);return i(c,h),h};return a=s,(...c)=>a(kSe(...c))},USe=[],ki=t=>{const e=n=>n[t]||USe;return e.isThemeGetter=!0,e},eK=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,tK=/^\((?:(\w[\w-]*):)?(.+)\)$/i,jSe=/^\d+\/\d+$/,zSe=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,GSe=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,HSe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,VSe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,WSe=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ag=t=>jSe.test(t),Tn=t=>!!t&&!Number.isNaN(Number(t)),rd=t=>!!t&&Number.isInteger(Number(t)),k3=t=>t.endsWith("%")&&Tn(t.slice(0,-1)),Du=t=>zSe.test(t),qSe=()=>!0,$Se=t=>GSe.test(t)&&!HSe.test(t),nK=()=>!1,XSe=t=>VSe.test(t),KSe=t=>WSe.test(t),YSe=t=>!It(t)&&!Bt(t),JSe=t=>iy(t,aK,nK),It=t=>eK.test(t),Nh=t=>iy(t,sK,$Se),F3=t=>iy(t,nAe,Tn),J6=t=>iy(t,rK,nK),ZSe=t=>iy(t,iK,KSe),TS=t=>iy(t,oK,XSe),Bt=t=>tK.test(t),Z0=t=>ay(t,sK),QSe=t=>ay(t,rAe),Z6=t=>ay(t,rK),eAe=t=>ay(t,aK),tAe=t=>ay(t,iK),CS=t=>ay(t,oK,!0),iy=(t,e,n)=>{const r=eK.exec(t);return r?r[1]?e(r[1]):n(r[2]):!1},ay=(t,e,n=!1)=>{const r=tK.exec(t);return r?r[1]?e(r[1]):n:!1},rK=t=>t==="position"||t==="percentage",iK=t=>t==="image"||t==="url",aK=t=>t==="length"||t==="size"||t==="bg-size",sK=t=>t==="length",nAe=t=>t==="number",rAe=t=>t==="family-name",oK=t=>t==="shadow",iAe=()=>{const t=ki("color"),e=ki("font"),n=ki("text"),r=ki("font-weight"),i=ki("tracking"),a=ki("leading"),s=ki("breakpoint"),o=ki("container"),c=ki("spacing"),u=ki("radius"),h=ki("shadow"),p=ki("inset-shadow"),v=ki("text-shadow"),y=ki("drop-shadow"),b=ki("blur"),w=ki("perspective"),_=ki("aspect"),S=ki("ease"),E=ki("animate"),T=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],R=()=>[...P(),Bt,It],D=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto","contain","none"],k=()=>[Bt,It,c],B=()=>[ag,"full","auto",...k()],U=()=>[rd,"none","subgrid",Bt,It],z=()=>["auto",{span:["full",rd,Bt,It]},rd,Bt,It],q=()=>[rd,"auto",Bt,It],W=()=>["auto","min","max","fr",Bt,It],ee=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Q=()=>["start","end","center","stretch","center-safe","end-safe"],V=()=>["auto",...k()],$=()=>[ag,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...k()],Y=()=>[t,Bt,It],ie=()=>[...P(),Z6,J6,{position:[Bt,It]}],de=()=>["no-repeat",{repeat:["","x","y","space","round"]}],X=()=>["auto","cover","contain",eAe,JSe,{size:[Bt,It]}],ae=()=>[k3,Z0,Nh],ue=()=>["","none","full",u,Bt,It],Se=()=>["",Tn,Z0,Nh],$e=()=>["solid","dashed","dotted","double"],me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ve=()=>[Tn,k3,Z6,J6],We=()=>["","none",b,Bt,It],_e=()=>["none",Tn,Bt,It],Fe=()=>["none",Tn,Bt,It],Xe=()=>[Tn,Bt,It],Re=()=>[ag,"full",...k()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Du],breakpoint:[Du],color:[qSe],container:[Du],"drop-shadow":[Du],ease:["in","out","in-out"],font:[YSe],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Du],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Du],shadow:[Du],spacing:["px",Tn],text:[Du],"text-shadow":[Du],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ag,It,Bt,_]}],container:["container"],columns:[{columns:[Tn,It,Bt,o]}],"break-after":[{"break-after":T()}],"break-before":[{"break-before":T()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:R()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:B()}],"inset-x":[{"inset-x":B()}],"inset-y":[{"inset-y":B()}],start:[{start:B()}],end:[{end:B()}],top:[{top:B()}],right:[{right:B()}],bottom:[{bottom:B()}],left:[{left:B()}],visibility:["visible","invisible","collapse"],z:[{z:[rd,"auto",Bt,It]}],basis:[{basis:[ag,"full","auto",o,...k()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Tn,ag,"auto","initial","none",It]}],grow:[{grow:["",Tn,Bt,It]}],shrink:[{shrink:["",Tn,Bt,It]}],order:[{order:[rd,"first","last","none",Bt,It]}],"grid-cols":[{"grid-cols":U()}],"col-start-end":[{col:z()}],"col-start":[{"col-start":q()}],"col-end":[{"col-end":q()}],"grid-rows":[{"grid-rows":U()}],"row-start-end":[{row:z()}],"row-start":[{"row-start":q()}],"row-end":[{"row-end":q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":W()}],"auto-rows":[{"auto-rows":W()}],gap:[{gap:k()}],"gap-x":[{"gap-x":k()}],"gap-y":[{"gap-y":k()}],"justify-content":[{justify:[...ee(),"normal"]}],"justify-items":[{"justify-items":[...Q(),"normal"]}],"justify-self":[{"justify-self":["auto",...Q()]}],"align-content":[{content:["normal",...ee()]}],"align-items":[{items:[...Q(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Q(),{baseline:["","last"]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...Q(),"baseline"]}],"place-self":[{"place-self":["auto",...Q()]}],p:[{p:k()}],px:[{px:k()}],py:[{py:k()}],ps:[{ps:k()}],pe:[{pe:k()}],pt:[{pt:k()}],pr:[{pr:k()}],pb:[{pb:k()}],pl:[{pl:k()}],m:[{m:V()}],mx:[{mx:V()}],my:[{my:V()}],ms:[{ms:V()}],me:[{me:V()}],mt:[{mt:V()}],mr:[{mr:V()}],mb:[{mb:V()}],ml:[{ml:V()}],"space-x":[{"space-x":k()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":k()}],"space-y-reverse":["space-y-reverse"],size:[{size:$()}],w:[{w:[o,"screen",...$()]}],"min-w":[{"min-w":[o,"screen","none",...$()]}],"max-w":[{"max-w":[o,"screen","none","prose",{screen:[s]},...$()]}],h:[{h:["screen","lh",...$()]}],"min-h":[{"min-h":["screen","lh","none",...$()]}],"max-h":[{"max-h":["screen","lh",...$()]}],"font-size":[{text:["base",n,Z0,Nh]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Bt,F3]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",k3,It]}],"font-family":[{font:[QSe,It,e]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[i,Bt,It]}],"line-clamp":[{"line-clamp":[Tn,"none",Bt,F3]}],leading:[{leading:[a,...k()]}],"list-image":[{"list-image":["none",Bt,It]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Bt,It]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:Y()}],"text-color":[{text:Y()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...$e(),"wavy"]}],"text-decoration-thickness":[{decoration:[Tn,"from-font","auto",Bt,Nh]}],"text-decoration-color":[{decoration:Y()}],"underline-offset":[{"underline-offset":[Tn,"auto",Bt,It]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:k()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Bt,It]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Bt,It]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ie()}],"bg-repeat":[{bg:de()}],"bg-size":[{bg:X()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},rd,Bt,It],radial:["",Bt,It],conic:[rd,Bt,It]},tAe,ZSe]}],"bg-color":[{bg:Y()}],"gradient-from-pos":[{from:ae()}],"gradient-via-pos":[{via:ae()}],"gradient-to-pos":[{to:ae()}],"gradient-from":[{from:Y()}],"gradient-via":[{via:Y()}],"gradient-to":[{to:Y()}],rounded:[{rounded:ue()}],"rounded-s":[{"rounded-s":ue()}],"rounded-e":[{"rounded-e":ue()}],"rounded-t":[{"rounded-t":ue()}],"rounded-r":[{"rounded-r":ue()}],"rounded-b":[{"rounded-b":ue()}],"rounded-l":[{"rounded-l":ue()}],"rounded-ss":[{"rounded-ss":ue()}],"rounded-se":[{"rounded-se":ue()}],"rounded-ee":[{"rounded-ee":ue()}],"rounded-es":[{"rounded-es":ue()}],"rounded-tl":[{"rounded-tl":ue()}],"rounded-tr":[{"rounded-tr":ue()}],"rounded-br":[{"rounded-br":ue()}],"rounded-bl":[{"rounded-bl":ue()}],"border-w":[{border:Se()}],"border-w-x":[{"border-x":Se()}],"border-w-y":[{"border-y":Se()}],"border-w-s":[{"border-s":Se()}],"border-w-e":[{"border-e":Se()}],"border-w-t":[{"border-t":Se()}],"border-w-r":[{"border-r":Se()}],"border-w-b":[{"border-b":Se()}],"border-w-l":[{"border-l":Se()}],"divide-x":[{"divide-x":Se()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Se()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...$e(),"hidden","none"]}],"divide-style":[{divide:[...$e(),"hidden","none"]}],"border-color":[{border:Y()}],"border-color-x":[{"border-x":Y()}],"border-color-y":[{"border-y":Y()}],"border-color-s":[{"border-s":Y()}],"border-color-e":[{"border-e":Y()}],"border-color-t":[{"border-t":Y()}],"border-color-r":[{"border-r":Y()}],"border-color-b":[{"border-b":Y()}],"border-color-l":[{"border-l":Y()}],"divide-color":[{divide:Y()}],"outline-style":[{outline:[...$e(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Tn,Bt,It]}],"outline-w":[{outline:["",Tn,Z0,Nh]}],"outline-color":[{outline:Y()}],shadow:[{shadow:["","none",h,CS,TS]}],"shadow-color":[{shadow:Y()}],"inset-shadow":[{"inset-shadow":["none",p,CS,TS]}],"inset-shadow-color":[{"inset-shadow":Y()}],"ring-w":[{ring:Se()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:Y()}],"ring-offset-w":[{"ring-offset":[Tn,Nh]}],"ring-offset-color":[{"ring-offset":Y()}],"inset-ring-w":[{"inset-ring":Se()}],"inset-ring-color":[{"inset-ring":Y()}],"text-shadow":[{"text-shadow":["none",v,CS,TS]}],"text-shadow-color":[{"text-shadow":Y()}],opacity:[{opacity:[Tn,Bt,It]}],"mix-blend":[{"mix-blend":[...me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Tn]}],"mask-image-linear-from-pos":[{"mask-linear-from":ve()}],"mask-image-linear-to-pos":[{"mask-linear-to":ve()}],"mask-image-linear-from-color":[{"mask-linear-from":Y()}],"mask-image-linear-to-color":[{"mask-linear-to":Y()}],"mask-image-t-from-pos":[{"mask-t-from":ve()}],"mask-image-t-to-pos":[{"mask-t-to":ve()}],"mask-image-t-from-color":[{"mask-t-from":Y()}],"mask-image-t-to-color":[{"mask-t-to":Y()}],"mask-image-r-from-pos":[{"mask-r-from":ve()}],"mask-image-r-to-pos":[{"mask-r-to":ve()}],"mask-image-r-from-color":[{"mask-r-from":Y()}],"mask-image-r-to-color":[{"mask-r-to":Y()}],"mask-image-b-from-pos":[{"mask-b-from":ve()}],"mask-image-b-to-pos":[{"mask-b-to":ve()}],"mask-image-b-from-color":[{"mask-b-from":Y()}],"mask-image-b-to-color":[{"mask-b-to":Y()}],"mask-image-l-from-pos":[{"mask-l-from":ve()}],"mask-image-l-to-pos":[{"mask-l-to":ve()}],"mask-image-l-from-color":[{"mask-l-from":Y()}],"mask-image-l-to-color":[{"mask-l-to":Y()}],"mask-image-x-from-pos":[{"mask-x-from":ve()}],"mask-image-x-to-pos":[{"mask-x-to":ve()}],"mask-image-x-from-color":[{"mask-x-from":Y()}],"mask-image-x-to-color":[{"mask-x-to":Y()}],"mask-image-y-from-pos":[{"mask-y-from":ve()}],"mask-image-y-to-pos":[{"mask-y-to":ve()}],"mask-image-y-from-color":[{"mask-y-from":Y()}],"mask-image-y-to-color":[{"mask-y-to":Y()}],"mask-image-radial":[{"mask-radial":[Bt,It]}],"mask-image-radial-from-pos":[{"mask-radial-from":ve()}],"mask-image-radial-to-pos":[{"mask-radial-to":ve()}],"mask-image-radial-from-color":[{"mask-radial-from":Y()}],"mask-image-radial-to-color":[{"mask-radial-to":Y()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":P()}],"mask-image-conic-pos":[{"mask-conic":[Tn]}],"mask-image-conic-from-pos":[{"mask-conic-from":ve()}],"mask-image-conic-to-pos":[{"mask-conic-to":ve()}],"mask-image-conic-from-color":[{"mask-conic-from":Y()}],"mask-image-conic-to-color":[{"mask-conic-to":Y()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ie()}],"mask-repeat":[{mask:de()}],"mask-size":[{mask:X()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Bt,It]}],filter:[{filter:["","none",Bt,It]}],blur:[{blur:We()}],brightness:[{brightness:[Tn,Bt,It]}],contrast:[{contrast:[Tn,Bt,It]}],"drop-shadow":[{"drop-shadow":["","none",y,CS,TS]}],"drop-shadow-color":[{"drop-shadow":Y()}],grayscale:[{grayscale:["",Tn,Bt,It]}],"hue-rotate":[{"hue-rotate":[Tn,Bt,It]}],invert:[{invert:["",Tn,Bt,It]}],saturate:[{saturate:[Tn,Bt,It]}],sepia:[{sepia:["",Tn,Bt,It]}],"backdrop-filter":[{"backdrop-filter":["","none",Bt,It]}],"backdrop-blur":[{"backdrop-blur":We()}],"backdrop-brightness":[{"backdrop-brightness":[Tn,Bt,It]}],"backdrop-contrast":[{"backdrop-contrast":[Tn,Bt,It]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Tn,Bt,It]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Tn,Bt,It]}],"backdrop-invert":[{"backdrop-invert":["",Tn,Bt,It]}],"backdrop-opacity":[{"backdrop-opacity":[Tn,Bt,It]}],"backdrop-saturate":[{"backdrop-saturate":[Tn,Bt,It]}],"backdrop-sepia":[{"backdrop-sepia":["",Tn,Bt,It]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":k()}],"border-spacing-x":[{"border-spacing-x":k()}],"border-spacing-y":[{"border-spacing-y":k()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Bt,It]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Tn,"initial",Bt,It]}],ease:[{ease:["linear","initial",S,Bt,It]}],delay:[{delay:[Tn,Bt,It]}],animate:[{animate:["none",E,Bt,It]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Bt,It]}],"perspective-origin":[{"perspective-origin":R()}],rotate:[{rotate:_e()}],"rotate-x":[{"rotate-x":_e()}],"rotate-y":[{"rotate-y":_e()}],"rotate-z":[{"rotate-z":_e()}],scale:[{scale:Fe()}],"scale-x":[{"scale-x":Fe()}],"scale-y":[{"scale-y":Fe()}],"scale-z":[{"scale-z":Fe()}],"scale-3d":["scale-3d"],skew:[{skew:Xe()}],"skew-x":[{"skew-x":Xe()}],"skew-y":[{"skew-y":Xe()}],transform:[{transform:[Bt,It,"","none","gpu","cpu"]}],"transform-origin":[{origin:R()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Re()}],"translate-x":[{"translate-x":Re()}],"translate-y":[{"translate-y":Re()}],"translate-z":[{"translate-z":Re()}],"translate-none":["translate-none"],accent:[{accent:Y()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:Y()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Bt,It]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":k()}],"scroll-mx":[{"scroll-mx":k()}],"scroll-my":[{"scroll-my":k()}],"scroll-ms":[{"scroll-ms":k()}],"scroll-me":[{"scroll-me":k()}],"scroll-mt":[{"scroll-mt":k()}],"scroll-mr":[{"scroll-mr":k()}],"scroll-mb":[{"scroll-mb":k()}],"scroll-ml":[{"scroll-ml":k()}],"scroll-p":[{"scroll-p":k()}],"scroll-px":[{"scroll-px":k()}],"scroll-py":[{"scroll-py":k()}],"scroll-ps":[{"scroll-ps":k()}],"scroll-pe":[{"scroll-pe":k()}],"scroll-pt":[{"scroll-pt":k()}],"scroll-pr":[{"scroll-pr":k()}],"scroll-pb":[{"scroll-pb":k()}],"scroll-pl":[{"scroll-pl":k()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Bt,It]}],fill:[{fill:["none",...Y()]}],"stroke-w":[{stroke:[Tn,Z0,Nh,F3]}],stroke:[{stroke:["none",...Y()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},aAe=FSe(iAe);function hf(...t){return aAe(In(t))}function lp(t,e="AED"){return new Intl.NumberFormat("en-US",{style:"currency",currency:e,minimumFractionDigits:0,maximumFractionDigits:0}).format(t)}const sAe=KX("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function jE({className:t,variant:e,asChild:n=!1,...r}){const i=n?XX:"span";return M.jsx(i,{"code-path":"src\\components\\ui\\badge.tsx:38:5","data-slot":"badge",className:hf(sAe({variant:e}),t),...r})}function lK({className:t,type:e,...n}){return M.jsx("input",{"code-path":"src\\components\\ui\\input.tsx:7:5",type:e,"data-slot":"input",className:hf("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...n})}const oAe=KX("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function tM({className:t,variant:e="default",size:n="default",asChild:r=!1,...i}){const a=r?XX:"button";return M.jsx(a,{"code-path":"src\\components\\ui\\button.tsx:52:5","data-slot":"button","data-variant":e,"data-size":n,className:hf(oAe({variant:e,size:n,className:t})),...i})}const lAe={background:"rgba(8, 10, 18, 0.82)",border:"1px solid rgba(59,130,246,0.14)",backdropFilter:"blur(24px)",WebkitBackdropFilter:"blur(24px)",boxShadow:"0 0 0 1px rgba(255,255,255,0.04), 0 4px 32px rgba(0,0,0,0.55), 0 0 60px rgba(59,130,246,0.06)"};function sy({children:t,className:e="",delay:n=0,colSpan:r=1,rowSpan:i=1,glow:a=!1}){return M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Dashboard.tsx:60:5",className:`relative rounded-2xl p-5 overflow-hidden ${e}`,style:{gridColumn:`span ${r}`,gridRow:`span ${i}`,...lAe,...a?{boxShadow:"0 0 0 1px rgba(59,130,246,0.18), 0 8px 48px rgba(0,0,0,0.6), 0 0 80px rgba(59,130,246,0.12)"}:{}},initial:{opacity:0,y:18,scale:.97},animate:{opacity:1,y:0,scale:1},transition:{duration:.38,delay:n,ease:[.4,0,.2,1]},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:75:7",className:"absolute inset-x-0 top-0 h-px pointer-events-none",style:{background:"linear-gradient(90deg, transparent, rgba(255,255,255,0.10), transparent)"}}),t]})}function x5({icon:t,label:e,value:n,sub:r,badge:i,glowColor:a="rgba(59,130,246,0.18)",delay:s=0}){return M.jsxs(sy,{"code-path":"src\\components\\modules\\Dashboard.tsx:97:5",delay:s,colSpan:1,className:"flex flex-col justify-between min-h-[148px]",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:99:7",className:"absolute -bottom-8 -right-8 w-56 h-56 pointer-events-none",style:{background:`radial-gradient(ellipse at 70% 80%, ${a} 0%, transparent 65%)`,filter:"blur(20px)"}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:107:7",className:"absolute bottom-0 left-0 w-40 h-24 pointer-events-none",style:{background:`radial-gradient(ellipse at 20% 100%, ${a.replace("0.","0.0")} 0%, transparent 70%)`,filter:"blur(16px)"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:115:7",className:"flex items-start justify-between",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:117:9",className:"flex-shrink-0",style:{color:"rgba(148,163,184,0.7)"},children:t}),i]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:123:7",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Dashboard.tsx:124:9",className:"text-xs font-medium uppercase tracking-widest mb-1",style:{color:"rgba(148,163,184,0.65)"},children:e}),M.jsx(yt.p,{"code-path":"src\\components\\modules\\Dashboard.tsx:127:9",className:"text-4xl font-semibold text-white leading-none",initial:{opacity:0,scale:.6},animate:{opacity:1,scale:1},transition:{duration:.45,delay:s+.15,type:"spring",stiffness:200},children:n}),M.jsx("p",{"code-path":"src\\components\\modules\\Dashboard.tsx:135:9",className:"text-xs mt-1.5",style:{color:"rgba(148,163,184,0.5)"},children:r})]})]})}function cK(){return M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:146:5",className:"flex items-center gap-1.5 text-xs font-medium",style:{color:"#4ade80"},children:[M.jsx(yt.div,{"code-path":"src\\components\\modules\\Dashboard.tsx:147:7",className:"w-1.5 h-1.5 rounded-full bg-green-400",animate:{opacity:[1,.3,1]},transition:{repeat:1/0,duration:1.6}}),"Live"]})}function uK({text:t}){return M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:160:5",className:"flex items-center gap-0.5 text-xs font-medium",style:{color:"#4ade80"},children:[M.jsx(bW,{"code-path":"src\\components\\modules\\Dashboard.tsx:161:7",className:"w-3.5 h-3.5"}),t]})}function cAe({delay:t=0}){const{metrics:e}=ao();return M.jsx(x5,{"code-path":"src\\components\\modules\\Dashboard.tsx:171:5",delay:t,icon:M.jsx(Cx,{"code-path":"src\\components\\modules\\Dashboard.tsx:173:13",className:"w-4 h-4 text-blue-400"}),label:"Active Visitors",value:e.activeVisitors,sub:"In Experience Center",badge:M.jsx(cK,{"code-path":"src\\components\\modules\\Dashboard.tsx:177:14"}),glowColor:"rgba(59,130,246,0.22)"})}function uAe({delay:t=0}){const{metrics:e}=ao();return M.jsx(x5,{"code-path":"src\\components\\modules\\Dashboard.tsx:187:5",delay:t,icon:M.jsx(EW,{"code-path":"src\\components\\modules\\Dashboard.tsx:189:13",className:"w-4 h-4 text-cyan-400"}),label:"Today's Leads",value:e.todayLeads,sub:`${e.closedDeals} converted`,badge:M.jsx(uK,{"code-path":"src\\components\\modules\\Dashboard.tsx:193:14",text:"+12%"}),glowColor:"rgba(34,211,238,0.18)"})}function fAe({delay:t=0}){const{metrics:e}=ao();return M.jsx(x5,{"code-path":"src\\components\\modules\\Dashboard.tsx:203:5",delay:t,icon:M.jsx(eoe,{"code-path":"src\\components\\modules\\Dashboard.tsx:205:13",className:"w-4 h-4 text-blue-300"}),label:"Conversion Rate",value:`${e.conversionRate}%`,sub:"Industry avg: 8.5%",badge:M.jsx(uK,{"code-path":"src\\components\\modules\\Dashboard.tsx:209:14",text:"+2.4%"}),glowColor:"rgba(99,102,241,0.20)"})}function dAe({delay:t=0}){return M.jsxs(sy,{"code-path":"src\\components\\modules\\Dashboard.tsx:218:5",delay:t,colSpan:1,className:"flex flex-col justify-between min-h-[148px]",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:220:7",className:"absolute -bottom-8 -right-8 w-56 h-56 pointer-events-none",style:{background:"radial-gradient(ellipse at 70% 80%, rgba(251,191,36,0.22) 0%, transparent 65%)",filter:"blur(20px)"}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:227:7",className:"absolute bottom-0 left-0 w-40 h-24 pointer-events-none",style:{background:"radial-gradient(ellipse at 20% 100%, rgba(251,191,36,0.06) 0%, transparent 70%)",filter:"blur(16px)"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:234:7",className:"flex items-start justify-between",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:235:9",className:"w-9 h-9 rounded-xl flex items-center justify-center",style:{background:"rgba(251,191,36,0.10)",border:"1px solid rgba(251,191,36,0.2)"},children:M.jsx($se,{"code-path":"src\\components\\modules\\Dashboard.tsx:239:11",className:"w-4 h-4 text-amber-400"})}),M.jsx(jE,{"code-path":"src\\components\\modules\\Dashboard.tsx:241:9",variant:"secondary",className:"bg-amber-400/10 text-amber-300 border border-amber-400/20 text-[10px]",children:"This Month"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:245:7",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Dashboard.tsx:246:9",className:"text-xs font-medium uppercase tracking-widest mb-1",style:{color:"rgba(148,163,184,0.65)"},children:"Top Performer"}),M.jsx("p",{"code-path":"src\\components\\modules\\Dashboard.tsx:249:9",className:"text-2xl font-semibold text-white leading-tight",children:"Rania Al-Farsi"}),M.jsx("p",{"code-path":"src\\components\\modules\\Dashboard.tsx:250:9",className:"text-xs mt-1.5",style:{color:"rgba(148,163,184,0.5)"},children:"42 deals · $2.1M closed"})]})]})}function hAe({value:t,delay:e=0}){const n=t>=70?"Excellent":t>=50?"Good":"Needs Attention",r=t>=70?"#4ade80":t>=50?"#fbbf24":"#f87171";return M.jsxs(sy,{"code-path":"src\\components\\modules\\Dashboard.tsx:262:5",delay:e,colSpan:2,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:264:7",className:"absolute -bottom-10 left-1/2 -translate-x-1/2 w-96 h-40 pointer-events-none",style:{background:"radial-gradient(ellipse at 50% 100%, rgba(59,130,246,0.35) 0%, transparent 65%)",filter:"blur(24px)"}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:271:7",className:"absolute bottom-0 left-0 w-48 h-32 pointer-events-none",style:{background:"radial-gradient(ellipse at 0% 100%, rgba(99,102,241,0.15) 0%, transparent 70%)",filter:"blur(20px)"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:279:7",className:"flex items-center justify-between mb-5",children:[M.jsxs("h3",{"code-path":"src\\components\\modules\\Dashboard.tsx:280:9",className:"text-sm font-semibold text-white flex items-center gap-2",children:[M.jsx(fL,{"code-path":"src\\components\\modules\\Dashboard.tsx:281:11",className:"w-4 h-4 text-blue-400"}),"Sentiment Thermometer"]}),M.jsx(cK,{"code-path":"src\\components\\modules\\Dashboard.tsx:284:9"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:288:7",className:"relative h-7 rounded-full overflow-hidden mb-4",style:{background:"rgba(255,255,255,0.05)",border:"1px solid rgba(255,255,255,0.07)"},children:[M.jsx(yt.div,{"code-path":"src\\components\\modules\\Dashboard.tsx:289:9",className:"absolute left-0 top-0 h-full rounded-full",style:{background:"linear-gradient(90deg, #1d4ed8, #3b82f6, #60a5fa)",boxShadow:"0 0 20px rgba(59,130,246,0.6)"},initial:{width:0},animate:{width:`${t}%`},transition:{duration:1.1,delay:e+.3,ease:[.4,0,.2,1]}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:299:9",className:"absolute inset-0 flex items-center justify-center",children:M.jsxs("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:300:11",className:"text-white text-sm font-semibold drop-shadow",children:[t,"%"]})})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:304:7",className:"flex items-center justify-between",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:305:9",className:"text-xs",style:{color:"rgba(148,163,184,0.6)"},children:"Showroom Vibe"}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:306:9",className:"text-xs font-semibold",style:{color:r},children:n})]})]})}function pAe({delay:t=0}){const{metrics:e}=ao(),{systemHealth:n}=e,r=[{label:"CPU",value:n.cpu,stroke:"#3b82f6",glow:"rgba(59,130,246,0.6)"},{label:"GPU",value:n.gpu,stroke:"#818cf8",glow:"rgba(129,140,248,0.6)"},{label:"Memory",value:n.memory,stroke:"#22d3ee",glow:"rgba(34,211,238,0.6)"},{label:"Temp",value:n.temperature,stroke:"#4ade80",glow:"rgba(74,222,128,0.6)",suffix:"°"}],i=24,a=2*Math.PI*i;return M.jsxs(sy,{"code-path":"src\\components\\modules\\Dashboard.tsx:328:5",delay:t,colSpan:2,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:330:7",className:"absolute -bottom-10 left-0 w-1/2 h-40 pointer-events-none",style:{background:"radial-gradient(ellipse at 0% 100%, rgba(59,130,246,0.28) 0%, transparent 65%)",filter:"blur(22px)"}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:337:7",className:"absolute -bottom-10 right-0 w-1/2 h-40 pointer-events-none",style:{background:"radial-gradient(ellipse at 100% 100%, rgba(34,211,238,0.22) 0%, transparent 65%)",filter:"blur(22px)"}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:344:7",className:"absolute bottom-0 left-1/2 -translate-x-1/2 w-48 h-28 pointer-events-none",style:{background:"radial-gradient(ellipse at 50% 100%, rgba(129,140,248,0.15) 0%, transparent 70%)",filter:"blur(18px)"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:351:7",className:"flex items-center justify-between mb-5",children:[M.jsxs("h3",{"code-path":"src\\components\\modules\\Dashboard.tsx:352:9",className:"text-sm font-semibold text-white flex items-center gap-2",children:[M.jsx(jae,{"code-path":"src\\components\\modules\\Dashboard.tsx:353:11",className:"w-4 h-4 text-blue-400"}),"System Health"]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:356:9",className:"flex items-center gap-2",children:[M.jsx(yt.div,{"code-path":"src\\components\\modules\\Dashboard.tsx:357:11",className:"w-1.5 h-1.5 rounded-full bg-green-400",animate:{opacity:[1,.3,1]},transition:{repeat:1/0,duration:1.6}}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:362:11",className:"text-xs font-medium text-green-400",children:"Optimal"})]})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:366:7",className:"grid grid-cols-4 gap-3",children:r.map((s,o)=>M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:368:11",className:"flex flex-col items-center gap-2",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:369:13",className:"relative w-14 h-14",children:[M.jsxs("svg",{"code-path":"src\\components\\modules\\Dashboard.tsx:370:15",className:"w-full h-full -rotate-90",viewBox:"0 0 56 56",children:[M.jsx("circle",{"code-path":"src\\components\\modules\\Dashboard.tsx:372:17",cx:"28",cy:"28",r:i,fill:"none",stroke:"rgba(255,255,255,0.07)",strokeWidth:"4"}),M.jsx(yt.circle,{"code-path":"src\\components\\modules\\Dashboard.tsx:374:17",cx:"28",cy:"28",r:i,fill:"none",stroke:s.stroke,strokeWidth:"4",strokeLinecap:"round",strokeDasharray:a,initial:{strokeDashoffset:a},animate:{strokeDashoffset:a*(1-s.value/100)},transition:{duration:1.1,delay:t+.2+o*.08},style:{filter:`drop-shadow(0 0 6px ${s.glow})`}})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:389:15",className:"absolute inset-0 flex items-center justify-center",children:M.jsxs("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:390:17",className:"text-white text-xs font-semibold",children:[s.value,s.suffix??"%"]})})]}),M.jsx("p",{"code-path":"src\\components\\modules\\Dashboard.tsx:395:13",className:"text-xs",style:{color:"rgba(148,163,184,0.6)"},children:s.label})]},s.label))})]})}function mAe({delay:t=0,colSpan:e=2,rowSpan:n=2}){const{velocityData:r}=ao();return M.jsxs(sy,{"code-path":"src\\components\\modules\\Dashboard.tsx:408:5",delay:t,colSpan:e,rowSpan:n,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:410:7",className:"absolute -bottom-10 left-1/2 -translate-x-1/2 w-full h-48 pointer-events-none",style:{background:"radial-gradient(ellipse at 50% 100%, rgba(59,130,246,0.22) 0%, transparent 60%)",filter:"blur(28px)"}}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:417:7",className:"absolute bottom-0 right-0 w-1/3 h-40 pointer-events-none",style:{background:"radial-gradient(ellipse at 100% 100%, rgba(34,211,238,0.14) 0%, transparent 65%)",filter:"blur(20px)"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:425:7",className:"flex items-center justify-between mb-5",children:[M.jsxs("h3",{"code-path":"src\\components\\modules\\Dashboard.tsx:426:9",className:"text-sm font-semibold text-white flex items-center gap-2",children:[M.jsx(Jb,{"code-path":"src\\components\\modules\\Dashboard.tsx:427:11",className:"w-4 h-4 text-blue-400"}),"Lead Velocity"]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:430:9",className:"flex items-center gap-4 text-xs",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:431:11",className:"flex items-center gap-1.5",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:432:13",className:"w-2 h-2 rounded-full",style:{background:"#3b82f6",boxShadow:"0 0 6px #3b82f6"}}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:433:13",style:{color:"rgba(148,163,184,0.65)"},children:"Generated"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:435:11",className:"flex items-center gap-1.5",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:436:13",className:"w-2 h-2 rounded-full",style:{background:"#22d3ee",boxShadow:"0 0 6px #22d3ee"}}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:437:13",style:{color:"rgba(148,163,184,0.65)"},children:"Closed"})]})]})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:442:7",className:"h-64",children:M.jsx(Dq,{"code-path":"src\\components\\modules\\Dashboard.tsx:443:9",width:"100%",height:"100%",children:M.jsxs(uSe,{"code-path":"src\\components\\modules\\Dashboard.tsx:444:11",data:r,margin:{top:4,right:4,left:-20,bottom:0},children:[M.jsxs("defs",{"code-path":"src\\components\\modules\\Dashboard.tsx:445:13",children:[M.jsxs("linearGradient",{"code-path":"src\\components\\modules\\Dashboard.tsx:446:15",id:"gradBlue",x1:"0",y1:"0",x2:"0",y2:"1",children:[M.jsx("stop",{"code-path":"src\\components\\modules\\Dashboard.tsx:447:17",offset:"5%",stopColor:"#3b82f6",stopOpacity:.35}),M.jsx("stop",{"code-path":"src\\components\\modules\\Dashboard.tsx:448:17",offset:"95%",stopColor:"#3b82f6",stopOpacity:0})]}),M.jsxs("linearGradient",{"code-path":"src\\components\\modules\\Dashboard.tsx:450:15",id:"gradCyan",x1:"0",y1:"0",x2:"0",y2:"1",children:[M.jsx("stop",{"code-path":"src\\components\\modules\\Dashboard.tsx:451:17",offset:"5%",stopColor:"#22d3ee",stopOpacity:.28}),M.jsx("stop",{"code-path":"src\\components\\modules\\Dashboard.tsx:452:17",offset:"95%",stopColor:"#22d3ee",stopOpacity:0})]})]}),M.jsx(MX,{"code-path":"src\\components\\modules\\Dashboard.tsx:455:13",strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.04)"}),M.jsx(ny,{"code-path":"src\\components\\modules\\Dashboard.tsx:456:13",dataKey:"time",stroke:"rgba(148,163,184,0.3)",fontSize:11,tickLine:!1,axisLine:!1}),M.jsx(ry,{"code-path":"src\\components\\modules\\Dashboard.tsx:457:13",stroke:"rgba(148,163,184,0.3)",fontSize:11,tickLine:!1,axisLine:!1}),M.jsx(Rl,{"code-path":"src\\components\\modules\\Dashboard.tsx:458:13",contentStyle:{backgroundColor:"rgba(8,10,18,0.92)",border:"1px solid rgba(59,130,246,0.2)",borderRadius:"10px",backdropFilter:"blur(16px)",boxShadow:"0 8px 32px rgba(0,0,0,0.5)"},labelStyle:{color:"rgba(148,163,184,0.8)",fontSize:11},itemStyle:{color:"#93c5fd",fontSize:12}}),M.jsx(sf,{"code-path":"src\\components\\modules\\Dashboard.tsx:469:13",type:"monotone",dataKey:"generated",stroke:"#3b82f6",strokeWidth:2.2,fillOpacity:1,fill:"url(#gradBlue)",style:{filter:"drop-shadow(0 0 4px rgba(59,130,246,0.5))"}}),M.jsx(sf,{"code-path":"src\\components\\modules\\Dashboard.tsx:473:13",type:"monotone",dataKey:"closed",stroke:"#22d3ee",strokeWidth:2.2,fillOpacity:1,fill:"url(#gradCyan)",style:{filter:"drop-shadow(0 0 4px rgba(34,211,238,0.5))"}})]})})})]})}function gAe({delay:t=0,colSpan:e=2,rowSpan:n=2}){const[r,i]=j.useState(""),[a,s]=j.useState([{id:"1",role:"assistant",text:'Hello, Ahmed. I have analyzed the Q3 pipeline. Would you like a refined strategy for the "Apex Innovations" deal?'}]),[o,c]=j.useState(!1),[u,h]=j.useState(!1),p=j.useRef(null),v=()=>{p.current?.scrollIntoView({behavior:"smooth"})};j.useEffect(()=>{v()},[a,o]);const y=async()=>{if(!r.trim())return;const b={id:Date.now().toString(),role:"user",text:r};s(w=>[...w,b]),i(""),c(!0),setTimeout(()=>{const w={id:(Date.now()+1).toString(),role:"assistant",text:"I've updated the probability score for Apex based on recent email sentiment. It's now at 85%. I recommend scheduling a closing meeting for next Tuesday."};s(_=>[..._,w]),c(!1)},1500)};return M.jsxs(sy,{"code-path":"src\\components\\modules\\Dashboard.tsx:528:5",delay:t,colSpan:e,rowSpan:n,className:"flex flex-col",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:529:7",className:"flex items-center justify-between mb-4 border-b border-white/5 pb-3",children:M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:530:9",className:"flex items-center gap-3",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:531:11",className:"h-8 w-8 rounded-full bg-blue-500/20 flex items-center justify-center border border-blue-500/30",children:M.jsx(vae,{"code-path":"src\\components\\modules\\Dashboard.tsx:532:13",className:"h-4 w-4 text-blue-400"})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:534:11",children:[M.jsxs("h3",{"code-path":"src\\components\\modules\\Dashboard.tsx:535:13",className:"text-sm font-semibold text-zinc-100 flex items-center gap-2",children:["AI Onboard",M.jsx(ON,{"code-path":"src\\components\\modules\\Dashboard.tsx:537:15",className:"w-3 h-3 text-blue-400"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:539:13",className:"flex items-center gap-1.5 pl-0.5",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:540:15",className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse"}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:541:15",className:"text-[10px] text-zinc-400",children:"Online"})]})]})]})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:547:7",className:"flex-1 overflow-y-auto space-y-4 mb-4 pr-1 min-h-[300px]",children:[a.map(b=>M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:549:11",className:`flex ${b.role==="user"?"justify-end":"justify-start"}`,children:M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:553:13",className:`max-w-[85%] rounded-2xl px-4 py-2.5 text-sm leading-relaxed ${b.role==="user"?"bg-blue-600/90 text-white rounded-tr-sm shadow-md":"bg-white/5 border border-white/10 text-zinc-200 rounded-tl-sm backdrop-blur-md"}`,children:b.text})},b.id)),o&&M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:564:11",className:"flex justify-start",children:M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:565:13",className:"bg-white/5 border border-white/10 rounded-2xl rounded-tl-sm px-4 py-3 flex items-center gap-1",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:566:15",className:"w-1.5 h-1.5 bg-zinc-500 rounded-full animate-bounce [animation-delay:-0.3s]"}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:567:15",className:"w-1.5 h-1.5 bg-zinc-500 rounded-full animate-bounce [animation-delay:-0.15s]"}),M.jsx("span",{"code-path":"src\\components\\modules\\Dashboard.tsx:568:15",className:"w-1.5 h-1.5 bg-zinc-500 rounded-full animate-bounce"})]})}),M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:572:9",ref:p})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:575:7",className:"relative mt-auto",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:577:9",className:"absolute pointer-events-none transition-opacity duration-300",style:{inset:"-20px -20px -20px -20px",background:"radial-gradient(ellipse 50% 60% at 50% 50%, rgba(59,130,246,0.3) 0%, transparent 70%)",filter:"blur(16px)",opacity:u?1:0,zIndex:0}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:589:9",className:`relative rounded-xl transition-all duration-300 ${u?"bg-zinc-950/80":"bg-zinc-950/40"}`,style:{border:u?"1px solid rgba(59,130,246,0.5)":"1px solid rgba(255,255,255,0.08)",boxShadow:u?"0 0 24px rgba(59,130,246,0.2)":"none",zIndex:1},children:[M.jsx(lK,{"code-path":"src\\components\\modules\\Dashboard.tsx:597:11",value:r,onChange:b=>i(b.target.value),onKeyDown:b=>b.key==="Enter"&&y(),onFocus:()=>h(!0),onBlur:()=>h(!1),placeholder:"Ask AI assistant...",className:"w-full bg-transparent border-0 focus-visible:ring-0 pr-12 h-11 text-zinc-100 placeholder:text-zinc-500"}),M.jsx(tM,{"code-path":"src\\components\\modules\\Dashboard.tsx:606:11",onClick:y,disabled:!r.trim(),size:"icon",className:`absolute right-1 top-1 h-9 w-9 transition-colors ${u?"bg-blue-600 hover:bg-blue-500":"bg-white/10 hover:bg-white/20"} text-white`,children:M.jsx(bW,{"code-path":"src\\components\\modules\\Dashboard.tsx:612:13",className:"h-4 w-4"})})]})]})]})}function vAe(){return M.jsx("section",{"code-path":"src\\components\\modules\\Dashboard.tsx:623:5",className:"p-6 h-full overflow-y-auto",children:M.jsxs("div",{"code-path":"src\\components\\modules\\Dashboard.tsx:628:7",className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-5 auto-rows-[minmax(140px,auto)] pb-8",children:[M.jsx(cAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:630:9",delay:0}),M.jsx(uAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:631:9",delay:.08}),M.jsx(fAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:632:9",delay:.16}),M.jsx(dAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:633:9",delay:.24}),M.jsx(hAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:636:9",value:78,delay:.32}),M.jsx(pAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:637:9",delay:.4}),M.jsx(gAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:641:9",delay:.48,colSpan:2,rowSpan:2}),M.jsx(mAe,{"code-path":"src\\components\\modules\\Dashboard.tsx:644:9",delay:.56,colSpan:2,rowSpan:2})]})})}function yAe(t,e=[]){let n=[];function r(a,s){const o=j.createContext(s);o.displayName=a+"Context";const c=n.length;n=[...n,s];const u=p=>{const{scope:v,children:y,...b}=p,w=v?.[t]?.[c]||o,_=j.useMemo(()=>b,Object.values(b));return M.jsx(w.Provider,{value:_,children:y})};u.displayName=a+"Provider";function h(p,v){const y=v?.[t]?.[c]||o,b=j.useContext(y);if(b)return b;if(s!==void 0)return s;throw new Error(`\`${p}\` must be used within \`${a}\``)}return[u,h]}const i=()=>{const a=n.map(s=>j.createContext(s));return function(o){const c=o?.[t]||a;return j.useMemo(()=>({[`__scope${t}`]:{...o,[t]:c}}),[o,c])}};return i.scopeName=t,[r,xAe(i,...e)]}function xAe(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(a){const s=r.reduce((o,{useScope:c,scopeName:u})=>{const p=c(a)[`__scope${u}`];return{...o,...p}},{});return j.useMemo(()=>({[`__scope${e.scopeName}`]:s}),[s])}};return n.scopeName=e.scopeName,n}function Hc(t){const e=j.useRef(t);return j.useEffect(()=>{e.current=t}),j.useMemo(()=>(...n)=>e.current?.(...n),[])}var Ul=globalThis?.document?j.useLayoutEffect:()=>{},bAe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],b5=bAe.reduce((t,e)=>{const n=$X(`Primitive.${e}`),r=j.forwardRef((i,a)=>{const{asChild:s,...o}=i,c=s?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),M.jsx(c,{...o,ref:a})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{}),U3={exports:{}},j3={};var Q6;function _Ae(){if(Q6)return j3;Q6=1;var t=qb();function e(p,v){return p===v&&(p!==0||1/p===1/v)||p!==p&&v!==v}var n=typeof Object.is=="function"?Object.is:e,r=t.useState,i=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function o(p,v){var y=v(),b=r({inst:{value:y,getSnapshot:v}}),w=b[0].inst,_=b[1];return a(function(){w.value=y,w.getSnapshot=v,c(w)&&_({inst:w})},[p,y,v]),i(function(){return c(w)&&_({inst:w}),p(function(){c(w)&&_({inst:w})})},[p]),s(y),y}function c(p){var v=p.getSnapshot;p=p.value;try{var y=v();return!n(p,y)}catch{return!0}}function u(p,v){return v()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:o;return j3.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:h,j3}var eG;function fK(){return eG||(eG=1,U3.exports=_Ae()),U3.exports}var SAe=fK();function AAe(){return SAe.useSyncExternalStore(wAe,()=>!0,()=>!1)}function wAe(){return()=>{}}var _5="Avatar",[MAe]=yAe(_5),[EAe,dK]=MAe(_5),hK=j.forwardRef((t,e)=>{const{__scopeAvatar:n,...r}=t,[i,a]=j.useState("idle");return M.jsx(EAe,{scope:n,imageLoadingStatus:i,onImageLoadingStatusChange:a,children:M.jsx(b5.span,{...r,ref:e})})});hK.displayName=_5;var pK="AvatarImage",mK=j.forwardRef((t,e)=>{const{__scopeAvatar:n,src:r,onLoadingStatusChange:i=()=>{},...a}=t,s=dK(pK,n),o=TAe(r,a),c=Hc(u=>{i(u),s.onImageLoadingStatusChange(u)});return Ul(()=>{o!=="idle"&&c(o)},[o,c]),o==="loaded"?M.jsx(b5.img,{...a,ref:e,src:r}):null});mK.displayName=pK;var gK="AvatarFallback",vK=j.forwardRef((t,e)=>{const{__scopeAvatar:n,delayMs:r,...i}=t,a=dK(gK,n),[s,o]=j.useState(r===void 0);return j.useEffect(()=>{if(r!==void 0){const c=window.setTimeout(()=>o(!0),r);return()=>window.clearTimeout(c)}},[r]),s&&a.imageLoadingStatus!=="loaded"?M.jsx(b5.span,{...i,ref:e}):null});vK.displayName=gK;function tG(t,e){return t?e?(t.src!==e&&(t.src=e),t.complete&&t.naturalWidth>0?"loaded":"loading"):"error":"idle"}function TAe(t,{referrerPolicy:e,crossOrigin:n}){const r=AAe(),i=j.useRef(null),a=r?(i.current||(i.current=new window.Image),i.current):null,[s,o]=j.useState(()=>tG(a,t));return Ul(()=>{o(tG(a,t))},[a,t]),Ul(()=>{const c=p=>()=>{o(p)};if(!a)return;const u=c("loaded"),h=c("error");return a.addEventListener("load",u),a.addEventListener("error",h),e&&(a.referrerPolicy=e),typeof n=="string"&&(a.crossOrigin=n),()=>{a.removeEventListener("load",u),a.removeEventListener("error",h)}},[a,n,e]),s}var CAe=hK,RAe=mK,OAe=vK;function S5({className:t,...e}){return M.jsx(CAe,{"code-path":"src\\components\\ui\\avatar.tsx:11:5","data-slot":"avatar",className:hf("relative flex size-8 shrink-0 overflow-hidden rounded-full",t),...e})}function A5({className:t,...e}){return M.jsx(RAe,{"code-path":"src\\components\\ui\\avatar.tsx:27:5","data-slot":"avatar-image",className:hf("aspect-square size-full",t),...e})}function w5({className:t,...e}){return M.jsx(OAe,{"code-path":"src\\components\\ui\\avatar.tsx:40:5","data-slot":"avatar-fallback",className:hf("bg-muted flex size-full items-center justify-center rounded-full",t),...e})}const PAe={view:"pipeline",insight:"Pipeline Velocity: Average deal cycle is 21 days, 10% faster than Q3.",summary:"Pipeline view generated for Q4 by stage.",payload:{pipeline:{"New Leads":[{id:"n1",name:"Elena Rostova",company:"Rostova Ventures",value:"$120k",avatar:"https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&w=80&q=80"},{id:"n2",name:"Mary Iluskimon",company:"Nexloop",value:"$130k",avatar:"https://images.unsplash.com/photo-1554151228-14d9def656e4?auto=format&fit=crop&w=80&q=80"}],Qualified:[{id:"q1",name:"Etlena Roya",company:"Mianaperson",value:"$120k",avatar:"https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?auto=format&fit=crop&w=80&q=80"},{id:"q2",name:"Silver Rostova",company:"Silverline Co",value:"$130k",avatar:"https://images.unsplash.com/photo-1542206395-9feb3edaa68d?auto=format&fit=crop&w=80&q=80"}],"Proposal Sent":[{id:"p1",name:"Magulanta Senneciton",company:"Senneciton",value:"$140k",avatar:"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?auto=format&fit=crop&w=80&q=80"},{id:"p2",name:"Minatie Ganrison",company:"Ganrison Group",value:"$130k",avatar:"https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?auto=format&fit=crop&w=80&q=80"}],Negotiation:[{id:"g1",name:"Jomath Bilotmberg",company:"Biotmberg",value:"$130k",avatar:"https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&w=80&q=80"},{id:"g2",name:"Josen Oateliars",company:"Oateliars",value:"$100k",avatar:"https://images.unsplash.com/photo-1560250097-0b93528c311a?auto=format&fit=crop&w=80&q=80"}]}}},DAe={pipeline:"Show me a pipeline view by stage for Q4.",team_performance:"What's the performance of the sales team this month?",account_timeline:"Find all contacts at 'Apex Innovations' and their recent activity.",lead_map:"Give me a map of all leads in California.",calendar_tasks:"Schedule a follow-up with the top 3 high-value leads."};function JI(t){const e=t.toLowerCase();return e.includes("performance")||e.includes("team")?{view:"team_performance",insight:"Team is on track to exceed monthly quota by 15%.",summary:"Performance dashboard for current month.",payload:{revenueSeries:[{month:"Jan",revenue:10,goal:20},{month:"Feb",revenue:30,goal:35},{month:"Mar",revenue:28,goal:40},{month:"Sep",revenue:52,goal:55},{month:"Oct",revenue:56,goal:60},{month:"Nov",revenue:74,goal:70},{month:"Dec",revenue:88,goal:80}],quotaAttainment:85,team:[{id:"t1",name:"Elena Rostova",dealsClosed:12,revenueGenerated:"$1.2M",avatar:"https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&w=80&q=80"},{id:"t2",name:"Etlena Roya",dealsClosed:12,revenueGenerated:"$1.2M",avatar:"https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?auto=format&fit=crop&w=80&q=80"},{id:"t3",name:"Minatie Ganrison",dealsClosed:13,revenueGenerated:"$1.2M",avatar:"https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?auto=format&fit=crop&w=80&q=80"},{id:"t4",name:"Josen Oateliars",dealsClosed:18,revenueGenerated:"$0.8M",avatar:"https://images.unsplash.com/photo-1560250097-0b93528c311a?auto=format&fit=crop&w=80&q=80"}]}}:e.includes("apex")||e.includes("activity")||e.includes("contacts")?{view:"account_timeline",insight:"Action: Schedule a check-in call with Apex's CEO regarding the proposal.",summary:"Account history and associated contacts for Apex Innovations.",payload:{account:{name:"Apex Innovations",totalDealValue:"$4.5M",primaryContact:"Elena Rostova, CEO",industry:"Technology",contacts:[{name:"Elena Rostova",role:"CEO",avatar:"https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&w=80&q=80"},{name:"Mary Iluskimon",role:"COO",avatar:"https://images.unsplash.com/photo-1554151228-14d9def656e4?auto=format&fit=crop&w=80&q=80"},{name:"Entin Veenos",role:"VP Finance",avatar:"https://images.unsplash.com/photo-1560250097-0b93528c311a?auto=format&fit=crop&w=80&q=80"}],timeline:[{id:"a1",type:"email",title:"Email Sent",when:"Today, 10:30 AM",summary:"Proposal Follow-up"},{id:"a2",type:"meeting",title:"Meeting",when:"Yesterday, 2:00 PM",summary:"Q4 Strategy"},{id:"a3",type:"call",title:"Call Logged",when:"Yesterday, 6:20 PM",summary:"Discussed pricing"}]}}}:e.includes("map")||e.includes("california")||e.includes("geographic")?{view:"lead_map",insight:"Insight: 60% of high-value leads are concentrated in the Bay Area.",summary:"Geographic lead distribution in California.",payload:{map:{region:"California",pins:[{id:"m1",label:"SF",x:26,y:32,temperature:"warm",count:24},{id:"m2",label:"Oakland",x:29,y:35,temperature:"cold",count:19},{id:"m3",label:"San Jose",x:32,y:42,temperature:"hot"},{id:"m4",label:"LA",x:44,y:78,temperature:"warm",count:8},{id:"m5",label:"San Diego",x:46,y:88,temperature:"cold"},{id:"m6",label:"Sacramento",x:36,y:28,temperature:"hot"}]}}}:e.includes("schedule")||e.includes("calendar")||e.includes("follow-up")?{view:"calendar_tasks",insight:"Scheduling: Proposed times minimize conflicts and align with contact's preferred hours.",summary:"Weekly calendar and follow-up actions generated.",payload:{calendar:{weekLabel:"Week 21",events:[{id:"c1",day:"Mon",time:"10:00",title:"Elena Rostova"},{id:"c2",day:"Tue",time:"12:00",title:"Appointments"},{id:"c3",day:"Wed",time:"13:00",title:"Follow-up",suggested:!0},{id:"c4",day:"Thu",time:"14:00",title:"Meeting"},{id:"c5",day:"Fri",time:"12:00",title:"Follow-up",suggested:!0}],tasks:[{id:"k1",title:"Follow-up",subtitle:"Elena Rostova",due:"Due Today"},{id:"k2",title:"Prepare Proposal",subtitle:"Apex Innovations",due:"Due Tomorrow"},{id:"k3",title:"Confirm Slot",subtitle:"Mr. Kapoor",due:"Due Today"}]}}}:PAe}async function NAe(t){return t.preferredView?JI(DAe[t.preferredView]):JI(t.prompt)}const z3="Show me a pipeline view by stage for Q4.",nG={pipeline:"Pipeline",team_performance:"Team Performance",account_timeline:"Account Timeline",lead_map:"Lead Map",calendar_tasks:"Calendar and Tasks"},rG=[{view:"pipeline",label:"Kanban Pipeline",samplePrompt:"Show me a pipeline view by stage for Q4."},{view:"team_performance",label:"Team Performance",samplePrompt:"What's the performance of the sales team this month?"},{view:"account_timeline",label:"Account Timeline",samplePrompt:"Find all contacts at 'Apex Innovations' and their recent activity."},{view:"lead_map",label:"Geographic Lead Map",samplePrompt:"Give me a map of all leads in California."},{view:"calendar_tasks",label:"Calendar and Tasks",samplePrompt:"Schedule a follow-up with the top 3 high-value leads."}],IAe={background:"rgba(10, 12, 20, 0.70)",border:"1px solid rgba(59,130,246,0.15)",backdropFilter:"blur(24px)",WebkitBackdropFilter:"blur(24px)",boxShadow:"0 8px 32px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.03)",borderRadius:"16px"},zE={background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.05)",borderRadius:"12px",transition:"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"},M5={background:"rgba(59,130,246,0.08)",border:"1px solid rgba(59,130,246,0.3)",boxShadow:"0 0 20px rgba(59,130,246,0.15), 0 0 0 1px rgba(59,130,246,0.1)"};function Zu({children:t,className:e=""}){return M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:67:5",className:`p-5 ${e}`,style:IAe,children:t})}function BAe({item:t}){return M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:76:5",layout:!0,className:"group relative p-3",style:zE,whileHover:M5,children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:83:7",className:"absolute left-0 top-3 bottom-3 w-[2px] rounded-r-full bg-blue-500 opacity-0 transition-opacity group-hover:opacity-100"}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:85:7",className:"mb-3 flex items-center gap-3 pl-1",children:[M.jsxs(S5,{"code-path":"src\\app\\oracle\\page.tsx:86:9",className:"h-9 w-9 border border-white/10",children:[M.jsx(A5,{"code-path":"src\\app\\oracle\\page.tsx:87:11",src:t.avatar,alt:t.name}),M.jsx(w5,{"code-path":"src\\app\\oracle\\page.tsx:88:11",className:"bg-zinc-800 text-zinc-400",children:t.name.slice(0,2)})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:90:9",className:"min-w-0",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:91:11",className:"truncate text-sm font-medium text-zinc-100 group-hover:text-blue-100 transition-colors",children:t.name}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:92:11",className:"truncate text-xs text-zinc-500 group-hover:text-blue-200/60 transition-colors",children:t.company})]})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:95:7",className:"pl-1",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:96:9",className:"text-[10px] uppercase tracking-wider text-zinc-500 mb-0.5",children:"Deal Value"}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:97:9",className:"text-lg font-semibold text-zinc-200 group-hover:text-white transition-colors",children:t.value})]})]})}function LAe({result:t}){const e=t.payload.pipeline??{};return M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:106:5",className:"grid gap-4 xl:grid-cols-4",children:Object.entries(e).map(([n,r])=>M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:108:9",className:"flex flex-col h-full",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:109:11",className:"mb-4 flex items-center justify-between",children:[M.jsx("h3",{"code-path":"src\\app\\oracle\\page.tsx:110:13",className:"text-sm font-medium uppercase tracking-widest text-zinc-400",children:n}),M.jsx(jE,{"code-path":"src\\app\\oracle\\page.tsx:111:13",variant:"outline",className:"border-white/10 bg-white/5 text-zinc-400 text-[10px]",children:r.length})]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:113:11",className:"space-y-3 flex-1",children:r.map(i=>M.jsx(BAe,{"code-path":"src\\app\\oracle\\page.tsx:115:15",item:i},i.id))})]},n))})}function kAe({result:t}){const e=t.payload.revenueSeries??[],n=t.payload.quotaAttainment??0,r=t.payload.team??[];return M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:130:5",className:"space-y-4",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:131:7",className:"grid gap-4 xl:grid-cols-2",children:[M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:132:9",children:[M.jsxs("h3",{"code-path":"src\\app\\oracle\\page.tsx:133:11",className:"mb-4 text-base font-medium text-zinc-100 flex items-center gap-2",children:[M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:134:13",className:"w-1.5 h-1.5 rounded-full bg-blue-500 shadow-[0_0_8px_#3b82f6]"}),"Monthly Revenue vs. Goal"]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:137:11",className:"h-60",children:M.jsx(Dq,{"code-path":"src\\app\\oracle\\page.tsx:138:13",width:"100%",height:"100%",children:M.jsxs(cSe,{"code-path":"src\\app\\oracle\\page.tsx:139:15",data:e,children:[M.jsx("defs",{"code-path":"src\\app\\oracle\\page.tsx:140:17",children:M.jsxs("linearGradient",{"code-path":"src\\app\\oracle\\page.tsx:141:19",id:"gradRevenue",x1:"0",y1:"0",x2:"1",y2:"0",children:[M.jsx("stop",{"code-path":"src\\app\\oracle\\page.tsx:142:21",offset:"0%",stopColor:"#3b82f6"}),M.jsx("stop",{"code-path":"src\\app\\oracle\\page.tsx:143:21",offset:"100%",stopColor:"#22d3ee"})]})}),M.jsx(ny,{"code-path":"src\\app\\oracle\\page.tsx:146:17",dataKey:"month",stroke:"#52525b",tick:{fontSize:11,fill:"#71717a"},axisLine:!1,tickLine:!1,dy:10}),M.jsx(ry,{"code-path":"src\\app\\oracle\\page.tsx:147:17",stroke:"#52525b",tick:{fontSize:11,fill:"#71717a"},axisLine:!1,tickLine:!1}),M.jsx(Rl,{"code-path":"src\\app\\oracle\\page.tsx:148:17",contentStyle:{backgroundColor:"rgba(10,12,20,0.9)",border:"1px solid rgba(59,130,246,0.2)",backdropFilter:"blur(8px)",borderRadius:"8px"},itemStyle:{color:"#e4e4e7"}}),M.jsx(Sv,{"code-path":"src\\app\\oracle\\page.tsx:157:17",type:"monotone",dataKey:"goal",stroke:"#52525b",strokeDasharray:"4 4",dot:!1,strokeWidth:1.5}),M.jsx(Sv,{"code-path":"src\\app\\oracle\\page.tsx:158:17",type:"monotone",dataKey:"revenue",stroke:"url(#gradRevenue)",strokeWidth:3,dot:{r:4,fill:"#0a0a0a",stroke:"#22d3ee",strokeWidth:2},activeDot:{r:6,fill:"#22d3ee"}})]})})})]}),M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:170:9",className:"relative overflow-hidden",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:172:11",className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-48 h-48 bg-blue-500/10 blur-3xl rounded-full pointer-events-none"}),M.jsxs("h3",{"code-path":"src\\app\\oracle\\page.tsx:174:11",className:"mb-4 text-base font-medium text-zinc-100 flex items-center gap-2",children:[M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:175:13",className:"w-1.5 h-1.5 rounded-full bg-cyan-500 shadow-[0_0_8px_#22d3ee]"}),"Quota Attainment"]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:178:11",className:"grid h-60 place-items-center",children:M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:179:13",className:"relative h-48 w-48",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:181:15",className:"absolute inset-0 rounded-full border-[12px] border-white/5"}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:183:15",className:"absolute inset-0 rounded-full",style:{background:`conic-gradient(from 0deg, #3b82f6, #22d3ee ${n*3.6}deg, transparent 0deg)`,maskImage:"radial-gradient(transparent 62%, black 64%)",WebkitMaskImage:"radial-gradient(transparent 62%, black 64%)",borderRadius:"50%"}}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:192:15",className:"absolute inset-0 grid place-items-center",children:M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:193:17",className:"text-center",children:[M.jsxs("p",{"code-path":"src\\app\\oracle\\page.tsx:194:19",className:"text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-br from-white to-zinc-400 drop-shadow-[0_0_10px_rgba(59,130,246,0.5)]",children:[n,"%"]}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:197:19",className:"text-sm font-medium text-blue-400 uppercase tracking-wider mt-1",children:"Attained"})]})})]})})]})]}),M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:205:7",children:[M.jsxs("h3",{"code-path":"src\\app\\oracle\\page.tsx:206:9",className:"mb-4 text-base font-medium text-zinc-100 flex items-center gap-2",children:[M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:207:11",className:"w-1.5 h-1.5 rounded-full bg-indigo-500 shadow-[0_0_8px_#6366f1]"}),"Team Member Performance"]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:210:9",className:"grid gap-3 xl:grid-cols-2",children:r.map(i=>M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:212:13",className:"group flex items-center justify-between gap-3 p-3",style:zE,whileHover:M5,children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:218:15",className:"flex items-center gap-3",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:219:17",className:"relative",children:[M.jsxs(S5,{"code-path":"src\\app\\oracle\\page.tsx:220:19",className:"h-10 w-10 border border-white/10 group-hover:border-blue-500/30 transition-colors",children:[M.jsx(A5,{"code-path":"src\\app\\oracle\\page.tsx:221:21",src:i.avatar,alt:i.name}),M.jsx(w5,{"code-path":"src\\app\\oracle\\page.tsx:222:21",className:"bg-zinc-800 text-zinc-400",children:i.name.slice(0,2)})]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:224:19",className:"absolute -bottom-0.5 -right-0.5 w-3 h-3 bg-green-500 border-2 border-zinc-950 rounded-full"})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:226:17",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:227:19",className:"text-sm font-medium text-zinc-100 group-hover:text-blue-100 transition-colors",children:i.name}),M.jsxs("p",{"code-path":"src\\app\\oracle\\page.tsx:228:19",className:"text-xs text-zinc-500 group-hover:text-blue-200/50 transition-colors",children:[i.dealsClosed," deals closed"]})]})]}),M.jsx(jE,{"code-path":"src\\app\\oracle\\page.tsx:231:15",className:"bg-blue-500/10 text-blue-300 border border-blue-500/20 px-3 py-1 font-mono group-hover:bg-blue-500/20 group-hover:border-blue-500/40 transition-all",children:i.revenueGenerated})]},i.id))})]})]})}function FAe({result:t}){const e=t.payload.account;return e?M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:247:5",className:"grid gap-4 xl:grid-cols-[1fr_1.5fr]",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:248:7",className:"space-y-4",children:[M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:249:9",className:"relative overflow-hidden",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:250:11",className:"absolute top-0 right-0 w-64 h-64 bg-blue-600/5 blur-[80px] rounded-full pointer-events-none"}),M.jsx("h3",{"code-path":"src\\app\\oracle\\page.tsx:251:11",className:"mb-1 text-sm font-medium uppercase tracking-widest text-blue-400",children:"Account Overview"}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:252:11",className:"text-3xl font-bold text-white tracking-tight mt-2 mb-4 drop-shadow-[0_0_15px_rgba(59,130,246,0.3)]",children:e.name}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:256:11",className:"space-y-4",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:257:13",className:"p-3 bg-white/5 rounded-xl border border-white/5",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:258:15",className:"text-xs text-zinc-400 uppercase tracking-wider mb-1",children:"Total Deal Value"}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:259:15",className:"text-xl font-semibold text-blue-300",children:e.totalDealValue})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:261:13",className:"grid grid-cols-2 gap-3",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:262:15",className:"p-3 bg-white/5 rounded-xl border border-white/5",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:263:17",className:"text-xs text-zinc-400 uppercase tracking-wider mb-1",children:"Primary Contact"}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:264:17",className:"text-sm font-medium text-zinc-200 truncate",children:e.primaryContact})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:266:15",className:"p-3 bg-white/5 rounded-xl border border-white/5",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:267:17",className:"text-xs text-zinc-400 uppercase tracking-wider mb-1",children:"Industry"}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:268:17",className:"text-sm font-medium text-zinc-200 truncate",children:e.industry})]})]})]})]}),M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:274:9",children:[M.jsx("h3",{"code-path":"src\\app\\oracle\\page.tsx:275:11",className:"mb-4 text-base font-medium text-zinc-100",children:"Key Stakeholders"}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:276:11",className:"space-y-2",children:e.contacts.map(n=>M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:278:15",className:"flex items-center gap-3 p-2.5 rounded-xl border border-white/5 bg-white/5 hover:bg-white/10 transition-colors",children:[M.jsxs(S5,{"code-path":"src\\app\\oracle\\page.tsx:282:17",className:"h-9 w-9 border border-white/10",children:[M.jsx(A5,{"code-path":"src\\app\\oracle\\page.tsx:283:19",src:n.avatar,alt:n.name}),M.jsx(w5,{"code-path":"src\\app\\oracle\\page.tsx:284:19",className:"bg-zinc-800 text-zinc-400",children:n.name.slice(0,2)})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:286:17",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:287:19",className:"text-sm font-medium text-zinc-100",children:n.name}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:288:19",className:"text-xs text-blue-300/80",children:n.role})]})]},n.name))})]})]}),M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:296:7",children:[M.jsxs("h3",{"code-path":"src\\app\\oracle\\page.tsx:297:9",className:"mb-6 text-base font-medium text-zinc-100 flex items-center gap-2",children:[M.jsx(Ex,{"code-path":"src\\app\\oracle\\page.tsx:298:11",className:"w-4 h-4 text-blue-400"}),"Activity Timeline"]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:301:9",className:"relative space-y-6 pl-6 pb-2",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:303:11",className:"absolute left-[20px] top-2 bottom-4 w-[2px] bg-gradient-to-b from-blue-500 via-cyan-500/50 to-transparent shadow-[0_0_8px_#3b82f6]"}),e.timeline.map((n,r)=>M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:306:13",initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:r*.1},className:"relative pl-6",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:314:15",className:"absolute -left-[5px] top-1.5 h-3.5 w-3.5 rounded-full bg-zinc-950 border-2 border-blue-400 shadow-[0_0_12px_#3b82f6] z-10"}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:316:15",className:"p-4 rounded-xl relative overflow-hidden group",style:zE,children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:321:17",className:"absolute inset-0 bg-gradient-to-r from-transparent via-white/5 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-700 ease-in-out"}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:323:17",className:"flex items-start justify-between gap-4 relative z-10",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:324:19",children:[M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:325:21",className:"inline-block px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-widest bg-blue-500/20 text-blue-300 border border-blue-500/20 mb-2",children:n.title}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:328:21",className:"text-lg font-medium text-zinc-100 leading-tight mb-1",children:n.summary})]}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:330:19",className:"text-xs font-mono text-zinc-500 whitespace-nowrap pt-1",children:n.when})]})]})]},n.id))]})]})]}):null}function UAe({result:t}){const e=t.payload.map;return e?M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:346:5",className:"relative min-h-[36rem] overflow-hidden rounded-2xl border border-blue-500/20 bg-zinc-950 shadow-[0_0_40px_rgba(10,12,20,0.8)]",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:348:7",className:"absolute inset-0 flex items-center justify-center opacity-60",children:M.jsx("img",{"code-path":"src\\app\\oracle\\page.tsx:349:9",src:"/us_map_dark.png",alt:"US Map",className:"w-full h-full object-contain",style:{filter:"drop-shadow(0 0 20px rgba(59,130,246,0.3))"}})}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:357:7",className:"absolute inset-0 bg-[radial-gradient(circle_at_50%_50%,rgba(0,0,0,0)_40%,rgba(10,12,20,0.5)_100%)]"}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:360:7",className:"absolute left-4 top-4 z-10 p-4 rounded-xl bg-zinc-900/80 backdrop-blur-md border border-white/10 shadow-lg",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:361:9",className:"text-xs font-bold uppercase tracking-widest text-zinc-400 mb-3",children:"Lead Intensity"}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:362:9",className:"space-y-2 text-sm",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:363:11",className:"flex items-center gap-2",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:364:13",className:"w-2.5 h-2.5 rounded-full bg-slate-400 shadow-[0_0_8px_rgba(148,163,184,0.6)]"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:365:13",className:"text-slate-300",children:"Cold Lead"})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:367:11",className:"flex items-center gap-2",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:368:13",className:"w-2.5 h-2.5 rounded-full bg-cyan-400 shadow-[0_0_10px_rgba(34,211,238,0.8)]"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:369:13",className:"text-cyan-200",children:"Warm Lead"})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:371:11",className:"flex items-center gap-2",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:372:13",className:"w-2.5 h-2.5 rounded-full bg-blue-500 shadow-[0_0_12px_rgba(59,130,246,1)] border border-white/20"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:373:13",className:"text-blue-200 font-medium",children:"Hot Lead"})]})]})]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:379:7",className:"absolute right-4 top-4 z-10",children:M.jsxs(tM,{"code-path":"src\\app\\oracle\\page.tsx:380:9",variant:"outline",className:"bg-zinc-900/80 backdrop-blur-md border-white/10 text-zinc-300 hover:bg-zinc-800 hover:text-white",children:[M.jsx(Tx,{"code-path":"src\\app\\oracle\\page.tsx:381:11",className:"w-3.5 h-3.5 mr-2 text-blue-400"}),"Map Filters"]})}),e.pins.map(n=>{const r=n.temperature==="cold"?"bg-slate-400/80 shadow-[0_0_15px_rgba(148,163,184,0.4)]":n.temperature==="warm"?"bg-cyan-400 shadow-[0_0_20px_rgba(34,211,238,0.6)]":"bg-blue-600 border-2 border-white/80 shadow-[0_0_25px_rgba(59,130,246,0.9)]";return M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:396:11",initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},transition:{type:"spring",damping:12},className:"absolute z-20 flex flex-col items-center -translate-x-1/2 -translate-y-1/2",style:{left:`${n.x}%`,top:`${n.y}%`},children:[M.jsx(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:404:13",className:`h-4 w-4 rounded-full ${r} cursor-pointer`,whileHover:{scale:1.4}}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:408:13",className:"mt-2 px-2.5 py-1 rounded-lg bg-zinc-900/90 backdrop-blur border border-blue-500/20 text-[10px] font-medium text-blue-100 whitespace-nowrap shadow-xl",children:[n.label,n.count&&M.jsxs("span",{"code-path":"src\\app\\oracle\\page.tsx:410:29",className:"ml-1 opacity-60",children:["(",n.count,")"]})]})]},n.id)})]}):null}function jAe({result:t}){const e=t.payload.calendar;if(!e)return null;const n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:425:5",className:"grid gap-4 xl:grid-cols-[1.5fr_340px]",children:[M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:426:7",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:427:9",className:"mb-4 flex items-center justify-between",children:[M.jsxs("h3",{"code-path":"src\\app\\oracle\\page.tsx:428:11",className:"text-base font-medium text-zinc-100 flex items-center gap-2",children:[M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:429:13",className:"w-1.5 h-1.5 rounded-full bg-blue-400 shadow-[0_0_8px_#60a5fa]"}),"Weekly ",e.weekLabel]}),M.jsx(tM,{"code-path":"src\\app\\oracle\\page.tsx:432:11",size:"sm",variant:"outline",className:"h-8 border-white/10 bg-white/5 hover:bg-white/10 text-zinc-300",children:"Today"})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:436:9",className:"grid grid-cols-7 gap-3",children:[n.map(r=>M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:438:13",className:"text-center text-xs font-medium uppercase tracking-wider text-zinc-500 pb-2",children:r},r)),n.map(r=>M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:443:13",className:"min-h-[16rem] rounded-xl border border-white/5 bg-zinc-950/40 p-2 transition-colors hover:bg-zinc-950/60 hover:border-blue-500/20",children:M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:444:15",className:"space-y-2",children:e.events.filter(i=>i.day===r).map(i=>M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:448:21",layout:!0,initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},className:["rounded-lg border px-2.5 py-2 text-xs backdrop-blur-md shadow-sm cursor-pointer",i.suggested?"border-indigo-500/30 bg-indigo-500/10 text-indigo-200 hover:bg-indigo-500/20":"border-blue-400/30 bg-blue-400/10 text-blue-100 hover:bg-blue-400/20"].join(" "),children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:460:23",className:"font-semibold mb-0.5",children:i.time}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:461:23",className:"opacity-90 leading-tight",children:i.title})]},i.id))})},`${r}-slot`))]})]}),M.jsxs(Zu,{"code-path":"src\\app\\oracle\\page.tsx:469:7",className:"flex flex-col",children:[M.jsxs("h3",{"code-path":"src\\app\\oracle\\page.tsx:470:9",className:"mb-4 text-base font-medium text-zinc-100 flex items-center gap-2",children:[M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:471:11",className:"w-1.5 h-1.5 rounded-full bg-cyan-400 shadow-[0_0_8px_#22d3ee]"}),"Tasks and Actions"]}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:474:9",className:"space-y-2.5 overflow-y-auto pr-1",children:e.tasks.map(r=>M.jsxs(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:476:13",layout:!0,className:"p-3.5",style:zE,whileHover:M5,children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:483:15",className:"flex justify-between items-start gap-2 mb-1",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:484:17",className:"text-sm font-medium text-zinc-100",children:r.title}),M.jsx(jE,{"code-path":"src\\app\\oracle\\page.tsx:485:17",variant:"secondary",className:"bg-zinc-800 text-zinc-400 text-[10px] h-5 px-1.5",children:"Action"})]}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:487:15",className:"text-xs text-zinc-400 mb-3 leading-relaxed",children:r.subtitle}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:488:15",className:"flex items-center justify-between",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:489:17",className:"flex items-center gap-1.5 text-xs text-blue-300",children:[M.jsx(Ex,{"code-path":"src\\app\\oracle\\page.tsx:490:19",className:"w-3 h-3"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:491:19",children:r.due})]}),M.jsx(tM,{"code-path":"src\\app\\oracle\\page.tsx:493:17",size:"sm",className:"h-7 text-xs bg-blue-600 hover:bg-blue-500 text-white border-none shadow-[0_0_10px_rgba(37,99,235,0.4)]",children:"Schedule"})]})]},r.id))})]})]})}function zAe({result:t}){return t.view==="pipeline"?M.jsx(LAe,{"code-path":"src\\app\\oracle\\page.tsx:507:42",result:t}):t.view==="team_performance"?M.jsx(kAe,{"code-path":"src\\app\\oracle\\page.tsx:508:50",result:t}):t.view==="account_timeline"?M.jsx(FAe,{"code-path":"src\\app\\oracle\\page.tsx:509:50",result:t}):t.view==="lead_map"?M.jsx(UAe,{"code-path":"src\\app\\oracle\\page.tsx:510:42",result:t}):M.jsx(jAe,{"code-path":"src\\app\\oracle\\page.tsx:511:10",result:t})}function GAe(){const[t,e]=j.useState(z3),[n,r]=j.useState("pipeline"),[i,a]=j.useState(!1),[s,o]=j.useState(!1),[c,u]=j.useState(!1),[h,p]=j.useState([{role:"user",content:z3}]),[v,y]=j.useState(JI(z3)),b=j.useMemo(()=>`${v.view}-${v.summary}`,[v.view,v.summary]),w=()=>{const T=window,P=T.SpeechRecognition??T.webkitSpeechRecognition;if(!P)return;const R=new P;R.lang="en-US",R.interimResults=!1,R.onstart=()=>u(!0),R.onend=()=>u(!1),R.onerror=()=>u(!1),R.onresult=D=>{const I=D.results[0][0].transcript;e(I)},R.start()},_=async()=>{const T=t.trim();if(!T||s)return;o(!0);const R=`[UI Direction: ${nG[n]}] ${T}`,D=[...h,{role:"user",content:T}];p(D);try{const I=await NAe({prompt:R,history:D,mode:"cot-rag",preferredView:n});y(I),p(k=>[...k,{role:"assistant",content:I.summary}])}catch{p(I=>[...I,{role:"assistant",content:"Could not reach COT-RAG endpoint. Showing cached intelligent view."}])}finally{o(!1)}},E=v.view==="pipeline"?fse:v.view==="team_performance"?Cx:v.view==="account_timeline"?kA:v.view==="lead_map"?Tx:Ex;return M.jsxs("section",{"code-path":"src\\app\\oracle\\page.tsx:588:5",className:"relative flex flex-col rounded-3xl border border-white/10 bg-zinc-950 text-zinc-100",style:{minHeight:"calc(100vh - 80px)"},children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:593:7",className:"pointer-events-none absolute inset-0 rounded-3xl bg-[radial-gradient(circle_at_30%_0%,rgba(14,116,144,0.15),transparent_40%),radial-gradient(circle_at_70%_100%,rgba(59,130,246,0.10),transparent_35%)]"}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:596:7",className:"relative z-10 px-4 pt-4 pb-3",children:M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:597:9",className:"flex items-stretch rounded-2xl overflow-hidden",style:{background:"linear-gradient(135deg, rgba(23,37,84,0.55) 0%, rgba(10,12,20,0.88) 100%)",border:"1px solid rgba(59,130,246,0.20)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)",boxShadow:"0 0 0 1px rgba(59,130,246,0.07), 0 4px 24px rgba(0,0,0,0.45)"},children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:608:11",className:"w-[3px] flex-shrink-0",style:{background:"linear-gradient(180deg, #93c5fd 0%, #3b82f6 55%, rgba(59,130,246,0.25) 100%)"}}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:614:11",className:"flex items-center justify-between flex-1 px-4 py-3 min-w-0 gap-4",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:615:13",className:"min-w-0",children:[M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:616:15",className:"text-[10px] font-semibold uppercase tracking-widest text-blue-400 mb-0.5",children:"AI Insight"}),M.jsx("p",{"code-path":"src\\app\\oracle\\page.tsx:617:15",className:"text-sm text-zinc-200 leading-snug",children:v.insight})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:619:13",className:"flex items-center gap-2 flex-shrink-0",children:[M.jsx(E,{"code-path":"src\\app\\oracle\\page.tsx:620:15",className:"h-3.5 w-3.5 text-blue-400"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:621:15",className:"text-xs font-medium text-blue-300 whitespace-nowrap",children:nG[v.view]})]})]})]})}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:628:7",className:"relative z-10 flex-1 overflow-y-auto px-4 pb-28",children:M.jsx(Bs,{"code-path":"src\\app\\oracle\\page.tsx:629:9",mode:"wait",children:M.jsx(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:630:11",initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.22},children:M.jsx(zAe,{"code-path":"src\\app\\oracle\\page.tsx:637:13",result:v})},b)})}),M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:643:7",className:"absolute inset-x-0 bottom-4 z-30 flex justify-center px-4",children:M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:644:9",className:"relative w-full max-w-3xl",children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:647:11",className:"absolute pointer-events-none",style:{inset:"-28px",background:"radial-gradient(ellipse 50% 80% at 8% 50%, rgba(59,130,246,0.32) 0%, transparent 70%), radial-gradient(ellipse 50% 80% at 92% 50%, rgba(99,102,241,0.38) 0%, transparent 70%)",filter:"blur(22px)",borderRadius:"32px",zIndex:-1}}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:659:11",className:"rounded-2xl",style:{background:"rgba(10, 11, 16, 0.95)",border:"1px solid rgba(255,255,255,0.11)",backdropFilter:"blur(32px)",WebkitBackdropFilter:"blur(32px)",boxShadow:"0 0 0 1px rgba(255,255,255,0.04), 0 8px 32px rgba(0,0,0,0.6)"},children:[M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:670:13",className:"px-4 pt-3.5 pb-1",children:M.jsx(lK,{"code-path":"src\\app\\oracle\\page.tsx:671:15",value:t,onChange:T=>e(T.target.value),onKeyDown:T=>{T.key==="Enter"&&(T.preventDefault(),_())},placeholder:"Ask Oracle anything…",className:"border-0 bg-transparent text-[15px] text-zinc-100 placeholder:text-zinc-500 focus-visible:ring-0 px-0 h-auto py-0"})}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:686:13",className:"flex items-center justify-between px-3 pb-3 pt-2",children:[M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:689:15",className:"relative",children:[M.jsxs("button",{"code-path":"src\\app\\oracle\\page.tsx:690:17",type:"button",onClick:()=>a(T=>!T),className:"flex items-center gap-2 rounded-full px-3 py-1.5 text-xs font-medium transition-all",style:{background:"rgba(59,130,246,0.15)",color:"#93c5fd",border:"1px solid rgba(59,130,246,0.3)"},children:[n==="pipeline"&&M.jsx(a4,{"code-path":"src\\app\\oracle\\page.tsx:696:51",className:"h-3 w-3"}),n==="team_performance"&&M.jsx(Cx,{"code-path":"src\\app\\oracle\\page.tsx:697:59",className:"h-3 w-3"}),n==="account_timeline"&&M.jsx(kA,{"code-path":"src\\app\\oracle\\page.tsx:698:59",className:"h-3 w-3"}),n==="lead_map"&&M.jsx(Tx,{"code-path":"src\\app\\oracle\\page.tsx:699:51",className:"h-3 w-3"}),n==="calendar_tasks"&&M.jsx(Ex,{"code-path":"src\\app\\oracle\\page.tsx:700:57",className:"h-3 w-3"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:701:19",children:rG.find(T=>T.view===n)?.label}),M.jsx(_W,{"code-path":"src\\app\\oracle\\page.tsx:702:19",className:"h-3 w-3 transition-transform duration-200",style:{transform:i?"rotate(180deg)":"rotate(0deg)"}})]}),M.jsx(Bs,{"code-path":"src\\app\\oracle\\page.tsx:709:17",children:i&&M.jsx(yt.div,{"code-path":"src\\app\\oracle\\page.tsx:711:21",className:"absolute left-0 bottom-full mb-2 z-[999] rounded-xl min-w-[220px] py-1",style:{background:"rgb(18, 20, 30)",border:"1px solid rgba(255,255,255,0.14)",boxShadow:"0 -20px 60px rgba(0,0,0,0.8), 0 0 0 1px rgba(255,255,255,0.05)"},initial:{opacity:0,y:10,scale:.96},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:8,scale:.96},transition:{duration:.14,ease:"easeOut"},children:rG.map(T=>{const P=T.view===n;return M.jsxs("button",{"code-path":"src\\app\\oracle\\page.tsx:726:27",type:"button",onClick:()=>{r(T.view),e(T.samplePrompt),a(!1)},className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-left",style:{color:P?"#93c5fd":"#e4e4e7",background:P?"rgba(59,130,246,0.14)":"transparent",transition:"background 0.1s"},onMouseEnter:R=>{P||(R.currentTarget.style.background="rgba(255,255,255,0.06)")},onMouseLeave:R=>{P||(R.currentTarget.style.background="transparent")},children:[T.view==="pipeline"&&M.jsx(a4,{"code-path":"src\\app\\oracle\\page.tsx:747:58",className:"h-4 w-4 flex-shrink-0"}),T.view==="team_performance"&&M.jsx(Cx,{"code-path":"src\\app\\oracle\\page.tsx:748:66",className:"h-4 w-4 flex-shrink-0"}),T.view==="account_timeline"&&M.jsx(kA,{"code-path":"src\\app\\oracle\\page.tsx:749:66",className:"h-4 w-4 flex-shrink-0"}),T.view==="lead_map"&&M.jsx(Tx,{"code-path":"src\\app\\oracle\\page.tsx:750:58",className:"h-4 w-4 flex-shrink-0"}),T.view==="calendar_tasks"&&M.jsx(Ex,{"code-path":"src\\app\\oracle\\page.tsx:751:64",className:"h-4 w-4 flex-shrink-0"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:752:29",children:T.label})]},T.view)})})}),i&&M.jsx("div",{"code-path":"src\\app\\oracle\\page.tsx:762:19",className:"fixed inset-0 z-[998]",onClick:()=>a(!1)})]}),M.jsxs("div",{"code-path":"src\\app\\oracle\\page.tsx:767:15",className:"flex items-center gap-2 ml-2 flex-shrink-0",children:[M.jsxs(yt.button,{"code-path":"src\\app\\oracle\\page.tsx:768:17",type:"button",onClick:w,className:"flex items-center gap-1.5 rounded-full px-3 py-1.5 text-xs",style:c?{background:"rgba(239,68,68,0.18)",color:"#fca5a5",border:"1px solid rgba(239,68,68,0.35)"}:{background:"rgba(255,255,255,0.06)",color:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.09)"},animate:c?{scale:[1,1.05,1]}:{scale:1},transition:c?{repeat:1/0,duration:.9}:{},children:[M.jsx(mse,{"code-path":"src\\app\\oracle\\page.tsx:779:19",className:"h-3.5 w-3.5"}),M.jsx("span",{"code-path":"src\\app\\oracle\\page.tsx:780:19",children:c?"Listening…":"Voice"})]}),M.jsx(yt.button,{"code-path":"src\\app\\oracle\\page.tsx:783:17",type:"button",onClick:()=>{_()},disabled:s,className:"h-8 w-8 rounded-full flex items-center justify-center flex-shrink-0",style:{background:"hsl(217 91% 60%)",boxShadow:"0 0 18px hsl(217 91% 60% / 0.5)"},whileHover:{scale:1.1},whileTap:{scale:.91},children:M.jsx(Rse,{"code-path":"src\\app\\oracle\\page.tsx:792:19",className:"h-3.5 w-3.5 text-white"})})]})]})]})]})})]})}function HAe(){return M.jsx(GAe,{"code-path":"src\\components\\modules\\Oracle.tsx:4:10"})}function VAe(t,e=.4){if(t.length===0)return"";if(t.length===1)return`M ${t[0].x},${t[0].y}`;const n=[`M ${t[0].x},${t[0].y}`];for(let r=0;r{const b=r.current;if(!b)return;const w=new ResizeObserver(_=>{const{width:S,height:E}=_[0].contentRect;a({width:Math.max(S,200),height:Math.max(E,300)})});return w.observe(b),()=>w.disconnect()},[]);const{width:c,height:u}=i,h=48,p=48,v=t.map((b,w)=>({x:WAe(b.sentimentScore,c,h),y:qAe(w,t.length,u,p),ev:b})),y=VAe(v.map(b=>({x:b.x,y:b.y})),.45);return M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:56:9",ref:r,className:"relative w-full h-full overflow-hidden",children:[M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:58:13",className:"absolute inset-0 pointer-events-none",style:{backgroundImage:"linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px)",backgroundSize:"32px 32px"}}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:67:13",className:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.6) 100%)"}}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:74:13",className:"absolute bottom-2 left-0 right-0 flex justify-between px-12 pointer-events-none",children:[M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:75:17",className:"text-[10px] text-red-400/60 font-mono",children:"LOW"}),M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:76:17",className:"text-[10px] text-white/30 font-mono",children:"SENTIMENT"}),M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:77:17",className:"text-[10px] text-green-400/60 font-mono",children:"HIGH"})]}),M.jsxs("svg",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:80:13",width:c,height:u,className:"absolute inset-0",style:{overflow:"visible"},children:[M.jsxs("defs",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:86:17",children:[M.jsxs("linearGradient",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:88:21",id:G3,x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:[M.jsx("stop",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:89:25",offset:"0%",stopColor:"#ef4444",stopOpacity:"0.9"}),M.jsx("stop",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:90:25",offset:"40%",stopColor:"#f59e0b",stopOpacity:"0.9"}),M.jsx("stop",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:91:25",offset:"100%",stopColor:"#22c55e",stopOpacity:"0.9"})]}),M.jsxs("filter",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:95:21",id:"nodeGlow",x:"-50%",y:"-50%",width:"200%",height:"200%",children:[M.jsx("feGaussianBlur",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:96:25",stdDeviation:"4",result:"blur"}),M.jsxs("feMerge",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:97:25",children:[M.jsx("feMergeNode",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:98:29",in:"blur"}),M.jsx("feMergeNode",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:99:29",in:"SourceGraphic"})]})]}),M.jsxs("filter",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:104:21",id:"pathGlow",x:"-10%",y:"-10%",width:"120%",height:"120%",children:[M.jsx("feGaussianBlur",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:105:25",stdDeviation:"3",result:"blur"}),M.jsxs("feMerge",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:106:25",children:[M.jsx("feMergeNode",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:107:29",in:"blur"}),M.jsx("feMergeNode",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:108:29",in:"SourceGraphic"})]})]})]}),y&&M.jsx("path",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:115:21",d:y,fill:"none",stroke:`url(#${G3})`,strokeWidth:10,strokeLinecap:"round",opacity:.25,filter:"url(#pathGlow)"}),y&&M.jsx(yt.path,{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:128:21",d:y,fill:"none",stroke:`url(#${G3})`,strokeWidth:5,strokeLinecap:"round",initial:{pathLength:0,opacity:0},animate:{pathLength:1,opacity:1},transition:{duration:1.2,ease:"easeInOut"}}),v.map(({x:b,y:w,ev:_})=>{const S=$Ae[_.type],E=s===_.id,T=n===_.id,P=E||T,R=_.sentimentScore>=70?"#22c55e":_.sentimentScore>=40?"#f59e0b":"#ef4444";return M.jsxs("g",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:153:25",children:[!P&&M.jsx(yt.circle,{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:156:33",cx:b,cy:w,r:14,fill:"none",stroke:R,strokeWidth:1,opacity:.4,animate:{r:[12,18,12],opacity:[.4,.1,.4]},transition:{duration:2.5,repeat:1/0,ease:"easeInOut"}}),M.jsx(yt.circle,{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:168:29",cx:b,cy:w,r:P?18:12,fill:`${R}22`,stroke:R,strokeWidth:P?2:1.5,style:P?{filter:`drop-shadow(0 0 8px ${R})`}:{},animate:{r:P?18:12},transition:{type:"spring",stiffness:300,damping:20},className:"cursor-pointer",onMouseEnter:()=>o(_.id),onMouseLeave:()=>o(null),onClick:()=>e(_.id)}),M.jsx("foreignObject",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:184:29",x:b-8,y:w-8,width:16,height:16,className:"pointer-events-none",children:M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:189:33",className:"w-4 h-4 flex items-center justify-center",children:fe.createElement(S,{style:{width:10,height:10,color:R,strokeWidth:2.5}})})}),E&&!T&&M.jsxs(yt.g,{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:198:33",initial:{opacity:0,y:-4},animate:{opacity:1,y:0},transition:{duration:.15},children:[M.jsx("rect",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:203:37",x:b-60,y:w-42,width:120,height:26,rx:6,fill:"rgba(0,0,0,0.85)",stroke:R,strokeWidth:.8,strokeOpacity:.6}),M.jsx("text",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:212:37",x:b,y:w-24,textAnchor:"middle",fill:"white",fontSize:10,fontFamily:"Inter, sans-serif",fontWeight:500,children:_.title}),M.jsxs("text",{"code-path":"src\\components\\sentinel\\JourneyRiver\\RiverPath.tsx:222:37",x:b,y:w-13,textAnchor:"middle",fill:R,fontSize:8.5,fontFamily:"Inter, sans-serif",children:[_.sentimentScore,"% sentiment"]})]})]},_.id)})]})]})}function KAe({score:t}){const i=82*Math.PI,a=i*.75,s=a-t/100*a,o=t>=70?"#22c55e":t>=40?"#f59e0b":"#ef4444";return M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:20:9",className:"relative flex items-center justify-center",style:{width:100,height:100},children:[M.jsxs("svg",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:21:13",width:100,height:100,style:{transform:"rotate(135deg)"},children:[M.jsx("circle",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:23:17",cx:50,cy:50,r:41,fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:6,strokeDasharray:`${a} ${i}`,strokeLinecap:"round"}),M.jsx(yt.circle,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:32:17",cx:50,cy:50,r:41,fill:"none",stroke:o,strokeWidth:6,strokeDasharray:`${a} ${i}`,strokeLinecap:"round",initial:{strokeDashoffset:a},animate:{strokeDashoffset:s},transition:{duration:.8,ease:"easeOut"},style:{filter:`drop-shadow(0 0 6px ${o})`}})]}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:46:13",className:"absolute inset-0 flex flex-col items-center justify-center",children:[M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:47:17",className:"text-xl font-bold text-white leading-none",children:t}),M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:48:17",className:"text-[9px] text-white/40 uppercase tracking-wider mt-0.5",children:"score"})]})]})}const YAe={call:"Phone Call",visit:"Site Visit",chat:"Chat Session",negotiation:"Negotiation"};function JAe({event:t,onClose:e}){const n=t&&t.sentimentScore>=70?Jb:t&&t.sentimentScore>=40?wW:TW,r=t&&t.sentimentScore>=70?"text-green-400":t&&t.sentimentScore>=40?"text-amber-400":"text-red-400";return M.jsx(Bs,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:77:9",children:t&&M.jsx(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:79:17",layout:!0,initial:{width:0,opacity:0},animate:{width:"30%",opacity:1},exit:{width:0,opacity:0},transition:{type:"spring",stiffness:280,damping:30},className:"flex-shrink-0 h-full overflow-hidden border-l border-white/5",style:{background:"rgba(255,255,255,0.03)",backdropFilter:"blur(12px)"},children:M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:92:21",className:"h-full overflow-y-auto custom-scrollbar p-4 flex flex-col gap-4 min-w-[220px]",children:[M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:94:25",className:"flex items-start justify-between gap-2",children:[M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:95:29",className:"flex-1 min-w-0",children:[M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:96:33",className:"text-[10px] uppercase tracking-widest text-white/30 mb-1",children:YAe[t.type]}),M.jsx("h4",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:99:33",className:"text-white font-semibold text-sm leading-tight truncate",children:t.title}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:102:33",className:"flex items-center gap-1 mt-1 text-white/40 text-[10px]",children:[M.jsx(Eae,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:103:37",className:"w-3 h-3"}),t.timestamp]})]}),M.jsx("button",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:107:29",onClick:e,className:"w-7 h-7 rounded-lg bg-white/5 hover:bg-white/10 flex items-center justify-center flex-shrink-0 transition-colors",children:M.jsx(Zse,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:111:33",className:"w-3.5 h-3.5 text-white/50"})})]}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:116:25",className:"flex flex-col items-center gap-2 py-2",children:[M.jsx(KAe,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:117:29",score:t.sentimentScore}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:118:29",className:`flex items-center gap-1 text-xs font-medium ${r}`,children:[M.jsx(n,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:119:33",className:"w-3.5 h-3.5"}),t.sentimentScore>=70?"High Interest":t.sentimentScore>=40?"Neutral":"Low Engagement"]})]}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:126:25",className:"h-px bg-white/5"}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:129:25",children:[M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:130:29",className:"text-[10px] uppercase tracking-widest text-white/30 mb-2",children:"Summary"}),M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:131:29",className:"text-white/70 text-xs leading-relaxed",children:t.summary})]}),t.aiInsight&&M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:136:29",className:"rounded-xl bg-blue-500/5 border border-blue-500/15 p-3",children:[M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:137:33",className:"flex items-center gap-1.5 mb-2",children:[M.jsx(xae,{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:138:37",className:"w-3.5 h-3.5 text-blue-400"}),M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:139:37",className:"text-[10px] uppercase tracking-widest text-blue-400 font-semibold",children:"AI Insight"})]}),M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:143:33",className:"text-white/70 text-xs leading-relaxed",children:t.aiInsight})]}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:148:25",children:[M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:149:29",className:"text-[10px] uppercase tracking-widest text-white/30 mb-2",children:"Evidence"}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:150:29",className:"rounded-xl overflow-hidden border border-white/5 bg-white/3 aspect-video flex items-center justify-center",children:M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:151:33",className:"text-center",children:[M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:152:37",className:"w-8 h-8 rounded-full bg-white/5 flex items-center justify-center mx-auto mb-2",children:M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:153:41",className:"text-lg",children:"📷"})}),M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\InspectorPanel.tsx:155:37",className:"text-white/30 text-[10px]",children:t.evidenceLabel??"Camera snapshot"})]})})]})]})},t.id)})}const Q0=[{id:"c1",name:"Quantum Dynamics",initials:"QD",stage:"Negotiation",overallScore:88,events:[{id:"e1",type:"visit",timestamp:"Feb 10, 10:30 AM",sentimentScore:42,title:"Initial Showroom Visit",summary:"Client toured the main lobby and reception area. Showed moderate interest in the view from upper floors.",aiInsight:"Client lingered 4 mins near the floor plan display — a strong signal of spatial curiosity.",evidenceLabel:"Lobby cam · Frame 0:04:12"},{id:"e2",type:"call",timestamp:"Feb 12, 2:00 PM",sentimentScore:58,title:"Follow-up Call",summary:"Discussed pricing tiers and payment schedule. Client requested a custom ROI breakdown.",aiInsight:"Vocal tone analysis indicates growing confidence. Recommend sending ROI deck within 24h.",evidenceLabel:"Call recording · 18 min"},{id:"e3",type:"visit",timestamp:"Feb 14, 11:00 AM",sentimentScore:75,title:"Unit 402 Tour",summary:"Detailed walkthrough of the penthouse unit. Client spent 5 mins examining the Italian marble flooring.",aiInsight:"Dwell time on premium finishes was 3× the average. High purchase intent signal.",evidenceLabel:"Unit 402 cam · Frame 0:05:44"},{id:"e4",type:"negotiation",timestamp:"Feb 17, 4:00 PM",sentimentScore:91,title:"Contract Review",summary:"Legal team reviewed terms. Minor pushback on payment timeline. Positive overall tone.",aiInsight:"Sentiment peaked during the amenities discussion. Close probability: 87%.",evidenceLabel:"Meeting room cam · Frame 0:22:10"}]},{id:"c2",name:"Nebula Ventures",initials:"NV",stage:"Discovery",overallScore:45,events:[{id:"e5",type:"chat",timestamp:"Feb 15, 9:00 AM",sentimentScore:35,title:"WhatsApp Inquiry",summary:"Client asked about availability and pricing for 2BR units. Seemed price-sensitive.",aiInsight:"Short message length and delayed replies suggest low urgency. Nurture with value content.",evidenceLabel:"Chat log · 6 messages"},{id:"e6",type:"visit",timestamp:"Feb 16, 3:00 PM",sentimentScore:52,title:"Showroom Walk-in",summary:"Unscheduled visit. Toured the 2BR model unit. Hesitated at the pricing board.",aiInsight:"Micro-expressions detected: confusion near pricing. Suggest a tailored payment plan.",evidenceLabel:"Showroom cam · Frame 0:08:30"}]},{id:"c3",name:"Apex Industries",initials:"AI",stage:"Proposal",overallScore:68,events:[{id:"e7",type:"call",timestamp:"Feb 13, 10:00 AM",sentimentScore:60,title:"Discovery Call",summary:"Initial qualification call. Client interested in bulk purchase for corporate housing.",aiInsight:"High-value opportunity. Bulk discount framing will accelerate decision.",evidenceLabel:"Call recording · 25 min"},{id:"e8",type:"visit",timestamp:"Feb 15, 2:00 PM",sentimentScore:78,title:"Corporate Tour",summary:"Toured 3 units simultaneously with their facilities manager. Strong engagement.",aiInsight:"Facilities manager asked about smart home integration — a key buying signal.",evidenceLabel:"Floor 7 cam · Frame 0:12:05"},{id:"e9",type:"negotiation",timestamp:"Feb 18, 11:00 AM",sentimentScore:65,title:"Proposal Presentation",summary:"Presented bulk pricing proposal. Legal team raised concerns about contract clauses.",aiInsight:"Blocker identified: legal review. Recommend offering a compliance workshop.",evidenceLabel:"Boardroom cam · Frame 0:31:20"}]}];function ZAe({client:t,isActive:e,onClick:n}){const r=t.overallScore>=70?"text-green-400":t.overallScore>=40?"text-amber-400":"text-red-400";return M.jsxs(yt.button,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:117:9",onClick:n,whileHover:{x:2},className:`w-full text-left p-3 rounded-xl border transition-all relative overflow-hidden ${e?"bg-blue-500/10 border-blue-500/30":"bg-white/3 border-white/5 hover:bg-white/6 hover:border-white/10"}`,children:[e&&M.jsx(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:126:17",layoutId:"activeClientGlow",className:"absolute inset-0 bg-blue-500/5 rounded-xl pointer-events-none",style:{boxShadow:"inset 0 0 20px rgba(59,130,246,0.1)"}}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:132:13",className:"relative flex items-center gap-2.5",children:[M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:134:17",className:`w-9 h-9 rounded-lg flex items-center justify-center text-xs font-bold flex-shrink-0 ${e?"bg-blue-500/20 text-blue-300":"bg-white/8 text-white/60"}`,children:t.initials}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:138:17",className:"flex-1 min-w-0",children:[M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:139:21",className:"text-white text-xs font-medium truncate",children:t.name}),M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:140:21",className:"text-white/40 text-[10px] truncate",children:t.stage})]}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:142:17",className:"flex flex-col items-end gap-1",children:[M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:143:21",className:`text-xs font-bold ${r}`,children:t.overallScore}),e&&M.jsx(Oae,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:144:34",className:"w-3 h-3 text-blue-400"})]})]}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:148:13",className:"mt-2 h-0.5 rounded-full bg-white/5 overflow-hidden",children:M.jsx(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:149:17",className:`h-full rounded-full ${t.overallScore>=70?"bg-green-400":t.overallScore>=40?"bg-amber-400":"bg-red-400"}`,initial:{width:0},animate:{width:`${t.overallScore}%`},transition:{duration:.6,ease:"easeOut"}})})]})}function QAe(){const[t,e]=j.useState(Q0[0].id),[n,r]=j.useState(null),i=Q0.find(o=>o.id===t)??Q0[0],a=i.events.find(o=>o.id===n)??null,s=o=>{e(o),r(null)};return M.jsxs(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:176:9",initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.5,delay:.3},className:"relative w-full h-full rounded-2xl overflow-hidden flex",style:{background:"rgba(8, 10, 18, 0.82)",border:"1px solid rgba(59,130,246,0.14)",backdropFilter:"blur(24px)",WebkitBackdropFilter:"blur(24px)",boxShadow:"0 0 0 1px rgba(255,255,255,0.04), 0 4px 32px rgba(0,0,0,0.55), 0 0 60px rgba(59,130,246,0.06)"},children:[M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:190:13",className:"flex-shrink-0 flex flex-col border-r border-white/5",style:{width:"22%"},children:[M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:195:17",className:"p-3 border-b border-white/5 flex-shrink-0",children:M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:196:21",className:"flex items-center gap-2",children:[M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:197:25",className:"w-8 h-8 rounded-xl bg-blue-500/20 flex items-center justify-center",children:M.jsx(Kae,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:198:29",className:"w-3.5 h-3.5 text-blue-400"})}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:200:25",children:[M.jsx("h3",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:201:29",className:"text-white text-sm font-medium",children:"Journey River"}),M.jsxs("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:202:29",className:"text-white/40 text-[10px]",children:[Q0.length," clients tracked"]})]})]})}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:208:17",className:"flex-1 overflow-y-auto custom-scrollbar p-2 space-y-1.5",children:Q0.map(o=>M.jsx(ZAe,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:210:25",client:o,isActive:o.id===t,onClick:()=>s(o.id)},o.id))}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:220:17",className:"p-3 border-t border-white/5 flex-shrink-0",children:[M.jsx("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:221:21",className:"text-[9px] text-white/20 uppercase tracking-widest mb-1.5",children:"Sentiment Axis"}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:222:21",className:"h-3 rounded-full",style:{background:"linear-gradient(to right, #ef4444, #f59e0b, #22c55e)"}}),M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:225:21",className:"flex justify-between mt-1",children:[M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:226:25",className:"text-[9px] text-red-400/60",children:"Low"}),M.jsx("span",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:227:25",className:"text-[9px] text-green-400/60",children:"High"})]})]})]}),M.jsxs(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:233:13",layout:!0,className:"flex-1 flex flex-col min-w-0 overflow-hidden",children:[M.jsxs("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:235:17",className:"px-4 py-3 border-b border-white/5 flex-shrink-0 flex items-center justify-between",children:[M.jsx(Bs,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:236:21",mode:"wait",children:M.jsxs(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:237:25",initial:{opacity:0,y:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:6},transition:{duration:.2},children:[M.jsx("h4",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:244:29",className:"text-white font-semibold text-sm",children:i.name}),M.jsxs("p",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:245:29",className:"text-white/40 text-[10px]",children:[i.events.length," events · ",i.stage]})]},t)}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:250:21",className:"text-[10px] text-white/30 font-mono",children:"X = Sentiment Score"})]}),M.jsx("div",{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:256:17",className:"flex-1 overflow-hidden relative",children:M.jsx(Bs,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:257:21",mode:"wait",children:M.jsx(yt.div,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:258:25",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.3},className:"absolute inset-0",children:M.jsx(XAe,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:266:29",events:i.events,onSelectEvent:r,selectedEventId:n})},t)})})]}),M.jsx(JAe,{"code-path":"src\\components\\sentinel\\JourneyRiver\\index.tsx:277:13",event:a,onClose:()=>r(null)})]})}let H3=!1;const ewe={background:"rgba(8, 10, 18, 0.82)",border:"1px solid rgba(59,130,246,0.14)",backdropFilter:"blur(24px)",WebkitBackdropFilter:"blur(24px)",boxShadow:"0 0 0 1px rgba(255,255,255,0.04), 0 4px 32px rgba(0,0,0,0.55), 0 0 60px rgba(59,130,246,0.06)"};function qu({children:t,className:e="",delay:n=0,colSpan:r=1,rowSpan:i=1,glow:a=!1}){return M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:53:5",className:`relative rounded-2xl p-5 overflow-hidden ${e}`,style:{gridColumn:`span ${r}`,gridRow:`span ${i}`,...ewe,...a?{boxShadow:"0 0 0 1px rgba(59,130,246,0.18), 0 8px 48px rgba(0,0,0,0.6), 0 0 80px rgba(59,130,246,0.12)"}:{}},initial:{opacity:0,y:18,scale:.97},animate:{opacity:1,y:0,scale:1},transition:{duration:.38,delay:n,ease:[.4,0,.2,1]},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:68:7",className:"absolute inset-x-0 top-0 h-px pointer-events-none",style:{background:"linear-gradient(90deg, transparent, rgba(255,255,255,0.10), transparent)"}}),t]})}function twe({delay:t=0}){const e=[{id:"A",name:"Main Showroom",count:5,sentiment:72},{id:"B",name:"Penthouse Gallery",count:3,sentiment:85},{id:"C",name:"Amenity Deck VR",count:2,sentiment:68},{id:"D",name:"Reception",count:2,sentiment:90}];return M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:87:5",delay:t,className:"flex h-full flex-col",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:88:7",className:"flex items-center justify-between mb-4",children:M.jsxs("h3",{"code-path":"src\\components\\modules\\Sentinel.tsx:89:9",className:"text-white font-medium flex items-center gap-2",children:[M.jsx(dL,{"code-path":"src\\components\\modules\\Sentinel.tsx:90:11",className:"w-5 h-5 text-blue-400"}),"Zone Analytics"]})}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:95:7",className:"space-y-3 flex-1",children:e.map(n=>M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:97:11",className:"flex items-center justify-between p-3 rounded-xl bg-white/5 hover:bg-white/10 transition-colors",whileHover:{x:4},children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:102:13",className:"flex items-center gap-3",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:103:15",className:"w-8 h-8 rounded-lg bg-blue-500/20 flex items-center justify-center",children:M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:104:17",className:"text-blue-400 text-sm font-medium",children:n.id})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:106:15",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:107:17",className:"text-white text-sm font-medium",children:n.name}),M.jsxs("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:108:17",className:"text-white/50 text-xs",children:[n.count," visitors"]})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:111:13",className:"flex items-center gap-2",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:112:15",className:`w-2 h-2 rounded-full ${n.sentiment>=80?"bg-green-500":n.sentiment>=60?"bg-blue-500":"bg-amber-500"}`}),M.jsxs("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:116:15",className:"text-white text-sm font-medium",children:[n.sentiment,"%"]})]})]},n.id))})]})}function nwe({visitors:t,delay:e=0}){const n={excited:t.filter(a=>a.sentiment==="excited").length,interested:t.filter(a=>a.sentiment==="interested").length,neutral:t.filter(a=>a.sentiment==="neutral").length,confused:t.filter(a=>a.sentiment==="confused").length,disinterested:t.filter(a=>a.sentiment==="disinterested").length},r=t.length||1,i=[{label:"Excited",count:n.excited,color:"bg-green-500",emoji:"😃"},{label:"Interested",count:n.interested,color:"bg-blue-500",emoji:"🤔"},{label:"Neutral",count:n.neutral,color:"bg-white/40",emoji:"😐"},{label:"Confused",count:n.confused,color:"bg-amber-500",emoji:"😕"},{label:"Disinterested",count:n.disinterested,color:"bg-red-500",emoji:"😴"}];return M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:146:5",delay:e,className:"flex flex-col",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:147:7",className:"flex items-center justify-between mb-4",children:M.jsxs("h3",{"code-path":"src\\components\\modules\\Sentinel.tsx:148:9",className:"text-white font-medium flex items-center gap-2",children:[M.jsx(fL,{"code-path":"src\\components\\modules\\Sentinel.tsx:149:11",className:"w-5 h-5 text-blue-400"}),"Sentiment Distribution"]})}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:154:7",className:"space-y-3",children:i.map(a=>M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:156:11",className:"flex items-center gap-3",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:157:13",className:"text-lg",children:a.emoji}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:158:13",className:"flex-1",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:159:15",className:"flex items-center justify-between mb-1",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:160:17",className:"text-white/70 text-sm",children:a.label}),M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:161:17",className:"text-white text-sm",children:a.count})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:163:15",className:"h-2 bg-white/10 rounded-full overflow-hidden",children:M.jsx(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:164:17",className:`h-full ${a.color} rounded-full`,initial:{width:0},animate:{width:`${a.count/r*100}%`},transition:{duration:.5,ease:"easeOut"}})})]})]},a.label))})]})}function rwe({delay:t=0}){const e=[{range:"< 5 min",count:3,trend:"down"},{range:"5-15 min",count:5,trend:"up"},{range:"15-30 min",count:8,trend:"up"},{range:"> 30 min",count:4,trend:"stable"}];return M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:189:5",delay:t,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:190:7",className:"flex items-center justify-between mb-4",children:M.jsxs("h3",{"code-path":"src\\components\\modules\\Sentinel.tsx:191:9",className:"text-white font-medium flex items-center gap-2",children:[M.jsx(RN,{"code-path":"src\\components\\modules\\Sentinel.tsx:192:11",className:"w-5 h-5 text-blue-400"}),"Dwell Time"]})}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:197:7",className:"grid grid-cols-2 gap-3",children:e.map(n=>M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:199:11",className:"p-3 rounded-xl bg-white/5",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:200:13",className:"flex items-center justify-between mb-2",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:201:15",className:"text-white/50 text-xs",children:n.range}),n.trend==="up"&&M.jsx(Jb,{"code-path":"src\\components\\modules\\Sentinel.tsx:202:39",className:"w-4 h-4 text-green-400"}),n.trend==="down"&&M.jsx(TW,{"code-path":"src\\components\\modules\\Sentinel.tsx:203:41",className:"w-4 h-4 text-red-400"}),n.trend==="stable"&&M.jsx(wW,{"code-path":"src\\components\\modules\\Sentinel.tsx:204:43",className:"w-4 h-4 text-white/40"})]}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:206:13",className:"text-white text-xl font-semibold",children:n.count}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:207:13",className:"text-white/40 text-xs",children:"visitors"})]},n.range))})]})}function iwe({isActive:t,message:e,delay:n=0}){return M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:218:5",delay:n,children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:219:7",className:"flex items-center justify-between mb-4",children:[M.jsxs("h3",{"code-path":"src\\components\\modules\\Sentinel.tsx:220:9",className:"text-white font-medium flex items-center gap-2",children:[M.jsx(PN,{"code-path":"src\\components\\modules\\Sentinel.tsx:221:11",className:"w-5 h-5 text-amber-400"}),"Alerts"]}),M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:224:9",className:`px-2 py-1 rounded-full text-xs ${t?"bg-amber-500/20 text-amber-400":"bg-green-500/20 text-green-400"}`,children:t?"Active":"Clear"})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:230:7",style:{minHeight:88},className:"relative",children:M.jsx(Bs,{"code-path":"src\\components\\modules\\Sentinel.tsx:231:9",mode:"wait",children:t?M.jsx(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:233:13",className:"p-4 rounded-xl bg-amber-500/10 border border-amber-500/30",initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},children:M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:240:15",className:"flex items-start gap-3",children:[M.jsx(PN,{"code-path":"src\\components\\modules\\Sentinel.tsx:241:17",className:"w-5 h-5 text-amber-400 flex-shrink-0 mt-0.5"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:242:17",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:243:19",className:"text-amber-400 font-medium text-sm",children:"Sentiment Alert"}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:244:19",className:"text-white/70 text-sm mt-1",children:e}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:245:19",className:"text-white/40 text-xs mt-2",children:"2 minutes ago"})]})]})},"active"):M.jsx(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:250:13",className:"p-4 rounded-xl bg-green-500/10 border border-green-500/30",initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},children:M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:257:15",className:"flex items-start gap-3",children:[M.jsx(hL,{"code-path":"src\\components\\modules\\Sentinel.tsx:258:17",className:"w-5 h-5 text-green-400 flex-shrink-0 mt-0.5"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:259:17",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:260:19",className:"text-green-400 font-medium text-sm",children:"All Clear"}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:261:19",className:"text-white/50 text-sm mt-1",children:"No alerts at this time"}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:262:19",className:"text-white/40 text-xs mt-2",children:"System nominal"})]})]})},"clear")})})]})}function awe({delay:t=0}){const e=[{id:1,client:"Quantum Dynamics",stage:"Proposal Review",sentiment:"Positive",score:92,insight:"Key decision maker showed high engagement during the VR amenity tour. Recommend emphasizing the custom penthouse integration.",urgency:"High",icon:Jb,color:"text-green-400",bg:"bg-green-500/20"},{id:2,client:"Nebula Ventures",stage:"Discovery",sentiment:"Neutral",score:45,insight:"Initial interest in the main showroom, but dwell time analysis indicates hesitation around the pricing model tier.",urgency:"Medium",icon:PN,color:"text-amber-400",bg:"bg-amber-500/20"},{id:3,client:"Apex Industries",stage:"Negotiation",sentiment:"Mixed",score:68,insight:"Detected confusion markers during the contract terms review. The legal team seems to be the blocker.",urgency:"High",icon:EW,color:"text-red-400",bg:"bg-red-500/20"},{id:4,client:"Starlight Systems",stage:"Initial Contact",sentiment:"Positive",score:78,insight:"Strong engagement with the sustainability features. Aligning the pitch with their new ESG goals will accelerate velocity.",urgency:"Low",icon:ON,color:"text-blue-400",bg:"bg-blue-500/20"}];return M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:327:5",delay:t,className:"flex h-full flex-col",glow:!0,children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:328:7",className:"flex items-center justify-between mb-4 flex-shrink-0",children:[M.jsxs("h3",{"code-path":"src\\components\\modules\\Sentinel.tsx:329:9",className:"text-white font-medium flex items-center gap-2 text-lg",children:[M.jsx(ON,{"code-path":"src\\components\\modules\\Sentinel.tsx:330:11",className:"w-5 h-5 text-blue-400"}),"AI Strategic Insights"]}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:333:9",className:"flex items-center gap-2",children:M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:334:11",className:"px-2 py-0.5 bg-blue-500/10 text-blue-400 text-[10px] uppercase tracking-wider font-semibold rounded-md border border-blue-500/20",children:"Live Analysis"})})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:340:7",className:"flex-1 overflow-y-auto custom-scrollbar pr-2 grid grid-cols-1 md:grid-cols-2 gap-3 content-start",children:e.map((n,r)=>M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:342:11",initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:t+r*.1},className:"group relative p-3 rounded-xl bg-white/5 border border-white/5 hover:bg-white/10 hover:border-white/10 transition-all cursor-pointer flex flex-col gap-2",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:350:13",className:"absolute inset-0 bg-blue-500/5 opacity-0 group-hover:opacity-100 transition-opacity rounded-xl pointer-events-none"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:353:13",className:"flex items-center justify-between relative z-10",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:354:15",className:"flex items-center gap-2 overflow-hidden",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:355:17",className:`w-8 h-8 rounded-lg ${n.bg} flex items-center justify-center flex-shrink-0`,children:M.jsx(n.icon,{"code-path":"src\\components\\modules\\Sentinel.tsx:356:19",className:`w-4 h-4 ${n.color}`})}),M.jsx("h4",{"code-path":"src\\components\\modules\\Sentinel.tsx:358:17",className:"text-white font-medium text-sm truncate",children:n.client})]}),M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:360:15",className:`text-[10px] font-bold px-1.5 py-0.5 rounded ${n.score>=80?"bg-green-500/20 text-green-400":n.score>=50?"bg-amber-500/20 text-amber-400":"bg-red-500/20 text-red-400"}`,children:n.score})]}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:369:13",className:"text-white/70 text-xs leading-relaxed line-clamp-2 relative z-10 min-h-[2.5em]",children:n.insight}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:374:13",className:"mt-auto pt-2 border-t border-white/5 flex items-center justify-between text-[10px] relative z-10",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:375:15",className:"flex items-center gap-2 text-white/40",children:M.jsxs("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:376:17",className:"flex items-center gap-1",children:[M.jsx(_ae,{"code-path":"src\\components\\modules\\Sentinel.tsx:377:19",className:"w-3 h-3"})," ",n.stage]})}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:380:15",className:`flex items-center gap-1 font-medium ${n.sentiment==="Positive"?"text-green-400":n.sentiment==="Negative"?"text-red-400":"text-amber-400"}`,children:n.sentiment})]})]},n.id))})]})}function swe(){const{visitors:t,isAlertActive:e,alertMessage:n,triggerAlert:r,clearAlert:i}=ao(),[a,s]=j.useState(!H3);return j.useEffect(()=>{const o=setInterval(()=>{Math.random()>.8&&!e&&(r("Confusion detected in Zone B - Penthouse Gallery"),setTimeout(()=>i(),5e3))},1e4);return()=>clearInterval(o)},[e,r,i]),j.useEffect(()=>{if(H3)return;const o=setTimeout(()=>{H3=!0,s(!1)},280);return()=>clearTimeout(o)},[]),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:422:5",className:"space-y-6",children:M.jsx(Bs,{"code-path":"src\\components\\modules\\Sentinel.tsx:423:7",mode:"wait",children:a?M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:425:11",className:"space-y-6",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:432:13",className:"grid grid-cols-4 gap-6",children:Array.from({length:4},(o,c)=>M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:434:17",className:"h-[156px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"},`s-top-${c}`))}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:440:13",className:"grid grid-cols-12 gap-6",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:441:15",className:"col-span-12 lg:col-span-4 h-[340px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:442:15",className:"col-span-12 lg:col-span-8 h-[340px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:444:13",className:"grid grid-cols-12 gap-6",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:445:15",className:"col-span-12 lg:col-span-4 space-y-4",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:446:17",className:"h-[220px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:447:17",className:"h-[180px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:448:17",className:"h-[130px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:450:15",className:"col-span-12 lg:col-span-8 h-[560px] rounded-2xl border border-white/10 bg-white/5 skeleton-pulse"})]})]},"sentinel-skeleton"):M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Sentinel.tsx:454:11",className:"space-y-6",initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-8},transition:{duration:.28,ease:[.4,0,.2,1]},children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:462:13",className:"grid grid-cols-4 gap-6",children:[M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:463:15",delay:0,children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:464:17",className:"flex items-center justify-between mb-4",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:465:19",className:"w-10 h-10 rounded-xl bg-blue-500/20 flex items-center justify-center",children:M.jsx(Cx,{"code-path":"src\\components\\modules\\Sentinel.tsx:466:21",className:"w-5 h-5 text-blue-400"})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:468:19",className:"flex items-center gap-1 text-green-400 text-sm",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:469:21",className:"w-2 h-2 rounded-full bg-green-500 status-pulse"}),M.jsx("span",{"code-path":"src\\components\\modules\\Sentinel.tsx:470:21",children:"Live"})]})]}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:473:17",className:"text-white/50 text-sm mb-1",children:"Active Visitors"}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:474:17",className:"text-3xl font-semibold text-white",children:t.length}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:475:17",className:"text-white/40 text-xs mt-2",children:"Currently tracked"})]}),M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:478:15",delay:0,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:479:17",className:"flex items-center justify-between mb-4",children:M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:480:19",className:"w-10 h-10 rounded-xl bg-green-500/20 flex items-center justify-center",children:M.jsx(fL,{"code-path":"src\\components\\modules\\Sentinel.tsx:481:21",className:"w-5 h-5 text-green-400"})})}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:484:17",className:"text-white/50 text-sm mb-1",children:"Avg Sentiment"}),M.jsxs("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:485:17",className:"text-3xl font-semibold text-white",children:[Math.round(t.reduce((o,c)=>o+{excited:100,interested:80,neutral:50,confused:30,disinterested:10}[c.sentiment],0)/(t.length||1)),"%"]}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:493:17",className:"text-white/40 text-xs mt-2",children:"Overall mood"})]}),M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:496:15",delay:0,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:497:17",className:"flex items-center justify-between mb-4",children:M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:498:19",className:"w-10 h-10 rounded-xl bg-purple-500/20 flex items-center justify-center",children:M.jsx(SW,{"code-path":"src\\components\\modules\\Sentinel.tsx:499:21",className:"w-5 h-5 text-purple-400"})})}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:502:17",className:"text-white/50 text-sm mb-1",children:"Detection Accuracy"}),M.jsxs("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:503:17",className:"text-3xl font-semibold text-white",children:[(t.reduce((o,c)=>o+c.confidence,0)/(t.length||1)*100).toFixed(0),"%"]}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:506:17",className:"text-white/40 text-xs mt-2",children:"Average confidence"})]}),M.jsxs(qu,{"code-path":"src\\components\\modules\\Sentinel.tsx:509:15",delay:0,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:510:17",className:"flex items-center justify-between mb-4",children:M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:511:19",className:"w-10 h-10 rounded-xl bg-amber-500/20 flex items-center justify-center",children:M.jsx(hL,{"code-path":"src\\components\\modules\\Sentinel.tsx:512:21",className:"w-5 h-5 text-amber-400"})})}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:515:17",className:"text-white/50 text-sm mb-1",children:"Tracked Today"}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:516:17",className:"text-3xl font-semibold text-white",children:"47"}),M.jsx("p",{"code-path":"src\\components\\modules\\Sentinel.tsx:517:17",className:"text-white/40 text-xs mt-2",children:"Unique faces"})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:521:13",className:"grid grid-cols-12 items-stretch gap-6",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:522:15",className:"col-span-12 lg:col-span-4 h-[340px]",children:M.jsx(twe,{"code-path":"src\\components\\modules\\Sentinel.tsx:523:17",delay:0})}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:525:15",className:"col-span-12 lg:col-span-8 h-[340px]",children:M.jsx(awe,{"code-path":"src\\components\\modules\\Sentinel.tsx:526:17",delay:0})})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:530:13",className:"grid grid-cols-12 items-stretch gap-6",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:531:15",className:"col-span-12 lg:col-span-4 space-y-4",children:[M.jsx(nwe,{"code-path":"src\\components\\modules\\Sentinel.tsx:532:17",visitors:t,delay:0}),M.jsx(rwe,{"code-path":"src\\components\\modules\\Sentinel.tsx:533:17",delay:0}),M.jsx(iwe,{"code-path":"src\\components\\modules\\Sentinel.tsx:534:17",isActive:e,message:n,delay:0})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Sentinel.tsx:536:15",className:"col-span-12 lg:col-span-8 h-full",children:M.jsx(QAe,{"code-path":"src\\components\\modules\\Sentinel.tsx:537:17"})})]})]},"sentinel-content")})})}const s1="182",Cc={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},Zh={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},yK=0,ZI=1,xK=2,owe=3,bK=0,Yg=1,Ix=2,cp=3,Vc=0,ls=1,Fo=2,Fc=0,xp=1,QI=2,eB=3,tB=4,_K=5,vd=100,SK=101,AK=102,wK=103,MK=104,EK=200,TK=201,CK=202,RK=203,nM=204,rM=205,OK=206,PK=207,DK=208,NK=209,IK=210,BK=211,LK=212,kK=213,FK=214,iM=0,aM=1,sM=2,Tp=3,oM=4,lM=5,cM=6,uM=7,o1=0,UK=1,jK=2,Wo=0,E5=1,T5=2,C5=3,GE=4,R5=5,O5=6,P5=7,nB="attached",zK="detached",HE=300,Wc=301,Cd=302,Rb=303,Ob=304,oy=306,Rd=1e3,ss=1001,Cv=1002,si=1003,VE=1004,lwe=1004,up=1005,cwe=1005,vr=1006,Jg=1007,uwe=1007,zo=1008,fwe=1008,ts=1009,D5=1010,N5=1011,Rv=1012,WE=1013,Ko=1014,os=1015,qc=1016,qE=1017,$E=1018,Ov=1020,I5=35902,B5=35899,L5=1021,k5=1022,Ba=1023,$c=1026,Sd=1027,XE=1028,l1=1029,Cp=1030,KE=1031,dwe=1032,YE=1033,Bx=33776,Lx=33777,kx=33778,Fx=33779,fM=35840,dM=35841,hM=35842,pM=35843,mM=36196,gM=37492,vM=37496,yM=37488,xM=37489,bM=37490,_M=37491,SM=37808,AM=37809,wM=37810,MM=37811,EM=37812,TM=37813,CM=37814,RM=37815,OM=37816,PM=37817,DM=37818,NM=37819,IM=37820,BM=37821,LM=36492,kM=36494,FM=36495,UM=36283,jM=36284,zM=36285,GM=36286,GK=2200,HK=2201,VK=2202,Pv=2300,Dv=2301,FA=2302,fp=2400,dp=2401,Pb=2402,JE=2500,F5=2501,WK=0,U5=1,HM=2,qK=3200,hwe=3201,pwe=3202,mwe=3203,zd=0,$K=1,zu="",Pa="srgb",Od="srgb-linear",Db="linear",ir="srgb",gwe="",vwe="rg",ywe="ga",xwe=0,Qh=7680,bwe=7681,_we=7682,Swe=7683,Awe=34055,wwe=34056,Mwe=5386,Ewe=512,Twe=513,Cwe=514,Rwe=515,Owe=516,Pwe=517,Dwe=518,rB=519,XK=512,KK=513,YK=514,ZE=515,JK=516,ZK=517,QE=518,QK=519,Nb=35044,Nwe=35048,Iwe=35040,Bwe=35045,Lwe=35049,kwe=35041,Fwe=35046,Uwe=35050,jwe=35042,zwe="100",iB="300 es",Zs=2e3,Nv=2001,Gwe={COMPUTE:"compute",RENDER:"render"},Hwe={PERSPECTIVE:"perspective",LINEAR:"linear",FLAT:"flat"},Vwe={NORMAL:"normal",CENTROID:"centroid",SAMPLE:"sample",FIRST:"first",EITHER:"either"};function eY(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}const Wwe={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Hg(t,e){return new Wwe[t](e)}function tY(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Ib(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function nY(){const t=Ib("canvas");return t.style.display="block",t}const iG={};let Pd=null;function qwe(t){Pd=t}function $we(){return Pd}function Bb(...t){const e="THREE."+t.shift();Pd?Pd("log",e,...t):console.log(e,...t)}function xt(...t){const e="THREE."+t.shift();Pd?Pd("warn",e,...t):console.warn(e,...t)}function zt(...t){const e="THREE."+t.shift();Pd?Pd("error",e,...t):console.error(e,...t)}function Iv(...t){const e=t.join(" ");e in iG||(iG[e]=!0,xt(...t))}function Xwe(t,e,n){return new Promise(function(r,i){function a(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:i();break;case t.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:r()}}setTimeout(a,n)})}let Yc=class{addEventListener(e,n){this._listeners===void 0&&(this._listeners={});const r=this._listeners;r[e]===void 0&&(r[e]=[]),r[e].indexOf(n)===-1&&r[e].push(n)}hasEventListener(e,n){const r=this._listeners;return r===void 0?!1:r[e]!==void 0&&r[e].indexOf(n)!==-1}removeEventListener(e,n){const r=this._listeners;if(r===void 0)return;const i=r[e];if(i!==void 0){const a=i.indexOf(n);a!==-1&&i.splice(a,1)}}dispatchEvent(e){const n=this._listeners;if(n===void 0)return;const r=n[e.type];if(r!==void 0){e.target=this;const i=r.slice(0);for(let a=0,s=i.length;a>8&255]+Ta[t>>16&255]+Ta[t>>24&255]+"-"+Ta[e&255]+Ta[e>>8&255]+"-"+Ta[e>>16&15|64]+Ta[e>>24&255]+"-"+Ta[n&63|128]+Ta[n>>8&255]+"-"+Ta[n>>16&255]+Ta[n>>24&255]+Ta[r&255]+Ta[r>>8&255]+Ta[r>>16&255]+Ta[r>>24&255]).toLowerCase()}function tn(t,e,n){return Math.max(e,Math.min(n,t))}function j5(t,e){return(t%e+e)%e}function Kwe(t,e,n,r,i){return r+(t-e)*(i-r)/(n-e)}function Ywe(t,e,n){return t!==e?(n-t)/(e-t):0}function Ux(t,e,n){return(1-n)*t+n*e}function Jwe(t,e,n,r){return Ux(t,e,1-Math.exp(-n*r))}function Zwe(t,e=1){return e-Math.abs(j5(t,e*2)-e)}function Qwe(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*(3-2*t))}function eMe(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*t*(t*(t*6-15)+10))}function tMe(t,e){return t+Math.floor(Math.random()*(e-t+1))}function nMe(t,e){return t+Math.random()*(e-t)}function rMe(t){return t*(.5-Math.random())}function iMe(t){t!==void 0&&(aG=t);let e=aG+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function aMe(t){return t*bp}function sMe(t){return t*Bv}function oMe(t){return(t&t-1)===0&&t!==0}function lMe(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function cMe(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function uMe(t,e,n,r,i){const a=Math.cos,s=Math.sin,o=a(n/2),c=s(n/2),u=a((e+r)/2),h=s((e+r)/2),p=a((e-r)/2),v=s((e-r)/2),y=a((r-e)/2),b=s((r-e)/2);switch(i){case"XYX":t.set(o*h,c*p,c*v,o*u);break;case"YZY":t.set(c*v,o*h,c*p,o*u);break;case"ZXZ":t.set(c*p,c*v,o*h,o*u);break;case"XZX":t.set(o*h,c*b,c*y,o*u);break;case"YXY":t.set(c*y,o*h,c*b,o*u);break;case"ZYZ":t.set(c*b,c*y,o*h,o*u);break;default:xt("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function ns(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function vn(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error("Invalid component type.")}}const rY={DEG2RAD:bp,RAD2DEG:Bv,generateUUID:eo,clamp:tn,euclideanModulo:j5,mapLinear:Kwe,inverseLerp:Ywe,lerp:Ux,damp:Jwe,pingpong:Zwe,smoothstep:Qwe,smootherstep:eMe,randInt:tMe,randFloat:nMe,randFloatSpread:rMe,seededRandom:iMe,degToRad:aMe,radToDeg:sMe,isPowerOfTwo:oMe,ceilPowerOfTwo:lMe,floorPowerOfTwo:cMe,setQuaternionFromProperEuler:uMe,normalize:vn,denormalize:ns};class Ve{constructor(e=0,n=0){Ve.prototype.isVector2=!0,this.x=e,this.y=n}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,n){return this.x=e,this.y=n,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const n=this.x,r=this.y,i=e.elements;return this.x=i[0]*n+i[3]*r+i[6],this.y=i[1]*n+i[4]*r+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,n){return this.x=tn(this.x,e.x,n.x),this.y=tn(this.y,e.y,n.y),this}clampScalar(e,n){return this.x=tn(this.x,e,n),this.y=tn(this.y,e,n),this}clampLength(e,n){const r=this.length();return this.divideScalar(r||1).multiplyScalar(tn(r,e,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const r=this.dot(e)/n;return Math.acos(tn(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,r=this.y-e.y;return n*n+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this}lerpVectors(e,n,r){return this.x=e.x+(n.x-e.x)*r,this.y=e.y+(n.y-e.y)*r,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this}rotateAround(e,n){const r=Math.cos(n),i=Math.sin(n),a=this.x-e.x,s=this.y-e.y;return this.x=a*r-s*i+e.x,this.y=a*i+s*r+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class gi{constructor(e=0,n=0,r=0,i=1){this.isQuaternion=!0,this._x=e,this._y=n,this._z=r,this._w=i}static slerpFlat(e,n,r,i,a,s,o){let c=r[i+0],u=r[i+1],h=r[i+2],p=r[i+3],v=a[s+0],y=a[s+1],b=a[s+2],w=a[s+3];if(o<=0){e[n+0]=c,e[n+1]=u,e[n+2]=h,e[n+3]=p;return}if(o>=1){e[n+0]=v,e[n+1]=y,e[n+2]=b,e[n+3]=w;return}if(p!==w||c!==v||u!==y||h!==b){let _=c*v+u*y+h*b+p*w;_<0&&(v=-v,y=-y,b=-b,w=-w,_=-_);let S=1-o;if(_<.9995){const E=Math.acos(_),T=Math.sin(E);S=Math.sin(S*E)/T,o=Math.sin(o*E)/T,c=c*S+v*o,u=u*S+y*o,h=h*S+b*o,p=p*S+w*o}else{c=c*S+v*o,u=u*S+y*o,h=h*S+b*o,p=p*S+w*o;const E=1/Math.sqrt(c*c+u*u+h*h+p*p);c*=E,u*=E,h*=E,p*=E}}e[n]=c,e[n+1]=u,e[n+2]=h,e[n+3]=p}static multiplyQuaternionsFlat(e,n,r,i,a,s){const o=r[i],c=r[i+1],u=r[i+2],h=r[i+3],p=a[s],v=a[s+1],y=a[s+2],b=a[s+3];return e[n]=o*b+h*p+c*y-u*v,e[n+1]=c*b+h*v+u*p-o*y,e[n+2]=u*b+h*y+o*v-c*p,e[n+3]=h*b-o*p-c*v-u*y,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,n,r,i){return this._x=e,this._y=n,this._z=r,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,n=!0){const r=e._x,i=e._y,a=e._z,s=e._order,o=Math.cos,c=Math.sin,u=o(r/2),h=o(i/2),p=o(a/2),v=c(r/2),y=c(i/2),b=c(a/2);switch(s){case"XYZ":this._x=v*h*p+u*y*b,this._y=u*y*p-v*h*b,this._z=u*h*b+v*y*p,this._w=u*h*p-v*y*b;break;case"YXZ":this._x=v*h*p+u*y*b,this._y=u*y*p-v*h*b,this._z=u*h*b-v*y*p,this._w=u*h*p+v*y*b;break;case"ZXY":this._x=v*h*p-u*y*b,this._y=u*y*p+v*h*b,this._z=u*h*b+v*y*p,this._w=u*h*p-v*y*b;break;case"ZYX":this._x=v*h*p-u*y*b,this._y=u*y*p+v*h*b,this._z=u*h*b-v*y*p,this._w=u*h*p+v*y*b;break;case"YZX":this._x=v*h*p+u*y*b,this._y=u*y*p+v*h*b,this._z=u*h*b-v*y*p,this._w=u*h*p-v*y*b;break;case"XZY":this._x=v*h*p-u*y*b,this._y=u*y*p-v*h*b,this._z=u*h*b+v*y*p,this._w=u*h*p+v*y*b;break;default:xt("Quaternion: .setFromEuler() encountered an unknown order: "+s)}return n===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,n){const r=n/2,i=Math.sin(r);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(r),this._onChangeCallback(),this}setFromRotationMatrix(e){const n=e.elements,r=n[0],i=n[4],a=n[8],s=n[1],o=n[5],c=n[9],u=n[2],h=n[6],p=n[10],v=r+o+p;if(v>0){const y=.5/Math.sqrt(v+1);this._w=.25/y,this._x=(h-c)*y,this._y=(a-u)*y,this._z=(s-i)*y}else if(r>o&&r>p){const y=2*Math.sqrt(1+r-o-p);this._w=(h-c)/y,this._x=.25*y,this._y=(i+s)/y,this._z=(a+u)/y}else if(o>p){const y=2*Math.sqrt(1+o-r-p);this._w=(a-u)/y,this._x=(i+s)/y,this._y=.25*y,this._z=(c+h)/y}else{const y=2*Math.sqrt(1+p-r-o);this._w=(s-i)/y,this._x=(a+u)/y,this._y=(c+h)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(e,n){let r=e.dot(n)+1;return r<1e-8?(r=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=r):(this._x=0,this._y=-e.z,this._z=e.y,this._w=r)):(this._x=e.y*n.z-e.z*n.y,this._y=e.z*n.x-e.x*n.z,this._z=e.x*n.y-e.y*n.x,this._w=r),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(tn(this.dot(e),-1,1)))}rotateTowards(e,n){const r=this.angleTo(e);if(r===0)return this;const i=Math.min(1,n/r);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,n){const r=e._x,i=e._y,a=e._z,s=e._w,o=n._x,c=n._y,u=n._z,h=n._w;return this._x=r*h+s*o+i*u-a*c,this._y=i*h+s*c+a*o-r*u,this._z=a*h+s*u+r*c-i*o,this._w=s*h-r*o-i*c-a*u,this._onChangeCallback(),this}slerp(e,n){if(n<=0)return this;if(n>=1)return this.copy(e);let r=e._x,i=e._y,a=e._z,s=e._w,o=this.dot(e);o<0&&(r=-r,i=-i,a=-a,s=-s,o=-o);let c=1-n;if(o<.9995){const u=Math.acos(o),h=Math.sin(u);c=Math.sin(c*u)/h,n=Math.sin(n*u)/h,this._x=this._x*c+r*n,this._y=this._y*c+i*n,this._z=this._z*c+a*n,this._w=this._w*c+s*n,this._onChangeCallback()}else this._x=this._x*c+r*n,this._y=this._y*c+i*n,this._z=this._z*c+a*n,this._w=this._w*c+s*n,this.normalize();return this}slerpQuaternions(e,n,r){return this.copy(e).slerp(n,r)}random(){const e=2*Math.PI*Math.random(),n=2*Math.PI*Math.random(),r=Math.random(),i=Math.sqrt(1-r),a=Math.sqrt(r);return this.set(i*Math.sin(e),i*Math.cos(e),a*Math.sin(n),a*Math.cos(n))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,n=0){return this._x=e[n],this._y=e[n+1],this._z=e[n+2],this._w=e[n+3],this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._w,e}fromBufferAttribute(e,n){return this._x=e.getX(n),this._y=e.getY(n),this._z=e.getZ(n),this._w=e.getW(n),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class ne{constructor(e=0,n=0,r=0){ne.prototype.isVector3=!0,this.x=e,this.y=n,this.z=r}set(e,n,r){return r===void 0&&(r=this.z),this.x=e,this.y=n,this.z=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,n){return this.x=e.x*n.x,this.y=e.y*n.y,this.z=e.z*n.z,this}applyEuler(e){return this.applyQuaternion(sG.setFromEuler(e))}applyAxisAngle(e,n){return this.applyQuaternion(sG.setFromAxisAngle(e,n))}applyMatrix3(e){const n=this.x,r=this.y,i=this.z,a=e.elements;return this.x=a[0]*n+a[3]*r+a[6]*i,this.y=a[1]*n+a[4]*r+a[7]*i,this.z=a[2]*n+a[5]*r+a[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const n=this.x,r=this.y,i=this.z,a=e.elements,s=1/(a[3]*n+a[7]*r+a[11]*i+a[15]);return this.x=(a[0]*n+a[4]*r+a[8]*i+a[12])*s,this.y=(a[1]*n+a[5]*r+a[9]*i+a[13])*s,this.z=(a[2]*n+a[6]*r+a[10]*i+a[14])*s,this}applyQuaternion(e){const n=this.x,r=this.y,i=this.z,a=e.x,s=e.y,o=e.z,c=e.w,u=2*(s*i-o*r),h=2*(o*n-a*i),p=2*(a*r-s*n);return this.x=n+c*u+s*p-o*h,this.y=r+c*h+o*u-a*p,this.z=i+c*p+a*h-s*u,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const n=this.x,r=this.y,i=this.z,a=e.elements;return this.x=a[0]*n+a[4]*r+a[8]*i,this.y=a[1]*n+a[5]*r+a[9]*i,this.z=a[2]*n+a[6]*r+a[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,n){return this.x=tn(this.x,e.x,n.x),this.y=tn(this.y,e.y,n.y),this.z=tn(this.z,e.z,n.z),this}clampScalar(e,n){return this.x=tn(this.x,e,n),this.y=tn(this.y,e,n),this.z=tn(this.z,e,n),this}clampLength(e,n){const r=this.length();return this.divideScalar(r||1).multiplyScalar(tn(r,e,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this}lerpVectors(e,n,r){return this.x=e.x+(n.x-e.x)*r,this.y=e.y+(n.y-e.y)*r,this.z=e.z+(n.z-e.z)*r,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,n){const r=e.x,i=e.y,a=e.z,s=n.x,o=n.y,c=n.z;return this.x=i*c-a*o,this.y=a*s-r*c,this.z=r*o-i*s,this}projectOnVector(e){const n=e.lengthSq();if(n===0)return this.set(0,0,0);const r=e.dot(this)/n;return this.copy(e).multiplyScalar(r)}projectOnPlane(e){return V3.copy(this).projectOnVector(e),this.sub(V3)}reflect(e){return this.sub(V3.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const r=this.dot(e)/n;return Math.acos(tn(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,r=this.y-e.y,i=this.z-e.z;return n*n+r*r+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,n,r){const i=Math.sin(n)*e;return this.x=i*Math.sin(r),this.y=Math.cos(n)*e,this.z=i*Math.cos(r),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,n,r){return this.x=e*Math.sin(n),this.y=r,this.z=e*Math.cos(n),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(e){const n=this.setFromMatrixColumn(e,0).length(),r=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=n,this.y=r,this.z=i,this}setFromMatrixColumn(e,n){return this.fromArray(e.elements,n*4)}setFromMatrix3Column(e,n){return this.fromArray(e.elements,n*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,n=Math.random()*2-1,r=Math.sqrt(1-n*n);return this.x=r*Math.cos(e),this.y=n,this.z=r*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const V3=new ne,sG=new gi;class dn{constructor(e,n,r,i,a,s,o,c,u){dn.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,n,r,i,a,s,o,c,u)}set(e,n,r,i,a,s,o,c,u){const h=this.elements;return h[0]=e,h[1]=i,h[2]=o,h[3]=n,h[4]=a,h[5]=c,h[6]=r,h[7]=s,h[8]=u,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const n=this.elements,r=e.elements;return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],this}extractBasis(e,n,r){return e.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),r.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const n=e.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const r=e.elements,i=n.elements,a=this.elements,s=r[0],o=r[3],c=r[6],u=r[1],h=r[4],p=r[7],v=r[2],y=r[5],b=r[8],w=i[0],_=i[3],S=i[6],E=i[1],T=i[4],P=i[7],R=i[2],D=i[5],I=i[8];return a[0]=s*w+o*E+c*R,a[3]=s*_+o*T+c*D,a[6]=s*S+o*P+c*I,a[1]=u*w+h*E+p*R,a[4]=u*_+h*T+p*D,a[7]=u*S+h*P+p*I,a[2]=v*w+y*E+b*R,a[5]=v*_+y*T+b*D,a[8]=v*S+y*P+b*I,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=e,n[4]*=e,n[7]*=e,n[2]*=e,n[5]*=e,n[8]*=e,this}determinant(){const e=this.elements,n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],c=e[6],u=e[7],h=e[8];return n*s*h-n*o*u-r*a*h+r*o*c+i*a*u-i*s*c}invert(){const e=this.elements,n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],c=e[6],u=e[7],h=e[8],p=h*s-o*u,v=o*c-h*a,y=u*a-s*c,b=n*p+r*v+i*y;if(b===0)return this.set(0,0,0,0,0,0,0,0,0);const w=1/b;return e[0]=p*w,e[1]=(i*u-h*r)*w,e[2]=(o*r-i*s)*w,e[3]=v*w,e[4]=(h*n-i*c)*w,e[5]=(i*a-o*n)*w,e[6]=y*w,e[7]=(r*c-u*n)*w,e[8]=(s*n-r*a)*w,this}transpose(){let e;const n=this.elements;return e=n[1],n[1]=n[3],n[3]=e,e=n[2],n[2]=n[6],n[6]=e,e=n[5],n[5]=n[7],n[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const n=this.elements;return e[0]=n[0],e[1]=n[3],e[2]=n[6],e[3]=n[1],e[4]=n[4],e[5]=n[7],e[6]=n[2],e[7]=n[5],e[8]=n[8],this}setUvTransform(e,n,r,i,a,s,o){const c=Math.cos(a),u=Math.sin(a);return this.set(r*c,r*u,-r*(c*s+u*o)+s+e,-i*u,i*c,-i*(-u*s+c*o)+o+n,0,0,1),this}scale(e,n){return this.premultiply(W3.makeScale(e,n)),this}rotate(e){return this.premultiply(W3.makeRotation(-e)),this}translate(e,n){return this.premultiply(W3.makeTranslation(e,n)),this}makeTranslation(e,n){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,n,0,0,1),this}makeRotation(e){const n=Math.cos(e),r=Math.sin(e);return this.set(n,-r,0,r,n,0,0,0,1),this}makeScale(e,n){return this.set(e,0,0,0,n,0,0,0,1),this}equals(e){const n=this.elements,r=e.elements;for(let i=0;i<9;i++)if(n[i]!==r[i])return!1;return!0}fromArray(e,n=0){for(let r=0;r<9;r++)this.elements[r]=e[r+n];return this}toArray(e=[],n=0){const r=this.elements;return e[n]=r[0],e[n+1]=r[1],e[n+2]=r[2],e[n+3]=r[3],e[n+4]=r[4],e[n+5]=r[5],e[n+6]=r[6],e[n+7]=r[7],e[n+8]=r[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const W3=new dn,oG=new dn().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),lG=new dn().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function fMe(){const t={enabled:!0,workingColorSpace:Od,spaces:{},convert:function(i,a,s){return this.enabled===!1||a===s||!a||!s||(this.spaces[a].transfer===ir&&(i.r=Qu(i.r),i.g=Qu(i.g),i.b=Qu(i.b)),this.spaces[a].primaries!==this.spaces[s].primaries&&(i.applyMatrix3(this.spaces[a].toXYZ),i.applyMatrix3(this.spaces[s].fromXYZ)),this.spaces[s].transfer===ir&&(i.r=Zg(i.r),i.g=Zg(i.g),i.b=Zg(i.b))),i},workingToColorSpace:function(i,a){return this.convert(i,this.workingColorSpace,a)},colorSpaceToWorking:function(i,a){return this.convert(i,a,this.workingColorSpace)},getPrimaries:function(i){return this.spaces[i].primaries},getTransfer:function(i){return i===zu?Db:this.spaces[i].transfer},getToneMappingMode:function(i){return this.spaces[i].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(i,a=this.workingColorSpace){return i.fromArray(this.spaces[a].luminanceCoefficients)},define:function(i){Object.assign(this.spaces,i)},_getMatrix:function(i,a,s){return i.copy(this.spaces[a].toXYZ).multiply(this.spaces[s].fromXYZ)},_getDrawingBufferColorSpace:function(i){return this.spaces[i].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(i=this.workingColorSpace){return this.spaces[i].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(i,a){return Iv("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),t.workingToColorSpace(i,a)},toWorkingColorSpace:function(i,a){return Iv("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),t.colorSpaceToWorking(i,a)}},e=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],r=[.3127,.329];return t.define({[Od]:{primaries:e,whitePoint:r,transfer:Db,toXYZ:oG,fromXYZ:lG,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:Pa},outputColorSpaceConfig:{drawingBufferColorSpace:Pa}},[Pa]:{primaries:e,whitePoint:r,transfer:ir,toXYZ:oG,fromXYZ:lG,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:Pa}}}),t}const Fn=fMe();function Qu(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function Zg(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let sg;class iY{static getDataURL(e,n="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let r;if(e instanceof HTMLCanvasElement)r=e;else{sg===void 0&&(sg=Ib("canvas")),sg.width=e.width,sg.height=e.height;const i=sg.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),r=sg}return r.toDataURL(n)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const n=Ib("canvas");n.width=e.width,n.height=e.height;const r=n.getContext("2d");r.drawImage(e,0,0,e.width,e.height);const i=r.getImageData(0,0,e.width,e.height),a=i.data;for(let s=0;s1),this.pmremVersion=0}get width(){return this.source.getSize($3).x}get height(){return this.source.getSize($3).y}get depth(){return this.source.getSize($3).z}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(const n in e){const r=e[n];if(r===void 0){xt(`Texture.setValues(): parameter '${n}' has value of undefined.`);continue}const i=this[n];if(i===void 0){xt(`Texture.setValues(): property '${n}' does not exist.`);continue}i&&r&&i.isVector2&&r.isVector2||i&&r&&i.isVector3&&r.isVector3||i&&r&&i.isMatrix3&&r.isMatrix3?i.copy(r):this[n]=r}}toJSON(e){const n=e===void 0||typeof e=="string";if(!n&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const r={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),n||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==HE)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case Rd:e.x=e.x-Math.floor(e.x);break;case ss:e.x=e.x<0?0:1;break;case Cv:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case Rd:e.y=e.y-Math.floor(e.y);break;case ss:e.y=e.y<0?0:1;break;case Cv:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}}Gr.DEFAULT_IMAGE=null;Gr.DEFAULT_MAPPING=HE;Gr.DEFAULT_ANISOTROPY=1;class mr{constructor(e=0,n=0,r=0,i=1){mr.prototype.isVector4=!0,this.x=e,this.y=n,this.z=r,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,n,r,i){return this.x=e,this.y=n,this.z=r,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this.w=e.w+n.w,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this.w+=e.w*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this.w=e.w-n.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const n=this.x,r=this.y,i=this.z,a=this.w,s=e.elements;return this.x=s[0]*n+s[4]*r+s[8]*i+s[12]*a,this.y=s[1]*n+s[5]*r+s[9]*i+s[13]*a,this.z=s[2]*n+s[6]*r+s[10]*i+s[14]*a,this.w=s[3]*n+s[7]*r+s[11]*i+s[15]*a,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const n=Math.sqrt(1-e.w*e.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/n,this.y=e.y/n,this.z=e.z/n),this}setAxisAngleFromRotationMatrix(e){let n,r,i,a;const c=e.elements,u=c[0],h=c[4],p=c[8],v=c[1],y=c[5],b=c[9],w=c[2],_=c[6],S=c[10];if(Math.abs(h-v)<.01&&Math.abs(p-w)<.01&&Math.abs(b-_)<.01){if(Math.abs(h+v)<.1&&Math.abs(p+w)<.1&&Math.abs(b+_)<.1&&Math.abs(u+y+S-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const T=(u+1)/2,P=(y+1)/2,R=(S+1)/2,D=(h+v)/4,I=(p+w)/4,k=(b+_)/4;return T>P&&T>R?T<.01?(r=0,i=.707106781,a=.707106781):(r=Math.sqrt(T),i=D/r,a=I/r):P>R?P<.01?(r=.707106781,i=0,a=.707106781):(i=Math.sqrt(P),r=D/i,a=k/i):R<.01?(r=.707106781,i=.707106781,a=0):(a=Math.sqrt(R),r=I/a,i=k/a),this.set(r,i,a,n),this}let E=Math.sqrt((_-b)*(_-b)+(p-w)*(p-w)+(v-h)*(v-h));return Math.abs(E)<.001&&(E=1),this.x=(_-b)/E,this.y=(p-w)/E,this.z=(v-h)/E,this.w=Math.acos((u+y+S-1)/2),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this.w=n[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,n){return this.x=tn(this.x,e.x,n.x),this.y=tn(this.y,e.y,n.y),this.z=tn(this.z,e.z,n.z),this.w=tn(this.w,e.w,n.w),this}clampScalar(e,n){return this.x=tn(this.x,e,n),this.y=tn(this.y,e,n),this.z=tn(this.z,e,n),this.w=tn(this.w,e,n),this}clampLength(e,n){const r=this.length();return this.divideScalar(r||1).multiplyScalar(tn(r,e,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this.w+=(e.w-this.w)*n,this}lerpVectors(e,n,r){return this.x=e.x+(n.x-e.x)*r,this.y=e.y+(n.y-e.y)*r,this.z=e.z+(n.z-e.z)*r,this.w=e.w+(n.w-e.w)*r,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this.w=e[n+3],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e[n+3]=this.w,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this.w=e.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class z5 extends Yc{constructor(e=1,n=1,r={}){super(),r=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:vr,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},r),this.isRenderTarget=!0,this.width=e,this.height=n,this.depth=r.depth,this.scissor=new mr(0,0,e,n),this.scissorTest=!1,this.viewport=new mr(0,0,e,n);const i={width:e,height:n,depth:r.depth},a=new Gr(i);this.textures=[];const s=r.count;for(let o=0;o1);this.dispose()}this.viewport.set(0,0,e,n),this.scissor.set(0,0,e,n)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let n=0,r=e.textures.length;n=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,wl),wl.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let n,r;return e.normal.x>0?(n=e.normal.x*this.min.x,r=e.normal.x*this.max.x):(n=e.normal.x*this.max.x,r=e.normal.x*this.min.x),e.normal.y>0?(n+=e.normal.y*this.min.y,r+=e.normal.y*this.max.y):(n+=e.normal.y*this.max.y,r+=e.normal.y*this.min.y),e.normal.z>0?(n+=e.normal.z*this.min.z,r+=e.normal.z*this.max.z):(n+=e.normal.z*this.max.z,r+=e.normal.z*this.min.z),n<=-e.constant&&r>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(ex),OS.subVectors(this.max,ex),og.subVectors(e.a,ex),lg.subVectors(e.b,ex),cg.subVectors(e.c,ex),id.subVectors(lg,og),ad.subVectors(cg,lg),Ih.subVectors(og,cg);let n=[0,-id.z,id.y,0,-ad.z,ad.y,0,-Ih.z,Ih.y,id.z,0,-id.x,ad.z,0,-ad.x,Ih.z,0,-Ih.x,-id.y,id.x,0,-ad.y,ad.x,0,-Ih.y,Ih.x,0];return!X3(n,og,lg,cg,OS)||(n=[1,0,0,0,1,0,0,0,1],!X3(n,og,lg,cg,OS))?!1:(PS.crossVectors(id,ad),n=[PS.x,PS.y,PS.z],X3(n,og,lg,cg,OS))}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,wl).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(wl).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Nu[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Nu[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Nu[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Nu[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Nu[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Nu[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Nu[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Nu[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Nu),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}}const Nu=[new ne,new ne,new ne,new ne,new ne,new ne,new ne,new ne],wl=new ne,RS=new Oi,og=new ne,lg=new ne,cg=new ne,id=new ne,ad=new ne,Ih=new ne,ex=new ne,OS=new ne,PS=new ne,Bh=new ne;function X3(t,e,n,r,i){for(let a=0,s=t.length-3;a<=s;a+=3){Bh.fromArray(t,a);const o=i.x*Math.abs(Bh.x)+i.y*Math.abs(Bh.y)+i.z*Math.abs(Bh.z),c=e.dot(Bh),u=n.dot(Bh),h=r.dot(Bh);if(Math.max(-Math.max(c,u,h),Math.min(c,u,h))>o)return!1}return!0}const gMe=new Oi,tx=new ne,K3=new ne;class Zi{constructor(e=new ne,n=-1){this.isSphere=!0,this.center=e,this.radius=n}set(e,n){return this.center.copy(e),this.radius=n,this}setFromPoints(e,n){const r=this.center;n!==void 0?r.copy(n):gMe.setFromPoints(e).getCenter(r);let i=0;for(let a=0,s=e.length;athis.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;tx.subVectors(e,this.center);const n=tx.lengthSq();if(n>this.radius*this.radius){const r=Math.sqrt(n),i=(r-this.radius)*.5;this.center.addScaledVector(tx,i/r),this.radius+=i}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(K3.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(tx.copy(e.center).add(K3)),this.expandByPoint(tx.copy(e.center).sub(K3))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}}const Iu=new ne,Y3=new ne,DS=new ne,sd=new ne,J3=new ne,NS=new ne,Z3=new ne;class Hp{constructor(e=new ne,n=new ne(0,0,-1)){this.origin=e,this.direction=n}set(e,n){return this.origin.copy(e),this.direction.copy(n),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,n){return n.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Iu)),this}closestPointToPoint(e,n){n.subVectors(e,this.origin);const r=n.dot(this.direction);return r<0?n.copy(this.origin):n.copy(this.origin).addScaledVector(this.direction,r)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const n=Iu.subVectors(e,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(e):(Iu.copy(this.origin).addScaledVector(this.direction,n),Iu.distanceToSquared(e))}distanceSqToSegment(e,n,r,i){Y3.copy(e).add(n).multiplyScalar(.5),DS.copy(n).sub(e).normalize(),sd.copy(this.origin).sub(Y3);const a=e.distanceTo(n)*.5,s=-this.direction.dot(DS),o=sd.dot(this.direction),c=-sd.dot(DS),u=sd.lengthSq(),h=Math.abs(1-s*s);let p,v,y,b;if(h>0)if(p=s*c-o,v=s*o-c,b=a*h,p>=0)if(v>=-b)if(v<=b){const w=1/h;p*=w,v*=w,y=p*(p+s*v+2*o)+v*(s*p+v+2*c)+u}else v=a,p=Math.max(0,-(s*v+o)),y=-p*p+v*(v+2*c)+u;else v=-a,p=Math.max(0,-(s*v+o)),y=-p*p+v*(v+2*c)+u;else v<=-b?(p=Math.max(0,-(-s*a+o)),v=p>0?-a:Math.min(Math.max(-a,-c),a),y=-p*p+v*(v+2*c)+u):v<=b?(p=0,v=Math.min(Math.max(-a,-c),a),y=v*(v+2*c)+u):(p=Math.max(0,-(s*a+o)),v=p>0?a:Math.min(Math.max(-a,-c),a),y=-p*p+v*(v+2*c)+u);else v=s>0?-a:a,p=Math.max(0,-(s*v+o)),y=-p*p+v*(v+2*c)+u;return r&&r.copy(this.origin).addScaledVector(this.direction,p),i&&i.copy(Y3).addScaledVector(DS,v),y}intersectSphere(e,n){Iu.subVectors(e.center,this.origin);const r=Iu.dot(this.direction),i=Iu.dot(Iu)-r*r,a=e.radius*e.radius;if(i>a)return null;const s=Math.sqrt(a-i),o=r-s,c=r+s;return c<0?null:o<0?this.at(c,n):this.at(o,n)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const n=e.normal.dot(this.direction);if(n===0)return e.distanceToPoint(this.origin)===0?0:null;const r=-(this.origin.dot(e.normal)+e.constant)/n;return r>=0?r:null}intersectPlane(e,n){const r=this.distanceToPlane(e);return r===null?null:this.at(r,n)}intersectsPlane(e){const n=e.distanceToPoint(this.origin);return n===0||e.normal.dot(this.direction)*n<0}intersectBox(e,n){let r,i,a,s,o,c;const u=1/this.direction.x,h=1/this.direction.y,p=1/this.direction.z,v=this.origin;return u>=0?(r=(e.min.x-v.x)*u,i=(e.max.x-v.x)*u):(r=(e.max.x-v.x)*u,i=(e.min.x-v.x)*u),h>=0?(a=(e.min.y-v.y)*h,s=(e.max.y-v.y)*h):(a=(e.max.y-v.y)*h,s=(e.min.y-v.y)*h),r>s||a>i||((a>r||isNaN(r))&&(r=a),(s=0?(o=(e.min.z-v.z)*p,c=(e.max.z-v.z)*p):(o=(e.max.z-v.z)*p,c=(e.min.z-v.z)*p),r>c||o>i)||((o>r||r!==r)&&(r=o),(c=0?r:i,n)}intersectsBox(e){return this.intersectBox(e,Iu)!==null}intersectTriangle(e,n,r,i,a){J3.subVectors(n,e),NS.subVectors(r,e),Z3.crossVectors(J3,NS);let s=this.direction.dot(Z3),o;if(s>0){if(i)return null;o=1}else if(s<0)o=-1,s=-s;else return null;sd.subVectors(this.origin,e);const c=o*this.direction.dot(NS.crossVectors(sd,NS));if(c<0)return null;const u=o*this.direction.dot(J3.cross(sd));if(u<0||c+u>s)return null;const h=-o*sd.dot(Z3);return h<0?null:this.at(h/s,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class qt{constructor(e,n,r,i,a,s,o,c,u,h,p,v,y,b,w,_){qt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,n,r,i,a,s,o,c,u,h,p,v,y,b,w,_)}set(e,n,r,i,a,s,o,c,u,h,p,v,y,b,w,_){const S=this.elements;return S[0]=e,S[4]=n,S[8]=r,S[12]=i,S[1]=a,S[5]=s,S[9]=o,S[13]=c,S[2]=u,S[6]=h,S[10]=p,S[14]=v,S[3]=y,S[7]=b,S[11]=w,S[15]=_,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new qt().fromArray(this.elements)}copy(e){const n=this.elements,r=e.elements;return n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],this}copyPosition(e){const n=this.elements,r=e.elements;return n[12]=r[12],n[13]=r[13],n[14]=r[14],this}setFromMatrix3(e){const n=e.elements;return this.set(n[0],n[3],n[6],0,n[1],n[4],n[7],0,n[2],n[5],n[8],0,0,0,0,1),this}extractBasis(e,n,r){return this.determinant()===0?(e.set(1,0,0),n.set(0,1,0),r.set(0,0,1),this):(e.setFromMatrixColumn(this,0),n.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this)}makeBasis(e,n,r){return this.set(e.x,n.x,r.x,0,e.y,n.y,r.y,0,e.z,n.z,r.z,0,0,0,0,1),this}extractRotation(e){if(e.determinant()===0)return this.identity();const n=this.elements,r=e.elements,i=1/ug.setFromMatrixColumn(e,0).length(),a=1/ug.setFromMatrixColumn(e,1).length(),s=1/ug.setFromMatrixColumn(e,2).length();return n[0]=r[0]*i,n[1]=r[1]*i,n[2]=r[2]*i,n[3]=0,n[4]=r[4]*a,n[5]=r[5]*a,n[6]=r[6]*a,n[7]=0,n[8]=r[8]*s,n[9]=r[9]*s,n[10]=r[10]*s,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromEuler(e){const n=this.elements,r=e.x,i=e.y,a=e.z,s=Math.cos(r),o=Math.sin(r),c=Math.cos(i),u=Math.sin(i),h=Math.cos(a),p=Math.sin(a);if(e.order==="XYZ"){const v=s*h,y=s*p,b=o*h,w=o*p;n[0]=c*h,n[4]=-c*p,n[8]=u,n[1]=y+b*u,n[5]=v-w*u,n[9]=-o*c,n[2]=w-v*u,n[6]=b+y*u,n[10]=s*c}else if(e.order==="YXZ"){const v=c*h,y=c*p,b=u*h,w=u*p;n[0]=v+w*o,n[4]=b*o-y,n[8]=s*u,n[1]=s*p,n[5]=s*h,n[9]=-o,n[2]=y*o-b,n[6]=w+v*o,n[10]=s*c}else if(e.order==="ZXY"){const v=c*h,y=c*p,b=u*h,w=u*p;n[0]=v-w*o,n[4]=-s*p,n[8]=b+y*o,n[1]=y+b*o,n[5]=s*h,n[9]=w-v*o,n[2]=-s*u,n[6]=o,n[10]=s*c}else if(e.order==="ZYX"){const v=s*h,y=s*p,b=o*h,w=o*p;n[0]=c*h,n[4]=b*u-y,n[8]=v*u+w,n[1]=c*p,n[5]=w*u+v,n[9]=y*u-b,n[2]=-u,n[6]=o*c,n[10]=s*c}else if(e.order==="YZX"){const v=s*c,y=s*u,b=o*c,w=o*u;n[0]=c*h,n[4]=w-v*p,n[8]=b*p+y,n[1]=p,n[5]=s*h,n[9]=-o*h,n[2]=-u*h,n[6]=y*p+b,n[10]=v-w*p}else if(e.order==="XZY"){const v=s*c,y=s*u,b=o*c,w=o*u;n[0]=c*h,n[4]=-p,n[8]=u*h,n[1]=v*p+w,n[5]=s*h,n[9]=y*p-b,n[2]=b*p-y,n[6]=o*h,n[10]=w*p+v}return n[3]=0,n[7]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromQuaternion(e){return this.compose(vMe,e,yMe)}lookAt(e,n,r){const i=this.elements;return Ws.subVectors(e,n),Ws.lengthSq()===0&&(Ws.z=1),Ws.normalize(),od.crossVectors(r,Ws),od.lengthSq()===0&&(Math.abs(r.z)===1?Ws.x+=1e-4:Ws.z+=1e-4,Ws.normalize(),od.crossVectors(r,Ws)),od.normalize(),IS.crossVectors(Ws,od),i[0]=od.x,i[4]=IS.x,i[8]=Ws.x,i[1]=od.y,i[5]=IS.y,i[9]=Ws.y,i[2]=od.z,i[6]=IS.z,i[10]=Ws.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const r=e.elements,i=n.elements,a=this.elements,s=r[0],o=r[4],c=r[8],u=r[12],h=r[1],p=r[5],v=r[9],y=r[13],b=r[2],w=r[6],_=r[10],S=r[14],E=r[3],T=r[7],P=r[11],R=r[15],D=i[0],I=i[4],k=i[8],B=i[12],U=i[1],z=i[5],q=i[9],W=i[13],ee=i[2],Q=i[6],V=i[10],$=i[14],Y=i[3],ie=i[7],de=i[11],X=i[15];return a[0]=s*D+o*U+c*ee+u*Y,a[4]=s*I+o*z+c*Q+u*ie,a[8]=s*k+o*q+c*V+u*de,a[12]=s*B+o*W+c*$+u*X,a[1]=h*D+p*U+v*ee+y*Y,a[5]=h*I+p*z+v*Q+y*ie,a[9]=h*k+p*q+v*V+y*de,a[13]=h*B+p*W+v*$+y*X,a[2]=b*D+w*U+_*ee+S*Y,a[6]=b*I+w*z+_*Q+S*ie,a[10]=b*k+w*q+_*V+S*de,a[14]=b*B+w*W+_*$+S*X,a[3]=E*D+T*U+P*ee+R*Y,a[7]=E*I+T*z+P*Q+R*ie,a[11]=E*k+T*q+P*V+R*de,a[15]=E*B+T*W+P*$+R*X,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[4]*=e,n[8]*=e,n[12]*=e,n[1]*=e,n[5]*=e,n[9]*=e,n[13]*=e,n[2]*=e,n[6]*=e,n[10]*=e,n[14]*=e,n[3]*=e,n[7]*=e,n[11]*=e,n[15]*=e,this}determinant(){const e=this.elements,n=e[0],r=e[4],i=e[8],a=e[12],s=e[1],o=e[5],c=e[9],u=e[13],h=e[2],p=e[6],v=e[10],y=e[14],b=e[3],w=e[7],_=e[11],S=e[15],E=c*y-u*v,T=o*y-u*p,P=o*v-c*p,R=s*y-u*h,D=s*v-c*h,I=s*p-o*h;return n*(w*E-_*T+S*P)-r*(b*E-_*R+S*D)+i*(b*T-w*R+S*I)-a*(b*P-w*D+_*I)}transpose(){const e=this.elements;let n;return n=e[1],e[1]=e[4],e[4]=n,n=e[2],e[2]=e[8],e[8]=n,n=e[6],e[6]=e[9],e[9]=n,n=e[3],e[3]=e[12],e[12]=n,n=e[7],e[7]=e[13],e[13]=n,n=e[11],e[11]=e[14],e[14]=n,this}setPosition(e,n,r){const i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=n,i[14]=r),this}invert(){const e=this.elements,n=e[0],r=e[1],i=e[2],a=e[3],s=e[4],o=e[5],c=e[6],u=e[7],h=e[8],p=e[9],v=e[10],y=e[11],b=e[12],w=e[13],_=e[14],S=e[15],E=p*_*u-w*v*u+w*c*y-o*_*y-p*c*S+o*v*S,T=b*v*u-h*_*u-b*c*y+s*_*y+h*c*S-s*v*S,P=h*w*u-b*p*u+b*o*y-s*w*y-h*o*S+s*p*S,R=b*p*c-h*w*c-b*o*v+s*w*v+h*o*_-s*p*_,D=n*E+r*T+i*P+a*R;if(D===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const I=1/D;return e[0]=E*I,e[1]=(w*v*a-p*_*a-w*i*y+r*_*y+p*i*S-r*v*S)*I,e[2]=(o*_*a-w*c*a+w*i*u-r*_*u-o*i*S+r*c*S)*I,e[3]=(p*c*a-o*v*a-p*i*u+r*v*u+o*i*y-r*c*y)*I,e[4]=T*I,e[5]=(h*_*a-b*v*a+b*i*y-n*_*y-h*i*S+n*v*S)*I,e[6]=(b*c*a-s*_*a-b*i*u+n*_*u+s*i*S-n*c*S)*I,e[7]=(s*v*a-h*c*a+h*i*u-n*v*u-s*i*y+n*c*y)*I,e[8]=P*I,e[9]=(b*p*a-h*w*a-b*r*y+n*w*y+h*r*S-n*p*S)*I,e[10]=(s*w*a-b*o*a+b*r*u-n*w*u-s*r*S+n*o*S)*I,e[11]=(h*o*a-s*p*a-h*r*u+n*p*u+s*r*y-n*o*y)*I,e[12]=R*I,e[13]=(h*w*i-b*p*i+b*r*v-n*w*v-h*r*_+n*p*_)*I,e[14]=(b*o*i-s*w*i-b*r*c+n*w*c+s*r*_-n*o*_)*I,e[15]=(s*p*i-h*o*i+h*r*c-n*p*c-s*r*v+n*o*v)*I,this}scale(e){const n=this.elements,r=e.x,i=e.y,a=e.z;return n[0]*=r,n[4]*=i,n[8]*=a,n[1]*=r,n[5]*=i,n[9]*=a,n[2]*=r,n[6]*=i,n[10]*=a,n[3]*=r,n[7]*=i,n[11]*=a,this}getMaxScaleOnAxis(){const e=this.elements,n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],r=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(n,r,i))}makeTranslation(e,n,r){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,n,0,0,1,r,0,0,0,1),this}makeRotationX(e){const n=Math.cos(e),r=Math.sin(e);return this.set(1,0,0,0,0,n,-r,0,0,r,n,0,0,0,0,1),this}makeRotationY(e){const n=Math.cos(e),r=Math.sin(e);return this.set(n,0,r,0,0,1,0,0,-r,0,n,0,0,0,0,1),this}makeRotationZ(e){const n=Math.cos(e),r=Math.sin(e);return this.set(n,-r,0,0,r,n,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,n){const r=Math.cos(n),i=Math.sin(n),a=1-r,s=e.x,o=e.y,c=e.z,u=a*s,h=a*o;return this.set(u*s+r,u*o-i*c,u*c+i*o,0,u*o+i*c,h*o+r,h*c-i*s,0,u*c-i*o,h*c+i*s,a*c*c+r,0,0,0,0,1),this}makeScale(e,n,r){return this.set(e,0,0,0,0,n,0,0,0,0,r,0,0,0,0,1),this}makeShear(e,n,r,i,a,s){return this.set(1,r,a,0,e,1,s,0,n,i,1,0,0,0,0,1),this}compose(e,n,r){const i=this.elements,a=n._x,s=n._y,o=n._z,c=n._w,u=a+a,h=s+s,p=o+o,v=a*u,y=a*h,b=a*p,w=s*h,_=s*p,S=o*p,E=c*u,T=c*h,P=c*p,R=r.x,D=r.y,I=r.z;return i[0]=(1-(w+S))*R,i[1]=(y+P)*R,i[2]=(b-T)*R,i[3]=0,i[4]=(y-P)*D,i[5]=(1-(v+S))*D,i[6]=(_+E)*D,i[7]=0,i[8]=(b+T)*I,i[9]=(_-E)*I,i[10]=(1-(v+w))*I,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,n,r){const i=this.elements;if(e.x=i[12],e.y=i[13],e.z=i[14],this.determinant()===0)return r.set(1,1,1),n.identity(),this;let a=ug.set(i[0],i[1],i[2]).length();const s=ug.set(i[4],i[5],i[6]).length(),o=ug.set(i[8],i[9],i[10]).length();this.determinant()<0&&(a=-a),Ml.copy(this);const u=1/a,h=1/s,p=1/o;return Ml.elements[0]*=u,Ml.elements[1]*=u,Ml.elements[2]*=u,Ml.elements[4]*=h,Ml.elements[5]*=h,Ml.elements[6]*=h,Ml.elements[8]*=p,Ml.elements[9]*=p,Ml.elements[10]*=p,n.setFromRotationMatrix(Ml),r.x=a,r.y=s,r.z=o,this}makePerspective(e,n,r,i,a,s,o=Zs,c=!1){const u=this.elements,h=2*a/(n-e),p=2*a/(r-i),v=(n+e)/(n-e),y=(r+i)/(r-i);let b,w;if(c)b=a/(s-a),w=s*a/(s-a);else if(o===Zs)b=-(s+a)/(s-a),w=-2*s*a/(s-a);else if(o===Nv)b=-s/(s-a),w=-s*a/(s-a);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return u[0]=h,u[4]=0,u[8]=v,u[12]=0,u[1]=0,u[5]=p,u[9]=y,u[13]=0,u[2]=0,u[6]=0,u[10]=b,u[14]=w,u[3]=0,u[7]=0,u[11]=-1,u[15]=0,this}makeOrthographic(e,n,r,i,a,s,o=Zs,c=!1){const u=this.elements,h=2/(n-e),p=2/(r-i),v=-(n+e)/(n-e),y=-(r+i)/(r-i);let b,w;if(c)b=1/(s-a),w=s/(s-a);else if(o===Zs)b=-2/(s-a),w=-(s+a)/(s-a);else if(o===Nv)b=-1/(s-a),w=-a/(s-a);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return u[0]=h,u[4]=0,u[8]=0,u[12]=v,u[1]=0,u[5]=p,u[9]=0,u[13]=y,u[2]=0,u[6]=0,u[10]=b,u[14]=w,u[3]=0,u[7]=0,u[11]=0,u[15]=1,this}equals(e){const n=this.elements,r=e.elements;for(let i=0;i<16;i++)if(n[i]!==r[i])return!1;return!0}fromArray(e,n=0){for(let r=0;r<16;r++)this.elements[r]=e[r+n];return this}toArray(e=[],n=0){const r=this.elements;return e[n]=r[0],e[n+1]=r[1],e[n+2]=r[2],e[n+3]=r[3],e[n+4]=r[4],e[n+5]=r[5],e[n+6]=r[6],e[n+7]=r[7],e[n+8]=r[8],e[n+9]=r[9],e[n+10]=r[10],e[n+11]=r[11],e[n+12]=r[12],e[n+13]=r[13],e[n+14]=r[14],e[n+15]=r[15],e}}const ug=new ne,Ml=new qt,vMe=new ne(0,0,0),yMe=new ne(1,1,1),od=new ne,IS=new ne,Ws=new ne,cG=new qt,uG=new gi;class ro{constructor(e=0,n=0,r=0,i=ro.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=n,this._z=r,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,n,r,i=this._order){return this._x=e,this._y=n,this._z=r,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,n=this._order,r=!0){const i=e.elements,a=i[0],s=i[4],o=i[8],c=i[1],u=i[5],h=i[9],p=i[2],v=i[6],y=i[10];switch(n){case"XYZ":this._y=Math.asin(tn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-h,y),this._z=Math.atan2(-s,a)):(this._x=Math.atan2(v,u),this._z=0);break;case"YXZ":this._x=Math.asin(-tn(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(o,y),this._z=Math.atan2(c,u)):(this._y=Math.atan2(-p,a),this._z=0);break;case"ZXY":this._x=Math.asin(tn(v,-1,1)),Math.abs(v)<.9999999?(this._y=Math.atan2(-p,y),this._z=Math.atan2(-s,u)):(this._y=0,this._z=Math.atan2(c,a));break;case"ZYX":this._y=Math.asin(-tn(p,-1,1)),Math.abs(p)<.9999999?(this._x=Math.atan2(v,y),this._z=Math.atan2(c,a)):(this._x=0,this._z=Math.atan2(-s,u));break;case"YZX":this._z=Math.asin(tn(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(-h,u),this._y=Math.atan2(-p,a)):(this._x=0,this._y=Math.atan2(o,y));break;case"XZY":this._z=Math.asin(-tn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(v,u),this._y=Math.atan2(o,a)):(this._x=Math.atan2(-h,y),this._y=0);break;default:xt("Euler: .setFromRotationMatrix() encountered an unknown order: "+n)}return this._order=n,r===!0&&this._onChangeCallback(),this}setFromQuaternion(e,n,r){return cG.makeRotationFromQuaternion(e),this.setFromRotationMatrix(cG,n,r)}setFromVector3(e,n=this._order){return this.set(e.x,e.y,e.z,n)}reorder(e){return uG.setFromEuler(this),this.setFromQuaternion(uG,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ro.DEFAULT_ORDER="XYZ";class Lv{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let n=0;n1){for(let r=0;r0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.geometryInfo=this._geometryInfo.map(o=>({...o,boundingBox:o.boundingBox?o.boundingBox.toJSON():void 0,boundingSphere:o.boundingSphere?o.boundingSphere.toJSON():void 0})),i.instanceInfo=this._instanceInfo.map(o=>({...o})),i.availableInstanceIds=this._availableInstanceIds.slice(),i.availableGeometryIds=this._availableGeometryIds.slice(),i.nextIndexStart=this._nextIndexStart,i.nextVertexStart=this._nextVertexStart,i.geometryCount=this._geometryCount,i.maxInstanceCount=this._maxInstanceCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.matricesTexture=this._matricesTexture.toJSON(e),i.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(i.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(i.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(i.boundingBox=this.boundingBox.toJSON()));function a(o,c){return o[c.uuid]===void 0&&(o[c.uuid]=c.toJSON(e)),c.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=a(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const c=o.shapes;if(Array.isArray(c))for(let u=0,h=c.length;u0){i.children=[];for(let o=0;o0){i.animations=[];for(let o=0;o0&&(r.geometries=o),c.length>0&&(r.materials=c),u.length>0&&(r.textures=u),h.length>0&&(r.images=h),p.length>0&&(r.shapes=p),v.length>0&&(r.skeletons=v),y.length>0&&(r.animations=y),b.length>0&&(r.nodes=b)}return r.object=i,r;function s(o){const c=[];for(const u in o){const h=o[u];delete h.metadata,c.push(h)}return c}}clone(e){return new this.constructor().copy(this,e)}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let r=0;r0?i.multiplyScalar(1/Math.sqrt(a)):i.set(0,0,0)}static getBarycoord(e,n,r,i,a){El.subVectors(i,n),Lu.subVectors(r,n),eD.subVectors(e,n);const s=El.dot(El),o=El.dot(Lu),c=El.dot(eD),u=Lu.dot(Lu),h=Lu.dot(eD),p=s*u-o*o;if(p===0)return a.set(0,0,0),null;const v=1/p,y=(u*c-o*h)*v,b=(s*h-o*c)*v;return a.set(1-y-b,b,y)}static containsPoint(e,n,r,i){return this.getBarycoord(e,n,r,i,ku)===null?!1:ku.x>=0&&ku.y>=0&&ku.x+ku.y<=1}static getInterpolation(e,n,r,i,a,s,o,c){return this.getBarycoord(e,n,r,i,ku)===null?(c.x=0,c.y=0,"z"in c&&(c.z=0),"w"in c&&(c.w=0),null):(c.setScalar(0),c.addScaledVector(a,ku.x),c.addScaledVector(s,ku.y),c.addScaledVector(o,ku.z),c)}static getInterpolatedAttribute(e,n,r,i,a,s){return iD.setScalar(0),aD.setScalar(0),sD.setScalar(0),iD.fromBufferAttribute(e,n),aD.fromBufferAttribute(e,r),sD.fromBufferAttribute(e,i),s.setScalar(0),s.addScaledVector(iD,a.x),s.addScaledVector(aD,a.y),s.addScaledVector(sD,a.z),s}static isFrontFacing(e,n,r,i){return El.subVectors(r,n),Lu.subVectors(e,n),El.cross(Lu).dot(i)<0}set(e,n,r){return this.a.copy(e),this.b.copy(n),this.c.copy(r),this}setFromPointsAndIndices(e,n,r,i){return this.a.copy(e[n]),this.b.copy(e[r]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,n,r,i){return this.a.fromBufferAttribute(e,n),this.b.fromBufferAttribute(e,r),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return El.subVectors(this.c,this.b),Lu.subVectors(this.a,this.b),El.cross(Lu).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Ns.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,n){return Ns.getBarycoord(e,this.a,this.b,this.c,n)}getInterpolation(e,n,r,i,a){return Ns.getInterpolation(e,this.a,this.b,this.c,n,r,i,a)}containsPoint(e){return Ns.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Ns.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,n){const r=this.a,i=this.b,a=this.c;let s,o;hg.subVectors(i,r),pg.subVectors(a,r),tD.subVectors(e,r);const c=hg.dot(tD),u=pg.dot(tD);if(c<=0&&u<=0)return n.copy(r);nD.subVectors(e,i);const h=hg.dot(nD),p=pg.dot(nD);if(h>=0&&p<=h)return n.copy(i);const v=c*p-h*u;if(v<=0&&c>=0&&h<=0)return s=c/(c-h),n.copy(r).addScaledVector(hg,s);rD.subVectors(e,a);const y=hg.dot(rD),b=pg.dot(rD);if(b>=0&&y<=b)return n.copy(a);const w=y*u-c*b;if(w<=0&&u>=0&&b<=0)return o=u/(u-b),n.copy(r).addScaledVector(pg,o);const _=h*b-y*p;if(_<=0&&p-h>=0&&y-b>=0)return gG.subVectors(a,i),o=(p-h)/(p-h+(y-b)),n.copy(i).addScaledVector(gG,o);const S=1/(_+w+v);return s=w*S,o=v*S,n.copy(r).addScaledVector(hg,s).addScaledVector(pg,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const aY={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},ld={h:0,s:0,l:0},LS={h:0,s:0,l:0};function oD(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*6*(2/3-n):t}class bt{constructor(e,n,r){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,n,r)}set(e,n,r){if(n===void 0&&r===void 0){const i=e;i&&i.isColor?this.copy(i):typeof i=="number"?this.setHex(i):typeof i=="string"&&this.setStyle(i)}else this.setRGB(e,n,r);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,n=Pa){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Fn.colorSpaceToWorking(this,n),this}setRGB(e,n,r,i=Fn.workingColorSpace){return this.r=e,this.g=n,this.b=r,Fn.colorSpaceToWorking(this,i),this}setHSL(e,n,r,i=Fn.workingColorSpace){if(e=j5(e,1),n=tn(n,0,1),r=tn(r,0,1),n===0)this.r=this.g=this.b=r;else{const a=r<=.5?r*(1+n):r+n-r*n,s=2*r-a;this.r=oD(s,a,e+1/3),this.g=oD(s,a,e),this.b=oD(s,a,e-1/3)}return Fn.colorSpaceToWorking(this,i),this}setStyle(e,n=Pa){function r(a){a!==void 0&&parseFloat(a)<1&&xt("Color: Alpha component of "+e+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(e)){let a;const s=i[1],o=i[2];switch(s){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return r(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,n);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return r(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,n);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return r(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,n);break;default:xt("Color: Unknown color model "+e)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(e)){const a=i[1],s=a.length;if(s===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,n);if(s===6)return this.setHex(parseInt(a,16),n);xt("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,n);return this}setColorName(e,n=Pa){const r=aY[e.toLowerCase()];return r!==void 0?this.setHex(r,n):xt("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Qu(e.r),this.g=Qu(e.g),this.b=Qu(e.b),this}copyLinearToSRGB(e){return this.r=Zg(e.r),this.g=Zg(e.g),this.b=Zg(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Pa){return Fn.workingToColorSpace(Ca.copy(this),e),Math.round(tn(Ca.r*255,0,255))*65536+Math.round(tn(Ca.g*255,0,255))*256+Math.round(tn(Ca.b*255,0,255))}getHexString(e=Pa){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,n=Fn.workingColorSpace){Fn.workingToColorSpace(Ca.copy(this),n);const r=Ca.r,i=Ca.g,a=Ca.b,s=Math.max(r,i,a),o=Math.min(r,i,a);let c,u;const h=(o+s)/2;if(o===s)c=0,u=0;else{const p=s-o;switch(u=h<=.5?p/(s+o):p/(2-s-o),s){case r:c=(i-a)/p+(i0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const n in e){const r=e[n];if(r===void 0){xt(`Material: parameter '${n}' has value of undefined.`);continue}const i=this[n];if(i===void 0){xt(`Material: '${n}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(r):i&&i.isVector3&&r&&r.isVector3?i.copy(r):this[n]=r}}toJSON(e){const n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{}});const r={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),this.color&&this.color.isColor&&(r.color=this.color.getHex()),this.roughness!==void 0&&(r.roughness=this.roughness),this.metalness!==void 0&&(r.metalness=this.metalness),this.sheen!==void 0&&(r.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(r.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(r.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(r.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(r.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(r.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(r.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(r.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(r.shininess=this.shininess),this.clearcoat!==void 0&&(r.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(r.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(r.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(r.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(r.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,r.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(r.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(r.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(r.dispersion=this.dispersion),this.iridescence!==void 0&&(r.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(r.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(r.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(r.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(r.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(r.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(r.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(r.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(r.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(r.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(r.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(r.lightMap=this.lightMap.toJSON(e).uuid,r.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(r.aoMap=this.aoMap.toJSON(e).uuid,r.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(r.bumpMap=this.bumpMap.toJSON(e).uuid,r.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(r.normalMap=this.normalMap.toJSON(e).uuid,r.normalMapType=this.normalMapType,r.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(r.displacementMap=this.displacementMap.toJSON(e).uuid,r.displacementScale=this.displacementScale,r.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(r.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(r.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(r.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(r.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(r.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(r.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(r.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(r.combine=this.combine)),this.envMapRotation!==void 0&&(r.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(r.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(r.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(r.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(r.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(r.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(r.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(r.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(r.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(r.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(r.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(r.size=this.size),this.shadowSide!==null&&(r.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(r.sizeAttenuation=this.sizeAttenuation),this.blending!==xp&&(r.blending=this.blending),this.side!==Vc&&(r.side=this.side),this.vertexColors===!0&&(r.vertexColors=!0),this.opacity<1&&(r.opacity=this.opacity),this.transparent===!0&&(r.transparent=!0),this.blendSrc!==nM&&(r.blendSrc=this.blendSrc),this.blendDst!==rM&&(r.blendDst=this.blendDst),this.blendEquation!==vd&&(r.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(r.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(r.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(r.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(r.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(r.blendAlpha=this.blendAlpha),this.depthFunc!==Tp&&(r.depthFunc=this.depthFunc),this.depthTest===!1&&(r.depthTest=this.depthTest),this.depthWrite===!1&&(r.depthWrite=this.depthWrite),this.colorWrite===!1&&(r.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(r.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==rB&&(r.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(r.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(r.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Qh&&(r.stencilFail=this.stencilFail),this.stencilZFail!==Qh&&(r.stencilZFail=this.stencilZFail),this.stencilZPass!==Qh&&(r.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(r.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(r.rotation=this.rotation),this.polygonOffset===!0&&(r.polygonOffset=!0),this.polygonOffsetFactor!==0&&(r.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(r.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(r.linewidth=this.linewidth),this.dashSize!==void 0&&(r.dashSize=this.dashSize),this.gapSize!==void 0&&(r.gapSize=this.gapSize),this.scale!==void 0&&(r.scale=this.scale),this.dithering===!0&&(r.dithering=!0),this.alphaTest>0&&(r.alphaTest=this.alphaTest),this.alphaHash===!0&&(r.alphaHash=!0),this.alphaToCoverage===!0&&(r.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(r.premultipliedAlpha=!0),this.forceSinglePass===!0&&(r.forceSinglePass=!0),this.allowOverride===!1&&(r.allowOverride=!1),this.wireframe===!0&&(r.wireframe=!0),this.wireframeLinewidth>1&&(r.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(r.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(r.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(r.flatShading=!0),this.visible===!1&&(r.visible=!1),this.toneMapped===!1&&(r.toneMapped=!1),this.fog===!1&&(r.fog=!1),Object.keys(this.userData).length>0&&(r.userData=this.userData);function i(a){const s=[];for(const o in a){const c=a[o];delete c.metadata,s.push(c)}return s}if(n){const a=i(e.textures),s=i(e.images);a.length>0&&(r.textures=a),s.length>0&&(r.images=s)}return r}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const n=e.clippingPlanes;let r=null;if(n!==null){const i=n.length;r=new Array(i);for(let a=0;a!==i;++a)r[a]=n[a].clone()}return this.clippingPlanes=r,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.allowOverride=e.allowOverride,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class Qs extends zi{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new bt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ro,this.combine=o1,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const Gu=wMe();function wMe(){const t=new ArrayBuffer(4),e=new Float32Array(t),n=new Uint32Array(t),r=new Uint32Array(512),i=new Uint32Array(512);for(let c=0;c<256;++c){const u=c-127;u<-27?(r[c]=0,r[c|256]=32768,i[c]=24,i[c|256]=24):u<-14?(r[c]=1024>>-u-14,r[c|256]=1024>>-u-14|32768,i[c]=-u-1,i[c|256]=-u-1):u<=15?(r[c]=u+15<<10,r[c|256]=u+15<<10|32768,i[c]=13,i[c|256]=13):u<128?(r[c]=31744,r[c|256]=64512,i[c]=24,i[c|256]=24):(r[c]=31744,r[c|256]=64512,i[c]=13,i[c|256]=13)}const a=new Uint32Array(2048),s=new Uint32Array(64),o=new Uint32Array(64);for(let c=1;c<1024;++c){let u=c<<13,h=0;for(;(u&8388608)===0;)u<<=1,h-=8388608;u&=-8388609,h+=947912704,a[c]=u|h}for(let c=1024;c<2048;++c)a[c]=939524096+(c-1024<<13);for(let c=1;c<31;++c)s[c]=c<<23;s[31]=1199570944,s[32]=2147483648;for(let c=33;c<63;++c)s[c]=2147483648+(c-32<<23);s[63]=3347054592;for(let c=1;c<64;++c)c!==32&&(o[c]=1024);return{floatView:e,uint32View:n,baseTable:r,shiftTable:i,mantissaTable:a,exponentTable:s,offsetTable:o}}function Ds(t){Math.abs(t)>65504&&xt("DataUtils.toHalfFloat(): Value out of range."),t=tn(t,-65504,65504),Gu.floatView[0]=t;const e=Gu.uint32View[0],n=e>>23&511;return Gu.baseTable[n]+((e&8388607)>>Gu.shiftTable[n])}function yx(t){const e=t>>10;return Gu.uint32View[0]=Gu.mantissaTable[Gu.offsetTable[e]+(t&1023)]+Gu.exponentTable[e],Gu.floatView[0]}class MMe{static toHalfFloat(e){return Ds(e)}static fromHalfFloat(e){return yx(e)}}const Ei=new ne,kS=new Ve;let EMe=0;class qn{constructor(e,n,r=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:EMe++}),this.name="",this.array=e,this.itemSize=n,this.count=e!==void 0?e.length/n:0,this.normalized=r,this.usage=Nb,this.updateRanges=[],this.gpuType=os,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,n,r){e*=this.itemSize,r*=n.itemSize;for(let i=0,a=this.itemSize;in.count&&xt("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),n.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Oi);const e=this.attributes.position,n=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){zt("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new ne(-1/0,-1/0,-1/0),new ne(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),n)for(let r=0,i=n.length;r0&&(e.userData=this.userData),this.parameters!==void 0){const c=this.parameters;for(const u in c)c[u]!==void 0&&(e[u]=c[u]);return e}e.data={attributes:{}};const n=this.index;n!==null&&(e.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const r=this.attributes;for(const c in r){const u=r[c];e.data.attributes[c]=u.toJSON(e.data)}const i={};let a=!1;for(const c in this.morphAttributes){const u=this.morphAttributes[c],h=[];for(let p=0,v=u.length;p0&&(i[c]=h,a=!0)}a&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere=o.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=e.name;const r=e.index;r!==null&&this.setIndex(r.clone());const i=e.attributes;for(const u in i){const h=i[u];this.setAttribute(u,h.clone(n))}const a=e.morphAttributes;for(const u in a){const h=[],p=a[u];for(let v=0,y=p.length;v0){const i=n[r[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=i.length;a(e.far-e.near)**2))&&(vG.copy(a).invert(),Lh.copy(e.ray).applyMatrix4(vG),!(r.boundingBox!==null&&Lh.intersectsBox(r.boundingBox)===!1)&&this._computeIntersections(e,n,Lh)))}_computeIntersections(e,n,r){let i;const a=this.geometry,s=this.material,o=a.index,c=a.attributes.position,u=a.attributes.uv,h=a.attributes.uv1,p=a.attributes.normal,v=a.groups,y=a.drawRange;if(o!==null)if(Array.isArray(s))for(let b=0,w=v.length;bn.far?null:{distance:u,point:HS.clone(),object:t}}function VS(t,e,n,r,i,a,s,o,c,u){t.getVertexPosition(o,US),t.getVertexPosition(c,jS),t.getVertexPosition(u,zS);const h=IMe(t,e,n,r,US,jS,zS,xG);if(h){const p=new ne;Ns.getBarycoord(xG,US,jS,zS,p),i&&(h.uv=Ns.getInterpolatedAttribute(i,o,c,u,p,new Ve)),a&&(h.uv1=Ns.getInterpolatedAttribute(a,o,c,u,p,new Ve)),s&&(h.normal=Ns.getInterpolatedAttribute(s,o,c,u,p,new ne),h.normal.dot(r.direction)>0&&h.normal.multiplyScalar(-1));const v={a:o,b:c,c:u,normal:new ne,materialIndex:0};Ns.getNormal(US,jS,zS,v.normal),h.face=v,h.barycoord=p}return h}class Vp extends an{constructor(e=1,n=1,r=1,i=1,a=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:n,depth:r,widthSegments:i,heightSegments:a,depthSegments:s};const o=this;i=Math.floor(i),a=Math.floor(a),s=Math.floor(s);const c=[],u=[],h=[],p=[];let v=0,y=0;b("z","y","x",-1,-1,r,n,e,s,a,0),b("z","y","x",1,-1,r,n,-e,s,a,1),b("x","z","y",1,1,e,r,n,i,s,2),b("x","z","y",1,-1,e,r,-n,i,s,3),b("x","y","z",1,-1,e,n,r,i,a,4),b("x","y","z",-1,-1,e,n,-r,i,a,5),this.setIndex(c),this.setAttribute("position",new Pt(u,3)),this.setAttribute("normal",new Pt(h,3)),this.setAttribute("uv",new Pt(p,2));function b(w,_,S,E,T,P,R,D,I,k,B){const U=P/I,z=R/k,q=P/2,W=R/2,ee=D/2,Q=I+1,V=k+1;let $=0,Y=0;const ie=new ne;for(let de=0;de0?1:-1,h.push(ie.x,ie.y,ie.z),p.push(ae/I),p.push(1-de/k),$+=1}}for(let de=0;de0&&(n.defines=this.defines),n.vertexShader=this.vertexShader,n.fragmentShader=this.fragmentShader,n.lights=this.lights,n.clipping=this.clipping;const r={};for(const i in this.extensions)this.extensions[i]===!0&&(r[i]=!0);return Object.keys(r).length>0&&(n.extensions=r),n}}class nT extends zn{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new qt,this.projectionMatrix=new qt,this.projectionMatrixInverse=new qt,this.coordinateSystem=Zs,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(e,n){return super.copy(e,n),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const cd=new ne,bG=new Ve,_G=new Ve;class jr extends nT{constructor(e=50,n=1,r=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=r,this.far=i,this.focus=10,this.aspect=n,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const n=.5*this.getFilmHeight()/e;this.fov=Bv*2*Math.atan(n),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(bp*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Bv*2*Math.atan(Math.tan(bp*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,n,r){cd.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(cd.x,cd.y).multiplyScalar(-e/cd.z),cd.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),r.set(cd.x,cd.y).multiplyScalar(-e/cd.z)}getViewSize(e,n){return this.getViewBounds(e,bG,_G),n.subVectors(_G,bG)}setViewOffset(e,n,r,i,a,s){this.aspect=e/n,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=r,this.view.offsetY=i,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let n=e*Math.tan(bp*.5*this.fov)/this.zoom,r=2*n,i=this.aspect*r,a=-.5*i;const s=this.view;if(this.view!==null&&this.view.enabled){const c=s.fullWidth,u=s.fullHeight;a+=s.offsetX*i/c,n-=s.offsetY*r/u,i*=s.width/c,r*=s.height/u}const o=this.filmOffset;o!==0&&(a+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(a,a+i,n,n-r,e,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.fov=this.fov,n.object.zoom=this.zoom,n.object.near=this.near,n.object.far=this.far,n.object.focus=this.focus,n.object.aspect=this.aspect,this.view!==null&&(n.object.view=Object.assign({},this.view)),n.object.filmGauge=this.filmGauge,n.object.filmOffset=this.filmOffset,n}}const gg=-90,vg=1;class lY extends zn{constructor(e,n,r){super(),this.type="CubeCamera",this.renderTarget=r,this.coordinateSystem=null,this.activeMipmapLevel=0;const i=new jr(gg,vg,e,n);i.layers=this.layers,this.add(i);const a=new jr(gg,vg,e,n);a.layers=this.layers,this.add(a);const s=new jr(gg,vg,e,n);s.layers=this.layers,this.add(s);const o=new jr(gg,vg,e,n);o.layers=this.layers,this.add(o);const c=new jr(gg,vg,e,n);c.layers=this.layers,this.add(c);const u=new jr(gg,vg,e,n);u.layers=this.layers,this.add(u)}updateCoordinateSystem(){const e=this.coordinateSystem,n=this.children.concat(),[r,i,a,s,o,c]=n;for(const u of n)this.remove(u);if(e===Zs)r.up.set(0,1,0),r.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(e===Nv)r.up.set(0,-1,0),r.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const u of n)this.add(u),u.updateMatrixWorld()}update(e,n){this.parent===null&&this.updateMatrixWorld();const{renderTarget:r,activeMipmapLevel:i}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[a,s,o,c,u,h]=this.children,p=e.getRenderTarget(),v=e.getActiveCubeFace(),y=e.getActiveMipmapLevel(),b=e.xr.enabled;e.xr.enabled=!1;const w=r.texture.generateMipmaps;r.texture.generateMipmaps=!1,e.setRenderTarget(r,0,i),e.render(n,a),e.setRenderTarget(r,1,i),e.render(n,s),e.setRenderTarget(r,2,i),e.render(n,o),e.setRenderTarget(r,3,i),e.render(n,c),e.setRenderTarget(r,4,i),e.render(n,u),r.texture.generateMipmaps=w,e.setRenderTarget(r,5,i),e.render(n,h),e.setRenderTarget(p,v,y),e.xr.enabled=b,r.texture.needsPMREMUpdate=!0}}class c1 extends Gr{constructor(e=[],n=Wc,r,i,a,s,o,c,u,h){super(e,n,r,i,a,s,o,c,u,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class V5 extends to{constructor(e=1,n={}){super(e,e,n),this.isWebGLCubeRenderTarget=!0;const r={width:e,height:e,depth:1},i=[r,r,r,r,r,r];this.texture=new c1(i),this._setTextureOptions(n),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,n){this.texture.type=n.type,this.texture.colorSpace=n.colorSpace,this.texture.generateMipmaps=n.generateMipmaps,this.texture.minFilter=n.minFilter,this.texture.magFilter=n.magFilter;const r={uniforms:{tEquirect:{value:null}},vertexShader:` - - varying vec3 vWorldDirection; - - vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); - - } - - void main() { - - vWorldDirection = transformDirection( position, modelMatrix ); - - #include - #include - - } - `,fragmentShader:` - - uniform sampler2D tEquirect; - - varying vec3 vWorldDirection; - - #include - - void main() { - - vec3 direction = normalize( vWorldDirection ); - - vec2 sampleUV = equirectUv( direction ); - - gl_FragColor = texture2D( tEquirect, sampleUV ); - - } - `},i=new Vp(5,5,5),a=new Yo({name:"CubemapFromEquirect",uniforms:kv(r.uniforms),vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,side:ls,blending:Fc});a.uniforms.tEquirect.value=n;const s=new vi(i,a),o=n.minFilter;return n.minFilter===zo&&(n.minFilter=vr),new lY(1,10,this).update(e,s),n.minFilter=o,s.geometry.dispose(),s.material.dispose(),this}clear(e,n=!0,r=!0,i=!0){const a=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(n,r,i);e.setRenderTarget(a)}}let $u=class extends zn{constructor(){super(),this.isGroup=!0,this.type="Group"}};const FMe={type:"move"};class UA{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new $u,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new $u,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new ne,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new ne),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new $u,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new ne,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new ne),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const n=this._hand;if(n)for(const r of e.hand.values())this._getHandJoint(n,r)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,n,r){let i=null,a=null,s=null;const o=this._targetRay,c=this._grip,u=this._hand;if(e&&n.session.visibilityState!=="visible-blurred"){if(u&&e.hand){s=!0;for(const w of e.hand.values()){const _=n.getJointPose(w,r),S=this._getHandJoint(u,w);_!==null&&(S.matrix.fromArray(_.transform.matrix),S.matrix.decompose(S.position,S.rotation,S.scale),S.matrixWorldNeedsUpdate=!0,S.jointRadius=_.radius),S.visible=_!==null}const h=u.joints["index-finger-tip"],p=u.joints["thumb-tip"],v=h.position.distanceTo(p.position),y=.02,b=.005;u.inputState.pinching&&v>y+b?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!u.inputState.pinching&&v<=y-b&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else c!==null&&e.gripSpace&&(a=n.getPose(e.gripSpace,r),a!==null&&(c.matrix.fromArray(a.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,a.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(a.linearVelocity)):c.hasLinearVelocity=!1,a.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(a.angularVelocity)):c.hasAngularVelocity=!1));o!==null&&(i=n.getPose(e.targetRaySpace,r),i===null&&a!==null&&(i=a),i!==null&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(FMe)))}return o!==null&&(o.visible=i!==null),c!==null&&(c.visible=a!==null),u!==null&&(u.visible=s!==null),this}_getHandJoint(e,n){if(e.joints[n.jointName]===void 0){const r=new $u;r.matrixAutoUpdate=!1,r.visible=!1,e.joints[n.jointName]=r,e.add(r)}return e.joints[n.jointName]}}class rT{constructor(e,n=25e-5){this.isFogExp2=!0,this.name="",this.color=new bt(e),this.density=n}clone(){return new rT(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class iT{constructor(e,n=1,r=1e3){this.isFog=!0,this.name="",this.color=new bt(e),this.near=n,this.far=r}clone(){return new iT(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class W5 extends zn{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new ro,this.environmentIntensity=1,this.environmentRotation=new ro,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,n){return super.copy(e,n),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const n=super.toJSON(e);return this.fog!==null&&(n.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(n.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(n.object.backgroundIntensity=this.backgroundIntensity),n.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(n.object.environmentIntensity=this.environmentIntensity),n.object.environmentRotation=this.environmentRotation.toArray(),n}}class u1{constructor(e,n){this.isInterleavedBuffer=!0,this.array=e,this.stride=n,this.count=e!==void 0?e.length/n:0,this.usage=Nb,this.updateRanges=[],this.version=0,this.uuid=eo()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,n,r){e*=this.stride,r*=n.stride;for(let i=0,a=this.stride;ie.far||n.push({distance:c,point:ix.clone(),uv:Ns.getInterpolation(ix,WS,sx,qS,SG,uD,AG,new Ve),face:null,object:this})}copy(e,n){return super.copy(e,n),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}}function $S(t,e,n,r,i,a){_g.subVectors(t,n).addScalar(.5).multiply(r),i!==void 0?(ax.x=a*_g.x-i*_g.y,ax.y=i*_g.x+a*_g.y):ax.copy(_g),t.copy(e),t.x+=ax.x,t.y+=ax.y,t.applyMatrix4(cY)}const XS=new ne,wG=new ne;class fY extends zn{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const n=e.levels;for(let r=0,i=n.length;r0){let r,i;for(r=1,i=n.length;r0){XS.setFromMatrixPosition(this.matrixWorld);const i=e.ray.origin.distanceTo(XS);this.getObjectForDistance(i).raycast(e,n)}}update(e){const n=this.levels;if(n.length>1){XS.setFromMatrixPosition(e.matrixWorld),wG.setFromMatrixPosition(this.matrixWorld);const r=XS.distanceTo(wG)/e.zoom;n[0].object.visible=!0;let i,a;for(i=1,a=n.length;i=s)n[i-1].object.visible=!1,n[i].object.visible=!0;else break}for(this._currentLevel=i-1;i1?null:n.copy(e.start).addScaledVector(r,a)}intersectsLine(e){const n=this.distanceToPoint(e.start),r=this.distanceToPoint(e.end);return n<0&&r>0||r<0&&n>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,n){const r=n||HMe.getNormalMatrix(e),i=this.coplanarPoint(hD).applyMatrix4(e),a=this.normal.applyMatrix3(r).normalize();return this.constant=-i.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const kh=new Zi,VMe=new Ve(.5,.5),JS=new ne;class ly{constructor(e=new ju,n=new ju,r=new ju,i=new ju,a=new ju,s=new ju){this.planes=[e,n,r,i,a,s]}set(e,n,r,i,a,s){const o=this.planes;return o[0].copy(e),o[1].copy(n),o[2].copy(r),o[3].copy(i),o[4].copy(a),o[5].copy(s),this}copy(e){const n=this.planes;for(let r=0;r<6;r++)n[r].copy(e.planes[r]);return this}setFromProjectionMatrix(e,n=Zs,r=!1){const i=this.planes,a=e.elements,s=a[0],o=a[1],c=a[2],u=a[3],h=a[4],p=a[5],v=a[6],y=a[7],b=a[8],w=a[9],_=a[10],S=a[11],E=a[12],T=a[13],P=a[14],R=a[15];if(i[0].setComponents(u-s,y-h,S-b,R-E).normalize(),i[1].setComponents(u+s,y+h,S+b,R+E).normalize(),i[2].setComponents(u+o,y+p,S+w,R+T).normalize(),i[3].setComponents(u-o,y-p,S-w,R-T).normalize(),r)i[4].setComponents(c,v,_,P).normalize(),i[5].setComponents(u-c,y-v,S-_,R-P).normalize();else if(i[4].setComponents(u-c,y-v,S-_,R-P).normalize(),n===Zs)i[5].setComponents(u+c,y+v,S+_,R+P).normalize();else if(n===Nv)i[5].setComponents(c,v,_,P).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+n);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),kh.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const n=e.geometry;n.boundingSphere===null&&n.computeBoundingSphere(),kh.copy(n.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(kh)}intersectsSprite(e){kh.center.set(0,0,0);const n=VMe.distanceTo(e.center);return kh.radius=.7071067811865476+n,kh.applyMatrix4(e.matrixWorld),this.intersectsSphere(kh)}intersectsSphere(e){const n=this.planes,r=e.center,i=-e.radius;for(let a=0;a<6;a++)if(n[a].distanceToPoint(r)0?e.max.x:e.min.x,JS.y=i.normal.y>0?e.max.y:e.min.y,JS.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(JS)<0)return!1}return!0}containsPoint(e){const n=this.planes;for(let r=0;r<6;r++)if(n[r].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}const wc=new qt,Mc=new ly;class sT{constructor(){this.coordinateSystem=Zs}intersectsObject(e,n){if(!n.isArrayCamera||n.cameras.length===0)return!1;for(let r=0;r=a.length&&a.push({start:-1,count:-1,z:-1,index:-1});const o=a[this.index];s.push(o),this.index++,o.start=e,o.count=n,o.z=r,o.index=i}reset(){this.list.length=0,this.index=0}}const Ps=new qt,XMe=new bt(1,1,1),NG=new ly,KMe=new sT,ZS=new Oi,Fh=new Zi,cx=new ne,IG=new ne,YMe=new ne,mD=new $Me,Ra=new vi,QS=[];function JMe(t,e,n=0){const r=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const i=t.count;for(let a=0;a65535?new Uint32Array(i):new Uint16Array(i);n.setIndex(new qn(a,1))}this._geometryInitialized=!0}}_validateGeometry(e){const n=this.geometry;if(!!e.getIndex()!=!!n.getIndex())throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const r in n.attributes){if(!e.hasAttribute(r))throw new Error(`THREE.BatchedMesh: Added geometry missing "${r}". All geometries must have consistent attributes.`);const i=e.getAttribute(r),a=n.getAttribute(r);if(i.itemSize!==a.itemSize||i.normalized!==a.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(e){const n=this._instanceInfo;if(e<0||e>=n.length||n[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${e}. Instance is either out of range or has been deleted.`)}validateGeometryId(e){const n=this._geometryInfo;if(e<0||e>=n.length||n[e].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${e}. Geometry is either out of range or has been deleted.`)}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Oi);const e=this.boundingBox,n=this._instanceInfo;e.makeEmpty();for(let r=0,i=n.length;r=this.maxInstanceCount&&this._availableInstanceIds.length===0)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const r={visible:!0,active:!0,geometryIndex:e};let i=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(pD),i=this._availableInstanceIds.shift(),this._instanceInfo[i]=r):(i=this._instanceInfo.length,this._instanceInfo.push(r));const a=this._matricesTexture;Ps.identity().toArray(a.image.data,i*16),a.needsUpdate=!0;const s=this._colorsTexture;return s&&(XMe.toArray(s.image.data,i*4),s.needsUpdate=!0),this._visibilityChanged=!0,i}addGeometry(e,n=-1,r=-1){this._initializeGeometry(e),this._validateGeometry(e);const i={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},a=this._geometryInfo;i.vertexStart=this._nextVertexStart,i.reservedVertexCount=n===-1?e.getAttribute("position").count:n;const s=e.getIndex();if(s!==null&&(i.indexStart=this._nextIndexStart,i.reservedIndexCount=r===-1?s.count:r),i.indexStart!==-1&&i.indexStart+i.reservedIndexCount>this._maxIndexCount||i.vertexStart+i.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let c;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(pD),c=this._availableGeometryIds.shift(),a[c]=i):(c=this._geometryCount,this._geometryCount++,a.push(i)),this.setGeometryAt(c,e),this._nextIndexStart=i.indexStart+i.reservedIndexCount,this._nextVertexStart=i.vertexStart+i.reservedVertexCount,c}setGeometryAt(e,n){if(e>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(n);const r=this.geometry,i=r.getIndex()!==null,a=r.getIndex(),s=n.getIndex(),o=this._geometryInfo[e];if(i&&s.count>o.reservedIndexCount||n.attributes.position.count>o.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const c=o.vertexStart,u=o.reservedVertexCount;o.vertexCount=n.getAttribute("position").count;for(const h in r.attributes){const p=n.getAttribute(h),v=r.getAttribute(h);JMe(p,v,c);const y=p.itemSize;for(let b=p.count,w=u;b=n.length||n[e].active===!1)return this;const r=this._instanceInfo;for(let i=0,a=r.length;io).sort((s,o)=>r[s].vertexStart-r[o].vertexStart),a=this.geometry;for(let s=0,o=r.length;s=this._geometryCount)return null;const r=this.geometry,i=this._geometryInfo[e];if(i.boundingBox===null){const a=new Oi,s=r.index,o=r.attributes.position;for(let c=i.start,u=i.start+i.count;c=this._geometryCount)return null;const r=this.geometry,i=this._geometryInfo[e];if(i.boundingSphere===null){const a=new Zi;this.getBoundingBoxAt(e,ZS),ZS.getCenter(a.center);const s=r.index,o=r.attributes.position;let c=0;for(let u=i.start,h=i.start+i.count;uo.active);if(Math.max(...r.map(o=>o.vertexStart+o.reservedVertexCount))>e)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${n}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...r.map(c=>c.indexStart+c.reservedIndexCount))>n)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${n}. Cannot shrink further.`);const a=this.geometry;a.dispose(),this._maxVertexCount=e,this._maxIndexCount=n,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new an,this._initializeGeometry(a));const s=this.geometry;a.index&&Uh(a.index.array,s.index.array);for(const o in a.attributes)Uh(a.attributes[o].array,s.attributes[o].array)}raycast(e,n){const r=this._instanceInfo,i=this._geometryInfo,a=this.matrixWorld,s=this.geometry;Ra.material=this.material,Ra.geometry.index=s.index,Ra.geometry.attributes=s.attributes,Ra.geometry.boundingBox===null&&(Ra.geometry.boundingBox=new Oi),Ra.geometry.boundingSphere===null&&(Ra.geometry.boundingSphere=new Zi);for(let o=0,c=r.length;o({...n,boundingBox:n.boundingBox!==null?n.boundingBox.clone():null,boundingSphere:n.boundingSphere!==null?n.boundingSphere.clone():null})),this._instanceInfo=e._instanceInfo.map(n=>({...n})),this._availableInstanceIds=e._availableInstanceIds.slice(),this._availableGeometryIds=e._availableGeometryIds.slice(),this._nextIndexStart=e._nextIndexStart,this._nextVertexStart=e._nextVertexStart,this._geometryCount=e._geometryCount,this._maxInstanceCount=e._maxInstanceCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._indirectTexture=e._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&&(this._colorsTexture=e._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(e,n,r,i,a){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=i.getIndex(),o=s===null?1:s.array.BYTES_PER_ELEMENT,c=this._instanceInfo,u=this._multiDrawStarts,h=this._multiDrawCounts,p=this._geometryInfo,v=this.perObjectFrustumCulled,y=this._indirectTexture,b=y.image.data,w=r.isArrayCamera?KMe:NG;v&&!r.isArrayCamera&&(Ps.multiplyMatrices(r.projectionMatrix,r.matrixWorldInverse).multiply(this.matrixWorld),NG.setFromProjectionMatrix(Ps,r.coordinateSystem,r.reversedDepth));let _=0;if(this.sortObjects){Ps.copy(this.matrixWorld).invert(),cx.setFromMatrixPosition(r.matrixWorld).applyMatrix4(Ps),IG.set(0,0,-1).transformDirection(r.matrixWorld).transformDirection(Ps);for(let T=0,P=c.length;T0){const i=n[r[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=i.length;ar)return;gD.applyMatrix4(t.matrixWorld);const u=e.ray.origin.distanceTo(gD);if(!(ue.far))return{distance:u,point:LG.clone().applyMatrix4(t.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:t}}const kG=new ne,FG=new ne;class Hl extends of{constructor(e,n){super(e,n),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,r=[];for(let i=0,a=n.count;i0){const i=n[r[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=i.length;ai.far)return;a.push({distance:u,distanceToRay:Math.sqrt(o),point:c,index:e,face:null,faceIndex:null,barycoord:null,object:s})}}class hY extends Gr{constructor(e,n,r,i,a=vr,s=vr,o,c,u){super(e,n,r,i,a,s,o,c,u),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;const h=this;function p(){h.needsUpdate=!0,h._requestVideoFrameCallbackId=e.requestVideoFrameCallback(p)}"requestVideoFrameCallback"in e&&(this._requestVideoFrameCallbackId=e.requestVideoFrameCallback(p))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;"requestVideoFrameCallback"in e===!1&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&&(this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),this._requestVideoFrameCallbackId=0),super.dispose()}}class ZMe extends hY{constructor(e,n,r,i,a,s,o,c){super({},e,n,r,i,a,s,o,c),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(e){this.image=e,this.needsUpdate=!0}}class QMe extends Gr{constructor(e,n){super({width:e,height:n}),this.isFramebufferTexture=!0,this.magFilter=si,this.minFilter=si,this.generateMipmaps=!1,this.needsUpdate=!0}}class lT extends Gr{constructor(e,n,r,i,a,s,o,c,u,h,p,v){super(null,s,o,c,u,h,i,a,p,v),this.isCompressedTexture=!0,this.image={width:n,height:r},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class eEe extends lT{constructor(e,n,r,i,a,s){super(e,n,r,a,s),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=ss,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class tEe extends lT{constructor(e,n,r){super(void 0,e[0].width,e[0].height,n,r,Wc),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}}class nEe extends Gr{constructor(e,n,r,i,a,s,o,c,u){super(e,n,r,i,a,s,o,c,u),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Fv extends Gr{constructor(e,n,r=Ko,i,a,s,o=si,c=si,u,h=$c,p=1){if(h!==$c&&h!==Sd)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const v={width:e,height:n,depth:p};super(v,i,a,s,o,c,h,r,u),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new Ad(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const n=super.toJSON(e);return this.compareFunction!==null&&(n.compareFunction=this.compareFunction),n}}class pY extends Fv{constructor(e,n=Ko,r=Wc,i,a,s=si,o=si,c,u=$c){const h={width:e,height:e,depth:1},p=[h,h,h,h,h,h];super(e,e,n,r,i,a,s,o,c,u),this.image=p,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}}class J5 extends Gr{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}}class cT extends an{constructor(e=1,n=1,r=4,i=8,a=1){super(),this.type="CapsuleGeometry",this.parameters={radius:e,height:n,capSegments:r,radialSegments:i,heightSegments:a},n=Math.max(0,n),r=Math.max(1,Math.floor(r)),i=Math.max(3,Math.floor(i)),a=Math.max(1,Math.floor(a));const s=[],o=[],c=[],u=[],h=n/2,p=Math.PI/2*e,v=n,y=2*p+v,b=r*2+a,w=i+1,_=new ne,S=new ne;for(let E=0;E<=b;E++){let T=0,P=0,R=0,D=0;if(E<=r){const B=E/r,U=B*Math.PI/2;P=-h-e*Math.cos(U),R=e*Math.sin(U),D=-e*Math.cos(U),T=B*p}else if(E<=r+a){const B=(E-r)/a;P=-h+B*n,R=e,D=0,T=p+B*v}else{const B=(E-r-a)/r,U=B*Math.PI/2;P=h+e*Math.sin(U),R=e*Math.cos(U),D=e*Math.sin(U),T=p+v+B*p}const I=Math.max(0,Math.min(1,T/y));let k=0;E===0?k=.5/i:E===b&&(k=-.5/i);for(let B=0;B<=i;B++){const U=B/i,z=U*Math.PI*2,q=Math.sin(z),W=Math.cos(z);S.x=-R*W,S.y=P,S.z=R*q,o.push(S.x,S.y,S.z),_.set(-R*W,D,R*q),_.normalize(),c.push(_.x,_.y,_.z),u.push(U+k,I)}if(E>0){const B=(E-1)*w;for(let U=0;U0&&T(!0),n>0&&T(!1)),this.setIndex(h),this.setAttribute("position",new Pt(p,3)),this.setAttribute("normal",new Pt(v,3)),this.setAttribute("uv",new Pt(y,2));function E(){const P=new ne,R=new ne;let D=0;const I=(n-e)/r;for(let k=0;k<=a;k++){const B=[],U=k/a,z=U*(n-e)+e;for(let q=0;q<=i;q++){const W=q/i,ee=W*c+o,Q=Math.sin(ee),V=Math.cos(ee);R.x=z*Q,R.y=-U*r+_,R.z=z*V,p.push(R.x,R.y,R.z),P.set(Q,I,V).normalize(),v.push(P.x,P.y,P.z),y.push(W,1-U),B.push(b++)}w.push(B)}for(let k=0;k0||B!==0)&&(h.push(U,z,W),D+=3),(n>0||B!==a-1)&&(h.push(z,q,W),D+=3)}u.addGroup(S,D,0),S+=D}function T(P){const R=b,D=new Ve,I=new ne;let k=0;const B=P===!0?e:n,U=P===!0?1:-1;for(let q=1;q<=i;q++)p.push(0,_*U,0),v.push(0,U,0),y.push(.5,.5),b++;const z=b;for(let q=0;q<=i;q++){const ee=q/i*c+o,Q=Math.cos(ee),V=Math.sin(ee);I.x=B*V,I.y=_*U,I.z=B*Q,p.push(I.x,I.y,I.z),v.push(0,U,0),D.x=Q*.5+.5,D.y=V*.5*U+.5,y.push(D.x,D.y),b++}for(let q=0;q.9&&I<.1&&(T<.2&&(s[E+0]+=1),P<.2&&(s[E+2]+=1),R<.2&&(s[E+4]+=1))}}function v(E){a.push(E.x,E.y,E.z)}function y(E,T){const P=E*3;T.x=e[P+0],T.y=e[P+1],T.z=e[P+2]}function b(){const E=new ne,T=new ne,P=new ne,R=new ne,D=new Ve,I=new Ve,k=new Ve;for(let B=0,U=0;B0)c=i-1;else{c=i;break}if(i=c,r[i]===s)return i/(a-1);const h=r[i],v=r[i+1]-h,y=(s-h)/v;return(i+y)/(a-1)}getTangent(e,n){let i=e-1e-4,a=e+1e-4;i<0&&(i=0),a>1&&(a=1);const s=this.getPoint(i),o=this.getPoint(a),c=n||(s.isVector2?new Ve:new ne);return c.copy(o).sub(s).normalize(),c}getTangentAt(e,n){const r=this.getUtoTmapping(e);return this.getTangent(r,n)}computeFrenetFrames(e,n=!1){const r=new ne,i=[],a=[],s=[],o=new ne,c=new qt;for(let y=0;y<=e;y++){const b=y/e;i[y]=this.getTangentAt(b,new ne)}a[0]=new ne,s[0]=new ne;let u=Number.MAX_VALUE;const h=Math.abs(i[0].x),p=Math.abs(i[0].y),v=Math.abs(i[0].z);h<=u&&(u=h,r.set(1,0,0)),p<=u&&(u=p,r.set(0,1,0)),v<=u&&r.set(0,0,1),o.crossVectors(i[0],r).normalize(),a[0].crossVectors(i[0],o),s[0].crossVectors(i[0],a[0]);for(let y=1;y<=e;y++){if(a[y]=a[y-1].clone(),s[y]=s[y-1].clone(),o.crossVectors(i[y-1],i[y]),o.length()>Number.EPSILON){o.normalize();const b=Math.acos(tn(i[y-1].dot(i[y]),-1,1));a[y].applyMatrix4(c.makeRotationAxis(o,b))}s[y].crossVectors(i[y],a[y])}if(n===!0){let y=Math.acos(tn(a[0].dot(a[e]),-1,1));y/=e,i[0].dot(o.crossVectors(a[0],a[e]))>0&&(y=-y);for(let b=1;b<=e;b++)a[b].applyMatrix4(c.makeRotationAxis(i[b],y*b)),s[b].crossVectors(i[b],a[b])}return{tangents:i,normals:a,binormals:s}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.7,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class dT extends Vl{constructor(e=0,n=0,r=1,i=1,a=0,s=Math.PI*2,o=!1,c=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=n,this.xRadius=r,this.yRadius=i,this.aStartAngle=a,this.aEndAngle=s,this.aClockwise=o,this.aRotation=c}getPoint(e,n=new Ve){const r=n,i=Math.PI*2;let a=this.aEndAngle-this.aStartAngle;const s=Math.abs(a)i;)a-=i;a0?0:(Math.floor(Math.abs(o)/a)+1)*a:c===0&&o===a-1&&(o=a-2,c=1);let u,h;this.closed||o>0?u=i[(o-1)%a]:(oA.subVectors(i[0],i[1]).add(i[0]),u=oA);const p=i[o%a],v=i[(o+1)%a];if(this.closed||o+2i.length-2?i.length-1:s+1],p=i[s>i.length-3?i.length-1:s+2];return r.set(zG(o,c.x,u.x,h.x,p.x),zG(o,c.y,u.y,h.y,p.y)),r}copy(e){super.copy(e),this.points=[];for(let n=0,r=e.points.length;n=r){const s=i[a]-r,o=this.curves[a],c=o.getLength(),u=c===0?0:1-s/c;return o.getPointAt(u,n)}a++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let n=0;for(let r=0,i=this.curves.length;r1&&!n[n.length-1].equals(n[0])&&n.push(n[0]),n}copy(e){super.copy(e),this.curves=[];for(let n=0,r=e.curves.length;n0){const p=u.getPoint(0);p.equals(this.currentPoint)||this.lineTo(p.x,p.y)}this.curves.push(u);const h=u.getPoint(1);return this.currentPoint.copy(h),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class _p extends $M{constructor(e){super(e),this.uuid=eo(),this.type="Shape",this.holes=[]}getPointsHoles(e){const n=[];for(let r=0,i=this.holes.length;r80*n){o=t[0],c=t[1];let h=o,p=c;for(let v=n;vh&&(h=y),b>p&&(p=b)}u=Math.max(h-o,p-c),u=u!==0?32767/u:0}return Lb(a,s,n,o,c,u,0),s}function _Y(t,e,n,r,i){let a;if(i===EEe(t,e,n,r)>0)for(let s=e;s=e;s-=r)a=GG(s/r|0,t[s],t[s+1],a);return a&&Uv(a,a.next)&&(Fb(a),a=a.next),a}function Op(t,e){if(!t)return t;e||(e=t);let n=t,r;do if(r=!1,!n.steiner&&(Uv(n,n.next)||Yr(n.prev,n,n.next)===0)){if(Fb(n),n=e=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==e);return e}function Lb(t,e,n,r,i,a,s){if(!t)return;!s&&a&&bEe(t,r,i,a);let o=t;for(;t.prev!==t.next;){const c=t.prev,u=t.next;if(a?dEe(t,r,i,a):fEe(t)){e.push(c.i,t.i,u.i),Fb(t),t=u.next,o=u.next;continue}if(t=u,t===o){s?s===1?(t=hEe(Op(t),e),Lb(t,e,n,r,i,a,2)):s===2&&pEe(t,e,n,r,i,a):Lb(Op(t),e,n,r,i,a,1);break}}}function fEe(t){const e=t.prev,n=t,r=t.next;if(Yr(e,n,r)>=0)return!1;const i=e.x,a=n.x,s=r.x,o=e.y,c=n.y,u=r.y,h=Math.min(i,a,s),p=Math.min(o,c,u),v=Math.max(i,a,s),y=Math.max(o,c,u);let b=r.next;for(;b!==e;){if(b.x>=h&&b.x<=v&&b.y>=p&&b.y<=y&&xx(i,o,a,c,s,u,b.x,b.y)&&Yr(b.prev,b,b.next)>=0)return!1;b=b.next}return!0}function dEe(t,e,n,r){const i=t.prev,a=t,s=t.next;if(Yr(i,a,s)>=0)return!1;const o=i.x,c=a.x,u=s.x,h=i.y,p=a.y,v=s.y,y=Math.min(o,c,u),b=Math.min(h,p,v),w=Math.max(o,c,u),_=Math.max(h,p,v),S=sB(y,b,e,n,r),E=sB(w,_,e,n,r);let T=t.prevZ,P=t.nextZ;for(;T&&T.z>=S&&P&&P.z<=E;){if(T.x>=y&&T.x<=w&&T.y>=b&&T.y<=_&&T!==i&&T!==s&&xx(o,h,c,p,u,v,T.x,T.y)&&Yr(T.prev,T,T.next)>=0||(T=T.prevZ,P.x>=y&&P.x<=w&&P.y>=b&&P.y<=_&&P!==i&&P!==s&&xx(o,h,c,p,u,v,P.x,P.y)&&Yr(P.prev,P,P.next)>=0))return!1;P=P.nextZ}for(;T&&T.z>=S;){if(T.x>=y&&T.x<=w&&T.y>=b&&T.y<=_&&T!==i&&T!==s&&xx(o,h,c,p,u,v,T.x,T.y)&&Yr(T.prev,T,T.next)>=0)return!1;T=T.prevZ}for(;P&&P.z<=E;){if(P.x>=y&&P.x<=w&&P.y>=b&&P.y<=_&&P!==i&&P!==s&&xx(o,h,c,p,u,v,P.x,P.y)&&Yr(P.prev,P,P.next)>=0)return!1;P=P.nextZ}return!0}function hEe(t,e){let n=t;do{const r=n.prev,i=n.next.next;!Uv(r,i)&&AY(r,n,n.next,i)&&kb(r,i)&&kb(i,r)&&(e.push(r.i,n.i,i.i),Fb(n),Fb(n.next),n=t=i),n=n.next}while(n!==t);return Op(n)}function pEe(t,e,n,r,i,a){let s=t;do{let o=s.next.next;for(;o!==s.prev;){if(s.i!==o.i&&AEe(s,o)){let c=wY(s,o);s=Op(s,s.next),c=Op(c,c.next),Lb(s,e,n,r,i,a,0),Lb(c,e,n,r,i,a,0);return}o=o.next}s=s.next}while(s!==t)}function mEe(t,e,n,r){const i=[];for(let a=0,s=e.length;a=n.next.y&&n.next.y!==n.y){const p=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(p<=r&&p>a&&(a=p,s=n.x=n.x&&n.x>=c&&r!==n.x&&SY(is.x||n.x===s.x&&xEe(s,n)))&&(s=n,h=p)}n=n.next}while(n!==o);return s}function xEe(t,e){return Yr(t.prev,t,e.prev)<0&&Yr(e.next,t,t.next)<0}function bEe(t,e,n,r){let i=t;do i.z===0&&(i.z=sB(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,_Ee(i)}function _Ee(t){let e,n=1;do{let r=t,i;t=null;let a=null;for(e=0;r;){e++;let s=r,o=0;for(let u=0;u0||c>0&&s;)o!==0&&(c===0||!s||r.z<=s.z)?(i=r,r=r.nextZ,o--):(i=s,s=s.nextZ,c--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=s}a.nextZ=null,n*=2}while(e>1);return t}function sB(t,e,n,r,i){return t=(t-n)*i|0,e=(e-r)*i|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function SEe(t){let e=t,n=t;do(e.x=(t-s)*(a-o)&&(t-s)*(r-o)>=(n-s)*(e-o)&&(n-s)*(a-o)>=(i-s)*(r-o)}function xx(t,e,n,r,i,a,s,o){return!(t===s&&e===o)&&SY(t,e,n,r,i,a,s,o)}function AEe(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!wEe(t,e)&&(kb(t,e)&&kb(e,t)&&MEe(t,e)&&(Yr(t.prev,t,e.prev)||Yr(t,e.prev,e))||Uv(t,e)&&Yr(t.prev,t,t.next)>0&&Yr(e.prev,e,e.next)>0)}function Yr(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Uv(t,e){return t.x===e.x&&t.y===e.y}function AY(t,e,n,r){const i=cA(Yr(t,e,n)),a=cA(Yr(t,e,r)),s=cA(Yr(n,r,t)),o=cA(Yr(n,r,e));return!!(i!==a&&s!==o||i===0&&lA(t,n,e)||a===0&&lA(t,r,e)||s===0&&lA(n,t,r)||o===0&&lA(n,e,r))}function lA(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function cA(t){return t>0?1:t<0?-1:0}function wEe(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&AY(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}function kb(t,e){return Yr(t.prev,t,t.next)<0?Yr(t,e,t.next)>=0&&Yr(t,t.prev,e)>=0:Yr(t,e,t.prev)<0||Yr(t,t.next,e)<0}function MEe(t,e){let n=t,r=!1;const i=(t.x+e.x)/2,a=(t.y+e.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==t);return r}function wY(t,e){const n=oB(t.i,t.x,t.y),r=oB(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function GG(t,e,n,r){const i=oB(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Fb(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function oB(t,e,n){return{i:t,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function EEe(t,e,n,r){let i=0;for(let a=e,s=n-r;a2&&t[e-1].equals(t[0])&&t.pop()}function VG(t,e){for(let n=0;nNumber.EPSILON){const Ne=Math.sqrt(H),je=Math.sqrt(Ze*Ze+te*te),Ie=Ue.x-Et/Ne,_t=Ue.y+ft/Ne,lt=Be.x-te/je,Tt=Be.y+Ze/je,Gt=((lt-Ie)*te-(Tt-_t)*Ze)/(ft*te-Et*Ze);Ye=Ie+ft*Gt-we.x,re=_t+Et*Gt-we.y;const Qe=Ye*Ye+re*re;if(Qe<=2)return new Ve(Ye,re);At=Math.sqrt(Qe/2)}else{let Ne=!1;ft>Number.EPSILON?Ze>Number.EPSILON&&(Ne=!0):ft<-Number.EPSILON?Ze<-Number.EPSILON&&(Ne=!0):Math.sign(Et)===Math.sign(te)&&(Ne=!0),Ne?(Ye=-Et,re=ft,At=Math.sqrt(H)):(Ye=ft,re=Et,At=Math.sqrt(H/2))}return new Ve(Ye/At,re/At)}const ie=[];for(let we=0,Ue=Q.length,Be=Ue-1,Ye=we+1;we=0;we--){const Ue=we/_,Be=y*Math.cos(Ue*Math.PI/2),Ye=b*Math.sin(Ue*Math.PI/2)+w;for(let re=0,At=Q.length;re=0;){const Ye=Be;let re=Be-1;re<0&&(re=we.length-1);for(let At=0,ft=h+_*2;At0)&&y.push(T,P,D),(S!==r-1||c0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get dispersion(){return this._dispersion}set dispersion(e){this._dispersion>0!=e>0&&this.version++,this._dispersion=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.dispersion=e.dispersion,this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class TY extends zi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new bt(16777215),this.specular=new bt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=zd,this.normalScale=new Ve(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ro,this.combine=o1,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class CY extends zi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new bt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=zd,this.normalScale=new Ve(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class RY extends zi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=zd,this.normalScale=new Ve(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class OY extends zi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new bt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=zd,this.normalScale=new Ve(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new ro,this.combine=o1,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ak extends zi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=qK,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class sk extends zi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}class PY extends zi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new bt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=zd,this.normalScale=new Ve(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this.fog=e.fog,this}}class DY extends La{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function hp(t,e){return!t||t.constructor===e?t:typeof e.BYTES_PER_ELEMENT=="number"?new e(t):Array.prototype.slice.call(t)}function NY(t){function e(i,a){return t[i]-t[a]}const n=t.length,r=new Array(n);for(let i=0;i!==n;++i)r[i]=i;return r.sort(e),r}function lB(t,e,n){const r=t.length,i=new t.constructor(r);for(let a=0,s=0;s!==r;++a){const o=n[a]*e;for(let c=0;c!==e;++c)i[s++]=t[o+c]}return i}function ok(t,e,n,r){let i=1,a=t[0];for(;a!==void 0&&a[r]===void 0;)a=t[i++];if(a===void 0)return;let s=a[r];if(s!==void 0)if(Array.isArray(s))do s=a[r],s!==void 0&&(e.push(a.time),n.push(...s)),a=t[i++];while(a!==void 0);else if(s.toArray!==void 0)do s=a[r],s!==void 0&&(e.push(a.time),s.toArray(n,n.length)),a=t[i++];while(a!==void 0);else do s=a[r],s!==void 0&&(e.push(a.time),n.push(s)),a=t[i++];while(a!==void 0)}function PEe(t,e,n,r,i=30){const a=t.clone();a.name=e;const s=[];for(let c=0;c=r)){p.push(u.times[y]);for(let w=0;wa.tracks[c].times[0]&&(o=a.tracks[c].times[0]);for(let c=0;c=o.times[b]){const S=b*p+h,E=S+p-h;w=o.values.slice(S,E)}else{const S=o.createInterpolant(),E=h,T=p-h;S.evaluate(a),w=S.resultBuffer.slice(E,T)}c==="quaternion"&&new gi().fromArray(w).normalize().conjugate().toArray(w);const _=u.times.length;for(let S=0;S<_;++S){const E=S*y+v;if(c==="quaternion")gi.multiplyQuaternionsFlat(u.values,E,w,0,u.values,E);else{const T=y-v*2;for(let P=0;P=a)){const o=n[1];e=a)break t}s=r,r=0;break n}break e}for(;r>>1;en;)--s;if(++s,a!==0||s!==i){a>=s&&(s=Math.max(s,1),a=s-1);const o=this.getValueSize();this.times=r.slice(a,s),this.values=this.values.slice(a*o,s*o)}return this}validate(){let e=!0;const n=this.getValueSize();n-Math.floor(n)!==0&&(zt("KeyframeTrack: Invalid value size in track.",this),e=!1);const r=this.times,i=this.values,a=r.length;a===0&&(zt("KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let o=0;o!==a;o++){const c=r[o];if(typeof c=="number"&&isNaN(c)){zt("KeyframeTrack: Time is not a valid number.",this,o,c),e=!1;break}if(s!==null&&s>c){zt("KeyframeTrack: Out of order keys.",this,o,c,s),e=!1;break}s=c}if(i!==void 0&&tY(i))for(let o=0,c=i.length;o!==c;++o){const u=i[o];if(isNaN(u)){zt("KeyframeTrack: Value is not a valid number.",this,o,u),e=!1;break}}return e}optimize(){const e=this.times.slice(),n=this.values.slice(),r=this.getValueSize(),i=this.getInterpolation()===FA,a=e.length-1;let s=1;for(let o=1;o0){e[s]=e[a];for(let o=a*r,c=s*r,u=0;u!==r;++u)n[c+u]=n[o+u];++s}return s!==e.length?(this.times=e.slice(0,s),this.values=n.slice(0,s*r)):(this.times=e,this.values=n),this}clone(){const e=this.times.slice(),n=this.values.slice(),r=this.constructor,i=new r(this.name,e,n);return i.createInterpolant=this.createInterpolant,i}}Qo.prototype.ValueTypeName="";Qo.prototype.TimeBufferType=Float32Array;Qo.prototype.ValueBufferType=Float32Array;Qo.prototype.DefaultInterpolation=Dv;class Wp extends Qo{constructor(e,n,r){super(e,n,r)}}Wp.prototype.ValueTypeName="bool";Wp.prototype.ValueBufferType=Array;Wp.prototype.DefaultInterpolation=Pv;Wp.prototype.InterpolantFactoryMethodLinear=void 0;Wp.prototype.InterpolantFactoryMethodSmooth=void 0;class ck extends Qo{constructor(e,n,r,i){super(e,n,r,i)}}ck.prototype.ValueTypeName="color";class Pp extends Qo{constructor(e,n,r,i){super(e,n,r,i)}}Pp.prototype.ValueTypeName="number";class LY extends uy{constructor(e,n,r,i){super(e,n,r,i)}interpolate_(e,n,r,i){const a=this.resultBuffer,s=this.sampleValues,o=this.valueSize,c=(r-n)/(i-n);let u=e*o;for(let h=u+o;u!==h;u+=4)gi.slerpFlat(a,0,s,u-o,s,u,c);return a}}class Dp extends Qo{constructor(e,n,r,i){super(e,n,r,i)}InterpolantFactoryMethodLinear(e){return new LY(this.times,this.values,this.getValueSize(),e)}}Dp.prototype.ValueTypeName="quaternion";Dp.prototype.InterpolantFactoryMethodSmooth=void 0;class qp extends Qo{constructor(e,n,r){super(e,n,r)}}qp.prototype.ValueTypeName="string";qp.prototype.ValueBufferType=Array;qp.prototype.DefaultInterpolation=Pv;qp.prototype.InterpolantFactoryMethodLinear=void 0;qp.prototype.InterpolantFactoryMethodSmooth=void 0;class Np extends Qo{constructor(e,n,r,i){super(e,n,r,i)}}Np.prototype.ValueTypeName="vector";class jv{constructor(e="",n=-1,r=[],i=JE){this.name=e,this.tracks=r,this.duration=n,this.blendMode=i,this.uuid=eo(),this.userData={},this.duration<0&&this.resetDuration()}static parse(e){const n=[],r=e.tracks,i=1/(e.fps||1);for(let s=0,o=r.length;s!==o;++s)n.push(BEe(r[s]).scale(i));const a=new this(e.name,e.duration,n,e.blendMode);return a.uuid=e.uuid,a.userData=JSON.parse(e.userData||"{}"),a}static toJSON(e){const n=[],r=e.tracks,i={name:e.name,duration:e.duration,tracks:n,uuid:e.uuid,blendMode:e.blendMode,userData:JSON.stringify(e.userData)};for(let a=0,s=r.length;a!==s;++a)n.push(Qo.toJSON(r[a]));return i}static CreateFromMorphTargetSequence(e,n,r,i){const a=n.length,s=[];for(let o=0;o1){const p=h[1];let v=i[p];v||(i[p]=v=[]),v.push(u)}}const s=[];for(const o in i)s.push(this.CreateFromMorphTargetSequence(o,i[o],n,r));return s}static parseAnimation(e,n){if(xt("AnimationClip: parseAnimation() is deprecated and will be removed with r185"),!e)return zt("AnimationClip: No animation in JSONLoader data."),null;const r=function(p,v,y,b,w){if(y.length!==0){const _=[],S=[];ok(y,_,S,b),_.length!==0&&w.push(new p(v,_,S))}},i=[],a=e.name||"default",s=e.fps||30,o=e.blendMode;let c=e.length||-1;const u=e.hierarchy||[];for(let p=0;p{n&&n(a),this.manager.itemEnd(e)},0),a;if(Fu[e]!==void 0){Fu[e].push({onLoad:n,onProgress:r,onError:i});return}Fu[e]=[],Fu[e].push({onLoad:n,onProgress:r,onError:i});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),o=this.mimeType,c=this.responseType;fetch(s).then(u=>{if(u.status===200||u.status===0){if(u.status===0&&xt("FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||u.body===void 0||u.body.getReader===void 0)return u;const h=Fu[e],p=u.body.getReader(),v=u.headers.get("X-File-Size")||u.headers.get("Content-Length"),y=v?parseInt(v):0,b=y!==0;let w=0;const _=new ReadableStream({start(S){E();function E(){p.read().then(({done:T,value:P})=>{if(T)S.close();else{w+=P.byteLength;const R=new ProgressEvent("progress",{lengthComputable:b,loaded:w,total:y});for(let D=0,I=h.length;D{S.error(T)})}}});return new Response(_)}else throw new LEe(`fetch for "${u.url}" responded with ${u.status}: ${u.statusText}`,u)}).then(u=>{switch(c){case"arraybuffer":return u.arrayBuffer();case"blob":return u.blob();case"document":return u.text().then(h=>new DOMParser().parseFromString(h,o));case"json":return u.json();default:if(o==="")return u.text();{const p=/charset="?([^;"\s]*)"?/i.exec(o),v=p&&p[1]?p[1].toLowerCase():void 0,y=new TextDecoder(v);return u.arrayBuffer().then(b=>y.decode(b))}}}).then(u=>{Dc.add(`file:${e}`,u);const h=Fu[e];delete Fu[e];for(let p=0,v=h.length;p{const h=Fu[e];if(h===void 0)throw this.manager.itemError(e),u;delete Fu[e];for(let p=0,v=h.length;p{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}class kEe extends ka{constructor(e){super(e)}load(e,n,r,i){const a=this,s=new io(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(o){try{n(a.parse(JSON.parse(o)))}catch(c){i?i(c):zt(c),a.manager.itemError(e)}},r,i)}parse(e){const n=[];for(let r=0;r0:i.vertexColors=e.vertexColors),e.uniforms!==void 0)for(const a in e.uniforms){const s=e.uniforms[a];switch(i.uniforms[a]={},s.type){case"t":i.uniforms[a].value=r(s.value);break;case"c":i.uniforms[a].value=new bt().setHex(s.value);break;case"v2":i.uniforms[a].value=new Ve().fromArray(s.value);break;case"v3":i.uniforms[a].value=new ne().fromArray(s.value);break;case"v4":i.uniforms[a].value=new mr().fromArray(s.value);break;case"m3":i.uniforms[a].value=new dn().fromArray(s.value);break;case"m4":i.uniforms[a].value=new qt().fromArray(s.value);break;default:i.uniforms[a].value=s.value}}if(e.defines!==void 0&&(i.defines=e.defines),e.vertexShader!==void 0&&(i.vertexShader=e.vertexShader),e.fragmentShader!==void 0&&(i.fragmentShader=e.fragmentShader),e.glslVersion!==void 0&&(i.glslVersion=e.glslVersion),e.extensions!==void 0)for(const a in e.extensions)i.extensions[a]=e.extensions[a];if(e.lights!==void 0&&(i.lights=e.lights),e.clipping!==void 0&&(i.clipping=e.clipping),e.size!==void 0&&(i.size=e.size),e.sizeAttenuation!==void 0&&(i.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(i.map=r(e.map)),e.matcap!==void 0&&(i.matcap=r(e.matcap)),e.alphaMap!==void 0&&(i.alphaMap=r(e.alphaMap)),e.bumpMap!==void 0&&(i.bumpMap=r(e.bumpMap)),e.bumpScale!==void 0&&(i.bumpScale=e.bumpScale),e.normalMap!==void 0&&(i.normalMap=r(e.normalMap)),e.normalMapType!==void 0&&(i.normalMapType=e.normalMapType),e.normalScale!==void 0){let a=e.normalScale;Array.isArray(a)===!1&&(a=[a,a]),i.normalScale=new Ve().fromArray(a)}return e.displacementMap!==void 0&&(i.displacementMap=r(e.displacementMap)),e.displacementScale!==void 0&&(i.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(i.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(i.roughnessMap=r(e.roughnessMap)),e.metalnessMap!==void 0&&(i.metalnessMap=r(e.metalnessMap)),e.emissiveMap!==void 0&&(i.emissiveMap=r(e.emissiveMap)),e.emissiveIntensity!==void 0&&(i.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(i.specularMap=r(e.specularMap)),e.specularIntensityMap!==void 0&&(i.specularIntensityMap=r(e.specularIntensityMap)),e.specularColorMap!==void 0&&(i.specularColorMap=r(e.specularColorMap)),e.envMap!==void 0&&(i.envMap=r(e.envMap)),e.envMapRotation!==void 0&&i.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(i.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(i.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(i.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(i.lightMap=r(e.lightMap)),e.lightMapIntensity!==void 0&&(i.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(i.aoMap=r(e.aoMap)),e.aoMapIntensity!==void 0&&(i.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(i.gradientMap=r(e.gradientMap)),e.clearcoatMap!==void 0&&(i.clearcoatMap=r(e.clearcoatMap)),e.clearcoatRoughnessMap!==void 0&&(i.clearcoatRoughnessMap=r(e.clearcoatRoughnessMap)),e.clearcoatNormalMap!==void 0&&(i.clearcoatNormalMap=r(e.clearcoatNormalMap)),e.clearcoatNormalScale!==void 0&&(i.clearcoatNormalScale=new Ve().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(i.iridescenceMap=r(e.iridescenceMap)),e.iridescenceThicknessMap!==void 0&&(i.iridescenceThicknessMap=r(e.iridescenceThicknessMap)),e.transmissionMap!==void 0&&(i.transmissionMap=r(e.transmissionMap)),e.thicknessMap!==void 0&&(i.thicknessMap=r(e.thicknessMap)),e.anisotropyMap!==void 0&&(i.anisotropyMap=r(e.anisotropyMap)),e.sheenColorMap!==void 0&&(i.sheenColorMap=r(e.sheenColorMap)),e.sheenRoughnessMap!==void 0&&(i.sheenRoughnessMap=r(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}createMaterialFromType(e){return ST.createMaterialFromType(e)}static createMaterialFromType(e){const n={ShadowMaterial:EY,SpriteMaterial:q5,RawShaderMaterial:ik,ShaderMaterial:Yo,PointsMaterial:oT,MeshPhysicalMaterial:Zo,MeshStandardMaterial:g1,MeshPhongMaterial:TY,MeshToonMaterial:CY,MeshNormalMaterial:RY,MeshLambertMaterial:OY,MeshDepthMaterial:ak,MeshDistanceMaterial:sk,MeshBasicMaterial:Qs,MeshMatcapMaterial:PY,LineDashedMaterial:DY,LineBasicMaterial:La,Material:zi};return new n[e]}}class Ed{static extractUrlBase(e){const n=e.lastIndexOf("/");return n===-1?"./":e.slice(0,n+1)}static resolveURL(e,n){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(n)&&/^\//.test(e)&&(n=n.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:n+e)}}class HY extends an{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}toJSON(){const e=super.toJSON();return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}class VY extends ka{constructor(e){super(e)}load(e,n,r,i){const a=this,s=new io(a.manager);s.setPath(a.path),s.setRequestHeader(a.requestHeader),s.setWithCredentials(a.withCredentials),s.load(e,function(o){try{n(a.parse(JSON.parse(o)))}catch(c){i?i(c):zt(c),a.manager.itemError(e)}},r,i)}parse(e){const n={},r={};function i(y,b){if(n[b]!==void 0)return n[b];const _=y.interleavedBuffers[b],S=a(y,_.buffer),E=Hg(_.type,S),T=new u1(E,_.stride);return T.uuid=_.uuid,n[b]=T,T}function a(y,b){if(r[b]!==void 0)return r[b];const _=y.arrayBuffers[b],S=new Uint32Array(_).buffer;return r[b]=S,S}const s=e.isInstancedBufferGeometry?new HY:new an,o=e.data.index;if(o!==void 0){const y=Hg(o.type,o.array);s.setIndex(new qn(y,1))}const c=e.data.attributes;for(const y in c){const b=c[y];let w;if(b.isInterleavedBufferAttribute){const _=i(e.data,b.data);w=new Dd(_,b.itemSize,b.offset,b.normalized)}else{const _=Hg(b.type,b.array),S=b.isInstancedBufferAttribute?Rp:qn;w=new S(_,b.itemSize,b.normalized)}b.name!==void 0&&(w.name=b.name),b.usage!==void 0&&w.setUsage(b.usage),s.setAttribute(y,w)}const u=e.data.morphAttributes;if(u)for(const y in u){const b=u[y],w=[];for(let _=0,S=b.length;_0){const c=new uk(n);a=new Ub(c),a.setCrossOrigin(this.crossOrigin);for(let u=0,h=e.length;u0){i=new Ub(this.manager),i.setCrossOrigin(this.crossOrigin);for(let s=0,o=e.length;s{let S=null,E=null;return _.boundingBox!==void 0&&(S=new Oi().fromJSON(_.boundingBox)),_.boundingSphere!==void 0&&(E=new Zi().fromJSON(_.boundingSphere)),{..._,boundingBox:S,boundingSphere:E}}),s._instanceInfo=e.instanceInfo,s._availableInstanceIds=e._availableInstanceIds,s._availableGeometryIds=e._availableGeometryIds,s._nextIndexStart=e.nextIndexStart,s._nextVertexStart=e.nextVertexStart,s._geometryCount=e.geometryCount,s._maxInstanceCount=e.maxInstanceCount,s._maxVertexCount=e.maxVertexCount,s._maxIndexCount=e.maxIndexCount,s._geometryInitialized=e.geometryInitialized,s._matricesTexture=u(e.matricesTexture.uuid),s._indirectTexture=u(e.indirectTexture.uuid),e.colorsTexture!==void 0&&(s._colorsTexture=u(e.colorsTexture.uuid)),e.boundingSphere!==void 0&&(s.boundingSphere=new Zi().fromJSON(e.boundingSphere)),e.boundingBox!==void 0&&(s.boundingBox=new Oi().fromJSON(e.boundingBox));break;case"LOD":s=new fY;break;case"Line":s=new of(o(e.geometry),c(e.material));break;case"LineLoop":s=new K5(o(e.geometry),c(e.material));break;case"LineSegments":s=new Hl(o(e.geometry),c(e.material));break;case"PointCloud":case"Points":s=new Y5(o(e.geometry),c(e.material));break;case"Sprite":s=new uY(c(e.material));break;case"Group":s=new $u;break;case"Bone":s=new aT;break;default:s=new zn}if(s.uuid=e.uuid,e.name!==void 0&&(s.name=e.name),e.matrix!==void 0?(s.matrix.fromArray(e.matrix),e.matrixAutoUpdate!==void 0&&(s.matrixAutoUpdate=e.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(e.position!==void 0&&s.position.fromArray(e.position),e.rotation!==void 0&&s.rotation.fromArray(e.rotation),e.quaternion!==void 0&&s.quaternion.fromArray(e.quaternion),e.scale!==void 0&&s.scale.fromArray(e.scale)),e.up!==void 0&&s.up.fromArray(e.up),e.castShadow!==void 0&&(s.castShadow=e.castShadow),e.receiveShadow!==void 0&&(s.receiveShadow=e.receiveShadow),e.shadow&&(e.shadow.intensity!==void 0&&(s.shadow.intensity=e.shadow.intensity),e.shadow.bias!==void 0&&(s.shadow.bias=e.shadow.bias),e.shadow.normalBias!==void 0&&(s.shadow.normalBias=e.shadow.normalBias),e.shadow.radius!==void 0&&(s.shadow.radius=e.shadow.radius),e.shadow.mapSize!==void 0&&s.shadow.mapSize.fromArray(e.shadow.mapSize),e.shadow.camera!==void 0&&(s.shadow.camera=this.parseObject(e.shadow.camera))),e.visible!==void 0&&(s.visible=e.visible),e.frustumCulled!==void 0&&(s.frustumCulled=e.frustumCulled),e.renderOrder!==void 0&&(s.renderOrder=e.renderOrder),e.userData!==void 0&&(s.userData=e.userData),e.layers!==void 0&&(s.layers.mask=e.layers),e.children!==void 0){const v=e.children;for(let y=0;y"u"&&xt("ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&xt("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(e){return this.options=e,this}load(e,n,r,i){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const a=this,s=Dc.get(`image-bitmap:${e}`);if(s!==void 0){if(a.manager.itemStart(e),s.then){s.then(u=>{if(SD.has(s)===!0)i&&i(SD.get(s)),a.manager.itemError(e),a.manager.itemEnd(e);else return n&&n(u),a.manager.itemEnd(e),u});return}return setTimeout(function(){n&&n(s),a.manager.itemEnd(e)},0),s}const o={};o.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",o.headers=this.requestHeader,o.signal=typeof AbortSignal.any=="function"?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const c=fetch(e,o).then(function(u){return u.blob()}).then(function(u){return createImageBitmap(u,Object.assign(a.options,{colorSpaceConversion:"none"}))}).then(function(u){return Dc.add(`image-bitmap:${e}`,u),n&&n(u),a.manager.itemEnd(e),u}).catch(function(u){i&&i(u),SD.set(c,u),Dc.remove(`image-bitmap:${e}`),a.manager.itemError(e),a.manager.itemEnd(e)});Dc.add(`image-bitmap:${e}`,c),a.manager.itemStart(e)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}let uA;class gk{static getContext(){return uA===void 0&&(uA=new(window.AudioContext||window.webkitAudioContext)),uA}static setContext(e){uA=e}}class qEe extends ka{constructor(e){super(e)}load(e,n,r,i){const a=this,s=new io(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,function(c){try{const u=c.slice(0);gk.getContext().decodeAudioData(u,function(p){n(p)}).catch(o)}catch(u){o(u)}},r,i);function o(c){i?i(c):zt(c),a.manager.itemError(e)}}}const JG=new qt,ZG=new qt,jh=new qt;class $Ee{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new jr,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new jr,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const n=this._cache;if(n.focus!==e.focus||n.fov!==e.fov||n.aspect!==e.aspect*this.aspect||n.near!==e.near||n.far!==e.far||n.zoom!==e.zoom||n.eyeSep!==this.eyeSep){n.focus=e.focus,n.fov=e.fov,n.aspect=e.aspect*this.aspect,n.near=e.near,n.far=e.far,n.zoom=e.zoom,n.eyeSep=this.eyeSep,jh.copy(e.projectionMatrix);const i=n.eyeSep/2,a=i*n.near/n.focus,s=n.near*Math.tan(bp*n.fov*.5)/n.zoom;let o,c;ZG.elements[12]=-i,JG.elements[12]=i,o=-s*n.aspect+a,c=s*n.aspect+a,jh.elements[0]=2*n.near/(c-o),jh.elements[8]=(c+o)/(c-o),this.cameraL.projectionMatrix.copy(jh),o=-s*n.aspect-a,c=s*n.aspect-a,jh.elements[0]=2*n.near/(c-o),jh.elements[8]=(c+o)/(c-o),this.cameraR.projectionMatrix.copy(jh)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(ZG),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(JG)}}class qY extends jr{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}}class vk{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const n=performance.now();e=(n-this.oldTime)/1e3,this.oldTime=n,this.elapsedTime+=e}return e}}const zh=new ne,AD=new gi,XEe=new ne,Gh=new ne,Hh=new ne;class KEe extends zn{constructor(){super(),this.type="AudioListener",this.context=gk.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new vk}getInput(){return this.gain}removeFilter(){return this.filter!==null&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const n=this.context.listener;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(zh,AD,XEe),Gh.set(0,0,-1).applyQuaternion(AD),Hh.set(0,1,0).applyQuaternion(AD),n.positionX){const r=this.context.currentTime+this.timeDelta;n.positionX.linearRampToValueAtTime(zh.x,r),n.positionY.linearRampToValueAtTime(zh.y,r),n.positionZ.linearRampToValueAtTime(zh.z,r),n.forwardX.linearRampToValueAtTime(Gh.x,r),n.forwardY.linearRampToValueAtTime(Gh.y,r),n.forwardZ.linearRampToValueAtTime(Gh.z,r),n.upX.linearRampToValueAtTime(Hh.x,r),n.upY.linearRampToValueAtTime(Hh.y,r),n.upZ.linearRampToValueAtTime(Hh.z,r)}else n.setPosition(zh.x,zh.y,zh.z),n.setOrientation(Gh.x,Gh.y,Gh.z,Hh.x,Hh.y,Hh.z)}}class $Y extends zn{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(this.isPlaying===!0){xt("Audio: Audio is already playing.");return}if(this.hasPlaybackControl===!1){xt("Audio: this Audio has no playback control.");return}this._startedAt=this.context.currentTime+e;const n=this.context.createBufferSource();return n.buffer=this.buffer,n.loop=this.loop,n.loopStart=this.loopStart,n.loopEnd=this.loopEnd,n.onended=this.onEnded.bind(this),n.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=n,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){xt("Audio: this Audio has no playback control.");return}return this.isPlaying===!0&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(e=0){if(this.hasPlaybackControl===!1){xt("Audio: this Audio has no playback control.");return}return this._progress=0,this.source!==null&&(this.source.stop(this.context.currentTime+e),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,n=this.filters.length;e0){this.source.disconnect(this.filters[0]);for(let e=1,n=this.filters.length;e0&&this._mixBufferRegionAdditive(r,i,this._addIndex*n,1,n);for(let c=n,u=n+n;c!==u;++c)if(r[c]!==r[c+n]){o.setValue(r,i);break}}saveOriginalState(){const e=this.binding,n=this.buffer,r=this.valueSize,i=r*this._origIndex;e.getValue(n,i);for(let a=r,s=i;a!==s;++a)n[a]=n[i+a%r];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=this.valueSize*3;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,n=e+this.valueSize;for(let r=e;r=.5)for(let s=0;s!==a;++s)e[n+s]=e[r+s]}_slerp(e,n,r,i){gi.slerpFlat(e,n,e,n,e,r,i)}_slerpAdditive(e,n,r,i,a){const s=this._workIndex*a;gi.multiplyQuaternionsFlat(e,s,e,n,e,r),gi.slerpFlat(e,n,e,n,e,s,i)}_lerp(e,n,r,i,a){const s=1-i;for(let o=0;o!==a;++o){const c=n+o;e[c]=e[c]*s+e[r+o]*i}}_lerpAdditive(e,n,r,i,a){for(let s=0;s!==a;++s){const o=n+s;e[o]=e[o]+e[r+s]*i}}}const yk="\\[\\]\\.:\\/",QEe=new RegExp("["+yk+"]","g"),xk="[^"+yk+"]",eTe="[^"+yk.replace("\\.","")+"]",tTe=/((?:WC+[\/:])*)/.source.replace("WC",xk),nTe=/(WCOD+)?/.source.replace("WCOD",eTe),rTe=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",xk),iTe=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",xk),aTe=new RegExp("^"+tTe+nTe+rTe+iTe+"$"),sTe=["material","materials","bones","map"];class oTe{constructor(e,n,r){const i=r||Hn.parseTrackName(n);this._targetGroup=e,this._bindings=e.subscribe_(n,i)}getValue(e,n){this.bind();const r=this._targetGroup.nCachedObjects_,i=this._bindings[r];i!==void 0&&i.getValue(e,n)}setValue(e,n){const r=this._bindings;for(let i=this._targetGroup.nCachedObjects_,a=r.length;i!==a;++i)r[i].setValue(e,n)}bind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,r=e.length;n!==r;++n)e[n].bind()}unbind(){const e=this._bindings;for(let n=this._targetGroup.nCachedObjects_,r=e.length;n!==r;++n)e[n].unbind()}}class Hn{constructor(e,n,r){this.path=n,this.parsedPath=r||Hn.parseTrackName(n),this.node=Hn.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,n,r){return e&&e.isAnimationObjectGroup?new Hn.Composite(e,n,r):new Hn(e,n,r)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(QEe,"")}static parseTrackName(e){const n=aTe.exec(e);if(n===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const r={nodeName:n[2],objectName:n[3],objectIndex:n[4],propertyName:n[5],propertyIndex:n[6]},i=r.nodeName&&r.nodeName.lastIndexOf(".");if(i!==void 0&&i!==-1){const a=r.nodeName.substring(i+1);sTe.indexOf(a)!==-1&&(r.nodeName=r.nodeName.substring(0,i),r.objectName=a)}if(r.propertyName===null||r.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return r}static findNode(e,n){if(n===void 0||n===""||n==="."||n===-1||n===e.name||n===e.uuid)return e;if(e.skeleton){const r=e.skeleton.getBoneByName(n);if(r!==void 0)return r}if(e.children){const r=function(a){for(let s=0;s=a){const p=a++,v=e[p];n[v.uuid]=h,e[h]=v,n[u]=p,e[p]=c;for(let y=0,b=i;y!==b;++y){const w=r[y],_=w[p],S=w[h];w[h]=_,w[p]=S}}}this.nCachedObjects_=a}uncache(){const e=this._objects,n=this._indicesByUUID,r=this._bindings,i=r.length;let a=this.nCachedObjects_,s=e.length;for(let o=0,c=arguments.length;o!==c;++o){const u=arguments[o],h=u.uuid,p=n[h];if(p!==void 0)if(delete n[h],p0&&(n[y.uuid]=p),e[p]=y,e.pop();for(let b=0,w=i;b!==w;++b){const _=r[b];_[p]=_[v],_.pop()}}}this.nCachedObjects_=a}subscribe_(e,n){const r=this._bindingsIndicesByPath;let i=r[e];const a=this._bindings;if(i!==void 0)return a[i];const s=this._paths,o=this._parsedPaths,c=this._objects,u=c.length,h=this.nCachedObjects_,p=new Array(u);i=a.length,r[e]=i,s.push(e),o.push(n),a.push(p);for(let v=h,y=c.length;v!==y;++v){const b=c[v];p[v]=new Hn(b,e,n)}return p}unsubscribe_(e){const n=this._bindingsIndicesByPath,r=n[e];if(r!==void 0){const i=this._paths,a=this._parsedPaths,s=this._bindings,o=s.length-1,c=s[o],u=e[o];n[u]=r,s[r]=c,s.pop(),a[r]=a[o],a.pop(),i[r]=i[o],i.pop()}}}class KY{constructor(e,n,r=null,i=n.blendMode){this._mixer=e,this._clip=n,this._localRoot=r,this.blendMode=i;const a=n.tracks,s=a.length,o=new Array(s),c={endingStart:fp,endingEnd:fp};for(let u=0;u!==s;++u){const h=a[u].createInterpolant(null);o[u]=h,h.settings=c}this._interpolantSettings=c,this._interpolants=o,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=HK,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&this.timeScale!==0&&this._startTime===null&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,n){return this.loop=e,this.repetitions=n,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,n,r=!1){if(e.fadeOut(n),this.fadeIn(n),r===!0){const i=this._clip.duration,a=e._clip.duration,s=a/i,o=i/a;e.warp(1,s,n),this.warp(o,1,n)}return this}crossFadeTo(e,n,r=!1){return e.crossFadeFrom(this,n,r)}stopFading(){const e=this._weightInterpolant;return e!==null&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,n,r){const i=this._mixer,a=i.time,s=this.timeScale;let o=this._timeScaleInterpolant;o===null&&(o=i._lendControlInterpolant(),this._timeScaleInterpolant=o);const c=o.parameterPositions,u=o.sampleValues;return c[0]=a,c[1]=a+r,u[0]=e/s,u[1]=n/s,this}stopWarping(){const e=this._timeScaleInterpolant;return e!==null&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,n,r,i){if(!this.enabled){this._updateWeight(e);return}const a=this._startTime;if(a!==null){const c=(e-a)*r;c<0||r===0?n=0:(this._startTime=null,n=r*c)}n*=this._updateTimeScale(e);const s=this._updateTime(n),o=this._updateWeight(e);if(o>0){const c=this._interpolants,u=this._propertyBindings;switch(this.blendMode){case F5:for(let h=0,p=c.length;h!==p;++h)c[h].evaluate(s),u[h].accumulateAdditive(o);break;case JE:default:for(let h=0,p=c.length;h!==p;++h)c[h].evaluate(s),u[h].accumulate(i,o)}}}_updateWeight(e){let n=0;if(this.enabled){n=this.weight;const r=this._weightInterpolant;if(r!==null){const i=r.evaluate(e)[0];n*=i,e>r.parameterPositions[1]&&(this.stopFading(),i===0&&(this.enabled=!1))}}return this._effectiveWeight=n,n}_updateTimeScale(e){let n=0;if(!this.paused){n=this.timeScale;const r=this._timeScaleInterpolant;if(r!==null){const i=r.evaluate(e)[0];n*=i,e>r.parameterPositions[1]&&(this.stopWarping(),n===0?this.paused=!0:this.timeScale=n)}}return this._effectiveTimeScale=n,n}_updateTime(e){const n=this._clip.duration,r=this.loop;let i=this.time+e,a=this._loopCount;const s=r===VK;if(e===0)return a===-1?i:s&&(a&1)===1?n-i:i;if(r===GK){a===-1&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(i>=n)i=n;else if(i<0)i=0;else{this.time=i;break e}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(a===-1&&(e>=0?(a=0,this._setEndings(!0,this.repetitions===0,s)):this._setEndings(this.repetitions===0,!0,s)),i>=n||i<0){const o=Math.floor(i/n);i-=n*o,a+=Math.abs(o);const c=this.repetitions-a;if(c<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=e>0?n:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(c===1){const u=e<0;this._setEndings(u,!u,s)}else this._setEndings(!1,!1,s);this._loopCount=a,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=i;if(s&&(a&1)===1)return n-i}return i}_setEndings(e,n,r){const i=this._interpolantSettings;r?(i.endingStart=dp,i.endingEnd=dp):(e?i.endingStart=this.zeroSlopeAtStart?dp:fp:i.endingStart=Pb,n?i.endingEnd=this.zeroSlopeAtEnd?dp:fp:i.endingEnd=Pb)}_scheduleFading(e,n,r){const i=this._mixer,a=i.time;let s=this._weightInterpolant;s===null&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const o=s.parameterPositions,c=s.sampleValues;return o[0]=a,c[0]=n,o[1]=a+e,c[1]=r,this}}const cTe=new Float32Array(1);class uTe extends Yc{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,n){const r=e._localRoot||this._root,i=e._clip.tracks,a=i.length,s=e._propertyBindings,o=e._interpolants,c=r.uuid,u=this._bindingsByRootAndName;let h=u[c];h===void 0&&(h={},u[c]=h);for(let p=0;p!==a;++p){const v=i[p],y=v.name;let b=h[y];if(b!==void 0)++b.referenceCount,s[p]=b;else{if(b=s[p],b!==void 0){b._cacheIndex===null&&(++b.referenceCount,this._addInactiveBinding(b,c,y));continue}const w=n&&n._propertyBindings[p].binding.parsedPath;b=new XY(Hn.create(r,y,w),v.ValueTypeName,v.getValueSize()),++b.referenceCount,this._addInactiveBinding(b,c,y),s[p]=b}o[p].resultBuffer=b.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(e._cacheIndex===null){const r=(e._localRoot||this._root).uuid,i=e._clip.uuid,a=this._actionsByClip[i];this._bindAction(e,a&&a.knownActions[0]),this._addInactiveAction(e,i,r)}const n=e._propertyBindings;for(let r=0,i=n.length;r!==i;++r){const a=n[r];a.useCount++===0&&(this._lendBinding(a),a.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const n=e._propertyBindings;for(let r=0,i=n.length;r!==i;++r){const a=n[r];--a.useCount===0&&(a.restoreOriginalState(),this._takeBackBinding(a))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const n=e._cacheIndex;return n!==null&&n=0;--r)e[r].stop();return this}update(e){e*=this.timeScale;const n=this._actions,r=this._nActiveActions,i=this.time+=e,a=Math.sign(e),s=this._accuIndex^=1;for(let u=0;u!==r;++u)n[u]._update(i,e,a,s);const o=this._bindings,c=this._nActiveBindings;for(let u=0;u!==c;++u)o[u].apply(s);return this}setTime(e){this.time=0;for(let n=0;n=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,nH).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const rH=new ne,fA=new ne,wg=new ne,Mg=new ne,wD=new ne,bTe=new ne,_Te=new ne;class STe{constructor(e=new ne,n=new ne){this.start=e,this.end=n}set(e,n){return this.start.copy(e),this.end.copy(n),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,n){return this.delta(n).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,n){rH.subVectors(e,this.start),fA.subVectors(this.end,this.start);const r=fA.dot(fA);let a=fA.dot(rH)/r;return n&&(a=tn(a,0,1)),a}closestPointToPoint(e,n,r){const i=this.closestPointToPointParameter(e,n);return this.delta(r).multiplyScalar(i).add(this.start)}distanceSqToLine3(e,n=bTe,r=_Te){const i=10000000000000001e-32;let a,s;const o=this.start,c=e.start,u=this.end,h=e.end;wg.subVectors(u,o),Mg.subVectors(h,c),wD.subVectors(o,c);const p=wg.dot(wg),v=Mg.dot(Mg),y=Mg.dot(wD);if(p<=i&&v<=i)return n.copy(o),r.copy(c),n.sub(r),n.dot(n);if(p<=i)a=0,s=y/v,s=tn(s,0,1);else{const b=wg.dot(wD);if(v<=i)s=0,a=tn(-b/p,0,1);else{const w=wg.dot(Mg),_=p*v-w*w;_!==0?a=tn((w*y-b*v)/_,0,1):a=0,s=(w*a+y)/v,s<0?(s=0,a=tn(-b/p,0,1)):s>1&&(s=1,a=tn((w-b)/p,0,1))}}return n.copy(o).add(wg.multiplyScalar(a)),r.copy(c).add(Mg.multiplyScalar(s)),n.sub(r),n.dot(n)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}const iH=new ne;class ATe extends zn{constructor(e,n){super(),this.light=e,this.matrixAutoUpdate=!1,this.color=n,this.type="SpotLightHelper";const r=new an,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,o=1,c=32;s1)for(let p=0;p.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{cH.set(e.z,0,-e.x).normalize();const n=Math.acos(e.y);this.quaternion.setFromAxisAngle(cH,n)}}setLength(e,n=e*.2,r=n*.2){this.line.scale.set(1,Math.max(1e-4,e-n),1),this.line.updateMatrix(),this.cone.scale.set(r,n,r),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class LTe extends Hl{constructor(e=1){const n=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],r=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],i=new an;i.setAttribute("position",new Pt(n,3)),i.setAttribute("color",new Pt(r,3));const a=new La({vertexColors:!0,toneMapped:!1});super(i,a),this.type="AxesHelper"}setColors(e,n,r){const i=new bt,a=this.geometry.attributes.color.array;return i.set(e),i.toArray(a,0),i.toArray(a,3),i.set(n),i.toArray(a,6),i.toArray(a,9),i.set(r),i.toArray(a,12),i.toArray(a,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class kTe{constructor(){this.type="ShapePath",this.color=new bt,this.subPaths=[],this.currentPath=null}moveTo(e,n){return this.currentPath=new $M,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,n),this}lineTo(e,n){return this.currentPath.lineTo(e,n),this}quadraticCurveTo(e,n,r,i){return this.currentPath.quadraticCurveTo(e,n,r,i),this}bezierCurveTo(e,n,r,i,a,s){return this.currentPath.bezierCurveTo(e,n,r,i,a,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function n(S){const E=[];for(let T=0,P=S.length;TNumber.EPSILON){if(U<0&&(I=E[D],B=-B,k=E[R],U=-U),S.yk.y)continue;if(S.y===I.y){if(S.x===I.x)return!0}else{const z=U*(S.x-I.x)-B*(S.y-I.y);if(z===0)return!0;if(z<0)continue;P=!P}}else{if(S.y!==I.y)continue;if(k.x<=S.x&&S.x<=I.x||I.x<=S.x&&S.x<=k.x)return!0}}return P}const i=Bl.isClockWise,a=this.subPaths;if(a.length===0)return[];let s,o,c;const u=[];if(a.length===1)return o=a[0],c=new _p,c.curves=o.curves,u.push(c),u;let h=!i(a[0].getPoints());h=e?!h:h;const p=[],v=[];let y=[],b=0,w;v[b]=void 0,y[b]=[];for(let S=0,E=a.length;S1){let S=!1,E=0;for(let T=0,P=v.length;T0&&S===!1&&(y=p)}let _;for(let S=0,E=v.length;Se?(t.repeat.x=1,t.repeat.y=n/e,t.offset.x=0,t.offset.y=(1-t.repeat.y)/2):(t.repeat.x=e/n,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2,t.offset.y=0),t}function jTe(t,e){const n=t.image&&t.image.width?t.image.width/t.image.height:1;return n>e?(t.repeat.x=e/n,t.repeat.y=1,t.offset.x=(1-t.repeat.x)/2,t.offset.y=0):(t.repeat.x=1,t.repeat.y=n/e,t.offset.x=0,t.offset.y=(1-t.repeat.y)/2),t}function zTe(t){return t.repeat.x=1,t.repeat.y=1,t.offset.x=0,t.offset.y=0,t}function fB(t,e,n,r){const i=GTe(r);switch(n){case L5:return t*e;case XE:return t*e/i.components*i.byteLength;case l1:return t*e/i.components*i.byteLength;case Cp:return t*e*2/i.components*i.byteLength;case KE:return t*e*2/i.components*i.byteLength;case k5:return t*e*3/i.components*i.byteLength;case Ba:return t*e*4/i.components*i.byteLength;case YE:return t*e*4/i.components*i.byteLength;case Bx:case Lx:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case kx:case Fx:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case dM:case pM:return Math.max(t,16)*Math.max(e,8)/4;case fM:case hM:return Math.max(t,8)*Math.max(e,8)/2;case mM:case gM:case yM:case xM:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case vM:case bM:case _M:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case SM:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case AM:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case wM:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case MM:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case EM:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case TM:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case CM:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case RM:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case OM:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case PM:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case DM:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case NM:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case IM:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case BM:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case LM:case kM:case FM:return Math.ceil(t/4)*Math.ceil(e/4)*16;case UM:case jM:return Math.ceil(t/4)*Math.ceil(e/4)*8;case zM:case GM:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function GTe(t){switch(t){case ts:case D5:return{byteLength:1,components:1};case Rv:case N5:case qc:return{byteLength:2,components:1};case qE:case $E:return{byteLength:2,components:4};case Ko:case WE:case os:return{byteLength:4,components:1};case I5:case B5:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}class HTe{static contain(e,n){return UTe(e,n)}static cover(e,n){return jTe(e,n)}static fill(e){return zTe(e)}static getByteLength(e,n,r,i){return fB(e,n,r,i)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:s1}}));typeof window<"u"&&(window.__THREE__?xt("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=s1);function ZY(){let t=null,e=!1,n=null,r=null;function i(a,s){n(a,s),r=t.requestAnimationFrame(i)}return{start:function(){e!==!0&&n!==null&&(r=t.requestAnimationFrame(i),e=!0)},stop:function(){t.cancelAnimationFrame(r),e=!1},setAnimationLoop:function(a){n=a},setContext:function(a){t=a}}}function VTe(t){const e=new WeakMap;function n(o,c){const u=o.array,h=o.usage,p=u.byteLength,v=t.createBuffer();t.bindBuffer(c,v),t.bufferData(c,u,h),o.onUploadCallback();let y;if(u instanceof Float32Array)y=t.FLOAT;else if(typeof Float16Array<"u"&&u instanceof Float16Array)y=t.HALF_FLOAT;else if(u instanceof Uint16Array)o.isFloat16BufferAttribute?y=t.HALF_FLOAT:y=t.UNSIGNED_SHORT;else if(u instanceof Int16Array)y=t.SHORT;else if(u instanceof Uint32Array)y=t.UNSIGNED_INT;else if(u instanceof Int32Array)y=t.INT;else if(u instanceof Int8Array)y=t.BYTE;else if(u instanceof Uint8Array)y=t.UNSIGNED_BYTE;else if(u instanceof Uint8ClampedArray)y=t.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+u);return{buffer:v,type:y,bytesPerElement:u.BYTES_PER_ELEMENT,version:o.version,size:p}}function r(o,c,u){const h=c.array,p=c.updateRanges;if(t.bindBuffer(u,o),p.length===0)t.bufferSubData(u,0,h);else{p.sort((y,b)=>y.start-b.start);let v=0;for(let y=1;y 0 - vec4 plane; - #ifdef ALPHA_TO_COVERAGE - float distanceToPlane, distanceGradient; - float clipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - if ( clipOpacity == 0.0 ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - float unionClipOpacity = 1.0; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; - distanceGradient = fwidth( distanceToPlane ) / 2.0; - unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); - } - #pragma unroll_loop_end - clipOpacity *= 1.0 - unionClipOpacity; - #endif - diffuseColor.a *= clipOpacity; - if ( diffuseColor.a == 0.0 ) discard; - #else - #pragma unroll_loop_start - for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; - } - #pragma unroll_loop_end - #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES - bool clipped = true; - #pragma unroll_loop_start - for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { - plane = clippingPlanes[ i ]; - clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; - } - #pragma unroll_loop_end - if ( clipped ) discard; - #endif - #endif -#endif`,oCe=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; - uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; -#endif`,lCe=`#if NUM_CLIPPING_PLANES > 0 - varying vec3 vClipPosition; -#endif`,cCe=`#if NUM_CLIPPING_PLANES > 0 - vClipPosition = - mvPosition.xyz; -#endif`,uCe=`#if defined( USE_COLOR_ALPHA ) - diffuseColor *= vColor; -#elif defined( USE_COLOR ) - diffuseColor.rgb *= vColor; -#endif`,fCe=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) - varying vec3 vColor; -#endif`,dCe=`#if defined( USE_COLOR_ALPHA ) - varying vec4 vColor; -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - varying vec3 vColor; -#endif`,hCe=`#if defined( USE_COLOR_ALPHA ) - vColor = vec4( 1.0 ); -#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) - vColor = vec3( 1.0 ); -#endif -#ifdef USE_COLOR - vColor *= color; -#endif -#ifdef USE_INSTANCING_COLOR - vColor.xyz *= instanceColor.xyz; -#endif -#ifdef USE_BATCHING_COLOR - vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); - vColor.xyz *= batchingColor.xyz; -#endif`,pCe=`#define PI 3.141592653589793 -#define PI2 6.283185307179586 -#define PI_HALF 1.5707963267948966 -#define RECIPROCAL_PI 0.3183098861837907 -#define RECIPROCAL_PI2 0.15915494309189535 -#define EPSILON 1e-6 -#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -#define whiteComplement( a ) ( 1.0 - saturate( a ) ) -float pow2( const in float x ) { return x*x; } -vec3 pow2( const in vec3 x ) { return x*x; } -float pow3( const in float x ) { return x*x*x; } -float pow4( const in float x ) { float x2 = x*x; return x2*x2; } -float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } -float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } -highp float rand( const in vec2 uv ) { - const highp float a = 12.9898, b = 78.233, c = 43758.5453; - highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); - return fract( sin( sn ) * c ); -} -#ifdef HIGH_PRECISION - float precisionSafeLength( vec3 v ) { return length( v ); } -#else - float precisionSafeLength( vec3 v ) { - float maxComponent = max3( abs( v ) ); - return length( v / maxComponent ) * maxComponent; - } -#endif -struct IncidentLight { - vec3 color; - vec3 direction; - bool visible; -}; -struct ReflectedLight { - vec3 directDiffuse; - vec3 directSpecular; - vec3 indirectDiffuse; - vec3 indirectSpecular; -}; -#ifdef USE_ALPHAHASH - varying vec3 vPosition; -#endif -vec3 transformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); -} -vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { - return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); -} -bool isPerspectiveMatrix( mat4 m ) { - return m[ 2 ][ 3 ] == - 1.0; -} -vec2 equirectUv( in vec3 dir ) { - float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; - float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; - return vec2( u, v ); -} -vec3 BRDF_Lambert( const in vec3 diffuseColor ) { - return RECIPROCAL_PI * diffuseColor; -} -vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} -float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { - float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); - return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); -} // validated`,mCe=`#ifdef ENVMAP_TYPE_CUBE_UV - #define cubeUV_minMipLevel 4.0 - #define cubeUV_minTileSize 16.0 - float getFace( vec3 direction ) { - vec3 absDirection = abs( direction ); - float face = - 1.0; - if ( absDirection.x > absDirection.z ) { - if ( absDirection.x > absDirection.y ) - face = direction.x > 0.0 ? 0.0 : 3.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } else { - if ( absDirection.z > absDirection.y ) - face = direction.z > 0.0 ? 2.0 : 5.0; - else - face = direction.y > 0.0 ? 1.0 : 4.0; - } - return face; - } - vec2 getUV( vec3 direction, float face ) { - vec2 uv; - if ( face == 0.0 ) { - uv = vec2( direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 1.0 ) { - uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); - } else if ( face == 2.0 ) { - uv = vec2( - direction.x, direction.y ) / abs( direction.z ); - } else if ( face == 3.0 ) { - uv = vec2( - direction.z, direction.y ) / abs( direction.x ); - } else if ( face == 4.0 ) { - uv = vec2( - direction.x, direction.z ) / abs( direction.y ); - } else { - uv = vec2( direction.x, direction.y ) / abs( direction.z ); - } - return 0.5 * ( uv + 1.0 ); - } - vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { - float face = getFace( direction ); - float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); - mipInt = max( mipInt, cubeUV_minMipLevel ); - float faceSize = exp2( mipInt ); - highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; - if ( face > 2.0 ) { - uv.y += faceSize; - face -= 3.0; - } - uv.x += face * faceSize; - uv.x += filterInt * 3.0 * cubeUV_minTileSize; - uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); - uv.x *= CUBEUV_TEXEL_WIDTH; - uv.y *= CUBEUV_TEXEL_HEIGHT; - #ifdef texture2DGradEXT - return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; - #else - return texture2D( envMap, uv ).rgb; - #endif - } - #define cubeUV_r0 1.0 - #define cubeUV_m0 - 2.0 - #define cubeUV_r1 0.8 - #define cubeUV_m1 - 1.0 - #define cubeUV_r4 0.4 - #define cubeUV_m4 2.0 - #define cubeUV_r5 0.305 - #define cubeUV_m5 3.0 - #define cubeUV_r6 0.21 - #define cubeUV_m6 4.0 - float roughnessToMip( float roughness ) { - float mip = 0.0; - if ( roughness >= cubeUV_r1 ) { - mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; - } else if ( roughness >= cubeUV_r4 ) { - mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; - } else if ( roughness >= cubeUV_r5 ) { - mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; - } else if ( roughness >= cubeUV_r6 ) { - mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; - } else { - mip = - 2.0 * log2( 1.16 * roughness ); } - return mip; - } - vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { - float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); - float mipF = fract( mip ); - float mipInt = floor( mip ); - vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); - if ( mipF == 0.0 ) { - return vec4( color0, 1.0 ); - } else { - vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); - return vec4( mix( color0, color1, mipF ), 1.0 ); - } - } -#endif`,gCe=`vec3 transformedNormal = objectNormal; -#ifdef USE_TANGENT - vec3 transformedTangent = objectTangent; -#endif -#ifdef USE_BATCHING - mat3 bm = mat3( batchingMatrix ); - transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); - transformedNormal = bm * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = bm * transformedTangent; - #endif -#endif -#ifdef USE_INSTANCING - mat3 im = mat3( instanceMatrix ); - transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); - transformedNormal = im * transformedNormal; - #ifdef USE_TANGENT - transformedTangent = im * transformedTangent; - #endif -#endif -transformedNormal = normalMatrix * transformedNormal; -#ifdef FLIP_SIDED - transformedNormal = - transformedNormal; -#endif -#ifdef USE_TANGENT - transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; - #ifdef FLIP_SIDED - transformedTangent = - transformedTangent; - #endif -#endif`,vCe=`#ifdef USE_DISPLACEMENTMAP - uniform sampler2D displacementMap; - uniform float displacementScale; - uniform float displacementBias; -#endif`,yCe=`#ifdef USE_DISPLACEMENTMAP - transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); -#endif`,xCe=`#ifdef USE_EMISSIVEMAP - vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); - #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE - emissiveColor = sRGBTransferEOTF( emissiveColor ); - #endif - totalEmissiveRadiance *= emissiveColor.rgb; -#endif`,bCe=`#ifdef USE_EMISSIVEMAP - uniform sampler2D emissiveMap; -#endif`,_Ce="gl_FragColor = linearToOutputTexel( gl_FragColor );",SCe=`vec4 LinearTransferOETF( in vec4 value ) { - return value; -} -vec4 sRGBTransferEOTF( in vec4 value ) { - return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a ); -} -vec4 sRGBTransferOETF( in vec4 value ) { - return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); -}`,ACe=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vec3 cameraToFrag; - if ( isOrthographic ) { - cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToFrag = normalize( vWorldPosition - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vec3 reflectVec = reflect( cameraToFrag, worldNormal ); - #else - vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); - #endif - #else - vec3 reflectVec = vReflect; - #endif - #ifdef ENVMAP_TYPE_CUBE - vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); - #else - vec4 envColor = vec4( 0.0 ); - #endif - #ifdef ENVMAP_BLENDING_MULTIPLY - outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_MIX ) - outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); - #elif defined( ENVMAP_BLENDING_ADD ) - outgoingLight += envColor.xyz * specularStrength * reflectivity; - #endif -#endif`,wCe=`#ifdef USE_ENVMAP - uniform float envMapIntensity; - uniform float flipEnvMap; - uniform mat3 envMapRotation; - #ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; - #else - uniform sampler2D envMap; - #endif -#endif`,MCe=`#ifdef USE_ENVMAP - uniform float reflectivity; - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - varying vec3 vWorldPosition; - uniform float refractionRatio; - #else - varying vec3 vReflect; - #endif -#endif`,ECe=`#ifdef USE_ENVMAP - #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) - #define ENV_WORLDPOS - #endif - #ifdef ENV_WORLDPOS - - varying vec3 vWorldPosition; - #else - varying vec3 vReflect; - uniform float refractionRatio; - #endif -#endif`,TCe=`#ifdef USE_ENVMAP - #ifdef ENV_WORLDPOS - vWorldPosition = worldPosition.xyz; - #else - vec3 cameraToVertex; - if ( isOrthographic ) { - cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); - } else { - cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); - } - vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - #ifdef ENVMAP_MODE_REFLECTION - vReflect = reflect( cameraToVertex, worldNormal ); - #else - vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); - #endif - #endif -#endif`,CCe=`#ifdef USE_FOG - vFogDepth = - mvPosition.z; -#endif`,RCe=`#ifdef USE_FOG - varying float vFogDepth; -#endif`,OCe=`#ifdef USE_FOG - #ifdef FOG_EXP2 - float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); - #else - float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); - #endif - gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); -#endif`,PCe=`#ifdef USE_FOG - uniform vec3 fogColor; - varying float vFogDepth; - #ifdef FOG_EXP2 - uniform float fogDensity; - #else - uniform float fogNear; - uniform float fogFar; - #endif -#endif`,DCe=`#ifdef USE_GRADIENTMAP - uniform sampler2D gradientMap; -#endif -vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { - float dotNL = dot( normal, lightDirection ); - vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); - #ifdef USE_GRADIENTMAP - return vec3( texture2D( gradientMap, coord ).r ); - #else - vec2 fw = fwidth( coord ) * 0.5; - return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); - #endif -}`,NCe=`#ifdef USE_LIGHTMAP - uniform sampler2D lightMap; - uniform float lightMapIntensity; -#endif`,ICe=`LambertMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularStrength = specularStrength;`,BCe=`varying vec3 vViewPosition; -struct LambertMaterial { - vec3 diffuseColor; - float specularStrength; -}; -void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Lambert -#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,LCe=`uniform bool receiveShadow; -uniform vec3 ambientLightColor; -#if defined( USE_LIGHT_PROBES ) - uniform vec3 lightProbe[ 9 ]; -#endif -vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { - float x = normal.x, y = normal.y, z = normal.z; - vec3 result = shCoefficients[ 0 ] * 0.886227; - result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; - result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; - result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; - result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; - result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; - result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); - result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; - result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); - return result; -} -vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); - return irradiance; -} -vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { - vec3 irradiance = ambientLightColor; - return irradiance; -} -float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { - float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); - if ( cutoffDistance > 0.0 ) { - distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); - } - return distanceFalloff; -} -float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { - return smoothstep( coneCosine, penumbraCosine, angleCosine ); -} -#if NUM_DIR_LIGHTS > 0 - struct DirectionalLight { - vec3 direction; - vec3 color; - }; - uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; - void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { - light.color = directionalLight.color; - light.direction = directionalLight.direction; - light.visible = true; - } -#endif -#if NUM_POINT_LIGHTS > 0 - struct PointLight { - vec3 position; - vec3 color; - float distance; - float decay; - }; - uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; - void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = pointLight.position - geometryPosition; - light.direction = normalize( lVector ); - float lightDistance = length( lVector ); - light.color = pointLight.color; - light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } -#endif -#if NUM_SPOT_LIGHTS > 0 - struct SpotLight { - vec3 position; - vec3 direction; - vec3 color; - float distance; - float decay; - float coneCos; - float penumbraCos; - }; - uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; - void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { - vec3 lVector = spotLight.position - geometryPosition; - light.direction = normalize( lVector ); - float angleCos = dot( light.direction, spotLight.direction ); - float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); - if ( spotAttenuation > 0.0 ) { - float lightDistance = length( lVector ); - light.color = spotLight.color * spotAttenuation; - light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); - light.visible = ( light.color != vec3( 0.0 ) ); - } else { - light.color = vec3( 0.0 ); - light.visible = false; - } - } -#endif -#if NUM_RECT_AREA_LIGHTS > 0 - struct RectAreaLight { - vec3 color; - vec3 position; - vec3 halfWidth; - vec3 halfHeight; - }; - uniform sampler2D ltc_1; uniform sampler2D ltc_2; - uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; -#endif -#if NUM_HEMI_LIGHTS > 0 - struct HemisphereLight { - vec3 direction; - vec3 skyColor; - vec3 groundColor; - }; - uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; - vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { - float dotNL = dot( normal, hemiLight.direction ); - float hemiDiffuseWeight = 0.5 * dotNL + 0.5; - vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); - return irradiance; - } -#endif`,kCe=`#ifdef USE_ENVMAP - vec3 getIBLIrradiance( const in vec3 normal ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); - return PI * envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 reflectVec = reflect( - viewDir, normal ); - reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) ); - reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); - return envMapColor.rgb * envMapIntensity; - #else - return vec3( 0.0 ); - #endif - } - #ifdef USE_ANISOTROPY - vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { - #ifdef ENVMAP_TYPE_CUBE_UV - vec3 bentNormal = cross( bitangent, viewDir ); - bentNormal = normalize( cross( bentNormal, bitangent ) ); - bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); - return getIBLRadiance( viewDir, bentNormal, roughness ); - #else - return vec3( 0.0 ); - #endif - } - #endif -#endif`,FCe=`ToonMaterial material; -material.diffuseColor = diffuseColor.rgb;`,UCe=`varying vec3 vViewPosition; -struct ToonMaterial { - vec3 diffuseColor; -}; -void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_Toon -#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,jCe=`BlinnPhongMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.specularColor = specular; -material.specularShininess = shininess; -material.specularStrength = specularStrength;`,zCe=`varying vec3 vViewPosition; -struct BlinnPhongMaterial { - vec3 diffuseColor; - vec3 specularColor; - float specularShininess; - float specularStrength; -}; -void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); - reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; -} -void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { - reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); -} -#define RE_Direct RE_Direct_BlinnPhong -#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,GCe=`PhysicalMaterial material; -material.diffuseColor = diffuseColor.rgb; -material.diffuseContribution = diffuseColor.rgb * ( 1.0 - metalnessFactor ); -material.metalness = metalnessFactor; -vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); -float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); -material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; -material.roughness = min( material.roughness, 1.0 ); -#ifdef IOR - material.ior = ior; - #ifdef USE_SPECULAR - float specularIntensityFactor = specularIntensity; - vec3 specularColorFactor = specularColor; - #ifdef USE_SPECULAR_COLORMAP - specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; - #endif - material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); - #else - float specularIntensityFactor = 1.0; - vec3 specularColorFactor = vec3( 1.0 ); - material.specularF90 = 1.0; - #endif - material.specularColor = min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor; - material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); -#else - material.specularColor = vec3( 0.04 ); - material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); - material.specularF90 = 1.0; -#endif -#ifdef USE_CLEARCOAT - material.clearcoat = clearcoat; - material.clearcoatRoughness = clearcoatRoughness; - material.clearcoatF0 = vec3( 0.04 ); - material.clearcoatF90 = 1.0; - #ifdef USE_CLEARCOATMAP - material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; - #endif - #ifdef USE_CLEARCOAT_ROUGHNESSMAP - material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; - #endif - material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); - material.clearcoatRoughness += geometryRoughness; - material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); -#endif -#ifdef USE_DISPERSION - material.dispersion = dispersion; -#endif -#ifdef USE_IRIDESCENCE - material.iridescence = iridescence; - material.iridescenceIOR = iridescenceIOR; - #ifdef USE_IRIDESCENCEMAP - material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; - #endif - #ifdef USE_IRIDESCENCE_THICKNESSMAP - material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; - #else - material.iridescenceThickness = iridescenceThicknessMaximum; - #endif -#endif -#ifdef USE_SHEEN - material.sheenColor = sheenColor; - #ifdef USE_SHEEN_COLORMAP - material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; - #endif - material.sheenRoughness = clamp( sheenRoughness, 0.0001, 1.0 ); - #ifdef USE_SHEEN_ROUGHNESSMAP - material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; - #endif -#endif -#ifdef USE_ANISOTROPY - #ifdef USE_ANISOTROPYMAP - mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); - vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; - vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; - #else - vec2 anisotropyV = anisotropyVector; - #endif - material.anisotropy = length( anisotropyV ); - if( material.anisotropy == 0.0 ) { - anisotropyV = vec2( 1.0, 0.0 ); - } else { - anisotropyV /= material.anisotropy; - material.anisotropy = saturate( material.anisotropy ); - } - material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); - material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; - material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; -#endif`,HCe=`uniform sampler2D dfgLUT; -struct PhysicalMaterial { - vec3 diffuseColor; - vec3 diffuseContribution; - vec3 specularColor; - vec3 specularColorBlended; - float roughness; - float metalness; - float specularF90; - float dispersion; - #ifdef USE_CLEARCOAT - float clearcoat; - float clearcoatRoughness; - vec3 clearcoatF0; - float clearcoatF90; - #endif - #ifdef USE_IRIDESCENCE - float iridescence; - float iridescenceIOR; - float iridescenceThickness; - vec3 iridescenceFresnel; - vec3 iridescenceF0; - vec3 iridescenceFresnelDielectric; - vec3 iridescenceFresnelMetallic; - #endif - #ifdef USE_SHEEN - vec3 sheenColor; - float sheenRoughness; - #endif - #ifdef IOR - float ior; - #endif - #ifdef USE_TRANSMISSION - float transmission; - float transmissionAlpha; - float thickness; - float attenuationDistance; - vec3 attenuationColor; - #endif - #ifdef USE_ANISOTROPY - float anisotropy; - float alphaT; - vec3 anisotropyT; - vec3 anisotropyB; - #endif -}; -vec3 clearcoatSpecularDirect = vec3( 0.0 ); -vec3 clearcoatSpecularIndirect = vec3( 0.0 ); -vec3 sheenSpecularDirect = vec3( 0.0 ); -vec3 sheenSpecularIndirect = vec3(0.0 ); -vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { - float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); - float x2 = x * x; - float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); - return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); -} -float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { - float a2 = pow2( alpha ); - float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); - float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); - return 0.5 / max( gv + gl, EPSILON ); -} -float D_GGX( const in float alpha, const in float dotNH ) { - float a2 = pow2( alpha ); - float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; - return RECIPROCAL_PI * a2 / pow2( denom ); -} -#ifdef USE_ANISOTROPY - float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { - float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); - float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); - float v = 0.5 / ( gv + gl ); - return v; - } - float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { - float a2 = alphaT * alphaB; - highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); - highp float v2 = dot( v, v ); - float w2 = a2 / v2; - return RECIPROCAL_PI * a2 * pow2 ( w2 ); - } -#endif -#ifdef USE_CLEARCOAT - vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { - vec3 f0 = material.clearcoatF0; - float f90 = material.clearcoatF90; - float roughness = material.clearcoatRoughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - return F * ( V * D ); - } -#endif -vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 f0 = material.specularColorBlended; - float f90 = material.specularF90; - float roughness = material.roughness; - float alpha = pow2( roughness ); - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float dotVH = saturate( dot( viewDir, halfDir ) ); - vec3 F = F_Schlick( f0, f90, dotVH ); - #ifdef USE_IRIDESCENCE - F = mix( F, material.iridescenceFresnel, material.iridescence ); - #endif - #ifdef USE_ANISOTROPY - float dotTL = dot( material.anisotropyT, lightDir ); - float dotTV = dot( material.anisotropyT, viewDir ); - float dotTH = dot( material.anisotropyT, halfDir ); - float dotBL = dot( material.anisotropyB, lightDir ); - float dotBV = dot( material.anisotropyB, viewDir ); - float dotBH = dot( material.anisotropyB, halfDir ); - float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); - float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); - #else - float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); - float D = D_GGX( alpha, dotNH ); - #endif - return F * ( V * D ); -} -vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { - const float LUT_SIZE = 64.0; - const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; - const float LUT_BIAS = 0.5 / LUT_SIZE; - float dotNV = saturate( dot( N, V ) ); - vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); - uv = uv * LUT_SCALE + LUT_BIAS; - return uv; -} -float LTC_ClippedSphereFormFactor( const in vec3 f ) { - float l = length( f ); - return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); -} -vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { - float x = dot( v1, v2 ); - float y = abs( x ); - float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; - float b = 3.4175940 + ( 4.1616724 + y ) * y; - float v = a / b; - float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; - return cross( v1, v2 ) * theta_sintheta; -} -vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { - vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; - vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; - vec3 lightNormal = cross( v1, v2 ); - if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); - vec3 T1, T2; - T1 = normalize( V - N * dot( V, N ) ); - T2 = - cross( N, T1 ); - mat3 mat = mInv * transpose( mat3( T1, T2, N ) ); - vec3 coords[ 4 ]; - coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); - coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); - coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); - coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); - coords[ 0 ] = normalize( coords[ 0 ] ); - coords[ 1 ] = normalize( coords[ 1 ] ); - coords[ 2 ] = normalize( coords[ 2 ] ); - coords[ 3 ] = normalize( coords[ 3 ] ); - vec3 vectorFormFactor = vec3( 0.0 ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); - vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); - float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); - return vec3( result ); -} -#if defined( USE_SHEEN ) -float D_Charlie( float roughness, float dotNH ) { - float alpha = pow2( roughness ); - float invAlpha = 1.0 / alpha; - float cos2h = dotNH * dotNH; - float sin2h = max( 1.0 - cos2h, 0.0078125 ); - return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); -} -float V_Neubelt( float dotNV, float dotNL ) { - return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); -} -vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { - vec3 halfDir = normalize( lightDir + viewDir ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - float dotNH = saturate( dot( normal, halfDir ) ); - float D = D_Charlie( sheenRoughness, dotNH ); - float V = V_Neubelt( dotNV, dotNL ); - return sheenColor * ( D * V ); -} -#endif -float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - float r2 = roughness * roughness; - float rInv = 1.0 / ( roughness + 0.1 ); - float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv; - float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv; - float DG = exp( a * dotNV + b ); - return saturate( DG ); -} -vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { - float dotNV = saturate( dot( normal, viewDir ) ); - vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; - return specularColor * fab.x + specularF90 * fab.y; -} -#ifdef USE_IRIDESCENCE -void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#else -void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { -#endif - float dotNV = saturate( dot( normal, viewDir ) ); - vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; - #ifdef USE_IRIDESCENCE - vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); - #else - vec3 Fr = specularColor; - #endif - vec3 FssEss = Fr * fab.x + specularF90 * fab.y; - float Ess = fab.x + fab.y; - float Ems = 1.0 - Ess; - vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); - singleScatter += FssEss; - multiScatter += Fms * Ems; -} -vec3 BRDF_GGX_Multiscatter( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { - vec3 singleScatter = BRDF_GGX( lightDir, viewDir, normal, material ); - float dotNL = saturate( dot( normal, lightDir ) ); - float dotNV = saturate( dot( normal, viewDir ) ); - vec2 dfgV = texture2D( dfgLUT, vec2( material.roughness, dotNV ) ).rg; - vec2 dfgL = texture2D( dfgLUT, vec2( material.roughness, dotNL ) ).rg; - vec3 FssEss_V = material.specularColorBlended * dfgV.x + material.specularF90 * dfgV.y; - vec3 FssEss_L = material.specularColorBlended * dfgL.x + material.specularF90 * dfgL.y; - float Ess_V = dfgV.x + dfgV.y; - float Ess_L = dfgL.x + dfgL.y; - float Ems_V = 1.0 - Ess_V; - float Ems_L = 1.0 - Ess_L; - vec3 Favg = material.specularColorBlended + ( 1.0 - material.specularColorBlended ) * 0.047619; - vec3 Fms = FssEss_V * FssEss_L * Favg / ( 1.0 - Ems_V * Ems_L * Favg + EPSILON ); - float compensationFactor = Ems_V * Ems_L; - vec3 multiScatter = Fms * compensationFactor; - return singleScatter + multiScatter; -} -#if NUM_RECT_AREA_LIGHTS > 0 - void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 normal = geometryNormal; - vec3 viewDir = geometryViewDir; - vec3 position = geometryPosition; - vec3 lightPos = rectAreaLight.position; - vec3 halfWidth = rectAreaLight.halfWidth; - vec3 halfHeight = rectAreaLight.halfHeight; - vec3 lightColor = rectAreaLight.color; - float roughness = material.roughness; - vec3 rectCoords[ 4 ]; - rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; - rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; - rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; - vec2 uv = LTC_Uv( normal, viewDir, roughness ); - vec4 t1 = texture2D( ltc_1, uv ); - vec4 t2 = texture2D( ltc_2, uv ); - mat3 mInv = mat3( - vec3( t1.x, 0, t1.y ), - vec3( 0, 1, 0 ), - vec3( t1.z, 0, t1.w ) - ); - vec3 fresnel = ( material.specularColorBlended * t2.x + ( vec3( 1.0 ) - material.specularColorBlended ) * t2.y ); - reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); - reflectedLight.directDiffuse += lightColor * material.diffuseContribution * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); - } -#endif -void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); - vec3 irradiance = dotNL * directLight.color; - #ifdef USE_CLEARCOAT - float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); - vec3 ccIrradiance = dotNLcc * directLight.color; - clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); - #endif - #ifdef USE_SHEEN - - sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); - - float sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - float sheenAlbedoL = IBLSheenBRDF( geometryNormal, directLight.direction, material.sheenRoughness ); - - float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * max( sheenAlbedoV, sheenAlbedoL ); - - irradiance *= sheenEnergyComp; - - #endif - reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material ); - reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ); -} -void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { - vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ); - #ifdef USE_SHEEN - float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; - diffuse *= sheenEnergyComp; - #endif - reflectedLight.indirectDiffuse += diffuse; -} -void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { - #ifdef USE_CLEARCOAT - clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); - #endif - #ifdef USE_SHEEN - sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI; - #endif - vec3 singleScatteringDielectric = vec3( 0.0 ); - vec3 multiScatteringDielectric = vec3( 0.0 ); - vec3 singleScatteringMetallic = vec3( 0.0 ); - vec3 multiScatteringMetallic = vec3( 0.0 ); - #ifdef USE_IRIDESCENCE - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnelDielectric, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); - computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceFresnelMetallic, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); - #else - computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); - computeMultiscattering( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); - #endif - vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness ); - vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness ); - vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric; - vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric ); - vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; - vec3 indirectSpecular = radiance * singleScattering; - indirectSpecular += multiScattering * cosineWeightedIrradiance; - vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance; - #ifdef USE_SHEEN - float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); - float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; - indirectSpecular *= sheenEnergyComp; - indirectDiffuse *= sheenEnergyComp; - #endif - reflectedLight.indirectSpecular += indirectSpecular; - reflectedLight.indirectDiffuse += indirectDiffuse; -} -#define RE_Direct RE_Direct_Physical -#define RE_Direct_RectArea RE_Direct_RectArea_Physical -#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical -#define RE_IndirectSpecular RE_IndirectSpecular_Physical -float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { - return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); -}`,VCe=` -vec3 geometryPosition = - vViewPosition; -vec3 geometryNormal = normal; -vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); -vec3 geometryClearcoatNormal = vec3( 0.0 ); -#ifdef USE_CLEARCOAT - geometryClearcoatNormal = clearcoatNormal; -#endif -#ifdef USE_IRIDESCENCE - float dotNVi = saturate( dot( normal, geometryViewDir ) ); - if ( material.iridescenceThickness == 0.0 ) { - material.iridescence = 0.0; - } else { - material.iridescence = saturate( material.iridescence ); - } - if ( material.iridescence > 0.0 ) { - material.iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); - material.iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor ); - material.iridescenceFresnel = mix( material.iridescenceFresnelDielectric, material.iridescenceFresnelMetallic, material.metalness ); - material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); - } -#endif -IncidentLight directLight; -#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) - PointLight pointLight; - #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 - PointLightShadow pointLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { - pointLight = pointLights[ i ]; - getPointLightInfo( pointLight, geometryPosition, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) - pointLightShadow = pointLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) - SpotLight spotLight; - vec4 spotColor; - vec3 spotLightCoord; - bool inSpotLightMap; - #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { - spotLight = spotLights[ i ]; - getSpotLightInfo( spotLight, geometryPosition, directLight ); - #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX - #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS - #else - #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) - #endif - #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) - spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; - inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); - spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); - directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; - #endif - #undef SPOT_LIGHT_MAP_INDEX - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - spotLightShadow = spotLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) - DirectionalLight directionalLight; - #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLightShadow; - #endif - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { - directionalLight = directionalLights[ i ]; - getDirectionalLightInfo( directionalLight, directLight ); - #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) - directionalLightShadow = directionalLightShadows[ i ]; - directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - #endif - RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) - RectAreaLight rectAreaLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { - rectAreaLight = rectAreaLights[ i ]; - RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); - } - #pragma unroll_loop_end -#endif -#if defined( RE_IndirectDiffuse ) - vec3 iblIrradiance = vec3( 0.0 ); - vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); - #if defined( USE_LIGHT_PROBES ) - irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); - #endif - #if ( NUM_HEMI_LIGHTS > 0 ) - #pragma unroll_loop_start - for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { - irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); - } - #pragma unroll_loop_end - #endif -#endif -#if defined( RE_IndirectSpecular ) - vec3 radiance = vec3( 0.0 ); - vec3 clearcoatRadiance = vec3( 0.0 ); -#endif`,WCe=`#if defined( RE_IndirectDiffuse ) - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; - irradiance += lightMapIrradiance; - #endif - #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) - iblIrradiance += getIBLIrradiance( geometryNormal ); - #endif -#endif -#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) - #ifdef USE_ANISOTROPY - radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); - #else - radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); - #endif - #ifdef USE_CLEARCOAT - clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); - #endif -#endif`,qCe=`#if defined( RE_IndirectDiffuse ) - RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif -#if defined( RE_IndirectSpecular ) - RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); -#endif`,$Ce=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) - gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; -#endif`,XCe=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) - uniform float logDepthBufFC; - varying float vFragDepth; - varying float vIsPerspective; -#endif`,KCe=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER - varying float vFragDepth; - varying float vIsPerspective; -#endif`,YCe=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER - vFragDepth = 1.0 + gl_Position.w; - vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); -#endif`,JCe=`#ifdef USE_MAP - vec4 sampledDiffuseColor = texture2D( map, vMapUv ); - #ifdef DECODE_VIDEO_TEXTURE - sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); - #endif - diffuseColor *= sampledDiffuseColor; -#endif`,ZCe=`#ifdef USE_MAP - uniform sampler2D map; -#endif`,QCe=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - #if defined( USE_POINTS_UV ) - vec2 uv = vUv; - #else - vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; - #endif -#endif -#ifdef USE_MAP - diffuseColor *= texture2D( map, uv ); -#endif -#ifdef USE_ALPHAMAP - diffuseColor.a *= texture2D( alphaMap, uv ).g; -#endif`,eRe=`#if defined( USE_POINTS_UV ) - varying vec2 vUv; -#else - #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) - uniform mat3 uvTransform; - #endif -#endif -#ifdef USE_MAP - uniform sampler2D map; -#endif -#ifdef USE_ALPHAMAP - uniform sampler2D alphaMap; -#endif`,tRe=`float metalnessFactor = metalness; -#ifdef USE_METALNESSMAP - vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); - metalnessFactor *= texelMetalness.b; -#endif`,nRe=`#ifdef USE_METALNESSMAP - uniform sampler2D metalnessMap; -#endif`,rRe=`#ifdef USE_INSTANCING_MORPH - float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; - } -#endif`,iRe=`#if defined( USE_MORPHCOLORS ) - vColor *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - #if defined( USE_COLOR_ALPHA ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; - #elif defined( USE_COLOR ) - if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; - #endif - } -#endif`,aRe=`#ifdef USE_MORPHNORMALS - objectNormal *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; - } -#endif`,sRe=`#ifdef USE_MORPHTARGETS - #ifndef USE_INSTANCING_MORPH - uniform float morphTargetBaseInfluence; - uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; - #endif - uniform sampler2DArray morphTargetsTexture; - uniform ivec2 morphTargetsTextureSize; - vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { - int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; - int y = texelIndex / morphTargetsTextureSize.x; - int x = texelIndex - y * morphTargetsTextureSize.x; - ivec3 morphUV = ivec3( x, y, morphTargetIndex ); - return texelFetch( morphTargetsTexture, morphUV, 0 ); - } -#endif`,oRe=`#ifdef USE_MORPHTARGETS - transformed *= morphTargetBaseInfluence; - for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { - if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; - } -#endif`,lRe=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; -#ifdef FLAT_SHADED - vec3 fdx = dFdx( vViewPosition ); - vec3 fdy = dFdy( vViewPosition ); - vec3 normal = normalize( cross( fdx, fdy ) ); -#else - vec3 normal = normalize( vNormal ); - #ifdef DOUBLE_SIDED - normal *= faceDirection; - #endif -#endif -#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) - #ifdef USE_TANGENT - mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn = getTangentFrame( - vViewPosition, normal, - #if defined( USE_NORMALMAP ) - vNormalMapUv - #elif defined( USE_CLEARCOAT_NORMALMAP ) - vClearcoatNormalMapUv - #else - vUv - #endif - ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn[0] *= faceDirection; - tbn[1] *= faceDirection; - #endif -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - #ifdef USE_TANGENT - mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); - #else - mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); - #endif - #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) - tbn2[0] *= faceDirection; - tbn2[1] *= faceDirection; - #endif -#endif -vec3 nonPerturbedNormal = normal;`,cRe=`#ifdef USE_NORMALMAP_OBJECTSPACE - normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - #ifdef FLIP_SIDED - normal = - normal; - #endif - #ifdef DOUBLE_SIDED - normal = normal * faceDirection; - #endif - normal = normalize( normalMatrix * normal ); -#elif defined( USE_NORMALMAP_TANGENTSPACE ) - vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; - mapN.xy *= normalScale; - normal = normalize( tbn * mapN ); -#elif defined( USE_BUMPMAP ) - normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); -#endif`,uRe=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,fRe=`#ifndef FLAT_SHADED - varying vec3 vNormal; - #ifdef USE_TANGENT - varying vec3 vTangent; - varying vec3 vBitangent; - #endif -#endif`,dRe=`#ifndef FLAT_SHADED - vNormal = normalize( transformedNormal ); - #ifdef USE_TANGENT - vTangent = normalize( transformedTangent ); - vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); - #endif -#endif`,hRe=`#ifdef USE_NORMALMAP - uniform sampler2D normalMap; - uniform vec2 normalScale; -#endif -#ifdef USE_NORMALMAP_OBJECTSPACE - uniform mat3 normalMatrix; -#endif -#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) - mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { - vec3 q0 = dFdx( eye_pos.xyz ); - vec3 q1 = dFdy( eye_pos.xyz ); - vec2 st0 = dFdx( uv.st ); - vec2 st1 = dFdy( uv.st ); - vec3 N = surf_norm; - vec3 q1perp = cross( q1, N ); - vec3 q0perp = cross( N, q0 ); - vec3 T = q1perp * st0.x + q0perp * st1.x; - vec3 B = q1perp * st0.y + q0perp * st1.y; - float det = max( dot( T, T ), dot( B, B ) ); - float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); - return mat3( T * scale, B * scale, N ); - } -#endif`,pRe=`#ifdef USE_CLEARCOAT - vec3 clearcoatNormal = nonPerturbedNormal; -#endif`,mRe=`#ifdef USE_CLEARCOAT_NORMALMAP - vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; - clearcoatMapN.xy *= clearcoatNormalScale; - clearcoatNormal = normalize( tbn2 * clearcoatMapN ); -#endif`,gRe=`#ifdef USE_CLEARCOATMAP - uniform sampler2D clearcoatMap; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform sampler2D clearcoatNormalMap; - uniform vec2 clearcoatNormalScale; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform sampler2D clearcoatRoughnessMap; -#endif`,vRe=`#ifdef USE_IRIDESCENCEMAP - uniform sampler2D iridescenceMap; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform sampler2D iridescenceThicknessMap; -#endif`,yRe=`#ifdef OPAQUE -diffuseColor.a = 1.0; -#endif -#ifdef USE_TRANSMISSION -diffuseColor.a *= material.transmissionAlpha; -#endif -gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,xRe=`vec3 packNormalToRGB( const in vec3 normal ) { - return normalize( normal ) * 0.5 + 0.5; -} -vec3 unpackRGBToNormal( const in vec3 rgb ) { - return 2.0 * rgb.xyz - 1.0; -} -const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; -const float Inv255 = 1. / 255.; -const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); -const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); -const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); -const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); -vec4 packDepthToRGBA( const in float v ) { - if( v <= 0.0 ) - return vec4( 0., 0., 0., 0. ); - if( v >= 1.0 ) - return vec4( 1., 1., 1., 1. ); - float vuf; - float af = modf( v * PackFactors.a, vuf ); - float bf = modf( vuf * ShiftRight8, vuf ); - float gf = modf( vuf * ShiftRight8, vuf ); - return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); -} -vec3 packDepthToRGB( const in float v ) { - if( v <= 0.0 ) - return vec3( 0., 0., 0. ); - if( v >= 1.0 ) - return vec3( 1., 1., 1. ); - float vuf; - float bf = modf( v * PackFactors.b, vuf ); - float gf = modf( vuf * ShiftRight8, vuf ); - return vec3( vuf * Inv255, gf * PackUpscale, bf ); -} -vec2 packDepthToRG( const in float v ) { - if( v <= 0.0 ) - return vec2( 0., 0. ); - if( v >= 1.0 ) - return vec2( 1., 1. ); - float vuf; - float gf = modf( v * 256., vuf ); - return vec2( vuf * Inv255, gf ); -} -float unpackRGBAToDepth( const in vec4 v ) { - return dot( v, UnpackFactors4 ); -} -float unpackRGBToDepth( const in vec3 v ) { - return dot( v, UnpackFactors3 ); -} -float unpackRGToDepth( const in vec2 v ) { - return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; -} -vec4 pack2HalfToRGBA( const in vec2 v ) { - vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); - return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); -} -vec2 unpackRGBATo2Half( const in vec4 v ) { - return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); -} -float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { - return ( viewZ + near ) / ( near - far ); -} -float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { - return depth * ( near - far ) - near; -} -float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { - return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); -} -float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { - return ( near * far ) / ( ( far - near ) * depth - far ); -}`,bRe=`#ifdef PREMULTIPLIED_ALPHA - gl_FragColor.rgb *= gl_FragColor.a; -#endif`,_Re=`vec4 mvPosition = vec4( transformed, 1.0 ); -#ifdef USE_BATCHING - mvPosition = batchingMatrix * mvPosition; -#endif -#ifdef USE_INSTANCING - mvPosition = instanceMatrix * mvPosition; -#endif -mvPosition = modelViewMatrix * mvPosition; -gl_Position = projectionMatrix * mvPosition;`,SRe=`#ifdef DITHERING - gl_FragColor.rgb = dithering( gl_FragColor.rgb ); -#endif`,ARe=`#ifdef DITHERING - vec3 dithering( vec3 color ) { - float grid_position = rand( gl_FragCoord.xy ); - vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); - dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); - return color + dither_shift_RGB; - } -#endif`,wRe=`float roughnessFactor = roughness; -#ifdef USE_ROUGHNESSMAP - vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); - roughnessFactor *= texelRoughness.g; -#endif`,MRe=`#ifdef USE_ROUGHNESSMAP - uniform sampler2D roughnessMap; -#endif`,ERe=`#if NUM_SPOT_LIGHT_COORDS > 0 - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#if NUM_SPOT_LIGHT_MAPS > 0 - uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - uniform sampler2DShadow directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - #else - uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - uniform sampler2DShadow spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - #else - uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - uniform samplerCubeShadow pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - #elif defined( SHADOWMAP_TYPE_BASIC ) - uniform samplerCube pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif - #if defined( SHADOWMAP_TYPE_PCF ) - float interleavedGradientNoise( vec2 position ) { - return fract( 52.9829189 * fract( dot( position, vec2( 0.06711056, 0.00583715 ) ) ) ); - } - vec2 vogelDiskSample( int sampleIndex, int samplesCount, float phi ) { - const float goldenAngle = 2.399963229728653; - float r = sqrt( ( float( sampleIndex ) + 0.5 ) / float( samplesCount ) ); - float theta = float( sampleIndex ) * goldenAngle + phi; - return vec2( cos( theta ), sin( theta ) ) * r; - } - #endif - #if defined( SHADOWMAP_TYPE_PCF ) - float getShadow( sampler2DShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - vec2 texelSize = vec2( 1.0 ) / shadowMapSize; - float radius = shadowRadius * texelSize.x; - float phi = interleavedGradientNoise( gl_FragCoord.xy ) * 6.28318530718; - shadow = ( - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 0, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 1, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 2, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 3, 5, phi ) * radius, shadowCoord.z ) ) + - texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 4, 5, phi ) * radius, shadowCoord.z ) ) - ) * 0.2; - } - return mix( 1.0, shadow, shadowIntensity ); - } - #elif defined( SHADOWMAP_TYPE_VSM ) - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - vec2 distribution = texture2D( shadowMap, shadowCoord.xy ).rg; - float mean = distribution.x; - float variance = distribution.y * distribution.y; - #ifdef USE_REVERSED_DEPTH_BUFFER - float hard_shadow = step( mean, shadowCoord.z ); - #else - float hard_shadow = step( shadowCoord.z, mean ); - #endif - if ( hard_shadow == 1.0 ) { - shadow = 1.0; - } else { - variance = max( variance, 0.0000001 ); - float d = shadowCoord.z - mean; - float p_max = variance / ( variance + d * d ); - p_max = clamp( ( p_max - 0.3 ) / 0.65, 0.0, 1.0 ); - shadow = max( hard_shadow, p_max ); - } - } - return mix( 1.0, shadow, shadowIntensity ); - } - #else - float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { - float shadow = 1.0; - shadowCoord.xyz /= shadowCoord.w; - shadowCoord.z += shadowBias; - bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; - bool frustumTest = inFrustum && shadowCoord.z <= 1.0; - if ( frustumTest ) { - float depth = texture2D( shadowMap, shadowCoord.xy ).r; - #ifdef USE_REVERSED_DEPTH_BUFFER - shadow = step( depth, shadowCoord.z ); - #else - shadow = step( shadowCoord.z, depth ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #if defined( SHADOWMAP_TYPE_PCF ) - float getPointShadow( samplerCubeShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - float shadow = 1.0; - vec3 lightToPosition = shadowCoord.xyz; - vec3 bd3D = normalize( lightToPosition ); - vec3 absVec = abs( lightToPosition ); - float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); - if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { - float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); - dp += shadowBias; - float texelSize = shadowRadius / shadowMapSize.x; - vec3 absDir = abs( bd3D ); - vec3 tangent = absDir.x > absDir.z ? vec3( 0.0, 1.0, 0.0 ) : vec3( 1.0, 0.0, 0.0 ); - tangent = normalize( cross( bd3D, tangent ) ); - vec3 bitangent = cross( bd3D, tangent ); - float phi = interleavedGradientNoise( gl_FragCoord.xy ) * 6.28318530718; - shadow = ( - texture( shadowMap, vec4( bd3D + ( tangent * vogelDiskSample( 0, 5, phi ).x + bitangent * vogelDiskSample( 0, 5, phi ).y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * vogelDiskSample( 1, 5, phi ).x + bitangent * vogelDiskSample( 1, 5, phi ).y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * vogelDiskSample( 2, 5, phi ).x + bitangent * vogelDiskSample( 2, 5, phi ).y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * vogelDiskSample( 3, 5, phi ).x + bitangent * vogelDiskSample( 3, 5, phi ).y ) * texelSize, dp ) ) + - texture( shadowMap, vec4( bd3D + ( tangent * vogelDiskSample( 4, 5, phi ).x + bitangent * vogelDiskSample( 4, 5, phi ).y ) * texelSize, dp ) ) - ) * 0.2; - } - return mix( 1.0, shadow, shadowIntensity ); - } - #elif defined( SHADOWMAP_TYPE_BASIC ) - float getPointShadow( samplerCube shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { - float shadow = 1.0; - vec3 lightToPosition = shadowCoord.xyz; - vec3 bd3D = normalize( lightToPosition ); - vec3 absVec = abs( lightToPosition ); - float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); - if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { - float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); - dp += shadowBias; - float depth = textureCube( shadowMap, bd3D ).r; - #ifdef USE_REVERSED_DEPTH_BUFFER - shadow = step( depth, dp ); - #else - shadow = step( dp, depth ); - #endif - } - return mix( 1.0, shadow, shadowIntensity ); - } - #endif - #endif -#endif`,TRe=`#if NUM_SPOT_LIGHT_COORDS > 0 - uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; - varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; -#endif -#ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; - varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; - struct DirectionalLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - struct SpotLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - }; - uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; - varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; - struct PointLightShadow { - float shadowIntensity; - float shadowBias; - float shadowNormalBias; - float shadowRadius; - vec2 shadowMapSize; - float shadowCameraNear; - float shadowCameraFar; - }; - uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; - #endif -#endif`,CRe=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) - vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); - vec4 shadowWorldPosition; -#endif -#if defined( USE_SHADOWMAP ) - #if NUM_DIR_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); - vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); - vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end - #endif -#endif -#if NUM_SPOT_LIGHT_COORDS > 0 - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { - shadowWorldPosition = worldPosition; - #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) - shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; - #endif - vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; - } - #pragma unroll_loop_end -#endif`,RRe=`float getShadowMask() { - float shadow = 1.0; - #ifdef USE_SHADOWMAP - #if NUM_DIR_LIGHT_SHADOWS > 0 - DirectionalLightShadow directionalLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { - directionalLight = directionalLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_SPOT_LIGHT_SHADOWS > 0 - SpotLightShadow spotLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { - spotLight = spotLightShadows[ i ]; - shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; - } - #pragma unroll_loop_end - #endif - #if NUM_POINT_LIGHT_SHADOWS > 0 && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) - PointLightShadow pointLight; - #pragma unroll_loop_start - for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { - pointLight = pointLightShadows[ i ]; - shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; - } - #pragma unroll_loop_end - #endif - #endif - return shadow; -}`,ORe=`#ifdef USE_SKINNING - mat4 boneMatX = getBoneMatrix( skinIndex.x ); - mat4 boneMatY = getBoneMatrix( skinIndex.y ); - mat4 boneMatZ = getBoneMatrix( skinIndex.z ); - mat4 boneMatW = getBoneMatrix( skinIndex.w ); -#endif`,PRe=`#ifdef USE_SKINNING - uniform mat4 bindMatrix; - uniform mat4 bindMatrixInverse; - uniform highp sampler2D boneTexture; - mat4 getBoneMatrix( const in float i ) { - int size = textureSize( boneTexture, 0 ).x; - int j = int( i ) * 4; - int x = j % size; - int y = j / size; - vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); - vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); - vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); - vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); - return mat4( v1, v2, v3, v4 ); - } -#endif`,DRe=`#ifdef USE_SKINNING - vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); - vec4 skinned = vec4( 0.0 ); - skinned += boneMatX * skinVertex * skinWeight.x; - skinned += boneMatY * skinVertex * skinWeight.y; - skinned += boneMatZ * skinVertex * skinWeight.z; - skinned += boneMatW * skinVertex * skinWeight.w; - transformed = ( bindMatrixInverse * skinned ).xyz; -#endif`,NRe=`#ifdef USE_SKINNING - mat4 skinMatrix = mat4( 0.0 ); - skinMatrix += skinWeight.x * boneMatX; - skinMatrix += skinWeight.y * boneMatY; - skinMatrix += skinWeight.z * boneMatZ; - skinMatrix += skinWeight.w * boneMatW; - skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; - objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; - #ifdef USE_TANGENT - objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; - #endif -#endif`,IRe=`float specularStrength; -#ifdef USE_SPECULARMAP - vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); - specularStrength = texelSpecular.r; -#else - specularStrength = 1.0; -#endif`,BRe=`#ifdef USE_SPECULARMAP - uniform sampler2D specularMap; -#endif`,LRe=`#if defined( TONE_MAPPING ) - gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); -#endif`,kRe=`#ifndef saturate -#define saturate( a ) clamp( a, 0.0, 1.0 ) -#endif -uniform float toneMappingExposure; -vec3 LinearToneMapping( vec3 color ) { - return saturate( toneMappingExposure * color ); -} -vec3 ReinhardToneMapping( vec3 color ) { - color *= toneMappingExposure; - return saturate( color / ( vec3( 1.0 ) + color ) ); -} -vec3 CineonToneMapping( vec3 color ) { - color *= toneMappingExposure; - color = max( vec3( 0.0 ), color - 0.004 ); - return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); -} -vec3 RRTAndODTFit( vec3 v ) { - vec3 a = v * ( v + 0.0245786 ) - 0.000090537; - vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; - return a / b; -} -vec3 ACESFilmicToneMapping( vec3 color ) { - const mat3 ACESInputMat = mat3( - vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), - vec3( 0.04823, 0.01566, 0.83777 ) - ); - const mat3 ACESOutputMat = mat3( - vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), - vec3( -0.07367, -0.00605, 1.07602 ) - ); - color *= toneMappingExposure / 0.6; - color = ACESInputMat * color; - color = RRTAndODTFit( color ); - color = ACESOutputMat * color; - return saturate( color ); -} -const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( - vec3( 1.6605, - 0.1246, - 0.0182 ), - vec3( - 0.5876, 1.1329, - 0.1006 ), - vec3( - 0.0728, - 0.0083, 1.1187 ) -); -const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( - vec3( 0.6274, 0.0691, 0.0164 ), - vec3( 0.3293, 0.9195, 0.0880 ), - vec3( 0.0433, 0.0113, 0.8956 ) -); -vec3 agxDefaultContrastApprox( vec3 x ) { - vec3 x2 = x * x; - vec3 x4 = x2 * x2; - return + 15.5 * x4 * x2 - - 40.14 * x4 * x - + 31.96 * x4 - - 6.868 * x2 * x - + 0.4298 * x2 - + 0.1191 * x - - 0.00232; -} -vec3 AgXToneMapping( vec3 color ) { - const mat3 AgXInsetMatrix = mat3( - vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), - vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), - vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) - ); - const mat3 AgXOutsetMatrix = mat3( - vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), - vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), - vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) - ); - const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; - color *= toneMappingExposure; - color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; - color = AgXInsetMatrix * color; - color = max( color, 1e-10 ); color = log2( color ); - color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); - color = clamp( color, 0.0, 1.0 ); - color = agxDefaultContrastApprox( color ); - color = AgXOutsetMatrix * color; - color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); - color = LINEAR_REC2020_TO_LINEAR_SRGB * color; - color = clamp( color, 0.0, 1.0 ); - return color; -} -vec3 NeutralToneMapping( vec3 color ) { - const float StartCompression = 0.8 - 0.04; - const float Desaturation = 0.15; - color *= toneMappingExposure; - float x = min( color.r, min( color.g, color.b ) ); - float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; - color -= offset; - float peak = max( color.r, max( color.g, color.b ) ); - if ( peak < StartCompression ) return color; - float d = 1. - StartCompression; - float newPeak = 1. - d * d / ( peak + d - StartCompression ); - color *= newPeak / peak; - float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); - return mix( color, vec3( newPeak ), g ); -} -vec3 CustomToneMapping( vec3 color ) { return color; }`,FRe=`#ifdef USE_TRANSMISSION - material.transmission = transmission; - material.transmissionAlpha = 1.0; - material.thickness = thickness; - material.attenuationDistance = attenuationDistance; - material.attenuationColor = attenuationColor; - #ifdef USE_TRANSMISSIONMAP - material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; - #endif - #ifdef USE_THICKNESSMAP - material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; - #endif - vec3 pos = vWorldPosition; - vec3 v = normalize( cameraPosition - pos ); - vec3 n = inverseTransformDirection( normal, viewMatrix ); - vec4 transmitted = getIBLVolumeRefraction( - n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90, - pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, - material.attenuationColor, material.attenuationDistance ); - material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); - totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); -#endif`,URe=`#ifdef USE_TRANSMISSION - uniform float transmission; - uniform float thickness; - uniform float attenuationDistance; - uniform vec3 attenuationColor; - #ifdef USE_TRANSMISSIONMAP - uniform sampler2D transmissionMap; - #endif - #ifdef USE_THICKNESSMAP - uniform sampler2D thicknessMap; - #endif - uniform vec2 transmissionSamplerSize; - uniform sampler2D transmissionSamplerMap; - uniform mat4 modelMatrix; - uniform mat4 projectionMatrix; - varying vec3 vWorldPosition; - float w0( float a ) { - return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); - } - float w1( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); - } - float w2( float a ){ - return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); - } - float w3( float a ) { - return ( 1.0 / 6.0 ) * ( a * a * a ); - } - float g0( float a ) { - return w0( a ) + w1( a ); - } - float g1( float a ) { - return w2( a ) + w3( a ); - } - float h0( float a ) { - return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); - } - float h1( float a ) { - return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); - } - vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { - uv = uv * texelSize.zw + 0.5; - vec2 iuv = floor( uv ); - vec2 fuv = fract( uv ); - float g0x = g0( fuv.x ); - float g1x = g1( fuv.x ); - float h0x = h0( fuv.x ); - float h1x = h1( fuv.x ); - float h0y = h0( fuv.y ); - float h1y = h1( fuv.y ); - vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; - vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; - return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + - g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); - } - vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { - vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); - vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); - vec2 fLodSizeInv = 1.0 / fLodSize; - vec2 cLodSizeInv = 1.0 / cLodSize; - vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); - vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); - return mix( fSample, cSample, fract( lod ) ); - } - vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { - vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); - vec3 modelScale; - modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); - modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); - modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); - return normalize( refractionVector ) * thickness * modelScale; - } - float applyIorToRoughness( const in float roughness, const in float ior ) { - return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); - } - vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { - float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); - return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); - } - vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { - if ( isinf( attenuationDistance ) ) { - return vec3( 1.0 ); - } else { - vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; - vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; - } - } - vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, - const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, - const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, - const in vec3 attenuationColor, const in float attenuationDistance ) { - vec4 transmittedLight; - vec3 transmittance; - #ifdef USE_DISPERSION - float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; - vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); - for ( int i = 0; i < 3; i ++ ) { - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); - transmittedLight[ i ] = transmissionSample[ i ]; - transmittedLight.a += transmissionSample.a; - transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; - } - transmittedLight.a /= 3.0; - #else - vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); - vec3 refractedRayExit = position + transmissionRay; - vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); - vec2 refractionCoords = ndcPos.xy / ndcPos.w; - refractionCoords += 1.0; - refractionCoords /= 2.0; - transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); - transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); - #endif - vec3 attenuatedColor = transmittance * transmittedLight.rgb; - vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); - float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; - return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); - } -#endif`,jRe=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - varying vec2 vNormalMapUv; -#endif -#ifdef USE_EMISSIVEMAP - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_SPECULARMAP - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,zRe=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - varying vec2 vUv; -#endif -#ifdef USE_MAP - uniform mat3 mapTransform; - varying vec2 vMapUv; -#endif -#ifdef USE_ALPHAMAP - uniform mat3 alphaMapTransform; - varying vec2 vAlphaMapUv; -#endif -#ifdef USE_LIGHTMAP - uniform mat3 lightMapTransform; - varying vec2 vLightMapUv; -#endif -#ifdef USE_AOMAP - uniform mat3 aoMapTransform; - varying vec2 vAoMapUv; -#endif -#ifdef USE_BUMPMAP - uniform mat3 bumpMapTransform; - varying vec2 vBumpMapUv; -#endif -#ifdef USE_NORMALMAP - uniform mat3 normalMapTransform; - varying vec2 vNormalMapUv; -#endif -#ifdef USE_DISPLACEMENTMAP - uniform mat3 displacementMapTransform; - varying vec2 vDisplacementMapUv; -#endif -#ifdef USE_EMISSIVEMAP - uniform mat3 emissiveMapTransform; - varying vec2 vEmissiveMapUv; -#endif -#ifdef USE_METALNESSMAP - uniform mat3 metalnessMapTransform; - varying vec2 vMetalnessMapUv; -#endif -#ifdef USE_ROUGHNESSMAP - uniform mat3 roughnessMapTransform; - varying vec2 vRoughnessMapUv; -#endif -#ifdef USE_ANISOTROPYMAP - uniform mat3 anisotropyMapTransform; - varying vec2 vAnisotropyMapUv; -#endif -#ifdef USE_CLEARCOATMAP - uniform mat3 clearcoatMapTransform; - varying vec2 vClearcoatMapUv; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - uniform mat3 clearcoatNormalMapTransform; - varying vec2 vClearcoatNormalMapUv; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - uniform mat3 clearcoatRoughnessMapTransform; - varying vec2 vClearcoatRoughnessMapUv; -#endif -#ifdef USE_SHEEN_COLORMAP - uniform mat3 sheenColorMapTransform; - varying vec2 vSheenColorMapUv; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - uniform mat3 sheenRoughnessMapTransform; - varying vec2 vSheenRoughnessMapUv; -#endif -#ifdef USE_IRIDESCENCEMAP - uniform mat3 iridescenceMapTransform; - varying vec2 vIridescenceMapUv; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - uniform mat3 iridescenceThicknessMapTransform; - varying vec2 vIridescenceThicknessMapUv; -#endif -#ifdef USE_SPECULARMAP - uniform mat3 specularMapTransform; - varying vec2 vSpecularMapUv; -#endif -#ifdef USE_SPECULAR_COLORMAP - uniform mat3 specularColorMapTransform; - varying vec2 vSpecularColorMapUv; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - uniform mat3 specularIntensityMapTransform; - varying vec2 vSpecularIntensityMapUv; -#endif -#ifdef USE_TRANSMISSIONMAP - uniform mat3 transmissionMapTransform; - varying vec2 vTransmissionMapUv; -#endif -#ifdef USE_THICKNESSMAP - uniform mat3 thicknessMapTransform; - varying vec2 vThicknessMapUv; -#endif`,GRe=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) - vUv = vec3( uv, 1 ).xy; -#endif -#ifdef USE_MAP - vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ALPHAMAP - vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_LIGHTMAP - vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_AOMAP - vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_BUMPMAP - vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_NORMALMAP - vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_DISPLACEMENTMAP - vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_EMISSIVEMAP - vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_METALNESSMAP - vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ROUGHNESSMAP - vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_ANISOTROPYMAP - vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOATMAP - vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_NORMALMAP - vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_CLEARCOAT_ROUGHNESSMAP - vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCEMAP - vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_IRIDESCENCE_THICKNESSMAP - vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_COLORMAP - vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SHEEN_ROUGHNESSMAP - vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULARMAP - vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_COLORMAP - vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_SPECULAR_INTENSITYMAP - vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_TRANSMISSIONMAP - vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; -#endif -#ifdef USE_THICKNESSMAP - vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; -#endif`,HRe=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 - vec4 worldPosition = vec4( transformed, 1.0 ); - #ifdef USE_BATCHING - worldPosition = batchingMatrix * worldPosition; - #endif - #ifdef USE_INSTANCING - worldPosition = instanceMatrix * worldPosition; - #endif - worldPosition = modelMatrix * worldPosition; -#endif`;const VRe=`varying vec2 vUv; -uniform mat3 uvTransform; -void main() { - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - gl_Position = vec4( position.xy, 1.0, 1.0 ); -}`,WRe=`uniform sampler2D t2D; -uniform float backgroundIntensity; -varying vec2 vUv; -void main() { - vec4 texColor = texture2D( t2D, vUv ); - #ifdef DECODE_VIDEO_TEXTURE - texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,qRe=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,$Re=`#ifdef ENVMAP_TYPE_CUBE - uniform samplerCube envMap; -#elif defined( ENVMAP_TYPE_CUBE_UV ) - uniform sampler2D envMap; -#endif -uniform float flipEnvMap; -uniform float backgroundBlurriness; -uniform float backgroundIntensity; -uniform mat3 backgroundRotation; -varying vec3 vWorldDirection; -#include -void main() { - #ifdef ENVMAP_TYPE_CUBE - vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); - #elif defined( ENVMAP_TYPE_CUBE_UV ) - vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); - #else - vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - #endif - texColor.rgb *= backgroundIntensity; - gl_FragColor = texColor; - #include - #include -}`,XRe=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include - gl_Position.z = gl_Position.w; -}`,KRe=`uniform samplerCube tCube; -uniform float tFlip; -uniform float opacity; -varying vec3 vWorldDirection; -void main() { - vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); - gl_FragColor = texColor; - gl_FragColor.a *= opacity; - #include - #include -}`,YRe=`#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - #include - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vHighPrecisionZW = gl_Position.zw; -}`,JRe=`#if DEPTH_PACKING == 3200 - uniform float opacity; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -varying vec2 vHighPrecisionZW; -void main() { - vec4 diffuseColor = vec4( 1.0 ); - #include - #if DEPTH_PACKING == 3200 - diffuseColor.a = opacity; - #endif - #include - #include - #include - #include - #include - #ifdef USE_REVERSED_DEPTH_BUFFER - float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; - #else - float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; - #endif - #if DEPTH_PACKING == 3200 - gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); - #elif DEPTH_PACKING == 3201 - gl_FragColor = packDepthToRGBA( fragCoordZ ); - #elif DEPTH_PACKING == 3202 - gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); - #elif DEPTH_PACKING == 3203 - gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); - #endif -}`,ZRe=`#define DISTANCE -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #ifdef USE_DISPLACEMENTMAP - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - vWorldPosition = worldPosition.xyz; -}`,QRe=`#define DISTANCE -uniform vec3 referencePosition; -uniform float nearDistance; -uniform float farDistance; -varying vec3 vWorldPosition; -#include -#include -#include -#include -#include -#include -#include -void main () { - vec4 diffuseColor = vec4( 1.0 ); - #include - #include - #include - #include - #include - float dist = length( vWorldPosition - referencePosition ); - dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); - dist = saturate( dist ); - gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 ); -}`,eOe=`varying vec3 vWorldDirection; -#include -void main() { - vWorldDirection = transformDirection( position, modelMatrix ); - #include - #include -}`,tOe=`uniform sampler2D tEquirect; -varying vec3 vWorldDirection; -#include -void main() { - vec3 direction = normalize( vWorldDirection ); - vec2 sampleUV = equirectUv( direction ); - gl_FragColor = texture2D( tEquirect, sampleUV ); - #include - #include -}`,nOe=`uniform float scale; -attribute float lineDistance; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vLineDistance = scale * lineDistance; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,rOe=`uniform vec3 diffuse; -uniform float opacity; -uniform float dashSize; -uniform float totalSize; -varying float vLineDistance; -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - if ( mod( vLineDistance, totalSize ) > dashSize ) { - discard; - } - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,iOe=`#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) - #include - #include - #include - #include - #include - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,aOe=`uniform vec3 diffuse; -uniform float opacity; -#ifndef FLAT_SHADED - varying vec3 vNormal; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - #ifdef USE_LIGHTMAP - vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); - reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; - #else - reflectedLight.indirectDiffuse += vec3( 1.0 ); - #endif - #include - reflectedLight.indirectDiffuse *= diffuseColor.rgb; - vec3 outgoingLight = reflectedLight.indirectDiffuse; - #include - #include - #include - #include - #include - #include - #include -}`,sOe=`#define LAMBERT -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,oOe=`#define LAMBERT -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,lOe=`#define MATCAP -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; -}`,cOe=`#define MATCAP -uniform vec3 diffuse; -uniform float opacity; -uniform sampler2D matcap; -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 viewDir = normalize( vViewPosition ); - vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); - vec3 y = cross( viewDir, x ); - vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; - #ifdef USE_MATCAP - vec4 matcapColor = texture2D( matcap, uv ); - #else - vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); - #endif - vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; - #include - #include - #include - #include - #include - #include -}`,uOe=`#define NORMAL -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - vViewPosition = - mvPosition.xyz; -#endif -}`,fOe=`#define NORMAL -uniform float opacity; -#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) - varying vec3 vViewPosition; -#endif -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); - #include - #include - #include - #include - gl_FragColor = vec4( normalize( normal ) * 0.5 + 0.5, diffuseColor.a ); - #ifdef OPAQUE - gl_FragColor.a = 1.0; - #endif -}`,dOe=`#define PHONG -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include - #include -}`,hOe=`#define PHONG -uniform vec3 diffuse; -uniform vec3 emissive; -uniform vec3 specular; -uniform float shininess; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include - #include -}`,pOe=`#define STANDARD -varying vec3 vViewPosition; -#ifdef USE_TRANSMISSION - varying vec3 vWorldPosition; -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -#ifdef USE_TRANSMISSION - vWorldPosition = worldPosition.xyz; -#endif -}`,mOe=`#define STANDARD -#ifdef PHYSICAL - #define IOR - #define USE_SPECULAR -#endif -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float roughness; -uniform float metalness; -uniform float opacity; -#ifdef IOR - uniform float ior; -#endif -#ifdef USE_SPECULAR - uniform float specularIntensity; - uniform vec3 specularColor; - #ifdef USE_SPECULAR_COLORMAP - uniform sampler2D specularColorMap; - #endif - #ifdef USE_SPECULAR_INTENSITYMAP - uniform sampler2D specularIntensityMap; - #endif -#endif -#ifdef USE_CLEARCOAT - uniform float clearcoat; - uniform float clearcoatRoughness; -#endif -#ifdef USE_DISPERSION - uniform float dispersion; -#endif -#ifdef USE_IRIDESCENCE - uniform float iridescence; - uniform float iridescenceIOR; - uniform float iridescenceThicknessMinimum; - uniform float iridescenceThicknessMaximum; -#endif -#ifdef USE_SHEEN - uniform vec3 sheenColor; - uniform float sheenRoughness; - #ifdef USE_SHEEN_COLORMAP - uniform sampler2D sheenColorMap; - #endif - #ifdef USE_SHEEN_ROUGHNESSMAP - uniform sampler2D sheenRoughnessMap; - #endif -#endif -#ifdef USE_ANISOTROPY - uniform vec2 anisotropyVector; - #ifdef USE_ANISOTROPYMAP - uniform sampler2D anisotropyMap; - #endif -#endif -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; - vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; - #include - vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; - #ifdef USE_SHEEN - - outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect; - - #endif - #ifdef USE_CLEARCOAT - float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); - vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); - outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; - #endif - #include - #include - #include - #include - #include - #include -}`,gOe=`#define TOON -varying vec3 vViewPosition; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vViewPosition = - mvPosition.xyz; - #include - #include - #include -}`,vOe=`#define TOON -uniform vec3 diffuse; -uniform vec3 emissive; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); - vec3 totalEmissiveRadiance = emissive; - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; - #include - #include - #include - #include - #include - #include -}`,yOe=`uniform float size; -uniform float scale; -#include -#include -#include -#include -#include -#include -#ifdef USE_POINTS_UV - varying vec2 vUv; - uniform mat3 uvTransform; -#endif -void main() { - #ifdef USE_POINTS_UV - vUv = ( uvTransform * vec3( uv, 1 ) ).xy; - #endif - #include - #include - #include - #include - #include - #include - gl_PointSize = size; - #ifdef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); - #endif - #include - #include - #include - #include -}`,xOe=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include - #include -}`,bOe=`#include -#include -#include -#include -#include -#include -#include -void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include -}`,_Oe=`uniform vec3 color; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -void main() { - #include - gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); - #include - #include - #include -}`,SOe=`uniform float rotation; -uniform vec2 center; -#include -#include -#include -#include -#include -void main() { - #include - vec4 mvPosition = modelViewMatrix[ 3 ]; - vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); - #ifndef USE_SIZEATTENUATION - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - #endif - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - gl_Position = projectionMatrix * mvPosition; - #include - #include - #include -}`,AOe=`uniform vec3 diffuse; -uniform float opacity; -#include -#include -#include -#include -#include -#include -#include -#include -#include -void main() { - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - vec3 outgoingLight = vec3( 0.0 ); - #include - #include - #include - #include - #include - outgoingLight = diffuseColor.rgb; - #include - #include - #include - #include -}`,bn={alphahash_fragment:WTe,alphahash_pars_fragment:qTe,alphamap_fragment:$Te,alphamap_pars_fragment:XTe,alphatest_fragment:KTe,alphatest_pars_fragment:YTe,aomap_fragment:JTe,aomap_pars_fragment:ZTe,batching_pars_vertex:QTe,batching_vertex:eCe,begin_vertex:tCe,beginnormal_vertex:nCe,bsdfs:rCe,iridescence_fragment:iCe,bumpmap_pars_fragment:aCe,clipping_planes_fragment:sCe,clipping_planes_pars_fragment:oCe,clipping_planes_pars_vertex:lCe,clipping_planes_vertex:cCe,color_fragment:uCe,color_pars_fragment:fCe,color_pars_vertex:dCe,color_vertex:hCe,common:pCe,cube_uv_reflection_fragment:mCe,defaultnormal_vertex:gCe,displacementmap_pars_vertex:vCe,displacementmap_vertex:yCe,emissivemap_fragment:xCe,emissivemap_pars_fragment:bCe,colorspace_fragment:_Ce,colorspace_pars_fragment:SCe,envmap_fragment:ACe,envmap_common_pars_fragment:wCe,envmap_pars_fragment:MCe,envmap_pars_vertex:ECe,envmap_physical_pars_fragment:kCe,envmap_vertex:TCe,fog_vertex:CCe,fog_pars_vertex:RCe,fog_fragment:OCe,fog_pars_fragment:PCe,gradientmap_pars_fragment:DCe,lightmap_pars_fragment:NCe,lights_lambert_fragment:ICe,lights_lambert_pars_fragment:BCe,lights_pars_begin:LCe,lights_toon_fragment:FCe,lights_toon_pars_fragment:UCe,lights_phong_fragment:jCe,lights_phong_pars_fragment:zCe,lights_physical_fragment:GCe,lights_physical_pars_fragment:HCe,lights_fragment_begin:VCe,lights_fragment_maps:WCe,lights_fragment_end:qCe,logdepthbuf_fragment:$Ce,logdepthbuf_pars_fragment:XCe,logdepthbuf_pars_vertex:KCe,logdepthbuf_vertex:YCe,map_fragment:JCe,map_pars_fragment:ZCe,map_particle_fragment:QCe,map_particle_pars_fragment:eRe,metalnessmap_fragment:tRe,metalnessmap_pars_fragment:nRe,morphinstance_vertex:rRe,morphcolor_vertex:iRe,morphnormal_vertex:aRe,morphtarget_pars_vertex:sRe,morphtarget_vertex:oRe,normal_fragment_begin:lRe,normal_fragment_maps:cRe,normal_pars_fragment:uRe,normal_pars_vertex:fRe,normal_vertex:dRe,normalmap_pars_fragment:hRe,clearcoat_normal_fragment_begin:pRe,clearcoat_normal_fragment_maps:mRe,clearcoat_pars_fragment:gRe,iridescence_pars_fragment:vRe,opaque_fragment:yRe,packing:xRe,premultiplied_alpha_fragment:bRe,project_vertex:_Re,dithering_fragment:SRe,dithering_pars_fragment:ARe,roughnessmap_fragment:wRe,roughnessmap_pars_fragment:MRe,shadowmap_pars_fragment:ERe,shadowmap_pars_vertex:TRe,shadowmap_vertex:CRe,shadowmask_pars_fragment:RRe,skinbase_vertex:ORe,skinning_pars_vertex:PRe,skinning_vertex:DRe,skinnormal_vertex:NRe,specularmap_fragment:IRe,specularmap_pars_fragment:BRe,tonemapping_fragment:LRe,tonemapping_pars_fragment:kRe,transmission_fragment:FRe,transmission_pars_fragment:URe,uv_pars_fragment:jRe,uv_pars_vertex:zRe,uv_vertex:GRe,worldpos_vertex:HRe,background_vert:VRe,background_frag:WRe,backgroundCube_vert:qRe,backgroundCube_frag:$Re,cube_vert:XRe,cube_frag:KRe,depth_vert:YRe,depth_frag:JRe,distance_vert:ZRe,distance_frag:QRe,equirect_vert:eOe,equirect_frag:tOe,linedashed_vert:nOe,linedashed_frag:rOe,meshbasic_vert:iOe,meshbasic_frag:aOe,meshlambert_vert:sOe,meshlambert_frag:oOe,meshmatcap_vert:lOe,meshmatcap_frag:cOe,meshnormal_vert:uOe,meshnormal_frag:fOe,meshphong_vert:dOe,meshphong_frag:hOe,meshphysical_vert:pOe,meshphysical_frag:mOe,meshtoon_vert:gOe,meshtoon_frag:vOe,points_vert:yOe,points_frag:xOe,shadow_vert:bOe,shadow_frag:_Oe,sprite_vert:SOe,sprite_frag:AOe},St={common:{diffuse:{value:new bt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new dn},alphaMap:{value:null},alphaMapTransform:{value:new dn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new dn}},envmap:{envMap:{value:null},envMapRotation:{value:new dn},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new dn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new dn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new dn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new dn},normalScale:{value:new Ve(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new dn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new dn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new dn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new dn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new bt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new bt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new dn},alphaTest:{value:0},uvTransform:{value:new dn}},sprite:{diffuse:{value:new bt(16777215)},opacity:{value:1},center:{value:new Ve(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new dn},alphaMap:{value:null},alphaMapTransform:{value:new dn},alphaTest:{value:0}}},Dl={basic:{uniforms:Qa([St.common,St.specularmap,St.envmap,St.aomap,St.lightmap,St.fog]),vertexShader:bn.meshbasic_vert,fragmentShader:bn.meshbasic_frag},lambert:{uniforms:Qa([St.common,St.specularmap,St.envmap,St.aomap,St.lightmap,St.emissivemap,St.bumpmap,St.normalmap,St.displacementmap,St.fog,St.lights,{emissive:{value:new bt(0)}}]),vertexShader:bn.meshlambert_vert,fragmentShader:bn.meshlambert_frag},phong:{uniforms:Qa([St.common,St.specularmap,St.envmap,St.aomap,St.lightmap,St.emissivemap,St.bumpmap,St.normalmap,St.displacementmap,St.fog,St.lights,{emissive:{value:new bt(0)},specular:{value:new bt(1118481)},shininess:{value:30}}]),vertexShader:bn.meshphong_vert,fragmentShader:bn.meshphong_frag},standard:{uniforms:Qa([St.common,St.envmap,St.aomap,St.lightmap,St.emissivemap,St.bumpmap,St.normalmap,St.displacementmap,St.roughnessmap,St.metalnessmap,St.fog,St.lights,{emissive:{value:new bt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:bn.meshphysical_vert,fragmentShader:bn.meshphysical_frag},toon:{uniforms:Qa([St.common,St.aomap,St.lightmap,St.emissivemap,St.bumpmap,St.normalmap,St.displacementmap,St.gradientmap,St.fog,St.lights,{emissive:{value:new bt(0)}}]),vertexShader:bn.meshtoon_vert,fragmentShader:bn.meshtoon_frag},matcap:{uniforms:Qa([St.common,St.bumpmap,St.normalmap,St.displacementmap,St.fog,{matcap:{value:null}}]),vertexShader:bn.meshmatcap_vert,fragmentShader:bn.meshmatcap_frag},points:{uniforms:Qa([St.points,St.fog]),vertexShader:bn.points_vert,fragmentShader:bn.points_frag},dashed:{uniforms:Qa([St.common,St.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:bn.linedashed_vert,fragmentShader:bn.linedashed_frag},depth:{uniforms:Qa([St.common,St.displacementmap]),vertexShader:bn.depth_vert,fragmentShader:bn.depth_frag},normal:{uniforms:Qa([St.common,St.bumpmap,St.normalmap,St.displacementmap,{opacity:{value:1}}]),vertexShader:bn.meshnormal_vert,fragmentShader:bn.meshnormal_frag},sprite:{uniforms:Qa([St.sprite,St.fog]),vertexShader:bn.sprite_vert,fragmentShader:bn.sprite_frag},background:{uniforms:{uvTransform:{value:new dn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:bn.background_vert,fragmentShader:bn.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new dn}},vertexShader:bn.backgroundCube_vert,fragmentShader:bn.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:bn.cube_vert,fragmentShader:bn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:bn.equirect_vert,fragmentShader:bn.equirect_frag},distance:{uniforms:Qa([St.common,St.displacementmap,{referencePosition:{value:new ne},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:bn.distance_vert,fragmentShader:bn.distance_frag},shadow:{uniforms:Qa([St.lights,St.fog,{color:{value:new bt(0)},opacity:{value:1}}]),vertexShader:bn.shadow_vert,fragmentShader:bn.shadow_frag}};Dl.physical={uniforms:Qa([Dl.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new dn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new dn},clearcoatNormalScale:{value:new Ve(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new dn},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new dn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new dn},sheen:{value:0},sheenColor:{value:new bt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new dn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new dn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new dn},transmissionSamplerSize:{value:new Ve},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new dn},attenuationDistance:{value:0},attenuationColor:{value:new bt(0)},specularColor:{value:new bt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new dn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new dn},anisotropyVector:{value:new Ve},anisotropyMap:{value:null},anisotropyMapTransform:{value:new dn}}]),vertexShader:bn.meshphysical_vert,fragmentShader:bn.meshphysical_frag};const vA={r:0,b:0,g:0},qh=new ro,wOe=new qt;function MOe(t,e,n,r,i,a,s){const o=new bt(0);let c=a===!0?0:1,u,h,p=null,v=0,y=null;function b(T){let P=T.isScene===!0?T.background:null;return P&&P.isTexture&&(P=(T.backgroundBlurriness>0?n:e).get(P)),P}function w(T){let P=!1;const R=b(T);R===null?S(o,c):R&&R.isColor&&(S(R,1),P=!0);const D=t.xr.getEnvironmentBlendMode();D==="additive"?r.buffers.color.setClear(0,0,0,1,s):D==="alpha-blend"&&r.buffers.color.setClear(0,0,0,0,s),(t.autoClear||P)&&(r.buffers.depth.setTest(!0),r.buffers.depth.setMask(!0),r.buffers.color.setMask(!0),t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil))}function _(T,P){const R=b(P);R&&(R.isCubeTexture||R.mapping===oy)?(h===void 0&&(h=new vi(new Vp(1,1,1),new Yo({name:"BackgroundCubeMaterial",uniforms:kv(Dl.backgroundCube.uniforms),vertexShader:Dl.backgroundCube.vertexShader,fragmentShader:Dl.backgroundCube.fragmentShader,side:ls,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(D,I,k){this.matrixWorld.copyPosition(k.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(h)),qh.copy(P.backgroundRotation),qh.x*=-1,qh.y*=-1,qh.z*=-1,R.isCubeTexture&&R.isRenderTargetTexture===!1&&(qh.y*=-1,qh.z*=-1),h.material.uniforms.envMap.value=R,h.material.uniforms.flipEnvMap.value=R.isCubeTexture&&R.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=P.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=P.backgroundIntensity,h.material.uniforms.backgroundRotation.value.setFromMatrix4(wOe.makeRotationFromEuler(qh)),h.material.toneMapped=Fn.getTransfer(R.colorSpace)!==ir,(p!==R||v!==R.version||y!==t.toneMapping)&&(h.material.needsUpdate=!0,p=R,v=R.version,y=t.toneMapping),h.layers.enableAll(),T.unshift(h,h.geometry,h.material,0,0,null)):R&&R.isTexture&&(u===void 0&&(u=new vi(new cy(2,2),new Yo({name:"BackgroundMaterial",uniforms:kv(Dl.background.uniforms),vertexShader:Dl.background.vertexShader,fragmentShader:Dl.background.fragmentShader,side:Vc,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),u.geometry.deleteAttribute("normal"),Object.defineProperty(u.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(u)),u.material.uniforms.t2D.value=R,u.material.uniforms.backgroundIntensity.value=P.backgroundIntensity,u.material.toneMapped=Fn.getTransfer(R.colorSpace)!==ir,R.matrixAutoUpdate===!0&&R.updateMatrix(),u.material.uniforms.uvTransform.value.copy(R.matrix),(p!==R||v!==R.version||y!==t.toneMapping)&&(u.material.needsUpdate=!0,p=R,v=R.version,y=t.toneMapping),u.layers.enableAll(),T.unshift(u,u.geometry,u.material,0,0,null))}function S(T,P){T.getRGB(vA,sY(t)),r.buffers.color.setClear(vA.r,vA.g,vA.b,P,s)}function E(){h!==void 0&&(h.geometry.dispose(),h.material.dispose(),h=void 0),u!==void 0&&(u.geometry.dispose(),u.material.dispose(),u=void 0)}return{getClearColor:function(){return o},setClearColor:function(T,P=1){o.set(T),c=P,S(o,c)},getClearAlpha:function(){return c},setClearAlpha:function(T){c=T,S(o,c)},render:w,addToRenderList:_,dispose:E}}function EOe(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS),r={},i=v(null);let a=i,s=!1;function o(U,z,q,W,ee){let Q=!1;const V=p(W,q,z);a!==V&&(a=V,u(a.object)),Q=y(U,W,q,ee),Q&&b(U,W,q,ee),ee!==null&&e.update(ee,t.ELEMENT_ARRAY_BUFFER),(Q||s)&&(s=!1,P(U,z,q,W),ee!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(ee).buffer))}function c(){return t.createVertexArray()}function u(U){return t.bindVertexArray(U)}function h(U){return t.deleteVertexArray(U)}function p(U,z,q){const W=q.wireframe===!0;let ee=r[U.id];ee===void 0&&(ee={},r[U.id]=ee);let Q=ee[z.id];Q===void 0&&(Q={},ee[z.id]=Q);let V=Q[W];return V===void 0&&(V=v(c()),Q[W]=V),V}function v(U){const z=[],q=[],W=[];for(let ee=0;ee=0){const de=ee[Y];let X=Q[Y];if(X===void 0&&(Y==="instanceMatrix"&&U.instanceMatrix&&(X=U.instanceMatrix),Y==="instanceColor"&&U.instanceColor&&(X=U.instanceColor)),de===void 0||de.attribute!==X||X&&de.data!==X.data)return!0;V++}return a.attributesNum!==V||a.index!==W}function b(U,z,q,W){const ee={},Q=z.attributes;let V=0;const $=q.getAttributes();for(const Y in $)if($[Y].location>=0){let de=Q[Y];de===void 0&&(Y==="instanceMatrix"&&U.instanceMatrix&&(de=U.instanceMatrix),Y==="instanceColor"&&U.instanceColor&&(de=U.instanceColor));const X={};X.attribute=de,de&&de.data&&(X.data=de.data),ee[Y]=X,V++}a.attributes=ee,a.attributesNum=V,a.index=W}function w(){const U=a.newAttributes;for(let z=0,q=U.length;z=0){let ie=ee[$];if(ie===void 0&&($==="instanceMatrix"&&U.instanceMatrix&&(ie=U.instanceMatrix),$==="instanceColor"&&U.instanceColor&&(ie=U.instanceColor)),ie!==void 0){const de=ie.normalized,X=ie.itemSize,ae=e.get(ie);if(ae===void 0)continue;const ue=ae.buffer,Se=ae.type,$e=ae.bytesPerElement,me=Se===t.INT||Se===t.UNSIGNED_INT||ie.gpuType===WE;if(ie.isInterleavedBufferAttribute){const ve=ie.data,We=ve.stride,_e=ie.offset;if(ve.isInstancedInterleavedBuffer){for(let Fe=0;Fe0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";I="mediump"}return I==="mediump"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let u=n.precision!==void 0?n.precision:"highp";const h=c(u);h!==u&&(xt("WebGLRenderer:",u,"not supported, using",h,"instead."),u=h);const p=n.logarithmicDepthBuffer===!0,v=n.reversedDepthBuffer===!0&&e.has("EXT_clip_control"),y=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),b=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),w=t.getParameter(t.MAX_TEXTURE_SIZE),_=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),S=t.getParameter(t.MAX_VERTEX_ATTRIBS),E=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),T=t.getParameter(t.MAX_VARYING_VECTORS),P=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),R=t.getParameter(t.MAX_SAMPLES),D=t.getParameter(t.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:a,getMaxPrecision:c,textureFormatReadable:s,textureTypeReadable:o,precision:u,logarithmicDepthBuffer:p,reversedDepthBuffer:v,maxTextures:y,maxVertexTextures:b,maxTextureSize:w,maxCubemapSize:_,maxAttributes:S,maxVertexUniforms:E,maxVaryings:T,maxFragmentUniforms:P,maxSamples:R,samples:D}}function ROe(t){const e=this;let n=null,r=0,i=!1,a=!1;const s=new ju,o=new dn,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(p,v){const y=p.length!==0||v||r!==0||i;return i=v,r=p.length,y},this.beginShadows=function(){a=!0,h(null)},this.endShadows=function(){a=!1},this.setGlobalState=function(p,v){n=h(p,v,0)},this.setState=function(p,v,y){const b=p.clippingPlanes,w=p.clipIntersection,_=p.clipShadows,S=t.get(p);if(!i||b===null||b.length===0||a&&!_)a?h(null):u();else{const E=a?0:r,T=E*4;let P=S.clippingState||null;c.value=P,P=h(b,v,T,y);for(let R=0;R!==T;++R)P[R]=n[R];S.clippingState=P,this.numIntersection=w?this.numPlanes:0,this.numPlanes+=E}};function u(){c.value!==n&&(c.value=n,c.needsUpdate=r>0),e.numPlanes=r,e.numIntersection=0}function h(p,v,y,b){const w=p!==null?p.length:0;let _=null;if(w!==0){if(_=c.value,b!==!0||_===null){const S=y+w*4,E=v.matrixWorldInverse;o.getNormalMatrix(E),(_===null||_.length0){const u=new V5(c.height);return u.fromEquirectangularTexture(t,s),e.set(s,u),s.addEventListener("dispose",i),n(u.texture,s.mapping)}else return null}}return s}function i(s){const o=s.target;o.removeEventListener("dispose",i);const c=e.get(o);c!==void 0&&(e.delete(o),c.dispose())}function a(){e=new WeakMap}return{get:r,dispose:a}}const wd=4,uH=[.125,.215,.35,.446,.526,.582],ep=20,POe=256,fx=new qo,fH=new bt;let TD=null,CD=0,RD=0,OD=!1;const DOe=new ne;class dB{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._backgroundBox=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._blurMaterial=null,this._ggxMaterial=null}fromScene(e,n=0,r=.1,i=100,a={}){const{size:s=256,position:o=DOe}=a;TD=this._renderer.getRenderTarget(),CD=this._renderer.getActiveCubeFace(),RD=this._renderer.getActiveMipmapLevel(),OD=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(s);const c=this._allocateTargets();return c.depthBuffer=!0,this._sceneToCubeUV(e,r,i,c,o),n>0&&this._blur(c,0,0,n),this._applyPMREM(c),this._cleanup(c),c}fromEquirectangular(e,n=null){return this._fromTexture(e,n)}fromCubemap(e,n=null){return this._fromTexture(e,n)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=pH(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=hH(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?R:0,R,R),p.setRenderTarget(i),S&&p.render(w,c),p.render(e,c)}p.toneMapping=y,p.autoClear=v,e.background=E}_textureToCubeUV(e,n){const r=this._renderer,i=e.mapping===Wc||e.mapping===Cd;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=pH()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=hH());const a=i?this._cubemapMaterial:this._equirectMaterial,s=this._lodMeshes[0];s.material=a;const o=a.uniforms;o.envMap.value=e;const c=this._cubeSize;Eg(n,0,0,3*c,2*c),r.setRenderTarget(n),r.render(s,fx)}_applyPMREM(e){const n=this._renderer,r=n.autoClear;n.autoClear=!1;const i=this._lodMeshes.length;for(let a=1;ab-wd?r-b+wd:0),S=4*(this._cubeSize-w);c.envMap.value=e.texture,c.roughness.value=y,c.mipInt.value=b-n,Eg(a,_,S,3*w,2*w),i.setRenderTarget(a),i.render(o,fx),c.envMap.value=a.texture,c.roughness.value=0,c.mipInt.value=b-r,Eg(e,_,S,3*w,2*w),i.setRenderTarget(e),i.render(o,fx)}_blur(e,n,r,i,a){const s=this._pingPongRenderTarget;this._halfBlur(e,s,n,r,i,"latitudinal",a),this._halfBlur(s,e,r,r,i,"longitudinal",a)}_halfBlur(e,n,r,i,a,s,o){const c=this._renderer,u=this._blurMaterial;s!=="latitudinal"&&s!=="longitudinal"&&zt("blur direction must be either latitudinal or longitudinal!");const h=3,p=this._lodMeshes[i];p.material=u;const v=u.uniforms,y=this._sizeLods[r]-1,b=isFinite(a)?Math.PI/(2*y):2*Math.PI/(2*ep-1),w=a/b,_=isFinite(a)?1+Math.floor(h*w):ep;_>ep&&xt(`sigmaRadians, ${a}, is too large and will clip, as it requested ${_} samples when the maximum is set to ${ep}`);const S=[];let E=0;for(let I=0;IT-wd?i-T+wd:0),D=4*(this._cubeSize-P);Eg(n,R,D,3*P,2*P),c.setRenderTarget(n),c.render(p,fx)}}function NOe(t){const e=[],n=[],r=[];let i=t;const a=t-wd+1+uH.length;for(let s=0;st-wd?c=uH[s-t+wd-1]:s===0&&(c=0),n.push(c);const u=1/(o-2),h=-u,p=1+u,v=[h,h,p,h,p,p,h,h,p,p,h,p],y=6,b=6,w=3,_=2,S=1,E=new Float32Array(w*b*y),T=new Float32Array(_*b*y),P=new Float32Array(S*b*y);for(let D=0;D2?0:-1,B=[I,k,0,I+2/3,k,0,I+2/3,k+1,0,I,k,0,I+2/3,k+1,0,I,k+1,0];E.set(B,w*b*D),T.set(v,_*b*D);const U=[D,D,D,D,D,D];P.set(U,S*b*D)}const R=new an;R.setAttribute("position",new qn(E,w)),R.setAttribute("uv",new qn(T,_)),R.setAttribute("faceIndex",new qn(P,S)),r.push(new vi(R,null)),i>wd&&i--}return{lodMeshes:r,sizeLods:e,sigmas:n}}function dH(t,e,n){const r=new to(t,e,n);return r.texture.mapping=oy,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function Eg(t,e,n,r,i){t.viewport.set(e,n,r,i),t.scissor.set(e,n,r,i)}function IOe(t,e,n){return new Yo({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:POe,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:AT(),fragmentShader:` - - precision highp float; - precision highp int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform float roughness; - uniform float mipInt; - - #define ENVMAP_TYPE_CUBE_UV - #include - - #define PI 3.14159265359 - - // Van der Corput radical inverse - float radicalInverse_VdC(uint bits) { - bits = (bits << 16u) | (bits >> 16u); - bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); - bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); - bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); - bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); - return float(bits) * 2.3283064365386963e-10; // / 0x100000000 - } - - // Hammersley sequence - vec2 hammersley(uint i, uint N) { - return vec2(float(i) / float(N), radicalInverse_VdC(i)); - } - - // GGX VNDF importance sampling (Eric Heitz 2018) - // "Sampling the GGX Distribution of Visible Normals" - // https://jcgt.org/published/0007/04/01/ - vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { - float alpha = roughness * roughness; - - // Section 3.2: Transform view direction to hemisphere configuration - vec3 Vh = normalize(vec3(alpha * V.x, alpha * V.y, V.z)); - - // Section 4.1: Orthonormal basis - float lensq = Vh.x * Vh.x + Vh.y * Vh.y; - vec3 T1 = lensq > 0.0 ? vec3(-Vh.y, Vh.x, 0.0) / sqrt(lensq) : vec3(1.0, 0.0, 0.0); - vec3 T2 = cross(Vh, T1); - - // Section 4.2: Parameterization of projected area - float r = sqrt(Xi.x); - float phi = 2.0 * PI * Xi.y; - float t1 = r * cos(phi); - float t2 = r * sin(phi); - float s = 0.5 * (1.0 + Vh.z); - t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; - - // Section 4.3: Reprojection onto hemisphere - vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * Vh; - - // Section 3.4: Transform back to ellipsoid configuration - return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); - } - - void main() { - vec3 N = normalize(vOutputDirection); - vec3 V = N; // Assume view direction equals normal for pre-filtering - - vec3 prefilteredColor = vec3(0.0); - float totalWeight = 0.0; - - // For very low roughness, just sample the environment directly - if (roughness < 0.001) { - gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); - return; - } - - // Tangent space basis for VNDF sampling - vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); - vec3 tangent = normalize(cross(up, N)); - vec3 bitangent = cross(N, tangent); - - for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { - vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); - - // For PMREM, V = N, so in tangent space V is always (0, 0, 1) - vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); - - // Transform H back to world space - vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); - vec3 L = normalize(2.0 * dot(V, H) * H - V); - - float NdotL = max(dot(N, L), 0.0); - - if(NdotL > 0.0) { - // Sample environment at fixed mip level - // VNDF importance sampling handles the distribution filtering - vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); - - // Weight by NdotL for the split-sum approximation - // VNDF PDF naturally accounts for the visible microfacet distribution - prefilteredColor += sampleColor * NdotL; - totalWeight += NdotL; - } - } - - if (totalWeight > 0.0) { - prefilteredColor = prefilteredColor / totalWeight; - } - - gl_FragColor = vec4(prefilteredColor, 1.0); - } - `,blending:Fc,depthTest:!1,depthWrite:!1})}function BOe(t,e,n){const r=new Float32Array(ep),i=new ne(0,1,0);return new Yo({name:"SphericalGaussianBlur",defines:{n:ep,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:AT(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - uniform int samples; - uniform float weights[ n ]; - uniform bool latitudinal; - uniform float dTheta; - uniform float mipInt; - uniform vec3 poleAxis; - - #define ENVMAP_TYPE_CUBE_UV - #include - - vec3 getSample( float theta, vec3 axis ) { - - float cosTheta = cos( theta ); - // Rodrigues' axis-angle rotation - vec3 sampleDirection = vOutputDirection * cosTheta - + cross( axis, vOutputDirection ) * sin( theta ) - + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); - - return bilinearCubeUV( envMap, sampleDirection, mipInt ); - - } - - void main() { - - vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); - - if ( all( equal( axis, vec3( 0.0 ) ) ) ) { - - axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); - - } - - axis = normalize( axis ); - - gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); - gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); - - for ( int i = 1; i < n; i++ ) { - - if ( i >= samples ) { - - break; - - } - - float theta = dTheta * float( i ); - gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); - gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); - - } - - } - `,blending:Fc,depthTest:!1,depthWrite:!1})}function hH(){return new Yo({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:AT(),fragmentShader:` - - precision mediump float; - precision mediump int; - - varying vec3 vOutputDirection; - - uniform sampler2D envMap; - - #include - - void main() { - - vec3 outputDirection = normalize( vOutputDirection ); - vec2 uv = equirectUv( outputDirection ); - - gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); - - } - `,blending:Fc,depthTest:!1,depthWrite:!1})}function pH(){return new Yo({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:AT(),fragmentShader:` - - precision mediump float; - precision mediump int; - - uniform float flipEnvMap; - - varying vec3 vOutputDirection; - - uniform samplerCube envMap; - - void main() { - - gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); - - } - `,blending:Fc,depthTest:!1,depthWrite:!1})}function AT(){return` - - precision mediump float; - precision mediump int; - - attribute float faceIndex; - - varying vec3 vOutputDirection; - - // RH coordinate system; PMREM face-indexing convention - vec3 getDirection( vec2 uv, float face ) { - - uv = 2.0 * uv - 1.0; - - vec3 direction = vec3( uv, 1.0 ); - - if ( face == 0.0 ) { - - direction = direction.zyx; // ( 1, v, u ) pos x - - } else if ( face == 1.0 ) { - - direction = direction.xzy; - direction.xz *= -1.0; // ( -u, 1, -v ) pos y - - } else if ( face == 2.0 ) { - - direction.x *= -1.0; // ( -u, v, 1 ) pos z - - } else if ( face == 3.0 ) { - - direction = direction.zyx; - direction.xz *= -1.0; // ( -1, v, -u ) neg x - - } else if ( face == 4.0 ) { - - direction = direction.xzy; - direction.xy *= -1.0; // ( -u, -1, v ) neg y - - } else if ( face == 5.0 ) { - - direction.z *= -1.0; // ( u, v, -1 ) neg z - - } - - return direction; - - } - - void main() { - - vOutputDirection = getDirection( uv, faceIndex ); - gl_Position = vec4( position, 1.0 ); - - } - `}function LOe(t){let e=new WeakMap,n=null;function r(o){if(o&&o.isTexture){const c=o.mapping,u=c===Rb||c===Ob,h=c===Wc||c===Cd;if(u||h){let p=e.get(o);const v=p!==void 0?p.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==v)return n===null&&(n=new dB(t)),p=u?n.fromEquirectangular(o,p):n.fromCubemap(o,p),p.texture.pmremVersion=o.pmremVersion,e.set(o,p),p.texture;if(p!==void 0)return p.texture;{const y=o.image;return u&&y&&y.height>0||h&&y&&i(y)?(n===null&&(n=new dB(t)),p=u?n.fromEquirectangular(o):n.fromCubemap(o),p.texture.pmremVersion=o.pmremVersion,e.set(o,p),o.addEventListener("dispose",a),p.texture):null}}}return o}function i(o){let c=0;const u=6;for(let h=0;he.maxTextureSize&&(R=Math.ceil(P/e.maxTextureSize),P=e.maxTextureSize);const D=new Float32Array(P*R*4*p),I=new eT(D,P,R,p);I.type=os,I.needsUpdate=!0;const k=T*4;for(let U=0;U - #include - - void main() { - gl_FragColor = texture2D( tDiffuse, vUv ); - - #ifdef LINEAR_TONE_MAPPING - gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); - #elif defined( REINHARD_TONE_MAPPING ) - gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); - #elif defined( CINEON_TONE_MAPPING ) - gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); - #elif defined( ACES_FILMIC_TONE_MAPPING ) - gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); - #elif defined( AGX_TONE_MAPPING ) - gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); - #elif defined( NEUTRAL_TONE_MAPPING ) - gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); - #elif defined( CUSTOM_TONE_MAPPING ) - gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); - #endif - - #ifdef SRGB_TRANSFER - gl_FragColor = sRGBTransferOETF( gl_FragColor ); - #endif - }`,depthTest:!1,depthWrite:!1}),u=new vi(o,c),h=new qo(-1,1,1,-1,0,1);let p=null,v=null,y=!1,b,w=null,_=[],S=!1;this.setSize=function(E,T){a.setSize(E,T),s.setSize(E,T);for(let P=0;P<_.length;P++){const R=_[P];R.setSize&&R.setSize(E,T)}},this.setEffects=function(E){_=E,S=_.length>0&&_[0].isRenderPass===!0;const T=a.width,P=a.height;for(let R=0;R<_.length;R++){const D=_[R];D.setSize&&D.setSize(T,P)}},this.begin=function(E,T){if(y||E.toneMapping===Wo&&_.length===0)return!1;if(w=T,T!==null){const P=T.width,R=T.height;(a.width!==P||a.height!==R)&&this.setSize(P,R)}return S===!1&&E.setRenderTarget(a),b=E.toneMapping,E.toneMapping=Wo,!0},this.hasRenderPass=function(){return S},this.end=function(E,T){E.toneMapping=b,y=!0;let P=a,R=s;for(let D=0;D<_.length;D++){const I=_[D];if(I.enabled!==!1&&(I.render(E,R,P,T),I.needsSwap!==!1)){const k=P;P=R,R=k}}if(p!==E.outputColorSpace||v!==E.toneMapping){p=E.outputColorSpace,v=E.toneMapping,c.defines={},Fn.getTransfer(p)===ir&&(c.defines.SRGB_TRANSFER="");const D=HOe[v];D&&(c.defines[D]=""),c.needsUpdate=!0}c.uniforms.tDiffuse.value=P.texture,E.setRenderTarget(w),E.render(u,h),w=null,y=!1},this.isCompositing=function(){return y},this.dispose=function(){a.dispose(),s.dispose(),o.dispose(),c.dispose()}}const QY=new Gr,hB=new Fv(1,1),eJ=new eT,tJ=new tT,nJ=new c1,mH=[],gH=[],vH=new Float32Array(16),yH=new Float32Array(9),xH=new Float32Array(4);function fy(t,e,n){const r=t[0];if(r<=0||r>0)return t;const i=e*n;let a=mH[i];if(a===void 0&&(a=new Float32Array(i),mH[i]=a),e!==0){r.toArray(a,0);for(let s=1,o=0;s!==e;++s)o+=n,t[s].toArray(a,o)}return a}function Gi(t,e){if(t.length!==e.length)return!1;for(let n=0,r=t.length;n0&&(this.seq=i.concat(a))}setValue(e,n,r,i){const a=this.map[n];a!==void 0&&a.setValue(e,r,i)}setOptional(e,n,r){const i=n[r];i!==void 0&&this.setValue(e,r,i)}static upload(e,n,r,i){for(let a=0,s=n.length;a!==s;++a){const o=n[a],c=r[o.id];c.needsUpdate!==!1&&o.setValue(e,c.value,i)}}static seqWithValue(e,n){const r=[];for(let i=0,a=e.length;i!==a;++i){const s=e[i];s.id in n&&r.push(s)}return r}}function _H(t,e,n){const r=t.createShader(e);return t.shaderSource(r,n),t.compileShader(r),r}const BPe=37297;let LPe=0;function kPe(t,e){const n=t.split(` -`),r=[],i=Math.max(e-6,0),a=Math.min(e+6,n.length);for(let s=i;s":" "} ${o}: ${n[s]}`)}return r.join(` -`)}const SH=new dn;function FPe(t){Fn._getMatrix(SH,Fn.workingColorSpace,t);const e=`mat3( ${SH.elements.map(n=>n.toFixed(4))} )`;switch(Fn.getTransfer(t)){case Db:return[e,"LinearTransferOETF"];case ir:return[e,"sRGBTransferOETF"];default:return xt("WebGLProgram: Unsupported color space: ",t),[e,"LinearTransferOETF"]}}function AH(t,e,n){const r=t.getShaderParameter(e,t.COMPILE_STATUS),a=(t.getShaderInfoLog(e)||"").trim();if(r&&a==="")return"";const s=/ERROR: 0:(\d+)/.exec(a);if(s){const o=parseInt(s[1]);return n.toUpperCase()+` - -`+a+` - -`+kPe(t.getShaderSource(e),o)}else return a}function UPe(t,e){const n=FPe(e);return[`vec4 ${t}( vec4 value ) {`,` return ${n[1]}( vec4( value.rgb * ${n[0]}, value.a ) );`,"}"].join(` -`)}const jPe={[E5]:"Linear",[T5]:"Reinhard",[C5]:"Cineon",[GE]:"ACESFilmic",[O5]:"AgX",[P5]:"Neutral",[R5]:"Custom"};function zPe(t,e){const n=jPe[e];return n===void 0?(xt("WebGLProgram: Unsupported toneMapping:",e),"vec3 "+t+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}const yA=new ne;function GPe(){Fn.getLuminanceCoefficients(yA);const t=yA.x.toFixed(4),e=yA.y.toFixed(4),n=yA.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${t}, ${e}, ${n} );`," return dot( weights, rgb );","}"].join(` -`)}function HPe(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(bx).join(` -`)}function VPe(t){const e=[];for(const n in t){const r=t[n];r!==!1&&e.push("#define "+n+" "+r)}return e.join(` -`)}function WPe(t,e){const n={},r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let i=0;i/gm;function pB(t){return t.replace(qPe,XPe)}const $Pe=new Map;function XPe(t,e){let n=bn[e];if(n===void 0){const r=$Pe.get(e);if(r!==void 0)n=bn[r],xt('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,r);else throw new Error("Can not resolve #include <"+e+">")}return pB(n)}const KPe=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function EH(t){return t.replace(KPe,YPe)}function YPe(t,e,n,r){let i="";for(let a=parseInt(e);a0&&(_+=` -`),S=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,b].filter(bx).join(` -`),S.length>0&&(S+=` -`)):(_=[TH(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,b,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+h:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` -`].filter(bx).join(` -`),S=[TH(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,b,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+u:"",n.envMap?"#define "+h:"",n.envMap?"#define "+p:"",v?"#define CUBEUV_TEXEL_WIDTH "+v.texelWidth:"",v?"#define CUBEUV_TEXEL_HEIGHT "+v.texelHeight:"",v?"#define CUBEUV_MAX_MIP "+v.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+c:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==Wo?"#define TONE_MAPPING":"",n.toneMapping!==Wo?bn.tonemapping_pars_fragment:"",n.toneMapping!==Wo?zPe("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",bn.colorspace_pars_fragment,UPe("linearToOutputTexel",n.outputColorSpace),GPe(),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",` -`].filter(bx).join(` -`)),s=pB(s),s=wH(s,n),s=MH(s,n),o=pB(o),o=wH(o,n),o=MH(o,n),s=EH(s),o=EH(o),n.isRawShaderMaterial!==!0&&(E=`#version 300 es -`,_=[y,"#define attribute in","#define varying out","#define texture2D texture"].join(` -`)+` -`+_,S=["#define varying in",n.glslVersion===iB?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===iB?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` -`)+` -`+S);const T=E+_+s,P=E+S+o,R=_H(i,i.VERTEX_SHADER,T),D=_H(i,i.FRAGMENT_SHADER,P);i.attachShader(w,R),i.attachShader(w,D),n.index0AttributeName!==void 0?i.bindAttribLocation(w,0,n.index0AttributeName):n.morphTargets===!0&&i.bindAttribLocation(w,0,"position"),i.linkProgram(w);function I(z){if(t.debug.checkShaderErrors){const q=i.getProgramInfoLog(w)||"",W=i.getShaderInfoLog(R)||"",ee=i.getShaderInfoLog(D)||"",Q=q.trim(),V=W.trim(),$=ee.trim();let Y=!0,ie=!0;if(i.getProgramParameter(w,i.LINK_STATUS)===!1)if(Y=!1,typeof t.debug.onShaderError=="function")t.debug.onShaderError(i,w,R,D);else{const de=AH(i,R,"vertex"),X=AH(i,D,"fragment");zt("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(w,i.VALIDATE_STATUS)+` - -Material Name: `+z.name+` -Material Type: `+z.type+` - -Program Info Log: `+Q+` -`+de+` -`+X)}else Q!==""?xt("WebGLProgram: Program Info Log:",Q):(V===""||$==="")&&(ie=!1);ie&&(z.diagnostics={runnable:Y,programLog:Q,vertexShader:{log:V,prefix:_},fragmentShader:{log:$,prefix:S}})}i.deleteShader(R),i.deleteShader(D),k=new jA(i,w),B=WPe(i,w)}let k;this.getUniforms=function(){return k===void 0&&I(this),k};let B;this.getAttributes=function(){return B===void 0&&I(this),B};let U=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return U===!1&&(U=i.getProgramParameter(w,BPe)),U},this.destroy=function(){r.releaseStatesOfProgram(this),i.deleteProgram(w),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=LPe++,this.cacheKey=e,this.usedTimes=1,this.program=w,this.vertexShader=R,this.fragmentShader=D,this}let o3e=0;class l3e{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const n=e.vertexShader,r=e.fragmentShader,i=this._getShaderStage(n),a=this._getShaderStage(r),s=this._getShaderCacheForMaterial(e);return s.has(i)===!1&&(s.add(i),i.usedTimes++),s.has(a)===!1&&(s.add(a),a.usedTimes++),this}remove(e){const n=this.materialCache.get(e);for(const r of n)r.usedTimes--,r.usedTimes===0&&this.shaderCache.delete(r.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const n=this.materialCache;let r=n.get(e);return r===void 0&&(r=new Set,n.set(e,r)),r}_getShaderStage(e){const n=this.shaderCache;let r=n.get(e);return r===void 0&&(r=new c3e(e),n.set(e,r)),r}}class c3e{constructor(e){this.id=o3e++,this.code=e,this.usedTimes=0}}function u3e(t,e,n,r,i,a,s){const o=new Lv,c=new l3e,u=new Set,h=[],p=new Map,v=i.logarithmicDepthBuffer;let y=i.precision;const b={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function w(B){return u.add(B),B===0?"uv":`uv${B}`}function _(B,U,z,q,W){const ee=q.fog,Q=W.geometry,V=B.isMeshStandardMaterial?q.environment:null,$=(B.isMeshStandardMaterial?n:e).get(B.envMap||V),Y=$&&$.mapping===oy?$.image.height:null,ie=b[B.type];B.precision!==null&&(y=i.getMaxPrecision(B.precision),y!==B.precision&&xt("WebGLProgram.getParameters:",B.precision,"not supported, using",y,"instead."));const de=Q.morphAttributes.position||Q.morphAttributes.normal||Q.morphAttributes.color,X=de!==void 0?de.length:0;let ae=0;Q.morphAttributes.position!==void 0&&(ae=1),Q.morphAttributes.normal!==void 0&&(ae=2),Q.morphAttributes.color!==void 0&&(ae=3);let ue,Se,$e,me;if(ie){const hn=Dl[ie];ue=hn.vertexShader,Se=hn.fragmentShader}else ue=B.vertexShader,Se=B.fragmentShader,c.update(B),$e=c.getVertexShaderID(B),me=c.getFragmentShaderID(B);const ve=t.getRenderTarget(),We=t.state.buffers.depth.getReversed(),_e=W.isInstancedMesh===!0,Fe=W.isBatchedMesh===!0,Xe=!!B.map,Re=!!B.matcap,ot=!!$,we=!!B.aoMap,Ue=!!B.lightMap,Be=!!B.bumpMap,Ye=!!B.normalMap,re=!!B.displacementMap,At=!!B.emissiveMap,ft=!!B.metalnessMap,Et=!!B.roughnessMap,Ze=B.anisotropy>0,te=B.clearcoat>0,H=B.dispersion>0,he=B.iridescence>0,Ne=B.sheen>0,je=B.transmission>0,Ie=Ze&&!!B.anisotropyMap,_t=te&&!!B.clearcoatMap,lt=te&&!!B.clearcoatNormalMap,Tt=te&&!!B.clearcoatRoughnessMap,Gt=he&&!!B.iridescenceMap,Qe=he&&!!B.iridescenceThicknessMap,st=Ne&&!!B.sheenColorMap,vt=Ne&&!!B.sheenRoughnessMap,se=!!B.specularMap,Ae=!!B.specularColorMap,dt=!!B.specularIntensityMap,oe=je&&!!B.transmissionMap,it=je&&!!B.thicknessMap,et=!!B.gradientMap,pt=!!B.alphaMap,tt=B.alphaTest>0,He=!!B.alphaHash,at=!!B.extensions;let jt=Wo;B.toneMapped&&(ve===null||ve.isXRRenderTarget===!0)&&(jt=t.toneMapping);const un={shaderID:ie,shaderType:B.type,shaderName:B.name,vertexShader:ue,fragmentShader:Se,defines:B.defines,customVertexShaderID:$e,customFragmentShaderID:me,isRawShaderMaterial:B.isRawShaderMaterial===!0,glslVersion:B.glslVersion,precision:y,batching:Fe,batchingColor:Fe&&W._colorsTexture!==null,instancing:_e,instancingColor:_e&&W.instanceColor!==null,instancingMorph:_e&&W.morphTexture!==null,outputColorSpace:ve===null?t.outputColorSpace:ve.isXRRenderTarget===!0?ve.texture.colorSpace:Od,alphaToCoverage:!!B.alphaToCoverage,map:Xe,matcap:Re,envMap:ot,envMapMode:ot&&$.mapping,envMapCubeUVHeight:Y,aoMap:we,lightMap:Ue,bumpMap:Be,normalMap:Ye,displacementMap:re,emissiveMap:At,normalMapObjectSpace:Ye&&B.normalMapType===$K,normalMapTangentSpace:Ye&&B.normalMapType===zd,metalnessMap:ft,roughnessMap:Et,anisotropy:Ze,anisotropyMap:Ie,clearcoat:te,clearcoatMap:_t,clearcoatNormalMap:lt,clearcoatRoughnessMap:Tt,dispersion:H,iridescence:he,iridescenceMap:Gt,iridescenceThicknessMap:Qe,sheen:Ne,sheenColorMap:st,sheenRoughnessMap:vt,specularMap:se,specularColorMap:Ae,specularIntensityMap:dt,transmission:je,transmissionMap:oe,thicknessMap:it,gradientMap:et,opaque:B.transparent===!1&&B.blending===xp&&B.alphaToCoverage===!1,alphaMap:pt,alphaTest:tt,alphaHash:He,combine:B.combine,mapUv:Xe&&w(B.map.channel),aoMapUv:we&&w(B.aoMap.channel),lightMapUv:Ue&&w(B.lightMap.channel),bumpMapUv:Be&&w(B.bumpMap.channel),normalMapUv:Ye&&w(B.normalMap.channel),displacementMapUv:re&&w(B.displacementMap.channel),emissiveMapUv:At&&w(B.emissiveMap.channel),metalnessMapUv:ft&&w(B.metalnessMap.channel),roughnessMapUv:Et&&w(B.roughnessMap.channel),anisotropyMapUv:Ie&&w(B.anisotropyMap.channel),clearcoatMapUv:_t&&w(B.clearcoatMap.channel),clearcoatNormalMapUv:lt&&w(B.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Tt&&w(B.clearcoatRoughnessMap.channel),iridescenceMapUv:Gt&&w(B.iridescenceMap.channel),iridescenceThicknessMapUv:Qe&&w(B.iridescenceThicknessMap.channel),sheenColorMapUv:st&&w(B.sheenColorMap.channel),sheenRoughnessMapUv:vt&&w(B.sheenRoughnessMap.channel),specularMapUv:se&&w(B.specularMap.channel),specularColorMapUv:Ae&&w(B.specularColorMap.channel),specularIntensityMapUv:dt&&w(B.specularIntensityMap.channel),transmissionMapUv:oe&&w(B.transmissionMap.channel),thicknessMapUv:it&&w(B.thicknessMap.channel),alphaMapUv:pt&&w(B.alphaMap.channel),vertexTangents:!!Q.attributes.tangent&&(Ye||Ze),vertexColors:B.vertexColors,vertexAlphas:B.vertexColors===!0&&!!Q.attributes.color&&Q.attributes.color.itemSize===4,pointsUvs:W.isPoints===!0&&!!Q.attributes.uv&&(Xe||pt),fog:!!ee,useFog:B.fog===!0,fogExp2:!!ee&&ee.isFogExp2,flatShading:B.flatShading===!0&&B.wireframe===!1,sizeAttenuation:B.sizeAttenuation===!0,logarithmicDepthBuffer:v,reversedDepthBuffer:We,skinning:W.isSkinnedMesh===!0,morphTargets:Q.morphAttributes.position!==void 0,morphNormals:Q.morphAttributes.normal!==void 0,morphColors:Q.morphAttributes.color!==void 0,morphTargetsCount:X,morphTextureStride:ae,numDirLights:U.directional.length,numPointLights:U.point.length,numSpotLights:U.spot.length,numSpotLightMaps:U.spotLightMap.length,numRectAreaLights:U.rectArea.length,numHemiLights:U.hemi.length,numDirLightShadows:U.directionalShadowMap.length,numPointLightShadows:U.pointShadowMap.length,numSpotLightShadows:U.spotShadowMap.length,numSpotLightShadowsWithMaps:U.numSpotLightShadowsWithMaps,numLightProbes:U.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:B.dithering,shadowMapEnabled:t.shadowMap.enabled&&z.length>0,shadowMapType:t.shadowMap.type,toneMapping:jt,decodeVideoTexture:Xe&&B.map.isVideoTexture===!0&&Fn.getTransfer(B.map.colorSpace)===ir,decodeVideoTextureEmissive:At&&B.emissiveMap.isVideoTexture===!0&&Fn.getTransfer(B.emissiveMap.colorSpace)===ir,premultipliedAlpha:B.premultipliedAlpha,doubleSided:B.side===Fo,flipSided:B.side===ls,useDepthPacking:B.depthPacking>=0,depthPacking:B.depthPacking||0,index0AttributeName:B.index0AttributeName,extensionClipCullDistance:at&&B.extensions.clipCullDistance===!0&&r.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(at&&B.extensions.multiDraw===!0||Fe)&&r.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:r.has("KHR_parallel_shader_compile"),customProgramCacheKey:B.customProgramCacheKey()};return un.vertexUv1s=u.has(1),un.vertexUv2s=u.has(2),un.vertexUv3s=u.has(3),u.clear(),un}function S(B){const U=[];if(B.shaderID?U.push(B.shaderID):(U.push(B.customVertexShaderID),U.push(B.customFragmentShaderID)),B.defines!==void 0)for(const z in B.defines)U.push(z),U.push(B.defines[z]);return B.isRawShaderMaterial===!1&&(E(U,B),T(U,B),U.push(t.outputColorSpace)),U.push(B.customProgramCacheKey),U.join()}function E(B,U){B.push(U.precision),B.push(U.outputColorSpace),B.push(U.envMapMode),B.push(U.envMapCubeUVHeight),B.push(U.mapUv),B.push(U.alphaMapUv),B.push(U.lightMapUv),B.push(U.aoMapUv),B.push(U.bumpMapUv),B.push(U.normalMapUv),B.push(U.displacementMapUv),B.push(U.emissiveMapUv),B.push(U.metalnessMapUv),B.push(U.roughnessMapUv),B.push(U.anisotropyMapUv),B.push(U.clearcoatMapUv),B.push(U.clearcoatNormalMapUv),B.push(U.clearcoatRoughnessMapUv),B.push(U.iridescenceMapUv),B.push(U.iridescenceThicknessMapUv),B.push(U.sheenColorMapUv),B.push(U.sheenRoughnessMapUv),B.push(U.specularMapUv),B.push(U.specularColorMapUv),B.push(U.specularIntensityMapUv),B.push(U.transmissionMapUv),B.push(U.thicknessMapUv),B.push(U.combine),B.push(U.fogExp2),B.push(U.sizeAttenuation),B.push(U.morphTargetsCount),B.push(U.morphAttributeCount),B.push(U.numDirLights),B.push(U.numPointLights),B.push(U.numSpotLights),B.push(U.numSpotLightMaps),B.push(U.numHemiLights),B.push(U.numRectAreaLights),B.push(U.numDirLightShadows),B.push(U.numPointLightShadows),B.push(U.numSpotLightShadows),B.push(U.numSpotLightShadowsWithMaps),B.push(U.numLightProbes),B.push(U.shadowMapType),B.push(U.toneMapping),B.push(U.numClippingPlanes),B.push(U.numClipIntersection),B.push(U.depthPacking)}function T(B,U){o.disableAll(),U.instancing&&o.enable(0),U.instancingColor&&o.enable(1),U.instancingMorph&&o.enable(2),U.matcap&&o.enable(3),U.envMap&&o.enable(4),U.normalMapObjectSpace&&o.enable(5),U.normalMapTangentSpace&&o.enable(6),U.clearcoat&&o.enable(7),U.iridescence&&o.enable(8),U.alphaTest&&o.enable(9),U.vertexColors&&o.enable(10),U.vertexAlphas&&o.enable(11),U.vertexUv1s&&o.enable(12),U.vertexUv2s&&o.enable(13),U.vertexUv3s&&o.enable(14),U.vertexTangents&&o.enable(15),U.anisotropy&&o.enable(16),U.alphaHash&&o.enable(17),U.batching&&o.enable(18),U.dispersion&&o.enable(19),U.batchingColor&&o.enable(20),U.gradientMap&&o.enable(21),B.push(o.mask),o.disableAll(),U.fog&&o.enable(0),U.useFog&&o.enable(1),U.flatShading&&o.enable(2),U.logarithmicDepthBuffer&&o.enable(3),U.reversedDepthBuffer&&o.enable(4),U.skinning&&o.enable(5),U.morphTargets&&o.enable(6),U.morphNormals&&o.enable(7),U.morphColors&&o.enable(8),U.premultipliedAlpha&&o.enable(9),U.shadowMapEnabled&&o.enable(10),U.doubleSided&&o.enable(11),U.flipSided&&o.enable(12),U.useDepthPacking&&o.enable(13),U.dithering&&o.enable(14),U.transmission&&o.enable(15),U.sheen&&o.enable(16),U.opaque&&o.enable(17),U.pointsUvs&&o.enable(18),U.decodeVideoTexture&&o.enable(19),U.decodeVideoTextureEmissive&&o.enable(20),U.alphaToCoverage&&o.enable(21),B.push(o.mask)}function P(B){const U=b[B.type];let z;if(U){const q=Dl[U];z=oY.clone(q.uniforms)}else z=B.uniforms;return z}function R(B,U){let z=p.get(U);return z!==void 0?++z.usedTimes:(z=new s3e(t,U,B,a),h.push(z),p.set(U,z)),z}function D(B){if(--B.usedTimes===0){const U=h.indexOf(B);h[U]=h[h.length-1],h.pop(),p.delete(B.cacheKey),B.destroy()}}function I(B){c.remove(B)}function k(){c.dispose()}return{getParameters:_,getProgramCacheKey:S,getUniforms:P,acquireProgram:R,releaseProgram:D,releaseShaderCache:I,programs:h,dispose:k}}function f3e(){let t=new WeakMap;function e(s){return t.has(s)}function n(s){let o=t.get(s);return o===void 0&&(o={},t.set(s,o)),o}function r(s){t.delete(s)}function i(s,o,c){t.get(s)[o]=c}function a(){t=new WeakMap}return{has:e,get:n,remove:r,update:i,dispose:a}}function d3e(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function CH(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function RH(){const t=[];let e=0;const n=[],r=[],i=[];function a(){e=0,n.length=0,r.length=0,i.length=0}function s(p,v,y,b,w,_){let S=t[e];return S===void 0?(S={id:p.id,object:p,geometry:v,material:y,groupOrder:b,renderOrder:p.renderOrder,z:w,group:_},t[e]=S):(S.id=p.id,S.object=p,S.geometry=v,S.material=y,S.groupOrder=b,S.renderOrder=p.renderOrder,S.z=w,S.group=_),e++,S}function o(p,v,y,b,w,_){const S=s(p,v,y,b,w,_);y.transmission>0?r.push(S):y.transparent===!0?i.push(S):n.push(S)}function c(p,v,y,b,w,_){const S=s(p,v,y,b,w,_);y.transmission>0?r.unshift(S):y.transparent===!0?i.unshift(S):n.unshift(S)}function u(p,v){n.length>1&&n.sort(p||d3e),r.length>1&&r.sort(v||CH),i.length>1&&i.sort(v||CH)}function h(){for(let p=e,v=t.length;p=a.length?(s=new RH,a.push(s)):s=a[i],s}function n(){t=new WeakMap}return{get:e,dispose:n}}function p3e(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new ne,color:new bt};break;case"SpotLight":n={position:new ne,direction:new ne,color:new bt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new ne,color:new bt,distance:0,decay:0};break;case"HemisphereLight":n={direction:new ne,skyColor:new bt,groundColor:new bt};break;case"RectAreaLight":n={color:new bt,position:new ne,halfWidth:new ne,halfHeight:new ne};break}return t[e.id]=n,n}}}function m3e(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ve};break;case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ve};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ve,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let g3e=0;function v3e(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function y3e(t){const e=new p3e,n=m3e(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let u=0;u<9;u++)r.probe.push(new ne);const i=new ne,a=new qt,s=new qt;function o(u){let h=0,p=0,v=0;for(let B=0;B<9;B++)r.probe[B].set(0,0,0);let y=0,b=0,w=0,_=0,S=0,E=0,T=0,P=0,R=0,D=0,I=0;u.sort(v3e);for(let B=0,U=u.length;B0&&(t.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=St.LTC_FLOAT_1,r.rectAreaLTC2=St.LTC_FLOAT_2):(r.rectAreaLTC1=St.LTC_HALF_1,r.rectAreaLTC2=St.LTC_HALF_2)),r.ambient[0]=h,r.ambient[1]=p,r.ambient[2]=v;const k=r.hash;(k.directionalLength!==y||k.pointLength!==b||k.spotLength!==w||k.rectAreaLength!==_||k.hemiLength!==S||k.numDirectionalShadows!==E||k.numPointShadows!==T||k.numSpotShadows!==P||k.numSpotMaps!==R||k.numLightProbes!==I)&&(r.directional.length=y,r.spot.length=w,r.rectArea.length=_,r.point.length=b,r.hemi.length=S,r.directionalShadow.length=E,r.directionalShadowMap.length=E,r.pointShadow.length=T,r.pointShadowMap.length=T,r.spotShadow.length=P,r.spotShadowMap.length=P,r.directionalShadowMatrix.length=E,r.pointShadowMatrix.length=T,r.spotLightMatrix.length=P+R-D,r.spotLightMap.length=R,r.numSpotLightShadowsWithMaps=D,r.numLightProbes=I,k.directionalLength=y,k.pointLength=b,k.spotLength=w,k.rectAreaLength=_,k.hemiLength=S,k.numDirectionalShadows=E,k.numPointShadows=T,k.numSpotShadows=P,k.numSpotMaps=R,k.numLightProbes=I,r.version=g3e++)}function c(u,h){let p=0,v=0,y=0,b=0,w=0;const _=h.matrixWorldInverse;for(let S=0,E=u.length;S=s.length?(o=new OH(t),s.push(o)):o=s[a],o}function r(){e=new WeakMap}return{get:n,dispose:r}}const b3e=`void main() { - gl_Position = vec4( position, 1.0 ); -}`,_3e=`uniform sampler2D shadow_pass; -uniform vec2 resolution; -uniform float radius; -void main() { - const float samples = float( VSM_SAMPLES ); - float mean = 0.0; - float squared_mean = 0.0; - float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); - float uvStart = samples <= 1.0 ? 0.0 : - 1.0; - for ( float i = 0.0; i < samples; i ++ ) { - float uvOffset = uvStart + i * uvStride; - #ifdef HORIZONTAL_PASS - vec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg; - mean += distribution.x; - squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; - #else - float depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r; - mean += depth; - squared_mean += depth * depth; - #endif - } - mean = mean / samples; - squared_mean = squared_mean / samples; - float std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) ); - gl_FragColor = vec4( mean, std_dev, 0.0, 1.0 ); -}`,S3e=[new ne(1,0,0),new ne(-1,0,0),new ne(0,1,0),new ne(0,-1,0),new ne(0,0,1),new ne(0,0,-1)],A3e=[new ne(0,-1,0),new ne(0,-1,0),new ne(0,0,1),new ne(0,0,-1),new ne(0,-1,0),new ne(0,-1,0)],PH=new qt,dx=new ne,DD=new ne;function w3e(t,e,n){let r=new ly;const i=new Ve,a=new Ve,s=new mr,o=new ak,c=new sk,u={},h=n.maxTextureSize,p={[Vc]:ls,[ls]:Vc,[Fo]:Fo},v=new Yo({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ve},radius:{value:4}},vertexShader:b3e,fragmentShader:_3e}),y=v.clone();y.defines.HORIZONTAL_PASS=1;const b=new an;b.setAttribute("position",new qn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const w=new vi(b,v),_=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Yg;let S=this.type;this.render=function(D,I,k){if(_.enabled===!1||_.autoUpdate===!1&&_.needsUpdate===!1||D.length===0)return;D.type===Ix&&(xt("WebGLShadowMap: PCFSoftShadowMap has been deprecated. Using PCFShadowMap instead."),D.type=Yg);const B=t.getRenderTarget(),U=t.getActiveCubeFace(),z=t.getActiveMipmapLevel(),q=t.state;q.setBlending(Fc),q.buffers.depth.getReversed()===!0?q.buffers.color.setClear(0,0,0,0):q.buffers.color.setClear(1,1,1,1),q.buffers.depth.setTest(!0),q.setScissorTest(!1);const W=S!==this.type;W&&I.traverse(function(ee){ee.material&&(Array.isArray(ee.material)?ee.material.forEach(Q=>Q.needsUpdate=!0):ee.material.needsUpdate=!0)});for(let ee=0,Q=D.length;eeh||i.y>h)&&(i.x>h&&(a.x=Math.floor(h/Y.x),i.x=a.x*Y.x,$.mapSize.x=a.x),i.y>h&&(a.y=Math.floor(h/Y.y),i.y=a.y*Y.y,$.mapSize.y=a.y)),$.map===null||W===!0){if($.map!==null&&($.map.depthTexture!==null&&($.map.depthTexture.dispose(),$.map.depthTexture=null),$.map.dispose()),this.type===cp){if(V.isPointLight){xt("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}$.map=new to(i.x,i.y,{format:Cp,type:qc,minFilter:vr,magFilter:vr,generateMipmaps:!1}),$.map.texture.name=V.name+".shadowMap",$.map.depthTexture=new Fv(i.x,i.y,os),$.map.depthTexture.name=V.name+".shadowMapDepth",$.map.depthTexture.format=$c,$.map.depthTexture.compareFunction=null,$.map.depthTexture.minFilter=si,$.map.depthTexture.magFilter=si}else{V.isPointLight?($.map=new V5(i.x),$.map.depthTexture=new pY(i.x,Ko)):($.map=new to(i.x,i.y),$.map.depthTexture=new Fv(i.x,i.y,Ko)),$.map.depthTexture.name=V.name+".shadowMap",$.map.depthTexture.format=$c;const de=t.state.buffers.depth.getReversed();this.type===Yg?($.map.depthTexture.compareFunction=de?QE:ZE,$.map.depthTexture.minFilter=vr,$.map.depthTexture.magFilter=vr):($.map.depthTexture.compareFunction=null,$.map.depthTexture.minFilter=si,$.map.depthTexture.magFilter=si)}$.camera.updateProjectionMatrix()}const ie=$.map.isWebGLCubeRenderTarget?6:1;for(let de=0;de0||I.map&&I.alphaTest>0||I.alphaToCoverage===!0){const q=U.uuid,W=I.uuid;let ee=u[q];ee===void 0&&(ee={},u[q]=ee);let Q=ee[W];Q===void 0&&(Q=U.clone(),ee[W]=Q,I.addEventListener("dispose",R)),U=Q}if(U.visible=I.visible,U.wireframe=I.wireframe,B===cp?U.side=I.shadowSide!==null?I.shadowSide:I.side:U.side=I.shadowSide!==null?I.shadowSide:p[I.side],U.alphaMap=I.alphaMap,U.alphaTest=I.alphaToCoverage===!0?.5:I.alphaTest,U.map=I.map,U.clipShadows=I.clipShadows,U.clippingPlanes=I.clippingPlanes,U.clipIntersection=I.clipIntersection,U.displacementMap=I.displacementMap,U.displacementScale=I.displacementScale,U.displacementBias=I.displacementBias,U.wireframeLinewidth=I.wireframeLinewidth,U.linewidth=I.linewidth,k.isPointLight===!0&&U.isMeshDistanceMaterial===!0){const q=t.properties.get(U);q.light=k}return U}function P(D,I,k,B,U){if(D.visible===!1)return;if(D.layers.test(I.layers)&&(D.isMesh||D.isLine||D.isPoints)&&(D.castShadow||D.receiveShadow&&U===cp)&&(!D.frustumCulled||r.intersectsObject(D))){D.modelViewMatrix.multiplyMatrices(k.matrixWorldInverse,D.matrixWorld);const W=e.update(D),ee=D.material;if(Array.isArray(ee)){const Q=W.groups;for(let V=0,$=Q.length;V<$;V++){const Y=Q[V],ie=ee[Y.materialIndex];if(ie&&ie.visible){const de=T(D,ie,B,U);D.onBeforeShadow(t,D,I,k,W,de,Y),t.renderBufferDirect(k,null,W,de,D,Y),D.onAfterShadow(t,D,I,k,W,de,Y)}}}else if(ee.visible){const Q=T(D,ee,B,U);D.onBeforeShadow(t,D,I,k,W,Q,null),t.renderBufferDirect(k,null,W,Q,D,null),D.onAfterShadow(t,D,I,k,W,Q,null)}}const q=D.children;for(let W=0,ee=q.length;W=1):Y.indexOf("OpenGL ES")!==-1&&($=parseFloat(/^OpenGL ES (\d)/.exec(Y)[1]),V=$>=2);let ie=null,de={};const X=t.getParameter(t.SCISSOR_BOX),ae=t.getParameter(t.VIEWPORT),ue=new mr().fromArray(X),Se=new mr().fromArray(ae);function $e(oe,it,et,pt){const tt=new Uint8Array(4),He=t.createTexture();t.bindTexture(oe,He),t.texParameteri(oe,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(oe,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let at=0;at"u"?!1:/OculusBrowser/g.test(navigator.userAgent),u=new Ve,h=new WeakMap;let p;const v=new WeakMap;let y=!1;try{y=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function b(te,H){return y?new OffscreenCanvas(te,H):Ib("canvas")}function w(te,H,he){let Ne=1;const je=Ze(te);if((je.width>he||je.height>he)&&(Ne=he/Math.max(je.width,je.height)),Ne<1)if(typeof HTMLImageElement<"u"&&te instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&te instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&te instanceof ImageBitmap||typeof VideoFrame<"u"&&te instanceof VideoFrame){const Ie=Math.floor(Ne*je.width),_t=Math.floor(Ne*je.height);p===void 0&&(p=b(Ie,_t));const lt=H?b(Ie,_t):p;return lt.width=Ie,lt.height=_t,lt.getContext("2d").drawImage(te,0,0,Ie,_t),xt("WebGLRenderer: Texture has been resized from ("+je.width+"x"+je.height+") to ("+Ie+"x"+_t+")."),lt}else return"data"in te&&xt("WebGLRenderer: Image in DataTexture is too big ("+je.width+"x"+je.height+")."),te;return te}function _(te){return te.generateMipmaps}function S(te){t.generateMipmap(te)}function E(te){return te.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:te.isWebGL3DRenderTarget?t.TEXTURE_3D:te.isWebGLArrayRenderTarget||te.isCompressedArrayTexture?t.TEXTURE_2D_ARRAY:t.TEXTURE_2D}function T(te,H,he,Ne,je=!1){if(te!==null){if(t[te]!==void 0)return t[te];xt("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+te+"'")}let Ie=H;if(H===t.RED&&(he===t.FLOAT&&(Ie=t.R32F),he===t.HALF_FLOAT&&(Ie=t.R16F),he===t.UNSIGNED_BYTE&&(Ie=t.R8)),H===t.RED_INTEGER&&(he===t.UNSIGNED_BYTE&&(Ie=t.R8UI),he===t.UNSIGNED_SHORT&&(Ie=t.R16UI),he===t.UNSIGNED_INT&&(Ie=t.R32UI),he===t.BYTE&&(Ie=t.R8I),he===t.SHORT&&(Ie=t.R16I),he===t.INT&&(Ie=t.R32I)),H===t.RG&&(he===t.FLOAT&&(Ie=t.RG32F),he===t.HALF_FLOAT&&(Ie=t.RG16F),he===t.UNSIGNED_BYTE&&(Ie=t.RG8)),H===t.RG_INTEGER&&(he===t.UNSIGNED_BYTE&&(Ie=t.RG8UI),he===t.UNSIGNED_SHORT&&(Ie=t.RG16UI),he===t.UNSIGNED_INT&&(Ie=t.RG32UI),he===t.BYTE&&(Ie=t.RG8I),he===t.SHORT&&(Ie=t.RG16I),he===t.INT&&(Ie=t.RG32I)),H===t.RGB_INTEGER&&(he===t.UNSIGNED_BYTE&&(Ie=t.RGB8UI),he===t.UNSIGNED_SHORT&&(Ie=t.RGB16UI),he===t.UNSIGNED_INT&&(Ie=t.RGB32UI),he===t.BYTE&&(Ie=t.RGB8I),he===t.SHORT&&(Ie=t.RGB16I),he===t.INT&&(Ie=t.RGB32I)),H===t.RGBA_INTEGER&&(he===t.UNSIGNED_BYTE&&(Ie=t.RGBA8UI),he===t.UNSIGNED_SHORT&&(Ie=t.RGBA16UI),he===t.UNSIGNED_INT&&(Ie=t.RGBA32UI),he===t.BYTE&&(Ie=t.RGBA8I),he===t.SHORT&&(Ie=t.RGBA16I),he===t.INT&&(Ie=t.RGBA32I)),H===t.RGB&&(he===t.UNSIGNED_INT_5_9_9_9_REV&&(Ie=t.RGB9_E5),he===t.UNSIGNED_INT_10F_11F_11F_REV&&(Ie=t.R11F_G11F_B10F)),H===t.RGBA){const _t=je?Db:Fn.getTransfer(Ne);he===t.FLOAT&&(Ie=t.RGBA32F),he===t.HALF_FLOAT&&(Ie=t.RGBA16F),he===t.UNSIGNED_BYTE&&(Ie=_t===ir?t.SRGB8_ALPHA8:t.RGBA8),he===t.UNSIGNED_SHORT_4_4_4_4&&(Ie=t.RGBA4),he===t.UNSIGNED_SHORT_5_5_5_1&&(Ie=t.RGB5_A1)}return(Ie===t.R16F||Ie===t.R32F||Ie===t.RG16F||Ie===t.RG32F||Ie===t.RGBA16F||Ie===t.RGBA32F)&&e.get("EXT_color_buffer_float"),Ie}function P(te,H){let he;return te?H===null||H===Ko||H===Ov?he=t.DEPTH24_STENCIL8:H===os?he=t.DEPTH32F_STENCIL8:H===Rv&&(he=t.DEPTH24_STENCIL8,xt("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):H===null||H===Ko||H===Ov?he=t.DEPTH_COMPONENT24:H===os?he=t.DEPTH_COMPONENT32F:H===Rv&&(he=t.DEPTH_COMPONENT16),he}function R(te,H){return _(te)===!0||te.isFramebufferTexture&&te.minFilter!==si&&te.minFilter!==vr?Math.log2(Math.max(H.width,H.height))+1:te.mipmaps!==void 0&&te.mipmaps.length>0?te.mipmaps.length:te.isCompressedTexture&&Array.isArray(te.image)?H.mipmaps.length:1}function D(te){const H=te.target;H.removeEventListener("dispose",D),k(H),H.isVideoTexture&&h.delete(H)}function I(te){const H=te.target;H.removeEventListener("dispose",I),U(H)}function k(te){const H=r.get(te);if(H.__webglInit===void 0)return;const he=te.source,Ne=v.get(he);if(Ne){const je=Ne[H.__cacheKey];je.usedTimes--,je.usedTimes===0&&B(te),Object.keys(Ne).length===0&&v.delete(he)}r.remove(te)}function B(te){const H=r.get(te);t.deleteTexture(H.__webglTexture);const he=te.source,Ne=v.get(he);delete Ne[H.__cacheKey],s.memory.textures--}function U(te){const H=r.get(te);if(te.depthTexture&&(te.depthTexture.dispose(),r.remove(te.depthTexture)),te.isWebGLCubeRenderTarget)for(let Ne=0;Ne<6;Ne++){if(Array.isArray(H.__webglFramebuffer[Ne]))for(let je=0;je=i.maxTextures&&xt("WebGLTextures: Trying to use "+te+" texture units while this GPU supports only "+i.maxTextures),z+=1,te}function ee(te){const H=[];return H.push(te.wrapS),H.push(te.wrapT),H.push(te.wrapR||0),H.push(te.magFilter),H.push(te.minFilter),H.push(te.anisotropy),H.push(te.internalFormat),H.push(te.format),H.push(te.type),H.push(te.generateMipmaps),H.push(te.premultiplyAlpha),H.push(te.flipY),H.push(te.unpackAlignment),H.push(te.colorSpace),H.join()}function Q(te,H){const he=r.get(te);if(te.isVideoTexture&&ft(te),te.isRenderTargetTexture===!1&&te.isExternalTexture!==!0&&te.version>0&&he.__version!==te.version){const Ne=te.image;if(Ne===null)xt("WebGLRenderer: Texture marked for update but no image data found.");else if(Ne.complete===!1)xt("WebGLRenderer: Texture marked for update but image is incomplete");else{me(he,te,H);return}}else te.isExternalTexture&&(he.__webglTexture=te.sourceTexture?te.sourceTexture:null);n.bindTexture(t.TEXTURE_2D,he.__webglTexture,t.TEXTURE0+H)}function V(te,H){const he=r.get(te);if(te.isRenderTargetTexture===!1&&te.version>0&&he.__version!==te.version){me(he,te,H);return}else te.isExternalTexture&&(he.__webglTexture=te.sourceTexture?te.sourceTexture:null);n.bindTexture(t.TEXTURE_2D_ARRAY,he.__webglTexture,t.TEXTURE0+H)}function $(te,H){const he=r.get(te);if(te.isRenderTargetTexture===!1&&te.version>0&&he.__version!==te.version){me(he,te,H);return}n.bindTexture(t.TEXTURE_3D,he.__webglTexture,t.TEXTURE0+H)}function Y(te,H){const he=r.get(te);if(te.isCubeDepthTexture!==!0&&te.version>0&&he.__version!==te.version){ve(he,te,H);return}n.bindTexture(t.TEXTURE_CUBE_MAP,he.__webglTexture,t.TEXTURE0+H)}const ie={[Rd]:t.REPEAT,[ss]:t.CLAMP_TO_EDGE,[Cv]:t.MIRRORED_REPEAT},de={[si]:t.NEAREST,[VE]:t.NEAREST_MIPMAP_NEAREST,[up]:t.NEAREST_MIPMAP_LINEAR,[vr]:t.LINEAR,[Jg]:t.LINEAR_MIPMAP_NEAREST,[zo]:t.LINEAR_MIPMAP_LINEAR},X={[XK]:t.NEVER,[QK]:t.ALWAYS,[KK]:t.LESS,[ZE]:t.LEQUAL,[YK]:t.EQUAL,[QE]:t.GEQUAL,[JK]:t.GREATER,[ZK]:t.NOTEQUAL};function ae(te,H){if(H.type===os&&e.has("OES_texture_float_linear")===!1&&(H.magFilter===vr||H.magFilter===Jg||H.magFilter===up||H.magFilter===zo||H.minFilter===vr||H.minFilter===Jg||H.minFilter===up||H.minFilter===zo)&&xt("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),t.texParameteri(te,t.TEXTURE_WRAP_S,ie[H.wrapS]),t.texParameteri(te,t.TEXTURE_WRAP_T,ie[H.wrapT]),(te===t.TEXTURE_3D||te===t.TEXTURE_2D_ARRAY)&&t.texParameteri(te,t.TEXTURE_WRAP_R,ie[H.wrapR]),t.texParameteri(te,t.TEXTURE_MAG_FILTER,de[H.magFilter]),t.texParameteri(te,t.TEXTURE_MIN_FILTER,de[H.minFilter]),H.compareFunction&&(t.texParameteri(te,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(te,t.TEXTURE_COMPARE_FUNC,X[H.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(H.magFilter===si||H.minFilter!==up&&H.minFilter!==zo||H.type===os&&e.has("OES_texture_float_linear")===!1)return;if(H.anisotropy>1||r.get(H).__currentAnisotropy){const he=e.get("EXT_texture_filter_anisotropic");t.texParameterf(te,he.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(H.anisotropy,i.getMaxAnisotropy())),r.get(H).__currentAnisotropy=H.anisotropy}}}function ue(te,H){let he=!1;te.__webglInit===void 0&&(te.__webglInit=!0,H.addEventListener("dispose",D));const Ne=H.source;let je=v.get(Ne);je===void 0&&(je={},v.set(Ne,je));const Ie=ee(H);if(Ie!==te.__cacheKey){je[Ie]===void 0&&(je[Ie]={texture:t.createTexture(),usedTimes:0},s.memory.textures++,he=!0),je[Ie].usedTimes++;const _t=je[te.__cacheKey];_t!==void 0&&(je[te.__cacheKey].usedTimes--,_t.usedTimes===0&&B(H)),te.__cacheKey=Ie,te.__webglTexture=je[Ie].texture}return he}function Se(te,H,he){return Math.floor(Math.floor(te/he)/H)}function $e(te,H,he,Ne){const Ie=te.updateRanges;if(Ie.length===0)n.texSubImage2D(t.TEXTURE_2D,0,0,0,H.width,H.height,he,Ne,H.data);else{Ie.sort((Qe,st)=>Qe.start-st.start);let _t=0;for(let Qe=1;Qe0){oe&&it&&n.texStorage2D(t.TEXTURE_2D,pt,se,dt[0].width,dt[0].height);for(let tt=0,He=dt.length;tt0){const at=fB(Ae.width,Ae.height,H.format,H.type);for(const jt of H.layerUpdates){const un=Ae.data.subarray(jt*at/Ae.data.BYTES_PER_ELEMENT,(jt+1)*at/Ae.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,tt,0,0,jt,Ae.width,Ae.height,1,st,un)}H.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,tt,0,0,0,Ae.width,Ae.height,Qe.depth,st,Ae.data)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,tt,se,Ae.width,Ae.height,Qe.depth,0,Ae.data,0,0);else xt("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else oe?et&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,tt,0,0,0,Ae.width,Ae.height,Qe.depth,st,vt,Ae.data):n.texImage3D(t.TEXTURE_2D_ARRAY,tt,se,Ae.width,Ae.height,Qe.depth,0,st,vt,Ae.data)}else{oe&&it&&n.texStorage2D(t.TEXTURE_2D,pt,se,dt[0].width,dt[0].height);for(let tt=0,He=dt.length;tt0){const tt=fB(Qe.width,Qe.height,H.format,H.type);for(const He of H.layerUpdates){const at=Qe.data.subarray(He*tt/Qe.data.BYTES_PER_ELEMENT,(He+1)*tt/Qe.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,He,Qe.width,Qe.height,1,st,vt,at)}H.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,Qe.width,Qe.height,Qe.depth,st,vt,Qe.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,se,Qe.width,Qe.height,Qe.depth,0,st,vt,Qe.data);else if(H.isData3DTexture)oe?(it&&n.texStorage3D(t.TEXTURE_3D,pt,se,Qe.width,Qe.height,Qe.depth),et&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,Qe.width,Qe.height,Qe.depth,st,vt,Qe.data)):n.texImage3D(t.TEXTURE_3D,0,se,Qe.width,Qe.height,Qe.depth,0,st,vt,Qe.data);else if(H.isFramebufferTexture){if(it)if(oe)n.texStorage2D(t.TEXTURE_2D,pt,se,Qe.width,Qe.height);else{let tt=Qe.width,He=Qe.height;for(let at=0;at>=1,He>>=1}}else if(dt.length>0){if(oe&&it){const tt=Ze(dt[0]);n.texStorage2D(t.TEXTURE_2D,pt,se,tt.width,tt.height)}for(let tt=0,He=dt.length;tt0&&pt++;const He=Ze(st[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,pt,dt,He.width,He.height)}for(let He=0;He<6;He++)if(Qe){oe?et&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+He,0,0,0,st[He].width,st[He].height,se,Ae,st[He].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+He,0,dt,st[He].width,st[He].height,0,se,Ae,st[He].data);for(let at=0;at>Ie),vt=Math.max(1,H.height>>Ie);je===t.TEXTURE_3D||je===t.TEXTURE_2D_ARRAY?n.texImage3D(je,Ie,Tt,st,vt,H.depth,0,_t,lt,null):n.texImage2D(je,Ie,Tt,st,vt,0,_t,lt,null)}n.bindFramebuffer(t.FRAMEBUFFER,te),At(H)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,Ne,je,Qe.__webglTexture,0,re(H)):(je===t.TEXTURE_2D||je>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&je<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,Ne,je,Qe.__webglTexture,Ie),n.bindFramebuffer(t.FRAMEBUFFER,null)}function _e(te,H,he){if(t.bindRenderbuffer(t.RENDERBUFFER,te),H.depthBuffer){const Ne=H.depthTexture,je=Ne&&Ne.isDepthTexture?Ne.type:null,Ie=P(H.stencilBuffer,je),_t=H.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;At(H)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,re(H),Ie,H.width,H.height):he?t.renderbufferStorageMultisample(t.RENDERBUFFER,re(H),Ie,H.width,H.height):t.renderbufferStorage(t.RENDERBUFFER,Ie,H.width,H.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,_t,t.RENDERBUFFER,te)}else{const Ne=H.textures;for(let je=0;je{delete H.__boundDepthTexture,delete H.__depthDisposeCallback,Ne.removeEventListener("dispose",je)};Ne.addEventListener("dispose",je),H.__depthDisposeCallback=je}H.__boundDepthTexture=Ne}if(te.depthTexture&&!H.__autoAllocateDepthBuffer)if(he)for(let Ne=0;Ne<6;Ne++)Fe(H.__webglFramebuffer[Ne],te,Ne);else{const Ne=te.texture.mipmaps;Ne&&Ne.length>0?Fe(H.__webglFramebuffer[0],te,0):Fe(H.__webglFramebuffer,te,0)}else if(he){H.__webglDepthbuffer=[];for(let Ne=0;Ne<6;Ne++)if(n.bindFramebuffer(t.FRAMEBUFFER,H.__webglFramebuffer[Ne]),H.__webglDepthbuffer[Ne]===void 0)H.__webglDepthbuffer[Ne]=t.createRenderbuffer(),_e(H.__webglDepthbuffer[Ne],te,!1);else{const je=te.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,Ie=H.__webglDepthbuffer[Ne];t.bindRenderbuffer(t.RENDERBUFFER,Ie),t.framebufferRenderbuffer(t.FRAMEBUFFER,je,t.RENDERBUFFER,Ie)}}else{const Ne=te.texture.mipmaps;if(Ne&&Ne.length>0?n.bindFramebuffer(t.FRAMEBUFFER,H.__webglFramebuffer[0]):n.bindFramebuffer(t.FRAMEBUFFER,H.__webglFramebuffer),H.__webglDepthbuffer===void 0)H.__webglDepthbuffer=t.createRenderbuffer(),_e(H.__webglDepthbuffer,te,!1);else{const je=te.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,Ie=H.__webglDepthbuffer;t.bindRenderbuffer(t.RENDERBUFFER,Ie),t.framebufferRenderbuffer(t.FRAMEBUFFER,je,t.RENDERBUFFER,Ie)}}n.bindFramebuffer(t.FRAMEBUFFER,null)}function Re(te,H,he){const Ne=r.get(te);H!==void 0&&We(Ne.__webglFramebuffer,te,te.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),he!==void 0&&Xe(te)}function ot(te){const H=te.texture,he=r.get(te),Ne=r.get(H);te.addEventListener("dispose",I);const je=te.textures,Ie=te.isWebGLCubeRenderTarget===!0,_t=je.length>1;if(_t||(Ne.__webglTexture===void 0&&(Ne.__webglTexture=t.createTexture()),Ne.__version=H.version,s.memory.textures++),Ie){he.__webglFramebuffer=[];for(let lt=0;lt<6;lt++)if(H.mipmaps&&H.mipmaps.length>0){he.__webglFramebuffer[lt]=[];for(let Tt=0;Tt0){he.__webglFramebuffer=[];for(let lt=0;lt0&&At(te)===!1){he.__webglMultisampledFramebuffer=t.createFramebuffer(),he.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,he.__webglMultisampledFramebuffer);for(let lt=0;lt0)for(let Tt=0;Tt0)for(let Tt=0;Tt0){if(At(te)===!1){const H=te.textures,he=te.width,Ne=te.height;let je=t.COLOR_BUFFER_BIT;const Ie=te.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,_t=r.get(te),lt=H.length>1;if(lt)for(let Gt=0;Gt0?n.bindFramebuffer(t.DRAW_FRAMEBUFFER,_t.__webglFramebuffer[0]):n.bindFramebuffer(t.DRAW_FRAMEBUFFER,_t.__webglFramebuffer);for(let Gt=0;Gt0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&H.__useRenderToTexture!==!1}function ft(te){const H=s.render.frame;h.get(te)!==H&&(h.set(te,H),te.update())}function Et(te,H){const he=te.colorSpace,Ne=te.format,je=te.type;return te.isCompressedTexture===!0||te.isVideoTexture===!0||he!==Od&&he!==zu&&(Fn.getTransfer(he)===ir?(Ne!==Ba||je!==ts)&&xt("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):zt("WebGLTextures: Unsupported texture color space:",he)),H}function Ze(te){return typeof HTMLImageElement<"u"&&te instanceof HTMLImageElement?(u.width=te.naturalWidth||te.width,u.height=te.naturalHeight||te.height):typeof VideoFrame<"u"&&te instanceof VideoFrame?(u.width=te.displayWidth,u.height=te.displayHeight):(u.width=te.width,u.height=te.height),u}this.allocateTextureUnit=W,this.resetTextureUnits=q,this.setTexture2D=Q,this.setTexture2DArray=V,this.setTexture3D=$,this.setTextureCube=Y,this.rebindTextures=Re,this.setupRenderTarget=ot,this.updateRenderTargetMipmap=we,this.updateMultisampleRenderTarget=Ye,this.setupDepthRenderbuffer=Xe,this.setupFrameBufferTexture=We,this.useMultisampledRTT=At,this.isReversedDepthBuffer=function(){return n.buffers.depth.getReversed()}}function rJ(t,e){function n(r,i=zu){let a;const s=Fn.getTransfer(i);if(r===ts)return t.UNSIGNED_BYTE;if(r===qE)return t.UNSIGNED_SHORT_4_4_4_4;if(r===$E)return t.UNSIGNED_SHORT_5_5_5_1;if(r===I5)return t.UNSIGNED_INT_5_9_9_9_REV;if(r===B5)return t.UNSIGNED_INT_10F_11F_11F_REV;if(r===D5)return t.BYTE;if(r===N5)return t.SHORT;if(r===Rv)return t.UNSIGNED_SHORT;if(r===WE)return t.INT;if(r===Ko)return t.UNSIGNED_INT;if(r===os)return t.FLOAT;if(r===qc)return t.HALF_FLOAT;if(r===L5)return t.ALPHA;if(r===k5)return t.RGB;if(r===Ba)return t.RGBA;if(r===$c)return t.DEPTH_COMPONENT;if(r===Sd)return t.DEPTH_STENCIL;if(r===XE)return t.RED;if(r===l1)return t.RED_INTEGER;if(r===Cp)return t.RG;if(r===KE)return t.RG_INTEGER;if(r===YE)return t.RGBA_INTEGER;if(r===Bx||r===Lx||r===kx||r===Fx)if(s===ir)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(r===Bx)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===Lx)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===kx)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===Fx)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(r===Bx)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===Lx)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===kx)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===Fx)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===fM||r===dM||r===hM||r===pM)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(r===fM)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===dM)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===hM)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===pM)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===mM||r===gM||r===vM||r===yM||r===xM||r===bM||r===_M)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(r===mM||r===gM)return s===ir?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(r===vM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC;if(r===yM)return a.COMPRESSED_R11_EAC;if(r===xM)return a.COMPRESSED_SIGNED_R11_EAC;if(r===bM)return a.COMPRESSED_RG11_EAC;if(r===_M)return a.COMPRESSED_SIGNED_RG11_EAC}else return null;if(r===SM||r===AM||r===wM||r===MM||r===EM||r===TM||r===CM||r===RM||r===OM||r===PM||r===DM||r===NM||r===IM||r===BM)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(r===SM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===AM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===wM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===MM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===EM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===TM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===CM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===RM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===OM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===PM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===DM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===NM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===IM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===BM)return s===ir?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===LM||r===kM||r===FM)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(r===LM)return s===ir?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(r===kM)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(r===FM)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(r===UM||r===jM||r===zM||r===GM)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(r===UM)return a.COMPRESSED_RED_RGTC1_EXT;if(r===jM)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(r===zM)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(r===GM)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return r===Ov?t.UNSIGNED_INT_24_8:t[r]!==void 0?t[r]:null}return{convert:n}}const C3e=` -void main() { - - gl_Position = vec4( position, 1.0 ); - -}`,R3e=` -uniform sampler2DArray depthColor; -uniform float depthWidth; -uniform float depthHeight; - -void main() { - - vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); - - if ( coord.x >= 1.0 ) { - - gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; - - } else { - - gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; - - } - -}`;class O3e{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,n){if(this.texture===null){const r=new J5(e.texture);(e.depthNear!==n.depthNear||e.depthFar!==n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}getMesh(e){if(this.texture!==null&&this.mesh===null){const n=e.cameras[0].viewport,r=new Yo({vertexShader:C3e,fragmentShader:R3e,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new vi(new cy(20,20),r)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class P3e extends Yc{constructor(e,n){super();const r=this;let i=null,a=1,s=null,o="local-floor",c=1,u=null,h=null,p=null,v=null,y=null,b=null;const w=typeof XRWebGLBinding<"u",_=new O3e,S={},E=n.getContextAttributes();let T=null,P=null;const R=[],D=[],I=new Ve;let k=null;const B=new jr;B.viewport=new mr;const U=new jr;U.viewport=new mr;const z=[B,U],q=new qY;let W=null,ee=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(me){let ve=R[me];return ve===void 0&&(ve=new UA,R[me]=ve),ve.getTargetRaySpace()},this.getControllerGrip=function(me){let ve=R[me];return ve===void 0&&(ve=new UA,R[me]=ve),ve.getGripSpace()},this.getHand=function(me){let ve=R[me];return ve===void 0&&(ve=new UA,R[me]=ve),ve.getHandSpace()};function Q(me){const ve=D.indexOf(me.inputSource);if(ve===-1)return;const We=R[ve];We!==void 0&&(We.update(me.inputSource,me.frame,u||s),We.dispatchEvent({type:me.type,data:me.inputSource}))}function V(){i.removeEventListener("select",Q),i.removeEventListener("selectstart",Q),i.removeEventListener("selectend",Q),i.removeEventListener("squeeze",Q),i.removeEventListener("squeezestart",Q),i.removeEventListener("squeezeend",Q),i.removeEventListener("end",V),i.removeEventListener("inputsourceschange",$);for(let me=0;me=0&&(D[_e]=null,R[_e].disconnect(We))}for(let ve=0;ve=D.length){D.push(We),_e=Xe;break}else if(D[Xe]===null){D[Xe]=We,_e=Xe;break}if(_e===-1)break}const Fe=R[_e];Fe&&Fe.connect(We)}}const Y=new ne,ie=new ne;function de(me,ve,We){Y.setFromMatrixPosition(ve.matrixWorld),ie.setFromMatrixPosition(We.matrixWorld);const _e=Y.distanceTo(ie),Fe=ve.projectionMatrix.elements,Xe=We.projectionMatrix.elements,Re=Fe[14]/(Fe[10]-1),ot=Fe[14]/(Fe[10]+1),we=(Fe[9]+1)/Fe[5],Ue=(Fe[9]-1)/Fe[5],Be=(Fe[8]-1)/Fe[0],Ye=(Xe[8]+1)/Xe[0],re=Re*Be,At=Re*Ye,ft=_e/(-Be+Ye),Et=ft*-Be;if(ve.matrixWorld.decompose(me.position,me.quaternion,me.scale),me.translateX(Et),me.translateZ(ft),me.matrixWorld.compose(me.position,me.quaternion,me.scale),me.matrixWorldInverse.copy(me.matrixWorld).invert(),Fe[10]===-1)me.projectionMatrix.copy(ve.projectionMatrix),me.projectionMatrixInverse.copy(ve.projectionMatrixInverse);else{const Ze=Re+ft,te=ot+ft,H=re-Et,he=At+(_e-Et),Ne=we*ot/te*Ze,je=Ue*ot/te*Ze;me.projectionMatrix.makePerspective(H,he,Ne,je,Ze,te),me.projectionMatrixInverse.copy(me.projectionMatrix).invert()}}function X(me,ve){ve===null?me.matrixWorld.copy(me.matrix):me.matrixWorld.multiplyMatrices(ve.matrixWorld,me.matrix),me.matrixWorldInverse.copy(me.matrixWorld).invert()}this.updateCamera=function(me){if(i===null)return;let ve=me.near,We=me.far;_.texture!==null&&(_.depthNear>0&&(ve=_.depthNear),_.depthFar>0&&(We=_.depthFar)),q.near=U.near=B.near=ve,q.far=U.far=B.far=We,(W!==q.near||ee!==q.far)&&(i.updateRenderState({depthNear:q.near,depthFar:q.far}),W=q.near,ee=q.far),q.layers.mask=me.layers.mask|6,B.layers.mask=q.layers.mask&3,U.layers.mask=q.layers.mask&5;const _e=me.parent,Fe=q.cameras;X(q,_e);for(let Xe=0;Xe0&&(_.alphaTest.value=S.alphaTest);const E=e.get(S),T=E.envMap,P=E.envMapRotation;T&&(_.envMap.value=T,$h.copy(P),$h.x*=-1,$h.y*=-1,$h.z*=-1,T.isCubeTexture&&T.isRenderTargetTexture===!1&&($h.y*=-1,$h.z*=-1),_.envMapRotation.value.setFromMatrix4(D3e.makeRotationFromEuler($h)),_.flipEnvMap.value=T.isCubeTexture&&T.isRenderTargetTexture===!1?-1:1,_.reflectivity.value=S.reflectivity,_.ior.value=S.ior,_.refractionRatio.value=S.refractionRatio),S.lightMap&&(_.lightMap.value=S.lightMap,_.lightMapIntensity.value=S.lightMapIntensity,n(S.lightMap,_.lightMapTransform)),S.aoMap&&(_.aoMap.value=S.aoMap,_.aoMapIntensity.value=S.aoMapIntensity,n(S.aoMap,_.aoMapTransform))}function s(_,S){_.diffuse.value.copy(S.color),_.opacity.value=S.opacity,S.map&&(_.map.value=S.map,n(S.map,_.mapTransform))}function o(_,S){_.dashSize.value=S.dashSize,_.totalSize.value=S.dashSize+S.gapSize,_.scale.value=S.scale}function c(_,S,E,T){_.diffuse.value.copy(S.color),_.opacity.value=S.opacity,_.size.value=S.size*E,_.scale.value=T*.5,S.map&&(_.map.value=S.map,n(S.map,_.uvTransform)),S.alphaMap&&(_.alphaMap.value=S.alphaMap,n(S.alphaMap,_.alphaMapTransform)),S.alphaTest>0&&(_.alphaTest.value=S.alphaTest)}function u(_,S){_.diffuse.value.copy(S.color),_.opacity.value=S.opacity,_.rotation.value=S.rotation,S.map&&(_.map.value=S.map,n(S.map,_.mapTransform)),S.alphaMap&&(_.alphaMap.value=S.alphaMap,n(S.alphaMap,_.alphaMapTransform)),S.alphaTest>0&&(_.alphaTest.value=S.alphaTest)}function h(_,S){_.specular.value.copy(S.specular),_.shininess.value=Math.max(S.shininess,1e-4)}function p(_,S){S.gradientMap&&(_.gradientMap.value=S.gradientMap)}function v(_,S){_.metalness.value=S.metalness,S.metalnessMap&&(_.metalnessMap.value=S.metalnessMap,n(S.metalnessMap,_.metalnessMapTransform)),_.roughness.value=S.roughness,S.roughnessMap&&(_.roughnessMap.value=S.roughnessMap,n(S.roughnessMap,_.roughnessMapTransform)),S.envMap&&(_.envMapIntensity.value=S.envMapIntensity)}function y(_,S,E){_.ior.value=S.ior,S.sheen>0&&(_.sheenColor.value.copy(S.sheenColor).multiplyScalar(S.sheen),_.sheenRoughness.value=S.sheenRoughness,S.sheenColorMap&&(_.sheenColorMap.value=S.sheenColorMap,n(S.sheenColorMap,_.sheenColorMapTransform)),S.sheenRoughnessMap&&(_.sheenRoughnessMap.value=S.sheenRoughnessMap,n(S.sheenRoughnessMap,_.sheenRoughnessMapTransform))),S.clearcoat>0&&(_.clearcoat.value=S.clearcoat,_.clearcoatRoughness.value=S.clearcoatRoughness,S.clearcoatMap&&(_.clearcoatMap.value=S.clearcoatMap,n(S.clearcoatMap,_.clearcoatMapTransform)),S.clearcoatRoughnessMap&&(_.clearcoatRoughnessMap.value=S.clearcoatRoughnessMap,n(S.clearcoatRoughnessMap,_.clearcoatRoughnessMapTransform)),S.clearcoatNormalMap&&(_.clearcoatNormalMap.value=S.clearcoatNormalMap,n(S.clearcoatNormalMap,_.clearcoatNormalMapTransform),_.clearcoatNormalScale.value.copy(S.clearcoatNormalScale),S.side===ls&&_.clearcoatNormalScale.value.negate())),S.dispersion>0&&(_.dispersion.value=S.dispersion),S.iridescence>0&&(_.iridescence.value=S.iridescence,_.iridescenceIOR.value=S.iridescenceIOR,_.iridescenceThicknessMinimum.value=S.iridescenceThicknessRange[0],_.iridescenceThicknessMaximum.value=S.iridescenceThicknessRange[1],S.iridescenceMap&&(_.iridescenceMap.value=S.iridescenceMap,n(S.iridescenceMap,_.iridescenceMapTransform)),S.iridescenceThicknessMap&&(_.iridescenceThicknessMap.value=S.iridescenceThicknessMap,n(S.iridescenceThicknessMap,_.iridescenceThicknessMapTransform))),S.transmission>0&&(_.transmission.value=S.transmission,_.transmissionSamplerMap.value=E.texture,_.transmissionSamplerSize.value.set(E.width,E.height),S.transmissionMap&&(_.transmissionMap.value=S.transmissionMap,n(S.transmissionMap,_.transmissionMapTransform)),_.thickness.value=S.thickness,S.thicknessMap&&(_.thicknessMap.value=S.thicknessMap,n(S.thicknessMap,_.thicknessMapTransform)),_.attenuationDistance.value=S.attenuationDistance,_.attenuationColor.value.copy(S.attenuationColor)),S.anisotropy>0&&(_.anisotropyVector.value.set(S.anisotropy*Math.cos(S.anisotropyRotation),S.anisotropy*Math.sin(S.anisotropyRotation)),S.anisotropyMap&&(_.anisotropyMap.value=S.anisotropyMap,n(S.anisotropyMap,_.anisotropyMapTransform))),_.specularIntensity.value=S.specularIntensity,_.specularColor.value.copy(S.specularColor),S.specularColorMap&&(_.specularColorMap.value=S.specularColorMap,n(S.specularColorMap,_.specularColorMapTransform)),S.specularIntensityMap&&(_.specularIntensityMap.value=S.specularIntensityMap,n(S.specularIntensityMap,_.specularIntensityMapTransform))}function b(_,S){S.matcap&&(_.matcap.value=S.matcap)}function w(_,S){const E=e.get(S).light;_.referencePosition.value.setFromMatrixPosition(E.matrixWorld),_.nearDistance.value=E.shadow.camera.near,_.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:r,refreshMaterialUniforms:i}}function I3e(t,e,n,r){let i={},a={},s=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function c(E,T){const P=T.program;r.uniformBlockBinding(E,P)}function u(E,T){let P=i[E.id];P===void 0&&(b(E),P=h(E),i[E.id]=P,E.addEventListener("dispose",_));const R=T.program;r.updateUBOMapping(E,R);const D=e.render.frame;a[E.id]!==D&&(v(E),a[E.id]=D)}function h(E){const T=p();E.__bindingPointIndex=T;const P=t.createBuffer(),R=E.__size,D=E.usage;return t.bindBuffer(t.UNIFORM_BUFFER,P),t.bufferData(t.UNIFORM_BUFFER,R,D),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,T,P),P}function p(){for(let E=0;E0&&(P+=R-D),E.__size=P,E.__cache={},this}function w(E){const T={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(T.boundary=4,T.storage=4):E.isVector2?(T.boundary=8,T.storage=8):E.isVector3||E.isColor?(T.boundary=16,T.storage=12):E.isVector4?(T.boundary=16,T.storage=16):E.isMatrix3?(T.boundary=48,T.storage=48):E.isMatrix4?(T.boundary=64,T.storage=64):E.isTexture?xt("WebGLRenderer: Texture samplers can not be part of an uniforms group."):xt("WebGLRenderer: Unsupported uniform value type.",E),T}function _(E){const T=E.target;T.removeEventListener("dispose",_);const P=s.indexOf(T.__bindingPointIndex);s.splice(P,1),t.deleteBuffer(i[T.id]),delete i[T.id],delete a[T.id]}function S(){for(const E in i)t.deleteBuffer(i[E]);s=[],i={},a={}}return{bind:c,update:u,dispose:S}}const B3e=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]);let Ec=null;function L3e(){return Ec===null&&(Ec=new Fl(B3e,16,16,Cp,qc),Ec.name="DFG_LUT",Ec.minFilter=vr,Ec.magFilter=vr,Ec.wrapS=ss,Ec.wrapT=ss,Ec.generateMipmaps=!1,Ec.needsUpdate=!0),Ec}class iJ{constructor(e={}){const{canvas:n=nY(),context:r=null,depth:i=!0,stencil:a=!1,alpha:s=!1,antialias:o=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:u=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:p=!1,reversedDepthBuffer:v=!1,outputBufferType:y=ts}=e;this.isWebGLRenderer=!0;let b;if(r!==null){if(typeof WebGLRenderingContext<"u"&&r instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");b=r.getContextAttributes().alpha}else b=s;const w=y,_=new Set([YE,KE,l1]),S=new Set([ts,Ko,Rv,Ov,qE,$E]),E=new Uint32Array(4),T=new Int32Array(4);let P=null,R=null;const D=[],I=[];let k=null;this.domElement=n,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=Wo,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const B=this;let U=!1;this._outputColorSpace=Pa;let z=0,q=0,W=null,ee=-1,Q=null;const V=new mr,$=new mr;let Y=null;const ie=new bt(0);let de=0,X=n.width,ae=n.height,ue=1,Se=null,$e=null;const me=new mr(0,0,X,ae),ve=new mr(0,0,X,ae);let We=!1;const _e=new ly;let Fe=!1,Xe=!1;const Re=new qt,ot=new ne,we=new mr,Ue={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let Be=!1;function Ye(){return W===null?ue:1}let re=r;function At(J,ge){return n.getContext(J,ge)}try{const J={alpha:!0,depth:i,stencil:a,antialias:o,premultipliedAlpha:c,preserveDrawingBuffer:u,powerPreference:h,failIfMajorPerformanceCaveat:p};if("setAttribute"in n&&n.setAttribute("data-engine",`three.js r${s1}`),n.addEventListener("webglcontextlost",jt,!1),n.addEventListener("webglcontextrestored",un,!1),n.addEventListener("webglcontextcreationerror",hn,!1),re===null){const ge="webgl2";if(re=At(ge,J),re===null)throw At(ge)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(J){throw zt("WebGLRenderer: "+J.message),J}let ft,Et,Ze,te,H,he,Ne,je,Ie,_t,lt,Tt,Gt,Qe,st,vt,se,Ae,dt,oe,it,et,pt,tt;function He(){ft=new kOe(re),ft.init(),et=new rJ(re,ft),Et=new COe(re,ft,e,et),Ze=new E3e(re,ft),Et.reversedDepthBuffer&&v&&Ze.buffers.depth.setReversed(!0),te=new jOe(re),H=new f3e,he=new T3e(re,ft,Ze,H,Et,et,te),Ne=new OOe(B),je=new LOe(B),Ie=new VTe(re),pt=new EOe(re,Ie),_t=new FOe(re,Ie,te,pt),lt=new GOe(re,_t,Ie,te),dt=new zOe(re,Et,he),vt=new ROe(H),Tt=new u3e(B,Ne,je,ft,Et,pt,vt),Gt=new N3e(B,H),Qe=new h3e,st=new x3e(ft),Ae=new MOe(B,Ne,je,Ze,lt,b,c),se=new w3e(B,lt,Et),tt=new I3e(re,te,Et,Ze),oe=new TOe(re,ft,te),it=new UOe(re,ft,te),te.programs=Tt.programs,B.capabilities=Et,B.extensions=ft,B.properties=H,B.renderLists=Qe,B.shadowMap=se,B.state=Ze,B.info=te}He(),w!==ts&&(k=new VOe(w,n.width,n.height,i,a));const at=new P3e(B,re);this.xr=at,this.getContext=function(){return re},this.getContextAttributes=function(){return re.getContextAttributes()},this.forceContextLoss=function(){const J=ft.get("WEBGL_lose_context");J&&J.loseContext()},this.forceContextRestore=function(){const J=ft.get("WEBGL_lose_context");J&&J.restoreContext()},this.getPixelRatio=function(){return ue},this.setPixelRatio=function(J){J!==void 0&&(ue=J,this.setSize(X,ae,!1))},this.getSize=function(J){return J.set(X,ae)},this.setSize=function(J,ge,Pe=!0){if(at.isPresenting){xt("WebGLRenderer: Can't change size while VR device is presenting.");return}X=J,ae=ge,n.width=Math.floor(J*ue),n.height=Math.floor(ge*ue),Pe===!0&&(n.style.width=J+"px",n.style.height=ge+"px"),k!==null&&k.setSize(n.width,n.height),this.setViewport(0,0,J,ge)},this.getDrawingBufferSize=function(J){return J.set(X*ue,ae*ue).floor()},this.setDrawingBufferSize=function(J,ge,Pe){X=J,ae=ge,ue=Pe,n.width=Math.floor(J*Pe),n.height=Math.floor(ge*Pe),this.setViewport(0,0,J,ge)},this.setEffects=function(J){if(w===ts){console.error("THREE.WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(J){for(let ge=0;ge{function ct(){if(Te.forEach(function(wt){H.get(wt).currentProgram.isReady()&&Te.delete(wt)}),Te.size===0){xe(J);return}setTimeout(ct,10)}ft.get("KHR_parallel_shader_compile")!==null?ct():setTimeout(ct,10)})};let Zc=null;function $l(J){Zc&&Zc(J)}function el(){Wi.stop()}function Qc(){Wi.start()}const Wi=new ZY;Wi.setAnimationLoop($l),typeof self<"u"&&Wi.setContext(self),this.setAnimationLoop=function(J){Zc=J,at.setAnimationLoop(J),J===null?Wi.stop():Wi.start()},at.addEventListener("sessionstart",el),at.addEventListener("sessionend",Qc),this.render=function(J,ge){if(ge!==void 0&&ge.isCamera!==!0){zt("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(U===!0)return;const Pe=at.enabled===!0&&at.isPresenting===!0,Te=k!==null&&(W===null||Pe)&&k.begin(B,W);if(J.matrixWorldAutoUpdate===!0&&J.updateMatrixWorld(),ge.parent===null&&ge.matrixWorldAutoUpdate===!0&&ge.updateMatrixWorld(),at.enabled===!0&&at.isPresenting===!0&&(k===null||k.isCompositing()===!1)&&(at.cameraAutoUpdate===!0&&at.updateCamera(ge),ge=at.getCamera()),J.isScene===!0&&J.onBeforeRender(B,J,ge,W),R=st.get(J,I.length),R.init(ge),I.push(R),Re.multiplyMatrices(ge.projectionMatrix,ge.matrixWorldInverse),_e.setFromProjectionMatrix(Re,Zs,ge.reversedDepth),Xe=this.localClippingEnabled,Fe=vt.init(this.clippingPlanes,Xe),P=Qe.get(J,D.length),P.init(),D.push(P),at.enabled===!0&&at.isPresenting===!0){const wt=B.xr.getDepthSensingMesh();wt!==null&&Fa(wt,ge,-1/0,B.sortObjects)}Fa(J,ge,0,B.sortObjects),P.finish(),B.sortObjects===!0&&P.sort(Se,$e),Be=at.enabled===!1||at.isPresenting===!1||at.hasDepthSensing()===!1,Be&&Ae.addToRenderList(P,J),this.info.render.frame++,Fe===!0&&vt.beginShadows();const xe=R.state.shadowsArray;if(se.render(xe,J,ge),Fe===!0&&vt.endShadows(),this.info.autoReset===!0&&this.info.reset(),(Te&&k.hasRenderPass())===!1){const wt=P.opaque,rt=P.transmissive;if(R.setupLights(),ge.isArrayCamera){const Ct=ge.cameras;if(rt.length>0)for(let Rt=0,Ht=Ct.length;Rt0&&li(wt,rt,J,ge),Be&&Ae.render(J),Er(P,J,ge)}W!==null&&q===0&&(he.updateMultisampleRenderTarget(W),he.updateRenderTargetMipmap(W)),Te&&k.end(B),J.isScene===!0&&J.onAfterRender(B,J,ge),pt.resetDefaultState(),ee=-1,Q=null,I.pop(),I.length>0?(R=I[I.length-1],Fe===!0&&vt.setGlobalState(B.clippingPlanes,R.state.camera)):R=null,D.pop(),D.length>0?P=D[D.length-1]:P=null};function Fa(J,ge,Pe,Te){if(J.visible===!1)return;if(J.layers.test(ge.layers)){if(J.isGroup)Pe=J.renderOrder;else if(J.isLOD)J.autoUpdate===!0&&J.update(ge);else if(J.isLight)R.pushLight(J),J.castShadow&&R.pushShadow(J);else if(J.isSprite){if(!J.frustumCulled||_e.intersectsSprite(J)){Te&&we.setFromMatrixPosition(J.matrixWorld).applyMatrix4(Re);const wt=lt.update(J),rt=J.material;rt.visible&&P.push(J,wt,rt,Pe,we.z,null)}}else if((J.isMesh||J.isLine||J.isPoints)&&(!J.frustumCulled||_e.intersectsObject(J))){const wt=lt.update(J),rt=J.material;if(Te&&(J.boundingSphere!==void 0?(J.boundingSphere===null&&J.computeBoundingSphere(),we.copy(J.boundingSphere.center)):(wt.boundingSphere===null&&wt.computeBoundingSphere(),we.copy(wt.boundingSphere.center)),we.applyMatrix4(J.matrixWorld).applyMatrix4(Re)),Array.isArray(rt)){const Ct=wt.groups;for(let Rt=0,Ht=Ct.length;Rt0&&Ua(xe,ge,Pe),ct.length>0&&Ua(ct,ge,Pe),wt.length>0&&Ua(wt,ge,Pe),Ze.buffers.depth.setTest(!0),Ze.buffers.depth.setMask(!0),Ze.buffers.color.setMask(!0),Ze.setPolygonOffset(!1)}function li(J,ge,Pe,Te){if((Pe.isScene===!0?Pe.overrideMaterial:null)!==null)return;if(R.state.transmissionRenderTarget[Te.id]===void 0){const Xt=ft.has("EXT_color_buffer_half_float")||ft.has("EXT_color_buffer_float");R.state.transmissionRenderTarget[Te.id]=new to(1,1,{generateMipmaps:!0,type:Xt?qc:ts,minFilter:zo,samples:Et.samples,stencilBuffer:a,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Fn.workingColorSpace})}const ct=R.state.transmissionRenderTarget[Te.id],wt=Te.viewport||V;ct.setSize(wt.z*B.transmissionResolutionScale,wt.w*B.transmissionResolutionScale);const rt=B.getRenderTarget(),Ct=B.getActiveCubeFace(),Rt=B.getActiveMipmapLevel();B.setRenderTarget(ct),B.getClearColor(ie),de=B.getClearAlpha(),de<1&&B.setClearColor(16777215,.5),B.clear(),Be&&Ae.render(Pe);const Ht=B.toneMapping;B.toneMapping=Wo;const Dt=Te.viewport;if(Te.viewport!==void 0&&(Te.viewport=void 0),R.setupLightsView(Te),Fe===!0&&vt.setGlobalState(B.clippingPlanes,Te),Ua(J,Pe,Te),he.updateMultisampleRenderTarget(ct),he.updateRenderTargetMipmap(ct),ft.has("WEBGL_multisampled_render_to_texture")===!1){let Xt=!1;for(let Un=0,sr=ge.length;Un0),Dt=!!Pe.morphAttributes.position,Xt=!!Pe.morphAttributes.normal,Un=!!Pe.morphAttributes.color;let sr=Wo;Te.toneMapped&&(W===null||W.isXRRenderTarget===!0)&&(sr=B.toneMapping);const Qn=Pe.morphAttributes.position||Pe.morphAttributes.normal||Pe.morphAttributes.color,rn=Qn!==void 0?Qn.length:0,gt=H.get(Te),Bn=R.state.lights;if(Fe===!0&&(Xe===!0||J!==Q)){const yi=J===Q&&Te.id===ee;vt.setState(Te,J,yi)}let Jt=!1;Te.version===gt.__version?(gt.needsLights&>.lightsStateVersion!==Bn.state.version||gt.outputColorSpace!==rt||xe.isBatchedMesh&>.batching===!1||!xe.isBatchedMesh&>.batching===!0||xe.isBatchedMesh&>.batchingColor===!0&&xe.colorTexture===null||xe.isBatchedMesh&>.batchingColor===!1&&xe.colorTexture!==null||xe.isInstancedMesh&>.instancing===!1||!xe.isInstancedMesh&>.instancing===!0||xe.isSkinnedMesh&>.skinning===!1||!xe.isSkinnedMesh&>.skinning===!0||xe.isInstancedMesh&>.instancingColor===!0&&xe.instanceColor===null||xe.isInstancedMesh&>.instancingColor===!1&&xe.instanceColor!==null||xe.isInstancedMesh&>.instancingMorph===!0&&xe.morphTexture===null||xe.isInstancedMesh&>.instancingMorph===!1&&xe.morphTexture!==null||gt.envMap!==Ct||Te.fog===!0&>.fog!==ct||gt.numClippingPlanes!==void 0&&(gt.numClippingPlanes!==vt.numPlanes||gt.numIntersection!==vt.numIntersection)||gt.vertexAlphas!==Rt||gt.vertexTangents!==Ht||gt.morphTargets!==Dt||gt.morphNormals!==Xt||gt.morphColors!==Un||gt.toneMapping!==sr||gt.morphTargetsCount!==rn)&&(Jt=!0):(Jt=!0,gt.__version=Te.version);let Jr=gt.currentProgram;Jt===!0&&(Jr=za(Te,ge,xe));let Us=!1,hr=!1,ea=!1;const Wn=Jr.getUniforms(),ci=gt.uniforms;if(Ze.useProgram(Jr.program)&&(Us=!0,hr=!0,ea=!0),Te.id!==ee&&(ee=Te.id,hr=!0),Us||Q!==J){Ze.buffers.depth.getReversed()&&J.reversedDepth!==!0&&(J._reversedDepth=!0,J.updateProjectionMatrix()),Wn.setValue(re,"projectionMatrix",J.projectionMatrix),Wn.setValue(re,"viewMatrix",J.matrixWorldInverse);const xi=Wn.map.cameraPosition;xi!==void 0&&xi.setValue(re,ot.setFromMatrixPosition(J.matrixWorld)),Et.logarithmicDepthBuffer&&Wn.setValue(re,"logDepthBufFC",2/(Math.log(J.far+1)/Math.LN2)),(Te.isMeshPhongMaterial||Te.isMeshToonMaterial||Te.isMeshLambertMaterial||Te.isMeshBasicMaterial||Te.isMeshStandardMaterial||Te.isShaderMaterial)&&Wn.setValue(re,"isOrthographic",J.isOrthographicCamera===!0),Q!==J&&(Q=J,hr=!0,ea=!0)}if(gt.needsLights&&(Bn.state.directionalShadowMap.length>0&&Wn.setValue(re,"directionalShadowMap",Bn.state.directionalShadowMap,he),Bn.state.spotShadowMap.length>0&&Wn.setValue(re,"spotShadowMap",Bn.state.spotShadowMap,he),Bn.state.pointShadowMap.length>0&&Wn.setValue(re,"pointShadowMap",Bn.state.pointShadowMap,he)),xe.isSkinnedMesh){Wn.setOptional(re,xe,"bindMatrix"),Wn.setOptional(re,xe,"bindMatrixInverse");const yi=xe.skeleton;yi&&(yi.boneTexture===null&&yi.computeBoneTexture(),Wn.setValue(re,"boneTexture",yi.boneTexture,he))}xe.isBatchedMesh&&(Wn.setOptional(re,xe,"batchingTexture"),Wn.setValue(re,"batchingTexture",xe._matricesTexture,he),Wn.setOptional(re,xe,"batchingIdTexture"),Wn.setValue(re,"batchingIdTexture",xe._indirectTexture,he),Wn.setOptional(re,xe,"batchingColorTexture"),xe._colorsTexture!==null&&Wn.setValue(re,"batchingColorTexture",xe._colorsTexture,he));const Zr=Pe.morphAttributes;if((Zr.position!==void 0||Zr.normal!==void 0||Zr.color!==void 0)&&dt.update(xe,Pe,Jr),(hr||gt.receiveShadow!==xe.receiveShadow)&&(gt.receiveShadow=xe.receiveShadow,Wn.setValue(re,"receiveShadow",xe.receiveShadow)),Te.isMeshGouraudMaterial&&Te.envMap!==null&&(ci.envMap.value=Ct,ci.flipEnvMap.value=Ct.isCubeTexture&&Ct.isRenderTargetTexture===!1?-1:1),Te.isMeshStandardMaterial&&Te.envMap===null&&ge.environment!==null&&(ci.envMapIntensity.value=ge.environmentIntensity),ci.dfgLUT!==void 0&&(ci.dfgLUT.value=L3e()),hr&&(Wn.setValue(re,"toneMappingExposure",B.toneMappingExposure),gt.needsLights&&tl(ci,ea),ct&&Te.fog===!0&&Gt.refreshFogUniforms(ci,ct),Gt.refreshMaterialUniforms(ci,Te,ue,ae,R.state.transmissionRenderTarget[J.id]),jA.upload(re,Xl(gt),ci,he)),Te.isShaderMaterial&&Te.uniformsNeedUpdate===!0&&(jA.upload(re,Xl(gt),ci,he),Te.uniformsNeedUpdate=!1),Te.isSpriteMaterial&&Wn.setValue(re,"center",xe.center),Wn.setValue(re,"modelViewMatrix",xe.modelViewMatrix),Wn.setValue(re,"normalMatrix",xe.normalMatrix),Wn.setValue(re,"modelMatrix",xe.matrixWorld),Te.isShaderMaterial||Te.isRawShaderMaterial){const yi=Te.uniformsGroups;for(let xi=0,tu=yi.length;xi0&&he.useMultisampledRTT(J)===!1?Te=H.get(J).__webglMultisampledFramebuffer:Array.isArray(Rt)?Te=Rt[Pe]:Te=Rt,V.copy(J.viewport),$.copy(J.scissor),Y=J.scissorTest}else V.copy(me).multiplyScalar(ue).floor(),$.copy(ve).multiplyScalar(ue).floor(),Y=We;if(Pe!==0&&(Te=rl),Ze.bindFramebuffer(re.FRAMEBUFFER,Te)&&Ze.drawBuffers(J,Te),Ze.viewport(V),Ze.scissor($),Ze.setScissorTest(Y),xe){const rt=H.get(J.texture);re.framebufferTexture2D(re.FRAMEBUFFER,re.COLOR_ATTACHMENT0,re.TEXTURE_CUBE_MAP_POSITIVE_X+ge,rt.__webglTexture,Pe)}else if(ct){const rt=ge;for(let Ct=0;Ct=0&&ge<=J.width-Te&&Pe>=0&&Pe<=J.height-xe&&(J.textures.length>1&&re.readBuffer(re.COLOR_ATTACHMENT0+rt),re.readPixels(ge,Pe,Te,xe,et.convert(Ht),et.convert(Dt),ct))}finally{const Rt=W!==null?H.get(W).__webglFramebuffer:null;Ze.bindFramebuffer(re.FRAMEBUFFER,Rt)}}},this.readRenderTargetPixelsAsync=async function(J,ge,Pe,Te,xe,ct,wt,rt=0){if(!(J&&J.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Ct=H.get(J).__webglFramebuffer;if(J.isWebGLCubeRenderTarget&&wt!==void 0&&(Ct=Ct[wt]),Ct)if(ge>=0&&ge<=J.width-Te&&Pe>=0&&Pe<=J.height-xe){Ze.bindFramebuffer(re.FRAMEBUFFER,Ct);const Rt=J.textures[rt],Ht=Rt.format,Dt=Rt.type;if(!Et.textureFormatReadable(Ht))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Et.textureTypeReadable(Dt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const Xt=re.createBuffer();re.bindBuffer(re.PIXEL_PACK_BUFFER,Xt),re.bufferData(re.PIXEL_PACK_BUFFER,ct.byteLength,re.STREAM_READ),J.textures.length>1&&re.readBuffer(re.COLOR_ATTACHMENT0+rt),re.readPixels(ge,Pe,Te,xe,et.convert(Ht),et.convert(Dt),0);const Un=W!==null?H.get(W).__webglFramebuffer:null;Ze.bindFramebuffer(re.FRAMEBUFFER,Un);const sr=re.fenceSync(re.SYNC_GPU_COMMANDS_COMPLETE,0);return re.flush(),await Xwe(re,sr,4),re.bindBuffer(re.PIXEL_PACK_BUFFER,Xt),re.getBufferSubData(re.PIXEL_PACK_BUFFER,0,ct),re.deleteBuffer(Xt),re.deleteSync(sr),ct}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(J,ge=null,Pe=0){const Te=Math.pow(2,-Pe),xe=Math.floor(J.image.width*Te),ct=Math.floor(J.image.height*Te),wt=ge!==null?ge.x:0,rt=ge!==null?ge.y:0;he.setTexture2D(J,0),re.copyTexSubImage2D(re.TEXTURE_2D,Pe,0,0,wt,rt,xe,ct),Ze.unbindTexture()};const Kl=re.createFramebuffer(),so=re.createFramebuffer();this.copyTextureToTexture=function(J,ge,Pe=null,Te=null,xe=0,ct=null){ct===null&&(xe!==0?(Iv("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),ct=xe,xe=0):ct=0);let wt,rt,Ct,Rt,Ht,Dt,Xt,Un,sr;const Qn=J.isCompressedTexture?J.mipmaps[ct]:J.image;if(Pe!==null)wt=Pe.max.x-Pe.min.x,rt=Pe.max.y-Pe.min.y,Ct=Pe.isBox3?Pe.max.z-Pe.min.z:1,Rt=Pe.min.x,Ht=Pe.min.y,Dt=Pe.isBox3?Pe.min.z:0;else{const Zr=Math.pow(2,-xe);wt=Math.floor(Qn.width*Zr),rt=Math.floor(Qn.height*Zr),J.isDataArrayTexture?Ct=Qn.depth:J.isData3DTexture?Ct=Math.floor(Qn.depth*Zr):Ct=1,Rt=0,Ht=0,Dt=0}Te!==null?(Xt=Te.x,Un=Te.y,sr=Te.z):(Xt=0,Un=0,sr=0);const rn=et.convert(ge.format),gt=et.convert(ge.type);let Bn;ge.isData3DTexture?(he.setTexture3D(ge,0),Bn=re.TEXTURE_3D):ge.isDataArrayTexture||ge.isCompressedArrayTexture?(he.setTexture2DArray(ge,0),Bn=re.TEXTURE_2D_ARRAY):(he.setTexture2D(ge,0),Bn=re.TEXTURE_2D),re.pixelStorei(re.UNPACK_FLIP_Y_WEBGL,ge.flipY),re.pixelStorei(re.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ge.premultiplyAlpha),re.pixelStorei(re.UNPACK_ALIGNMENT,ge.unpackAlignment);const Jt=re.getParameter(re.UNPACK_ROW_LENGTH),Jr=re.getParameter(re.UNPACK_IMAGE_HEIGHT),Us=re.getParameter(re.UNPACK_SKIP_PIXELS),hr=re.getParameter(re.UNPACK_SKIP_ROWS),ea=re.getParameter(re.UNPACK_SKIP_IMAGES);re.pixelStorei(re.UNPACK_ROW_LENGTH,Qn.width),re.pixelStorei(re.UNPACK_IMAGE_HEIGHT,Qn.height),re.pixelStorei(re.UNPACK_SKIP_PIXELS,Rt),re.pixelStorei(re.UNPACK_SKIP_ROWS,Ht),re.pixelStorei(re.UNPACK_SKIP_IMAGES,Dt);const Wn=J.isDataArrayTexture||J.isData3DTexture,ci=ge.isDataArrayTexture||ge.isData3DTexture;if(J.isDepthTexture){const Zr=H.get(J),yi=H.get(ge),xi=H.get(Zr.__renderTarget),tu=H.get(yi.__renderTarget);Ze.bindFramebuffer(re.READ_FRAMEBUFFER,xi.__webglFramebuffer),Ze.bindFramebuffer(re.DRAW_FRAMEBUFFER,tu.__webglFramebuffer);for(let ds=0;dst;function V3e(t,e=H3e,n){const r=G3e(t.subscribe,t.getState,t.getInitialState,e,n);return fe.useDebugValue(r),r}const IH=(t,e)=>{const n=yW(t),r=(i,a=e)=>V3e(n,i,a);return Object.assign(r,n),r},W3e=((t,e)=>t?IH(t,e):IH),q3e=t=>typeof t=="object"&&typeof t.then=="function",pp=[];function aJ(t,e,n=(r,i)=>r===i){if(t===e)return!0;if(!t||!e)return!1;const r=t.length;if(e.length!==r)return!1;for(let i=0;i0&&(a.timeout&&clearTimeout(a.timeout),a.timeout=setTimeout(a.remove,r.lifespan)),a.response;if(!n)throw a.promise}const i={keys:e,equal:r.equal,remove:()=>{const a=pp.indexOf(i);a!==-1&&pp.splice(a,1)},promise:(q3e(t)?t:t(...e)).then(a=>{i.response=a,r.lifespan&&r.lifespan>0&&(i.timeout=setTimeout(i.remove,r.lifespan))}).catch(a=>i.error=a)};if(pp.push(i),!n)throw i.promise}const $3e=(t,e,n)=>sJ(t,e,!1,n),X3e=(t,e,n)=>{sJ(t,e,!0,n)},K3e=t=>{if(t===void 0||t.length===0)pp.splice(0,pp.length);else{const e=pp.find(n=>aJ(t,n.keys,n.equal));e&&e.remove()}};var mB=RV();const Y3e=ar(mB);function Sk(t,e,n){if(!t)return;if(n(t)===!0)return t;let r=e?t.return:t.child;for(;r;){const i=Sk(r,e,n);if(i)return i;r=e?null:r.sibling}}function oJ(t){try{return Object.defineProperties(t,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return t}}const Ak=oJ(j.createContext(null));class lJ extends j.Component{render(){return j.createElement(Ak.Provider,{value:this._reactInternals},this.props.children)}}function cJ(){const t=j.useContext(Ak);if(t===null)throw new Error("its-fine: useFiber must be called within a !");const e=j.useId();return j.useMemo(()=>{for(const n of[t,t?.alternate]){if(!n)continue;const r=Sk(n,!1,i=>{let a=i.memoizedState;for(;a;){if(a.memoizedState===e)return!0;a=a.next}});if(r)return r}},[t,e])}const J3e=Symbol.for("react.context"),Z3e=t=>t!==null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===J3e;function Q3e(){const t=cJ(),[e]=j.useState(()=>new Map);e.clear();let n=t;for(;n;){const r=n.type;Z3e(r)&&r!==Ak&&!e.has(r)&&e.set(r,j.use(oJ(r))),n=n.return}return e}function eDe(){const t=Q3e();return j.useMemo(()=>Array.from(t.keys()).reduce((e,n)=>r=>j.createElement(e,null,j.createElement(n.Provider,{...r,value:t.get(n)})),e=>j.createElement(lJ,{...e})),[t])}function uJ(t){let e=t.root;for(;e.getState().previousRoot;)e=e.getState().previousRoot;return e}const fJ=t=>t&&t.isOrthographicCamera,tDe=t=>t&&t.hasOwnProperty("current"),nDe=t=>t!=null&&(typeof t=="string"||typeof t=="number"||t.isColor),v1=((t,e)=>typeof window<"u"&&(((t=window.document)==null?void 0:t.createElement)||((e=window.navigator)==null?void 0:e.product)==="ReactNative"))()?j.useLayoutEffect:j.useEffect;function dJ(t){const e=j.useRef(t);return v1(()=>{e.current=t},[t]),e}function rDe(){const t=cJ(),e=eDe();return j.useMemo(()=>({children:n})=>{const i=!!Sk(t,!0,a=>a.type===j.StrictMode)?j.StrictMode:j.Fragment;return M.jsx(i,{children:M.jsx(e,{children:n})})},[t,e])}function iDe({set:t}){return v1(()=>(t(new Promise(()=>null)),()=>t(!1)),[t]),null}const aDe=(t=>(t=class extends j.Component{constructor(...n){super(...n),this.state={error:!1}}componentDidCatch(n){this.props.set(n)}render(){return this.state.error?null:this.props.children}},t.getDerivedStateFromError=()=>({error:!0}),t))();function hJ(t){var e;const n=typeof window<"u"?(e=window.devicePixelRatio)!=null?e:2:1;return Array.isArray(t)?Math.min(Math.max(t[0],n),t[1]):t}function Tg(t){var e;return(e=t.__r3f)==null?void 0:e.root.getState()}const Ur={obj:t=>t===Object(t)&&!Ur.arr(t)&&typeof t!="function",fun:t=>typeof t=="function",str:t=>typeof t=="string",num:t=>typeof t=="number",boo:t=>typeof t=="boolean",und:t=>t===void 0,nul:t=>t===null,arr:t=>Array.isArray(t),equ(t,e,{arrays:n="shallow",objects:r="reference",strict:i=!0}={}){if(typeof t!=typeof e||!!t!=!!e)return!1;if(Ur.str(t)||Ur.num(t)||Ur.boo(t))return t===e;const a=Ur.obj(t);if(a&&r==="reference")return t===e;const s=Ur.arr(t);if(s&&n==="reference")return t===e;if((s||a)&&t===e)return!0;let o;for(o in t)if(!(o in e))return!1;if(a&&n==="shallow"&&r==="shallow"){for(o in i?e:t)if(!Ur.equ(t[o],e[o],{strict:i,objects:"reference"}))return!1}else for(o in i?e:t)if(t[o]!==e[o])return!1;if(Ur.und(o)){if(s&&t.length===0&&e.length===0||a&&Object.keys(t).length===0&&Object.keys(e).length===0)return!0;if(t!==e)return!1}return!0}};function sDe(t){const e={nodes:{},materials:{},meshes:{}};return t&&t.traverse(n=>{n.name&&(e.nodes[n.name]=n),n.material&&!e.materials[n.material.name]&&(e.materials[n.material.name]=n.material),n.isMesh&&!e.meshes[n.name]&&(e.meshes[n.name]=n)}),e}function oDe(t){t.type!=="Scene"&&(t.dispose==null||t.dispose());for(const e in t){const n=t[e];n?.type!=="Scene"&&(n==null||n.dispose==null||n.dispose())}}const pJ=["children","key","ref"];function lDe(t){const e={};for(const n in t)pJ.includes(n)||(e[n]=t[n]);return e}function XM(t,e,n,r){const i=t;let a=i?.__r3f;return a||(a={root:e,type:n,parent:null,children:[],props:lDe(r),object:i,eventCount:0,handlers:{},isHidden:!1},i&&(i.__r3f=a)),a}function jb(t,e){if(!e.includes("-"))return{root:t,key:e,target:t[e]};if(e in t)return{root:t,key:e,target:t[e]};let n=t;const r=e.split("-");for(const i of r){if(typeof n!="object"||n===null){if(n!==void 0){const a=r.slice(r.indexOf(i)).join("-");return{root:n,key:a,target:void 0}}return{root:t,key:e,target:void 0}}e=i,t=n,n=n[e]}return{root:t,key:e,target:n}}const BH=/-\d+$/;function KM(t,e){if(Ur.str(e.props.attach)){if(BH.test(e.props.attach)){const i=e.props.attach.replace(BH,""),{root:a,key:s}=jb(t.object,i);Array.isArray(a[s])||(a[s]=[])}const{root:n,key:r}=jb(t.object,e.props.attach);e.previousAttach=n[r],n[r]=e.object}else Ur.fun(e.props.attach)&&(e.previousAttach=e.props.attach(t.object,e.object))}function YM(t,e){if(Ur.str(e.props.attach)){const{root:n,key:r}=jb(t.object,e.props.attach),i=e.previousAttach;i===void 0?delete n[r]:n[r]=i}else e.previousAttach==null||e.previousAttach(t.object,e.object);delete e.previousAttach}const gB=[...pJ,"args","dispose","attach","object","onUpdate","dispose"],LH=new Map;function cDe(t){let e=LH.get(t.constructor);try{e||(e=new t.constructor,LH.set(t.constructor,e))}catch{}return e}function uDe(t,e){const n={};for(const r in e)if(!gB.includes(r)&&!Ur.equ(e[r],t.props[r])){n[r]=e[r];for(const i in e)i.startsWith(`${r}-`)&&(n[i]=e[i])}for(const r in t.props){if(gB.includes(r)||e.hasOwnProperty(r))continue;const{root:i,key:a}=jb(t.object,r);if(i.constructor&&i.constructor.length===0){const s=cDe(i);Ur.und(s)||(n[a]=s[a])}else n[a]=0}return n}const fDe=["map","emissiveMap","sheenColorMap","specularColorMap","envMap"],dDe=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function yd(t,e){var n;const r=t.__r3f,i=r&&uJ(r).getState(),a=r?.eventCount;for(const o in e){let c=e[o];if(gB.includes(o))continue;if(r&&dDe.test(o)){typeof c=="function"?r.handlers[o]=c:delete r.handlers[o],r.eventCount=Object.keys(r.handlers).length;continue}if(c===void 0)continue;let{root:u,key:h,target:p}=jb(t,o);if(p===void 0&&(typeof u!="object"||u===null))throw Error(`R3F: Cannot set "${o}". Ensure it is an object before setting "${h}".`);if(p instanceof Lv&&c instanceof Lv)p.mask=c.mask;else if(p instanceof bt&&nDe(c))p.set(c);else if(p!==null&&typeof p=="object"&&typeof p.set=="function"&&typeof p.copy=="function"&&c!=null&&c.constructor&&p.constructor===c.constructor)p.copy(c);else if(p!==null&&typeof p=="object"&&typeof p.set=="function"&&Array.isArray(c))typeof p.fromArray=="function"?p.fromArray(c):p.set(...c);else if(p!==null&&typeof p=="object"&&typeof p.set=="function"&&typeof c=="number")typeof p.setScalar=="function"?p.setScalar(c):p.set(c);else{var s;u[h]=c,i&&!i.linear&&fDe.includes(h)&&(s=u[h])!=null&&s.isTexture&&u[h].format===Ba&&u[h].type===ts&&(u[h].colorSpace=Pa)}}if(r!=null&&r.parent&&i!=null&&i.internal&&(n=r.object)!=null&&n.isObject3D&&a!==r.eventCount){const o=r.object,c=i.internal.interaction.indexOf(o);c>-1&&i.internal.interaction.splice(c,1),r.eventCount&&o.raycast!==null&&i.internal.interaction.push(o)}return r&&r.props.attach===void 0&&(r.object.isBufferGeometry?r.props.attach="geometry":r.object.isMaterial&&(r.props.attach="material")),r&&dy(r),t}function dy(t){var e;if(!t.parent)return;t.props.onUpdate==null||t.props.onUpdate(t.object);const n=(e=t.root)==null||e.getState==null?void 0:e.getState();n&&n.internal.frames===0&&n.invalidate()}function hDe(t,e){t.manual||(fJ(t)?(t.left=e.width/-2,t.right=e.width/2,t.top=e.height/2,t.bottom=e.height/-2):t.aspect=e.width/e.height,t.updateProjectionMatrix())}const es=t=>t?.isObject3D;function xA(t){return(t.eventObject||t.object).uuid+"/"+t.index+t.instanceId}function mJ(t,e,n,r){const i=n.get(e);i&&(n.delete(e),n.size===0&&(t.delete(r),i.target.releasePointerCapture(r)))}function pDe(t,e){const{internal:n}=t.getState();n.interaction=n.interaction.filter(r=>r!==e),n.initialHits=n.initialHits.filter(r=>r!==e),n.hovered.forEach((r,i)=>{(r.eventObject===e||r.object===e)&&n.hovered.delete(i)}),n.capturedMap.forEach((r,i)=>{mJ(n.capturedMap,e,r,i)})}function mDe(t){function e(c){const{internal:u}=t.getState(),h=c.offsetX-u.initialClick[0],p=c.offsetY-u.initialClick[1];return Math.round(Math.sqrt(h*h+p*p))}function n(c){return c.filter(u=>["Move","Over","Enter","Out","Leave"].some(h=>{var p;return(p=u.__r3f)==null?void 0:p.handlers["onPointer"+h]}))}function r(c,u){const h=t.getState(),p=new Set,v=[],y=u?u(h.internal.interaction):h.internal.interaction;for(let S=0;S{const T=Tg(S.object),P=Tg(E.object);return!T||!P?S.distance-E.distance:P.events.priority-T.events.priority||S.distance-E.distance}).filter(S=>{const E=xA(S);return p.has(E)?!1:(p.add(E),!0)});h.events.filter&&(w=h.events.filter(w,h));for(const S of w){let E=S.object;for(;E;){var _;(_=E.__r3f)!=null&&_.eventCount&&v.push({...S,eventObject:E}),E=E.parent}}if("pointerId"in c&&h.internal.capturedMap.has(c.pointerId))for(let S of h.internal.capturedMap.get(c.pointerId).values())p.has(xA(S.intersection))||v.push(S.intersection);return v}function i(c,u,h,p){if(c.length){const v={stopped:!1};for(const y of c){let b=Tg(y.object);if(b||y.object.traverseAncestors(w=>{const _=Tg(w);if(_)return b=_,!1}),b){const{raycaster:w,pointer:_,camera:S,internal:E}=b,T=new ne(_.x,_.y,0).unproject(S),P=B=>{var U,z;return(U=(z=E.capturedMap.get(B))==null?void 0:z.has(y.eventObject))!=null?U:!1},R=B=>{const U={intersection:y,target:u.target};E.capturedMap.has(B)?E.capturedMap.get(B).set(y.eventObject,U):E.capturedMap.set(B,new Map([[y.eventObject,U]])),u.target.setPointerCapture(B)},D=B=>{const U=E.capturedMap.get(B);U&&mJ(E.capturedMap,y.eventObject,U,B)};let I={};for(let B in u){let U=u[B];typeof U!="function"&&(I[B]=U)}let k={...y,...I,pointer:_,intersections:c,stopped:v.stopped,delta:h,unprojectedPoint:T,ray:w.ray,camera:S,stopPropagation(){const B="pointerId"in u&&E.capturedMap.get(u.pointerId);if((!B||B.has(y.eventObject))&&(k.stopped=v.stopped=!0,E.hovered.size&&Array.from(E.hovered.values()).find(U=>U.eventObject===y.eventObject))){const U=c.slice(0,c.indexOf(y));a([...U,y])}},target:{hasPointerCapture:P,setPointerCapture:R,releasePointerCapture:D},currentTarget:{hasPointerCapture:P,setPointerCapture:R,releasePointerCapture:D},nativeEvent:u};if(p(k),v.stopped===!0)break}}}return c}function a(c){const{internal:u}=t.getState();for(const h of u.hovered.values())if(!c.length||!c.find(p=>p.object===h.object&&p.index===h.index&&p.instanceId===h.instanceId)){const v=h.eventObject.__r3f;if(u.hovered.delete(xA(h)),v!=null&&v.eventCount){const y=v.handlers,b={...h,intersections:c};y.onPointerOut==null||y.onPointerOut(b),y.onPointerLeave==null||y.onPointerLeave(b)}}}function s(c,u){for(let h=0;ha([]);case"onLostPointerCapture":return u=>{const{internal:h}=t.getState();"pointerId"in u&&h.capturedMap.has(u.pointerId)&&requestAnimationFrame(()=>{h.capturedMap.has(u.pointerId)&&(h.capturedMap.delete(u.pointerId),a([]))})}}return function(h){const{onPointerMissed:p,internal:v}=t.getState();v.lastEvent.current=h;const y=c==="onPointerMove",b=c==="onClick"||c==="onContextMenu"||c==="onDoubleClick",_=r(h,y?n:void 0),S=b?e(h):0;c==="onPointerDown"&&(v.initialClick=[h.offsetX,h.offsetY],v.initialHits=_.map(T=>T.eventObject)),b&&!_.length&&S<=2&&(s(h,v.interaction),p&&p(h)),y&&a(_);function E(T){const P=T.eventObject,R=P.__r3f;if(!(R!=null&&R.eventCount))return;const D=R.handlers;if(y){if(D.onPointerOver||D.onPointerEnter||D.onPointerOut||D.onPointerLeave){const I=xA(T),k=v.hovered.get(I);k?k.stopped&&T.stopPropagation():(v.hovered.set(I,T),D.onPointerOver==null||D.onPointerOver(T),D.onPointerEnter==null||D.onPointerEnter(T))}D.onPointerMove==null||D.onPointerMove(T)}else{const I=D[c];I?(!b||v.initialHits.includes(P))&&(s(h,v.interaction.filter(k=>!v.initialHits.includes(k))),I(T)):b&&v.initialHits.includes(P)&&s(h,v.interaction.filter(k=>!v.initialHits.includes(k)))}}i(_,h,S,E)}}return{handlePointer:o}}const kH=t=>!!(t!=null&&t.render),gJ=j.createContext(null),gDe=(t,e)=>{const n=W3e((o,c)=>{const u=new ne,h=new ne,p=new ne;function v(S=c().camera,E=h,T=c().size){const{width:P,height:R,top:D,left:I}=T,k=P/R;E.isVector3?p.copy(E):p.set(...E);const B=S.getWorldPosition(u).distanceTo(p);if(fJ(S))return{width:P/S.zoom,height:R/S.zoom,top:D,left:I,factor:1,distance:B,aspect:k};{const U=S.fov*Math.PI/180,z=2*Math.tan(U/2)*B,q=z*(P/R);return{width:q,height:z,top:D,left:I,factor:P/q,distance:B,aspect:k}}}let y;const b=S=>o(E=>({performance:{...E.performance,current:S}})),w=new Ve;return{set:o,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(S=1)=>t(c(),S),advance:(S,E)=>e(S,E,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new vk,pointer:w,mouse:w,frameloop:"always",onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=>{const S=c();y&&clearTimeout(y),S.performance.current!==S.performance.min&&b(S.performance.min),y=setTimeout(()=>b(c().performance.max),S.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:v},setEvents:S=>o(E=>({...E,events:{...E.events,...S}})),setSize:(S,E,T=0,P=0)=>{const R=c().camera,D={width:S,height:E,top:T,left:P};o(I=>({size:D,viewport:{...I.viewport,...v(R,h,D)}}))},setDpr:S=>o(E=>{const T=hJ(S);return{viewport:{...E.viewport,dpr:T,initialDpr:E.viewport.initialDpr||T}}}),setFrameloop:(S="always")=>{const E=c().clock;E.stop(),E.elapsedTime=0,S!=="never"&&(E.start(),E.elapsedTime=0),o(()=>({frameloop:S}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:j.createRef(),active:!1,frames:0,priority:0,subscribe:(S,E,T)=>{const P=c().internal;return P.priority=P.priority+(E>0?1:0),P.subscribers.push({ref:S,priority:E,store:T}),P.subscribers=P.subscribers.sort((R,D)=>R.priority-D.priority),()=>{const R=c().internal;R!=null&&R.subscribers&&(R.priority=R.priority-(E>0?1:0),R.subscribers=R.subscribers.filter(D=>D.ref!==S))}}}}}),r=n.getState();let i=r.size,a=r.viewport.dpr,s=r.camera;return n.subscribe(()=>{const{camera:o,size:c,viewport:u,gl:h,set:p}=n.getState();if(c.width!==i.width||c.height!==i.height||u.dpr!==a){i=c,a=u.dpr,hDe(o,c),u.dpr>0&&h.setPixelRatio(u.dpr);const v=typeof HTMLCanvasElement<"u"&&h.domElement instanceof HTMLCanvasElement;h.setSize(c.width,c.height,v)}o!==s&&(s=o,p(v=>({viewport:{...v.viewport,...v.viewport.getCurrentViewport(o)}})))}),n.subscribe(o=>t(o)),n};function vJ(){const t=j.useContext(gJ);if(!t)throw new Error("R3F: Hooks can only be used within the Canvas component!");return t}function Cl(t=n=>n,e){return vJ()(t,e)}function wk(t,e=0){const n=vJ(),r=n.getState().internal.subscribe,i=dJ(t);return v1(()=>r(i,e,n),[e,r,n]),null}const FH=new WeakMap,vDe=t=>{var e;return typeof t=="function"&&(t==null||(e=t.prototype)==null?void 0:e.constructor)===t};function yJ(t,e){return function(n,...r){let i;return vDe(n)?(i=FH.get(n),i||(i=new n,FH.set(n,i))):i=n,t&&t(i),Promise.all(r.map(a=>new Promise((s,o)=>i.load(a,c=>{es(c?.scene)&&Object.assign(c,sDe(c.scene)),s(c)},e,c=>o(new Error(`Could not load ${a}: ${c?.message}`))))))}}function y1(t,e,n,r){const i=Array.isArray(e)?e:[e],a=$3e(yJ(n,r),[t,...i],{equal:Ur.equ});return Array.isArray(e)?a:a[0]}y1.preload=function(t,e,n){const r=Array.isArray(e)?e:[e];return X3e(yJ(n),[t,...r])};y1.clear=function(t,e){const n=Array.isArray(e)?e:[e];return K3e([t,...n])};const yDe=1,xDe=8,bDe=32,_De=2;var SDe={version:"9.5.0"};function ADe(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var UH={exports:{}},jH={exports:{}},zH;function wDe(){return zH||(zH=1,(function(t){t.exports=function(e){function n(d,m,A,C){return new jy(d,m,A,C)}function r(){}function i(d){var m="https://react.dev/errors/"+d;if(1bu||(d.current=km[bu],km[bu]=null,bu--)}function b(d,m){bu++,km[bu]=d.current,d.current=m}function w(d){return d>>>=0,d===0?32:31-(Fm(d)/G_|0)|0}function _(d){var m=d&42;if(m!==0)return m;switch(d&-d){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return d&261888;case 262144:case 524288:case 1048576:case 2097152:return d&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return d&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return d}}function S(d,m,A){var C=d.pendingLanes;if(C===0)return 0;var L=0,F=d.suspendedLanes,K=d.pingedLanes;d=d.warmLanes;var ce=C&134217727;return ce!==0?(C=ce&~F,C!==0?L=_(C):(K&=ce,K!==0?L=_(K):A||(A=ce&~d,A!==0&&(L=_(A))))):(ce=C&~F,ce!==0?L=_(ce):K!==0?L=_(K):A||(A=C&~d,A!==0&&(L=_(A)))),L===0?0:m!==0&&m!==L&&(m&F)===0&&(F=L&-L,A=m&-m,F>=A||F===32&&(A&4194048)!==0)?m:L}function E(d,m){return(d.pendingLanes&~(d.suspendedLanes&~d.pingedLanes)&m)===0}function T(d,m){switch(d){case 1:case 2:case 4:case 8:case 64:return m+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return m+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function P(){var d=zf;return zf<<=1,(zf&62914560)===0&&(zf=4194304),d}function R(d){for(var m=[],A=0;31>A;A++)m.push(d);return m}function D(d,m){d.pendingLanes|=m,m!==268435456&&(d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0)}function I(d,m,A,C,L,F){var K=d.pendingLanes;d.pendingLanes=A,d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0,d.expiredLanes&=A,d.entangledLanes&=A,d.errorRecoveryDisabledLanes&=A,d.shellSuspendCounter=0;var ce=d.entanglements,Le=d.expirationTimes,Je=d.hiddenUpdates;for(A=K&~A;0)":-1L||Le[C]!==Je[L]){var ht=` -`+Le[C].replace(" at new "," at ");return d.displayName&&ht.includes("")&&(ht=ht.replace("",d.displayName)),ht}while(1<=C&&0<=L);break}}}finally{_h=!1,Error.prepareStackTrace=A}return(A=d?d.displayName||d.name:"")?Q(A):""}function $(d,m){switch(d.tag){case 26:case 27:case 5:return Q(d.type);case 16:return Q("Lazy");case 13:return d.child!==m&&m!==null?Q("Suspense Fallback"):Q("Suspense");case 19:return Q("SuspenseList");case 0:case 15:return V(d.type,!1);case 11:return V(d.type.render,!1);case 1:return V(d.type,!0);case 31:return Q("Activity");default:return""}}function Y(d){try{var m="",A=null;do m+=$(d,A),A=d,d=d.return;while(d);return m}catch(C){return` -Error generating stack: `+C.message+` -`+C.stack}}function ie(d,m){if(typeof d=="object"&&d!==null){var A=E0.get(d);return A!==void 0?A:(m={value:d,source:m,stack:Y(m)},E0.set(d,m),m)}return{value:d,source:m,stack:Y(m)}}function de(d,m){ml[Ao++]=Sh,ml[Ao++]=tr,tr=d,Sh=m}function X(d,m,A){Ss[$a++]=Di,Ss[$a++]=zs,Ss[$a++]=As,As=d;var C=Di;d=zs;var L=32-_a(C)-1;C&=~(1<>=K,L-=K,Di=1<<32-_a(m)+L|A<Ln?(Mi=Kt,Kt=null):Mi=Kt.sibling;var Gn=Mt(Ce,Kt,De[Ln],ut);if(Gn===null){Kt===null&&(Kt=Mi);break}d&&Kt&&Gn.alternate===null&&m(Ce,Kt),be=F(Gn,be,Ln),Nr===null?$t=Gn:Nr.sibling=Gn,Nr=Gn,Kt=Mi}if(Ln===De.length)return A(Ce,Kt),Mn&&de(Ce,Ln),$t;if(Kt===null){for(;LnLn?(Mi=Kt,Kt=null):Mi=Kt.sibling;var Os=Mt(Ce,Kt,Gn.value,ut);if(Os===null){Kt===null&&(Kt=Mi);break}d&&Kt&&Os.alternate===null&&m(Ce,Kt),be=F(Os,be,Ln),Nr===null?$t=Os:Nr.sibling=Os,Nr=Os,Kt=Mi}if(Gn.done)return A(Ce,Kt),Mn&&de(Ce,Ln),$t;if(Kt===null){for(;!Gn.done;Ln++,Gn=De.next())Gn=nt(Ce,Gn.value,ut),Gn!==null&&(be=F(Gn,be,Ln),Nr===null?$t=Gn:Nr.sibling=Gn,Nr=Gn);return Mn&&de(Ce,Ln),$t}for(Kt=C(Kt);!Gn.done;Ln++,Gn=De.next())Gn=sn(Kt,Ce,Ln,Gn.value,ut),Gn!==null&&(d&&Gn.alternate!==null&&Kt.delete(Gn.key===null?Ln:Gn.key),be=F(Gn,be,Ln),Nr===null?$t=Gn:Nr.sibling=Gn,Nr=Gn);return d&&Kt.forEach(function(qT){return m(Ce,qT)}),Mn&&de(Ce,Ln),$t}function Ac(Ce,be,De,ut){if(typeof De=="object"&&De!==null&&De.type===hu&&De.key===null&&(De=De.props.children),typeof De=="object"&&De!==null){switch(De.$$typeof){case bo:e:{for(var $t=De.key;be!==null;){if(be.key===$t){if($t=De.type,$t===hu){if(be.tag===7){A(Ce,be.sibling),ut=L(be,De.props.children),ut.return=Ce,Ce=ut;break e}}else if(be.elementType===$t||typeof $t=="object"&&$t!==null&&$t.$$typeof===ia&&un($t)===be.type){A(Ce,be.sibling),ut=L(be,De.props),Wl(ut,De),ut.return=Ce,Ce=ut;break e}A(Ce,be);break}else m(Ce,be);be=be.sibling}De.type===hu?(ut=ys(De.props.children,Ce.mode,ut,De.key),ut.return=Ce,Ce=ut):(ut=ul(De.type,De.key,De.props,null,Ce.mode,ut),Wl(ut,De),ut.return=Ce,Ce=ut)}return K(Ce);case du:e:{for($t=De.key;be!==null;){if(be.key===$t)if(be.tag===4&&be.stateNode.containerInfo===De.containerInfo&&be.stateNode.implementation===De.implementation){A(Ce,be.sibling),ut=L(be,De.children||[]),ut.return=Ce,Ce=ut;break e}else{A(Ce,be);break}else m(Ce,be);be=be.sibling}ut=Hy(De,Ce.mode,ut),ut.return=Ce,Ce=ut}return K(Ce);case ia:return De=un(De),Ac(Ce,be,De,ut)}if(cc(De))return Xr(Ce,be,De,ut);if(h(De)){if($t=h(De),typeof $t!="function")throw Error(i(150));return De=$t.call(De),Yf(Ce,be,De,ut)}if(typeof De.then=="function")return Ac(Ce,be,oi(De),ut);if(De.$$typeof===xs)return Ac(Ce,be,H(Ce,De),ut);ql(Ce,De)}return typeof De=="string"&&De!==""||typeof De=="number"||typeof De=="bigint"?(De=""+De,be!==null&&be.tag===6?(A(Ce,be.sibling),ut=L(be,De),ut.return=Ce,Ce=ut):(A(Ce,be),ut=zy(De,Ce.mode,ut),ut.return=Ce,Ce=ut),K(Ce)):A(Ce,be)}return function(Ce,be,De,ut){try{Au=0;var $t=Ac(Ce,be,De,ut);return mc=null,$t}catch(Kt){if(Kt===pi||Kt===Ts)throw Kt;var Nr=n(29,Kt,null,Ce.mode);return Nr.lanes=ut,Nr.return=Ce,Nr}}}function $l(){for(var d=Eo,m=wu=Eo=0;mF?F:8);var K=Vt.T,ce={};Vt.T=ce,tm(d,!1,m,A);try{var Le=L(),Je=Vt.S;if(Je!==null&&Je(ce,Le),Le!==null&&typeof Le=="object"&&typeof Le.then=="function"){var ht=it(Le,C);Jd(d,m,ht,yr(d))}else Jd(d,m,C,yr(d))}catch(nt){Jd(d,m,{then:function(){},status:"rejected",reason:nt},yr())}finally{wn(F),K!==null&&ce.types!==null&&(K.types=ce.types),Vt.T=K}}function O1(d){var m=d.memoizedState;if(m!==null)return m;m={memoizedState:vu,baseState:vu,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hr,lastRenderedState:vu},next:null};var A={};return m.next={memoizedState:A,baseState:A,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hr,lastRenderedState:A},next:null},d.memoizedState=m,d=d.alternate,d!==null&&(d.memoizedState=m),m}function _y(){return te(yu)}function em(){return gt().memoizedState}function P1(){return gt().memoizedState}function IT(d){for(var m=d.return;m!==null;){switch(m.tag){case 24:case 3:var A=yr();d=ja(A);var C=za(m,d,A);C!==null&&(Cr(C,m,A),Xl(C,m,A)),m={cache:Ne()},d.payload=m;return}m=m.return}}function BT(d,m,A){var C=yr();A={lane:C,revertLane:0,gesture:null,action:A,hasEagerState:!1,eagerState:null,next:null},nm(d)?N1(m,A):(A=Qc(d,m,A,C),A!==null&&(Cr(A,d,C),I1(A,m,C)))}function D1(d,m,A){var C=yr();Jd(d,m,A,C)}function Jd(d,m,A,C){var L={lane:C,revertLane:0,gesture:null,action:A,hasEagerState:!1,eagerState:null,next:null};if(nm(d))N1(m,L);else{var F=d.alternate;if(d.lanes===0&&(F===null||F.lanes===0)&&(F=m.lastRenderedReducer,F!==null))try{var K=m.lastRenderedState,ce=F(K,A);if(L.hasEagerState=!0,L.eagerState=ce,Wr(ce,K))return el(d,m,L,0),gn===null&&$l(),!1}catch{}if(A=Qc(d,m,L,C),A!==null)return Cr(A,d,C),I1(A,m,C),!0}return!1}function tm(d,m,A,C){if(C={lane:2,revertLane:Ae(),gesture:null,action:C,hasEagerState:!1,eagerState:null,next:null},nm(d)){if(m)throw Error(i(479))}else m=Qc(d,A,C,2),m!==null&&Cr(m,d,2)}function nm(d){var m=d.alternate;return d===ln||m!==null&&m===ln}function N1(d,m){fn=mn=!0;var A=d.pending;A===null?m.next=m:(m.next=A.next,A.next=m),d.pending=m}function I1(d,m,A){if((A&4194048)!==0){var C=m.lanes;C&=d.pendingLanes,A|=C,m.lanes=A,B(d,A)}}function Sy(d,m,A,C){m=d.memoizedState,A=A(C,m),A=A==null?m:Sm({},m,A),d.memoizedState=A,d.lanes===0&&(d.updateQueue.baseState=A)}function rm(d,m,A,C,L,F,K){return d=d.stateNode,typeof d.shouldComponentUpdate=="function"?d.shouldComponentUpdate(C,F,K):m.prototype&&m.prototype.isPureReactComponent?!He(A,C)||!He(L,F):!0}function B1(d,m,A,C){d=m.state,typeof m.componentWillReceiveProps=="function"&&m.componentWillReceiveProps(A,C),typeof m.UNSAFE_componentWillReceiveProps=="function"&&m.UNSAFE_componentWillReceiveProps(A,C),m.state!==d&&Mh.enqueueReplaceState(m,m.state,null)}function iu(d,m){var A=m;if("ref"in m){A={};for(var C in m)C!=="ref"&&(A[C]=m[C])}if(d=d.defaultProps){A===m&&(A=Sm({},A));for(var L in d)A[L]===void 0&&(A[L]=d[L])}return A}function im(d,m){try{var A=d.onUncaughtError;A(m.value,{componentStack:m.stack})}catch(C){setTimeout(function(){throw C})}}function Ay(d,m,A){try{var C=d.onCaughtError;C(A.value,{componentStack:A.stack,errorBoundary:m.tag===1?m.stateNode:null})}catch(L){setTimeout(function(){throw L})}}function wy(d,m,A){return A=ja(A),A.tag=3,A.payload={element:null},A.callback=function(){im(d,m)},A}function L1(d){return d=ja(d),d.tag=3,d}function k1(d,m,A,C){var L=A.type.getDerivedStateFromError;if(typeof L=="function"){var F=C.value;d.payload=function(){return L(F)},d.callback=function(){Ay(m,A,C)}}var K=A.stateNode;K!==null&&typeof K.componentDidCatch=="function"&&(d.callback=function(){Ay(m,A,C),typeof L!="function"&&(bl===null?bl=new Set([this]):bl.add(this));var ce=C.stack;this.componentDidCatch(C.value,{componentStack:ce!==null?ce:""})})}function LT(d,m,A,C,L){if(A.flags|=32768,C!==null&&typeof C=="object"&&typeof C.then=="function"){if(m=A.alternate,m!==null&&ft(m,A,L,!0),A=Aa.current,A!==null){switch(A.tag){case 31:case 13:return wa===null?Of():A.alternate===null&&Dr===0&&(Dr=3),A.flags&=-257,A.flags|=65536,A.lanes=L,C===Mo?A.flags|=16384:(m=A.updateQueue,m===null?A.updateQueue=new Set([C]):m.add(C),Nf(d,C,L)),!1;case 22:return A.flags|=65536,C===Mo?A.flags|=16384:(m=A.updateQueue,m===null?(m={transitions:null,markerInstances:null,retryQueue:new Set([C])},A.updateQueue=m):(A=m.retryQueue,A===null?m.retryQueue=new Set([C]):A.add(C)),Nf(d,C,L)),!1}throw Error(i(435,A.tag))}return Nf(d,C,L),Of(),!1}if(Mn)return m=Aa.current,m!==null?((m.flags&65536)===0&&(m.flags|=256),m.flags|=65536,m.lanes=L,C!==Wm&&(d=Error(i(422),{cause:C}),Ue(ie(d,A)))):(C!==Wm&&(m=Error(i(423),{cause:C}),Ue(ie(m,A))),d=d.current.alternate,d.flags|=65536,L&=-L,d.lanes|=L,C=ie(C,A),L=wy(d.stateNode,C,L),eu(d,L),Dr!==4&&(Dr=2)),!1;var F=Error(i(520),{cause:C});if(F=ie(F,A),Th===null?Th=[F]:Th.push(F),Dr!==4&&(Dr=2),m===null)return!0;C=ie(C,A),A=m;do{switch(A.tag){case 3:return A.flags|=65536,d=L&-L,A.lanes|=d,d=wy(A.stateNode,C,d),eu(A,d),!1;case 1:if(m=A.type,F=A.stateNode,(A.flags&128)===0&&(typeof m.getDerivedStateFromError=="function"||F!==null&&typeof F.componentDidCatch=="function"&&(bl===null||!bl.has(F))))return A.flags|=65536,L&=-L,A.lanes|=L,L=L1(L),k1(L,d,A,C),eu(A,L),!1}A=A.return}while(A!==null);return!1}function Pi(d,m,A,C){m.child=d===null?C0(m,null,A,C):Ii(m,d.child,A,C)}function F1(d,m,A,C,L){A=A.render;var F=m.ref;if("ref"in C){var K={};for(var ce in C)ce!=="ref"&&(K[ce]=C[ce])}else K=C;return Ze(m),C=Rt(d,m,A,K,F,L),ce=Un(),d!==null&&!pr?(sr(d,m,L),lo(d,m,L)):(Mn&&ce&&ae(m),m.flags|=1,Pi(d,m,C,L),m.child)}function U1(d,m,A,C,L){if(d===null){var F=A.type;return typeof F=="function"&&!cu(F)&&F.defaultProps===void 0&&A.compare===null?(m.tag=15,m.type=F,j1(d,m,F,C,L)):(d=ul(A.type,null,C,m,m.mode,L),d.ref=m.ref,d.return=m,m.child=d)}if(F=d.child,!Qd(d,L)){var K=F.memoizedProps;if(A=A.compare,A=A!==null?A:He,A(K,C)&&d.ref===m.ref)return lo(d,m,L)}return m.flags|=1,d=Wa(F,C),d.ref=m.ref,d.return=m,m.child=d}function j1(d,m,A,C,L){if(d!==null){var F=d.memoizedProps;if(He(F,C)&&d.ref===m.ref)if(pr=!1,m.pendingProps=C=F,Qd(d,L))(d.flags&131072)!==0&&(pr=!0);else return m.lanes=d.lanes,lo(d,m,L)}return sm(d,m,A,C,L)}function z1(d,m,A,C){var L=C.children,F=d!==null?d.memoizedState:null;if(d===null&&m.stateNode===null&&(m.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),C.mode==="hidden"){if((m.flags&128)!==0){if(F=F!==null?F.baseLanes|A:A,d!==null){for(C=m.child=d.child,L=0;C!==null;)L=L|C.lanes|C.childLanes,C=C.sibling;C=L&~F}else C=0,m.child=null;return bf(d,m,F,A,C)}if((A&536870912)!==0)m.memoizedState={baseLanes:0,cachePool:null},d!==null&&pt(m,F!==null?F.cachePool:null),F!==null?Kl(m,F):so(),Te(m);else return C=m.lanes=536870912,bf(d,m,F!==null?F.baseLanes|A:A,A,C)}else F!==null?(pt(m,F.cachePool),Kl(m,F),xe(),m.memoizedState=null):(d!==null&&pt(m,null),so(),xe());return Pi(d,m,L,A),m.child}function au(d,m){return d!==null&&d.tag===22||m.stateNode!==null||(m.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),m.sibling}function bf(d,m,A,C,L){var F=et();return F=F===null?null:{parent:Hr?_r._currentValue:_r._currentValue2,pool:F},m.memoizedState={baseLanes:A,cachePool:F},d!==null&&pt(m,null),so(),Te(m),d!==null&&ft(d,m,C,!0),m.childLanes=L,null}function am(d,m){return m=Zl({mode:m.mode,children:m.children},d.mode),m.ref=d.ref,d.child=m,m.return=d,m}function My(d,m,A){return Ii(m,d.child,null,A),d=am(m,m.pendingProps),d.flags|=2,ct(m),m.memoizedState=null,d}function G1(d,m,A){var C=m.pendingProps,L=(m.flags&128)!==0;if(m.flags&=-129,d===null){if(Mn){if(C.mode==="hidden")return d=am(m,C),m.lanes=536870912,au(null,d);if(Pe(m),(d=br)?(d=d0(d,sa),d!==null&&(m.memoizedState={dehydrated:d,treeContext:As!==null?{id:Di,overflow:zs}:null,retryLane:536870912,hydrationErrors:null},A=Gy(d),A.return=m,m.child=A,di=m,br=null)):d=null,d===null)throw _e(m);return m.lanes=536870912,null}return am(m,C)}var F=d.memoizedState;if(F!==null){var K=F.dehydrated;if(Pe(m),L)if(m.flags&256)m.flags&=-257,m=My(d,m,A);else if(m.memoizedState!==null)m.child=d.child,m.flags|=128,m=null;else throw Error(i(558));else if(pr||ft(d,m,A,!1),L=(A&d.childLanes)!==0,pr||L){if(C=gn,C!==null&&(K=U(C,A),K!==0&&K!==F.retryLane))throw F.retryLane=K,Wi(d,K),Cr(C,d,K),la;Of(),m=My(d,m,A)}else d=F.treeContext,xr&&(br=M_(K),di=m,Mn=!0,wo=null,sa=!1,d!==null&&Se(m,d)),m=am(m,C),m.flags|=4096;return m}return d=Wa(d.child,{mode:C.mode,children:C.children}),d.ref=m.ref,m.child=d,d.return=m,d}function Zd(d,m){var A=m.ref;if(A===null)d!==null&&d.ref!==null&&(m.flags|=4194816);else{if(typeof A!="function"&&typeof A!="object")throw Error(i(284));(d===null||d.ref!==A)&&(m.flags|=4194816)}}function sm(d,m,A,C,L){return Ze(m),A=Rt(d,m,A,C,void 0,L),C=Un(),d!==null&&!pr?(sr(d,m,L),lo(d,m,L)):(Mn&&C&&ae(m),m.flags|=1,Pi(d,m,A,L),m.child)}function Ey(d,m,A,C,L,F){return Ze(m),m.updateQueue=null,A=Dt(m,C,A,L),Ht(d),C=Un(),d!==null&&!pr?(sr(d,m,F),lo(d,m,F)):(Mn&&C&&ae(m),m.flags|=1,Pi(d,m,A,F),m.child)}function su(d,m,A,C,L){if(Ze(m),m.stateNode===null){var F=_o,K=A.contextType;typeof K=="object"&&K!==null&&(F=te(K)),F=new A(C,F),m.memoizedState=F.state!==null&&F.state!==void 0?F.state:null,F.updater=Mh,m.stateNode=F,F._reactInternals=m,F=m.stateNode,F.props=C,F.state=m.memoizedState,F.refs={},li(m),K=A.contextType,F.context=typeof K=="object"&&K!==null?te(K):_o,F.state=m.memoizedState,K=A.getDerivedStateFromProps,typeof K=="function"&&(Sy(m,A,K,C),F.state=m.memoizedState),typeof A.getDerivedStateFromProps=="function"||typeof F.getSnapshotBeforeUpdate=="function"||typeof F.UNSAFE_componentWillMount!="function"&&typeof F.componentWillMount!="function"||(K=F.state,typeof F.componentWillMount=="function"&&F.componentWillMount(),typeof F.UNSAFE_componentWillMount=="function"&&F.UNSAFE_componentWillMount(),K!==F.state&&Mh.enqueueReplaceState(F,F.state,null),tl(m,C,F,L),Fs(),F.state=m.memoizedState),typeof F.componentDidMount=="function"&&(m.flags|=4194308),C=!0}else if(d===null){F=m.stateNode;var ce=m.memoizedProps,Le=iu(A,ce);F.props=Le;var Je=F.context,ht=A.contextType;K=_o,typeof ht=="object"&&ht!==null&&(K=te(ht));var nt=A.getDerivedStateFromProps;ht=typeof nt=="function"||typeof F.getSnapshotBeforeUpdate=="function",ce=m.pendingProps!==ce,ht||typeof F.UNSAFE_componentWillReceiveProps!="function"&&typeof F.componentWillReceiveProps!="function"||(ce||Je!==K)&&B1(m,F,C,K),Xa=!1;var Mt=m.memoizedState;F.state=Mt,tl(m,C,F,L),Fs(),Je=m.memoizedState,ce||Mt!==Je||Xa?(typeof nt=="function"&&(Sy(m,A,nt,C),Je=m.memoizedState),(Le=Xa||rm(m,A,Le,C,Mt,Je,K))?(ht||typeof F.UNSAFE_componentWillMount!="function"&&typeof F.componentWillMount!="function"||(typeof F.componentWillMount=="function"&&F.componentWillMount(),typeof F.UNSAFE_componentWillMount=="function"&&F.UNSAFE_componentWillMount()),typeof F.componentDidMount=="function"&&(m.flags|=4194308)):(typeof F.componentDidMount=="function"&&(m.flags|=4194308),m.memoizedProps=C,m.memoizedState=Je),F.props=C,F.state=Je,F.context=K,C=Le):(typeof F.componentDidMount=="function"&&(m.flags|=4194308),C=!1)}else{F=m.stateNode,Ua(d,m),K=m.memoizedProps,ht=iu(A,K),F.props=ht,nt=m.pendingProps,Mt=F.context,Je=A.contextType,Le=_o,typeof Je=="object"&&Je!==null&&(Le=te(Je)),ce=A.getDerivedStateFromProps,(Je=typeof ce=="function"||typeof F.getSnapshotBeforeUpdate=="function")||typeof F.UNSAFE_componentWillReceiveProps!="function"&&typeof F.componentWillReceiveProps!="function"||(K!==nt||Mt!==Le)&&B1(m,F,C,Le),Xa=!1,Mt=m.memoizedState,F.state=Mt,tl(m,C,F,L),Fs();var sn=m.memoizedState;K!==nt||Mt!==sn||Xa||d!==null&&d.dependencies!==null&&Et(d.dependencies)?(typeof ce=="function"&&(Sy(m,A,ce,C),sn=m.memoizedState),(ht=Xa||rm(m,A,ht,C,Mt,sn,Le)||d!==null&&d.dependencies!==null&&Et(d.dependencies))?(Je||typeof F.UNSAFE_componentWillUpdate!="function"&&typeof F.componentWillUpdate!="function"||(typeof F.componentWillUpdate=="function"&&F.componentWillUpdate(C,sn,Le),typeof F.UNSAFE_componentWillUpdate=="function"&&F.UNSAFE_componentWillUpdate(C,sn,Le)),typeof F.componentDidUpdate=="function"&&(m.flags|=4),typeof F.getSnapshotBeforeUpdate=="function"&&(m.flags|=1024)):(typeof F.componentDidUpdate!="function"||K===d.memoizedProps&&Mt===d.memoizedState||(m.flags|=4),typeof F.getSnapshotBeforeUpdate!="function"||K===d.memoizedProps&&Mt===d.memoizedState||(m.flags|=1024),m.memoizedProps=C,m.memoizedState=sn),F.props=C,F.state=sn,F.context=Le,C=ht):(typeof F.componentDidUpdate!="function"||K===d.memoizedProps&&Mt===d.memoizedState||(m.flags|=4),typeof F.getSnapshotBeforeUpdate!="function"||K===d.memoizedProps&&Mt===d.memoizedState||(m.flags|=1024),C=!1)}return F=C,Zd(d,m),C=(m.flags&128)!==0,F||C?(F=m.stateNode,A=C&&typeof A.getDerivedStateFromError!="function"?null:F.render(),m.flags|=1,d!==null&&C?(m.child=Ii(m,d.child,null,L),m.child=Ii(m,null,A,L)):Pi(d,m,A,L),m.memoizedState=F.state,d=m.child):d=lo(d,m,L),d}function H1(d,m,A,C){return ot(),m.flags|=256,Pi(d,m,A,C),m.child}function Ty(d){return{baseLanes:d,cachePool:tt()}}function Cy(d,m,A){return d=d!==null?d.childLanes&~A:0,m&&(d|=ca),d}function Ry(d,m,A){var C=m.pendingProps,L=!1,F=(m.flags&128)!==0,K;if((K=F)||(K=d!==null&&d.memoizedState===null?!1:(Lr.current&2)!==0),K&&(L=!0,m.flags&=-129),K=(m.flags&32)!==0,m.flags&=-33,d===null){if(Mn){if(L?ge(m):xe(),(d=br)?(d=R_(d,sa),d!==null&&(m.memoizedState={dehydrated:d,treeContext:As!==null?{id:Di,overflow:zs}:null,retryLane:536870912,hydrationErrors:null},A=Gy(d),A.return=m,m.child=A,di=m,br=null)):d=null,d===null)throw _e(m);return Om(d)?m.lanes=32:m.lanes=536870912,null}var ce=C.children;return C=C.fallback,L?(xe(),L=m.mode,ce=Zl({mode:"hidden",children:ce},L),C=ys(C,L,A,null),ce.return=m,C.return=m,ce.sibling=C,m.child=ce,C=m.child,C.memoizedState=Ty(A),C.childLanes=Cy(d,K,A),m.memoizedState=Eu,au(null,C)):(ge(m),om(m,ce))}var Le=d.memoizedState;if(Le!==null&&(ce=Le.dehydrated,ce!==null)){if(F)m.flags&256?(ge(m),m.flags&=-257,m=ou(d,m,A)):m.memoizedState!==null?(xe(),m.child=d.child,m.flags|=128,m=null):(xe(),ce=C.fallback,L=m.mode,C=Zl({mode:"visible",children:C.children},L),ce=ys(ce,L,A,null),ce.flags|=2,C.return=m,ce.return=m,C.sibling=ce,m.child=C,Ii(m,d.child,null,A),C=m.child,C.memoizedState=Ty(A),C.childLanes=Cy(d,K,A),m.memoizedState=Eu,m=au(null,C));else if(ge(m),Om(ce))K=Pm(ce).digest,C=Error(i(419)),C.stack="",C.digest=K,Ue({value:C,source:null,stack:null}),m=ou(d,m,A);else if(pr||ft(d,m,A,!1),K=(A&d.childLanes)!==0,pr||K){if(K=gn,K!==null&&(C=U(K,A),C!==0&&C!==Le.retryLane))throw Le.retryLane=C,Wi(d,C),Cr(K,d,C),la;fc(ce)||Of(),m=ou(d,m,A)}else fc(ce)?(m.flags|=192,m.child=d.child,m=null):(d=Le.treeContext,xr&&(br=E_(ce),di=m,Mn=!0,wo=null,sa=!1,d!==null&&Se(m,d)),m=om(m,C.children),m.flags|=4096);return m}return L?(xe(),ce=C.fallback,L=m.mode,Le=d.child,F=Le.sibling,C=Wa(Le,{mode:"hidden",children:C.children}),C.subtreeFlags=Le.subtreeFlags&65011712,F!==null?ce=Wa(F,ce):(ce=ys(ce,L,A,null),ce.flags|=2),ce.return=m,C.return=m,C.sibling=ce,m.child=C,au(null,C),C=m.child,ce=d.child.memoizedState,ce===null?ce=Ty(A):(L=ce.cachePool,L!==null?(Le=Hr?_r._currentValue:_r._currentValue2,L=L.parent!==Le?{parent:Le,pool:Le}:L):L=tt(),ce={baseLanes:ce.baseLanes|A,cachePool:L}),C.memoizedState=ce,C.childLanes=Cy(d,K,A),m.memoizedState=Eu,au(d.child,C)):(ge(m),A=d.child,d=A.sibling,A=Wa(A,{mode:"visible",children:C.children}),A.return=m,A.sibling=null,d!==null&&(K=m.deletions,K===null?(m.deletions=[d],m.flags|=16):K.push(d)),m.child=A,m.memoizedState=null,A)}function om(d,m){return m=Zl({mode:"visible",children:m},d.mode),m.return=d,d.child=m}function Zl(d,m){return d=n(22,d,null,m),d.lanes=0,d}function ou(d,m,A){return Ii(m,d.child,null,A),d=om(m,m.pendingProps.children),d.flags|=2,m.memoizedState=null,d}function V1(d,m,A){d.lanes|=m;var C=d.alternate;C!==null&&(C.lanes|=m),re(d.return,m,A)}function _f(d,m,A,C,L,F){var K=d.memoizedState;K===null?d.memoizedState={isBackwards:m,rendering:null,renderingStartTime:0,last:C,tail:A,tailMode:L,treeForkCount:F}:(K.isBackwards=m,K.rendering=null,K.renderingStartTime=0,K.last=C,K.tail=A,K.tailMode=L,K.treeForkCount=F)}function Oy(d,m,A){var C=m.pendingProps,L=C.revealOrder,F=C.tail;C=C.children;var K=Lr.current,ce=(K&2)!==0;if(ce?(K=K&1|2,m.flags|=128):K&=1,b(Lr,K),Pi(d,m,C,A),C=Mn?Sh:0,!ce&&d!==null&&(d.flags&128)!==0)e:for(d=m.child;d!==null;){if(d.tag===13)d.memoizedState!==null&&V1(d,A,m);else if(d.tag===19)V1(d,A,m);else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===m)break e;for(;d.sibling===null;){if(d.return===null||d.return===m)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}switch(L){case"forwards":for(A=m.child,L=null;A!==null;)d=A.alternate,d!==null&&wt(d)===null&&(L=A),A=A.sibling;A=L,A===null?(L=m.child,m.child=null):(L=A.sibling,A.sibling=null),_f(m,!1,L,A,F,C);break;case"backwards":case"unstable_legacy-backwards":for(A=null,L=m.child,m.child=null;L!==null;){if(d=L.alternate,d!==null&&wt(d)===null){m.child=L;break}d=L.sibling,L.sibling=A,A=L,L=d}_f(m,!0,A,null,F,C);break;case"together":_f(m,!1,null,null,void 0,C);break;default:m.memoizedState=null}return m.child}function lo(d,m,A){if(d!==null&&(m.dependencies=d.dependencies),xl|=m.lanes,(A&m.childLanes)===0)if(d!==null){if(ft(d,m,A,!1),(A&m.childLanes)===0)return null}else return null;if(d!==null&&m.child!==d.child)throw Error(i(153));if(m.child!==null){for(d=m.child,A=Wa(d,d.pendingProps),m.child=A,A.return=m;d.sibling!==null;)d=d.sibling,A=A.sibling=Wa(d,d.pendingProps),A.return=m;A.sibling=null}return m.child}function Qd(d,m){return(d.lanes&m)!==0?!0:(d=d.dependencies,!!(d!==null&&Et(d)))}function Py(d,m,A){switch(m.tag){case 3:$e(m,m.stateNode.containerInfo),Be(m,_r,d.memoizedState.cache),ot();break;case 27:case 5:ve(m);break;case 4:$e(m,m.stateNode.containerInfo);break;case 10:Be(m,m.type,m.memoizedProps.value);break;case 31:if(m.memoizedState!==null)return m.flags|=128,Pe(m),null;break;case 13:var C=m.memoizedState;if(C!==null)return C.dehydrated!==null?(ge(m),m.flags|=128,null):(A&m.child.childLanes)!==0?Ry(d,m,A):(ge(m),d=lo(d,m,A),d!==null?d.sibling:null);ge(m);break;case 19:var L=(d.flags&128)!==0;if(C=(A&m.childLanes)!==0,C||(ft(d,m,A,!1),C=(A&m.childLanes)!==0),L){if(C)return Oy(d,m,A);m.flags|=128}if(L=m.memoizedState,L!==null&&(L.rendering=null,L.tail=null,L.lastEffect=null),b(Lr,Lr.current),C)break;return null;case 22:return m.lanes=0,z1(d,m,A,m.pendingProps);case 24:Be(m,_r,d.memoizedState.cache)}return lo(d,m,A)}function Dy(d,m,A){if(d!==null)if(d.memoizedProps!==m.pendingProps)pr=!0;else{if(!Qd(d,A)&&(m.flags&128)===0)return pr=!1,Py(d,m,A);pr=(d.flags&131072)!==0}else pr=!1,Mn&&(m.flags&1048576)!==0&&X(m,Sh,m.index);switch(m.lanes=0,m.tag){case 16:e:{var C=m.pendingProps;if(d=un(m.elementType),m.type=d,typeof d=="function")cu(d)?(C=iu(d,C),m.tag=1,m=su(null,m,d,C,A)):(m.tag=0,m=sm(null,m,d,C,A));else{if(d!=null){var L=d.$$typeof;if(L===If){m.tag=11,m=F1(null,m,d,C,A);break e}else if(L===wm){m.tag=14,m=U1(null,m,d,C,A);break e}}throw m=p(d)||d,Error(i(306,m,""))}}return m;case 0:return sm(d,m,m.type,m.pendingProps,A);case 1:return C=m.type,L=iu(C,m.pendingProps),su(d,m,C,L,A);case 3:e:{if($e(m,m.stateNode.containerInfo),d===null)throw Error(i(387));var F=m.pendingProps;L=m.memoizedState,C=L.element,Ua(d,m),tl(m,F,null,A);var K=m.memoizedState;if(F=K.cache,Be(m,_r,F),F!==L.cache&&At(m,[_r],A,!0),Fs(),F=K.element,xr&&L.isDehydrated)if(L={element:F,isDehydrated:!1,cache:K.cache},m.updateQueue.baseState=L,m.memoizedState=L,m.flags&256){m=H1(d,m,F,A);break e}else if(F!==C){C=ie(Error(i(424)),m),Ue(C),m=H1(d,m,F,A);break e}else for(xr&&(br=w_(m.stateNode.containerInfo),di=m,Mn=!0,wo=null,sa=!0),A=C0(m,null,F,A),m.child=A;A;)A.flags=A.flags&-3|4096,A=A.sibling;else{if(ot(),F===C){m=lo(d,m,A);break e}Pi(d,m,F,A)}m=m.child}return m;case 26:if(_s)return Zd(d,m),d===null?(A=v0(m.type,null,m.pendingProps,null))?m.memoizedState=A:Mn||(m.stateNode=Bm(m.type,m.pendingProps,Ni.current,m)):m.memoizedState=v0(m.type,d.memoizedProps,m.pendingProps,d.memoizedState),null;case 27:if(fi)return ve(m),d===null&&fi&&Mn&&(C=m.stateNode=Lm(m.type,m.pendingProps,Ni.current,Ai.current,!1),di=m,sa=!0,br=f0(m.type,C,br)),Pi(d,m,m.pendingProps.children,A),Zd(d,m),d===null&&(m.flags|=4194304),m.child;case 5:return d===null&&Mn&&(F_(m.type,m.pendingProps,Ai.current),(L=C=br)&&(C=T_(C,m.type,m.pendingProps,sa),C!==null?(m.stateNode=C,di=m,br=A_(C),sa=!1,L=!0):L=!1),L||_e(m)),ve(m),L=m.type,F=m.pendingProps,K=d!==null?d.memoizedProps:null,C=F.children,aa(L,F)?C=null:K!==null&&aa(L,K)&&(m.flags|=32),m.memoizedState!==null&&(L=Rt(d,m,Xt,null,null,A),Hr?yu._currentValue=L:yu._currentValue2=L),Zd(d,m),Pi(d,m,C,A),m.child;case 6:return d===null&&Mn&&(g0(m.pendingProps,Ai.current),(d=A=br)&&(A=C_(A,m.pendingProps,sa),A!==null?(m.stateNode=A,di=m,br=null,d=!0):d=!1),d||_e(m)),null;case 13:return Ry(d,m,A);case 4:return $e(m,m.stateNode.containerInfo),C=m.pendingProps,d===null?m.child=Ii(m,null,C,A):Pi(d,m,C,A),m.child;case 11:return F1(d,m,m.type,m.pendingProps,A);case 7:return Pi(d,m,m.pendingProps,A),m.child;case 8:return Pi(d,m,m.pendingProps.children,A),m.child;case 12:return Pi(d,m,m.pendingProps.children,A),m.child;case 10:return C=m.pendingProps,Be(m,m.type,C.value),Pi(d,m,C.children,A),m.child;case 9:return L=m.type._context,C=m.pendingProps.children,Ze(m),L=te(L),C=C(L),m.flags|=1,Pi(d,m,C,A),m.child;case 14:return U1(d,m,m.type,m.pendingProps,A);case 15:return j1(d,m,m.type,m.pendingProps,A);case 19:return Oy(d,m,A);case 31:return G1(d,m,A);case 22:return z1(d,m,A,m.pendingProps);case 24:return Ze(m),C=te(_r),d===null?(L=et(),L===null&&(L=gn,F=Ne(),L.pooledCache=F,F.refCount++,F!==null&&(L.pooledCacheLanes|=A),L=F),m.memoizedState={parent:C,cache:L},li(m),Be(m,_r,L)):((d.lanes&A)!==0&&(Ua(d,m),tl(m,null,null,A),Fs()),L=d.memoizedState,F=m.memoizedState,L.parent!==C?(L={parent:C,cache:C},m.memoizedState=L,m.lanes===0&&(m.memoizedState=m.updateQueue.baseState=L),Be(m,_r,C)):(C=F.cache,Be(m,_r,C),C!==L.cache&&At(m,[_r],A,!0))),Pi(d,m,m.pendingProps.children,A),m.child;case 29:throw m.pendingProps}throw Error(i(156,m.tag))}function hs(d){d.flags|=4}function eh(d){qa&&(d.flags|=8)}function W1(d,m){if(d!==null&&d.child===m.child)return!1;if((m.flags&16)!==0)return!0;for(d=m.child;d!==null;){if((d.flags&8218)!==0||(d.subtreeFlags&8218)!==0)return!0;d=d.sibling}return!1}function Ny(d,m,A,C){if(On)for(A=m.child;A!==null;){if(A.tag===5||A.tag===6)ph(d,A.stateNode);else if(!(A.tag===4||fi&&A.tag===27)&&A.child!==null){A.child.return=A,A=A.child;continue}if(A===m)break;for(;A.sibling===null;){if(A.return===null||A.return===m)return;A=A.return}A.sibling.return=A.return,A=A.sibling}else if(qa)for(var L=m.child;L!==null;){if(L.tag===5){var F=L.stateNode;A&&C&&(F=x_(F,L.type,L.memoizedProps)),ph(d,F)}else if(L.tag===6)F=L.stateNode,A&&C&&(F=c0(F,L.memoizedProps)),ph(d,F);else if(L.tag!==4){if(L.tag===22&&L.memoizedState!==null)F=L.child,F!==null&&(F.return=L),Ny(d,L,!0,!0);else if(L.child!==null){L.child.return=L,L=L.child;continue}}if(L===m)break;for(;L.sibling===null;){if(L.return===null||L.return===m)return;L=L.return}L.sibling.return=L.return,L=L.sibling}}function q1(d,m,A,C){var L=!1;if(qa)for(var F=m.child;F!==null;){if(F.tag===5){var K=F.stateNode;A&&C&&(K=x_(K,F.type,F.memoizedProps)),o0(d,K)}else if(F.tag===6)K=F.stateNode,A&&C&&(K=c0(K,F.memoizedProps)),o0(d,K);else if(F.tag!==4){if(F.tag===22&&F.memoizedState!==null)L=F.child,L!==null&&(L.return=F),q1(d,F,!0,!0),L=!0;else if(F.child!==null){F.child.return=F,F=F.child;continue}}if(F===m)break;for(;F.sibling===null;){if(F.return===null||F.return===m)return L;F=F.return}F.sibling.return=F.return,F=F.sibling}return L}function $1(d,m){if(qa&&W1(d,m)){d=m.stateNode;var A=d.containerInfo,C=s0();q1(C,m,!1,!1),d.pendingChildren=C,hs(m),y_(A,C)}}function Iy(d,m,A,C){if(On)d.memoizedProps!==C&&hs(m);else if(qa){var L=d.stateNode,F=d.memoizedProps;if((d=W1(d,m))||F!==C){var K=Ai.current;F=v_(L,A,F,C,!d,null),F===L?m.stateNode=L:(eh(m),xa(F,A,C,K)&&hs(m),m.stateNode=F,d&&Ny(F,m,!1,!1))}else m.stateNode=L}}function na(d,m,A,C,L){if((d.mode&32)!==0&&(A===null?mh(m,C):Uf(m,A,C))){if(d.flags|=16777216,(L&335544128)===L||Ky(m,C))if(Rr(d.stateNode,m,C))d.flags|=8192;else if(Rn())d.flags|=8192;else throw oa=Mo,$m}else d.flags&=-16777217}function Sf(d,m){if(_0(m)){if(d.flags|=16777216,!S0(m))if(Rn())d.flags|=8192;else throw oa=Mo,$m}else d.flags&=-16777217}function th(d,m){m!==null&&(d.flags|=4),d.flags&16384&&(m=d.tag!==22?P():536870912,d.lanes|=m,Xf|=m)}function Af(d,m){if(!Mn)switch(d.tailMode){case"hidden":m=d.tail;for(var A=null;m!==null;)m.alternate!==null&&(A=m),m=m.sibling;A===null?d.tail=null:A.sibling=null;break;case"collapsed":A=d.tail;for(var C=null;A!==null;)A.alternate!==null&&(C=A),A=A.sibling;C===null?m||d.tail===null?d.tail=null:d.tail.sibling=null:C.sibling=null}}function or(d){var m=d.alternate!==null&&d.alternate.child===d.child,A=0,C=0;if(m)for(var L=d.child;L!==null;)A|=L.lanes|L.childLanes,C|=L.subtreeFlags&65011712,C|=L.flags&65011712,L.return=d,L=L.sibling;else for(L=d.child;L!==null;)A|=L.lanes|L.childLanes,C|=L.subtreeFlags,C|=L.flags,L.return=d,L=L.sibling;return d.subtreeFlags|=C,d.childLanes=A,m}function X1(d,m,A){var C=m.pendingProps;switch(ue(m),m.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return or(m),null;case 1:return or(m),null;case 3:return A=m.stateNode,C=null,d!==null&&(C=d.memoizedState.cache),m.memoizedState.cache!==C&&(m.flags|=2048),Ye(_r),me(),A.pendingContext&&(A.context=A.pendingContext,A.pendingContext=null),(d===null||d.child===null)&&(Re(m)?hs(m):d===null||d.memoizedState.isDehydrated&&(m.flags&256)===0||(m.flags|=1024,we())),$1(d,m),or(m),null;case 26:if(_s){var L=m.type,F=m.memoizedState;return d===null?(hs(m),F!==null?(or(m),Sf(m,F)):(or(m),na(m,L,null,C,A))):F?F!==d.memoizedState?(hs(m),or(m),Sf(m,F)):(or(m),m.flags&=-16777217):(F=d.memoizedProps,On?F!==C&&hs(m):Iy(d,m,L,C),or(m),na(m,L,F,C,A)),null}case 27:if(fi){if(We(m),A=Ni.current,L=m.type,d!==null&&m.stateNode!=null)On?d.memoizedProps!==C&&hs(m):Iy(d,m,L,C);else{if(!C){if(m.stateNode===null)throw Error(i(166));return or(m),null}d=Ai.current,Re(m)?Fe(m,d):(d=Lm(L,C,A,d,!0),m.stateNode=d,hs(m))}return or(m),null}case 5:if(We(m),L=m.type,d!==null&&m.stateNode!=null)Iy(d,m,L,C);else{if(!C){if(m.stateNode===null)throw Error(i(166));return or(m),null}if(F=Ai.current,Re(m))Fe(m,F),B_(m.stateNode,L,C,F)&&(m.flags|=64);else{var K=$y(L,C,Ni.current,F,m);eh(m),Ny(K,m,!1,!1),m.stateNode=K,xa(K,L,C,F)&&hs(m)}}return or(m),na(m,m.type,d===null?null:d.memoizedProps,m.pendingProps,A),null;case 6:if(d&&m.stateNode!=null)A=d.memoizedProps,On?A!==C&&hs(m):qa&&(A!==C?(d=Ni.current,A=Ai.current,eh(m),m.stateNode=hl(C,d,A,m)):m.stateNode=d.stateNode);else{if(typeof C!="string"&&m.stateNode===null)throw Error(i(166));if(d=Ni.current,A=Ai.current,Re(m)){if(!xr)throw Error(i(176));if(d=m.stateNode,A=m.memoizedProps,C=null,L=di,L!==null)switch(L.tag){case 27:case 5:C=L.memoizedProps}zT(d,A,m,C)||_e(m,!0)}else eh(m),m.stateNode=hl(C,d,A,m)}return or(m),null;case 31:if(A=m.memoizedState,d===null||d.memoizedState!==null){if(C=Re(m),A!==null){if(d===null){if(!C)throw Error(i(318));if(!xr)throw Error(i(556));if(d=m.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(i(557));h0(d,m)}else ot(),(m.flags&128)===0&&(m.memoizedState=null),m.flags|=4;or(m),d=!1}else A=we(),d!==null&&d.memoizedState!==null&&(d.memoizedState.hydrationErrors=A),d=!0;if(!d)return m.flags&256?(ct(m),m):(ct(m),null);if((m.flags&128)!==0)throw Error(i(558))}return or(m),null;case 13:if(C=m.memoizedState,d===null||d.memoizedState!==null&&d.memoizedState.dehydrated!==null){if(L=Re(m),C!==null&&C.dehydrated!==null){if(d===null){if(!L)throw Error(i(318));if(!xr)throw Error(i(344));if(L=m.memoizedState,L=L!==null?L.dehydrated:null,!L)throw Error(i(317));P_(L,m)}else ot(),(m.flags&128)===0&&(m.memoizedState=null),m.flags|=4;or(m),L=!1}else L=we(),d!==null&&d.memoizedState!==null&&(d.memoizedState.hydrationErrors=L),L=!0;if(!L)return m.flags&256?(ct(m),m):(ct(m),null)}return ct(m),(m.flags&128)!==0?(m.lanes=A,m):(A=C!==null,d=d!==null&&d.memoizedState!==null,A&&(C=m.child,L=null,C.alternate!==null&&C.alternate.memoizedState!==null&&C.alternate.memoizedState.cachePool!==null&&(L=C.alternate.memoizedState.cachePool.pool),F=null,C.memoizedState!==null&&C.memoizedState.cachePool!==null&&(F=C.memoizedState.cachePool.pool),F!==L&&(C.flags|=2048)),A!==d&&A&&(m.child.flags|=8192),th(m,m.updateQueue),or(m),null);case 4:return me(),$1(d,m),d===null&&er(m.stateNode.containerInfo),or(m),null;case 10:return Ye(m.type),or(m),null;case 19:if(y(Lr),C=m.memoizedState,C===null)return or(m),null;if(L=(m.flags&128)!==0,F=C.rendering,F===null)if(L)Af(C,!1);else{if(Dr!==0||d!==null&&(d.flags&128)!==0)for(d=m.child;d!==null;){if(F=wt(d),F!==null){for(m.flags|=128,Af(C,!1),d=F.updateQueue,m.updateQueue=d,th(m,d),m.subtreeFlags=0,d=A,A=m.child;A!==null;)xm(A,d),A=A.sibling;return b(Lr,Lr.current&1|2),Mn&&de(m,C.treeForkCount),m.child}d=d.sibling}C.tail!==null&&$i()>Sc&&(m.flags|=128,L=!0,Af(C,!1),m.lanes=4194304)}else{if(!L)if(d=wt(F),d!==null){if(m.flags|=128,L=!0,d=d.updateQueue,m.updateQueue=d,th(m,d),Af(C,!0),C.tail===null&&C.tailMode==="hidden"&&!F.alternate&&!Mn)return or(m),null}else 2*$i()-C.renderingStartTime>Sc&&A!==536870912&&(m.flags|=128,L=!0,Af(C,!1),m.lanes=4194304);C.isBackwards?(F.sibling=m.child,m.child=F):(d=C.last,d!==null?d.sibling=F:m.child=F,C.last=F)}return C.tail!==null?(d=C.tail,C.rendering=d,C.tail=d.sibling,C.renderingStartTime=$i(),d.sibling=null,A=Lr.current,b(Lr,L?A&1|2:A&1),Mn&&de(m,C.treeForkCount),d):(or(m),null);case 22:case 23:return ct(m),J(),C=m.memoizedState!==null,d!==null?d.memoizedState!==null!==C&&(m.flags|=8192):C&&(m.flags|=8192),C?(A&536870912)!==0&&(m.flags&128)===0&&(or(m),m.subtreeFlags&6&&(m.flags|=8192)):or(m),A=m.updateQueue,A!==null&&th(m,A.retryQueue),A=null,d!==null&&d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(A=d.memoizedState.cachePool.pool),C=null,m.memoizedState!==null&&m.memoizedState.cachePool!==null&&(C=m.memoizedState.cachePool.pool),C!==A&&(m.flags|=2048),d!==null&&y(pc),null;case 24:return A=null,d!==null&&(A=d.memoizedState.cache),m.memoizedState.cache!==A&&(m.flags|=2048),Ye(_r),or(m),null;case 25:return null;case 30:return null}throw Error(i(156,m.tag))}function By(d,m){switch(ue(m),m.tag){case 1:return d=m.flags,d&65536?(m.flags=d&-65537|128,m):null;case 3:return Ye(_r),me(),d=m.flags,(d&65536)!==0&&(d&128)===0?(m.flags=d&-65537|128,m):null;case 26:case 27:case 5:return We(m),null;case 31:if(m.memoizedState!==null){if(ct(m),m.alternate===null)throw Error(i(340));ot()}return d=m.flags,d&65536?(m.flags=d&-65537|128,m):null;case 13:if(ct(m),d=m.memoizedState,d!==null&&d.dehydrated!==null){if(m.alternate===null)throw Error(i(340));ot()}return d=m.flags,d&65536?(m.flags=d&-65537|128,m):null;case 19:return y(Lr),null;case 4:return me(),null;case 10:return Ye(m.type),null;case 22:case 23:return ct(m),J(),d!==null&&y(pc),d=m.flags,d&65536?(m.flags=d&-65537|128,m):null;case 24:return Ye(_r),null;case 25:return null;default:return null}}function K1(d,m){switch(ue(m),m.tag){case 3:Ye(_r),me();break;case 26:case 27:case 5:We(m);break;case 4:me();break;case 31:m.memoizedState!==null&&ct(m);break;case 13:ct(m);break;case 19:y(Lr);break;case 10:Ye(m.type);break;case 22:case 23:ct(m),J(),d!==null&&y(pc);break;case 24:Ye(_r)}}function co(d,m){try{var A=m.updateQueue,C=A!==null?A.lastEffect:null;if(C!==null){var L=C.next;A=L;do{if((A.tag&d)===d){C=void 0;var F=A.create,K=A.inst;C=F(),K.destroy=C}A=A.next}while(A!==L)}}catch(ce){Qt(m,m.return,ce)}}function uo(d,m,A){try{var C=m.updateQueue,L=C!==null?C.lastEffect:null;if(L!==null){var F=L.next;C=F;do{if((C.tag&d)===d){var K=C.inst,ce=K.destroy;if(ce!==void 0){K.destroy=void 0,L=m;var Le=A,Je=ce;try{Je()}catch(ht){Qt(L,Le,ht)}}}C=C.next}while(C!==F)}}catch(ht){Qt(m,m.return,ht)}}function wf(d){var m=d.updateQueue;if(m!==null){var A=d.stateNode;try{rl(m,A)}catch(C){Qt(d,d.return,C)}}}function lm(d,m,A){A.props=iu(d.type,d.memoizedProps),A.state=d.memoizedState;try{A.componentWillUnmount()}catch(C){Qt(d,m,C)}}function Mf(d,m){try{var A=d.ref;if(A!==null){switch(d.tag){case 26:case 27:case 5:var C=Lf(d.stateNode);break;case 30:C=d.stateNode;break;default:C=d.stateNode}typeof A=="function"?d.refCleanup=A(C):A.current=C}}catch(L){Qt(d,m,L)}}function qi(d,m){var A=d.ref,C=d.refCleanup;if(A!==null)if(typeof C=="function")try{C()}catch(L){Qt(d,m,L)}finally{d.refCleanup=null,d=d.alternate,d!=null&&(d.refCleanup=null)}else if(typeof A=="function")try{A(null)}catch(L){Qt(d,m,L)}else A.current=null}function lu(d){var m=d.type,A=d.memoizedProps,C=d.stateNode;try{c_(C,m,A,d)}catch(L){Qt(d,d.return,L)}}function nh(d,m,A){try{u_(d.stateNode,d.type,A,m,d)}catch(C){Qt(d,d.return,C)}}function Ly(d){return d.tag===5||d.tag===3||(_s?d.tag===26:!1)||(fi?d.tag===27&&xu(d.type):!1)||d.tag===4}function al(d){e:for(;;){for(;d.sibling===null;){if(d.return===null||Ly(d.return))return null;d=d.return}for(d.sibling.return=d.return,d=d.sibling;d.tag!==5&&d.tag!==6&&d.tag!==18;){if(fi&&d.tag===27&&xu(d.type)||d.flags&2||d.child===null||d.tag===4)continue e;d.child.return=d,d=d.child}if(!(d.flags&2))return d.stateNode}}function cm(d,m,A){var C=d.tag;if(C===5||C===6)d=d.stateNode,m?d_(A,d,m):n0(A,d);else if(C!==4&&(fi&&C===27&&xu(d.type)&&(A=d.stateNode,m=null),d=d.child,d!==null))for(cm(d,m,A),d=d.sibling;d!==null;)cm(d,m,A),d=d.sibling}function rh(d,m,A){var C=d.tag;if(C===5||C===6)d=d.stateNode,m?f_(A,d,m):t0(A,d);else if(C!==4&&(fi&&C===27&&xu(d.type)&&(A=d.stateNode),d=d.child,d!==null))for(rh(d,m,A),d=d.sibling;d!==null;)rh(d,m,A),d=d.sibling}function ky(d,m,A){d=d.containerInfo;try{l0(d,A)}catch(C){Qt(m,m.return,C)}}function Y1(d){var m=d.stateNode,A=d.memoizedProps;try{ei(d.type,A,m,d)}catch(C){Qt(d,d.return,C)}}function kT(d,m){for(Mm(d.containerInfo),qr=m;qr!==null;)if(d=qr,m=d.child,(d.subtreeFlags&1028)!==0&&m!==null)m.return=d,qr=m;else for(;qr!==null;){d=qr;var A=d.alternate;switch(m=d.flags,d.tag){case 0:if((m&4)!==0&&(m=d.updateQueue,m=m!==null?m.events:null,m!==null))for(var C=0;C";case Wf:return":has("+(Cf(d)||"")+")";case qf:return'[role="'+d.value+'"]';case yc:return'"'+d.value+'"';case Eh:return'[data-testname="'+d.value+'"]';default:throw Error(i(365))}}function Rf(d,m){var A=[];d=[d,0];for(var C=0;CA?32:A;A=Vt.T;var L=bs();try{wn(C),Vt.T=null,C=Ym,Ym=null;var F=_l,K=Ro;if(ni=0,Ru=_l=null,Ro=0,(Sn&6)!==0)throw Error(i(331));var ce=Sn;if(Sn|=4,hm(F.current),fm(F,F.current,K,C),Sn=ce,lt(0,!1),Sa&&typeof Sa.onPostCommitFiberRoot=="function")try{Sa.onPostCommitFiberRoot(Su,F)}catch{}return!0}finally{wn(L),Vt.T=A,ym(d,m)}}function sc(d,m,A){m=ie(A,m),m=wy(d.stateNode,m,2),d=za(d,m,2),d!==null&&(D(d,2),_t(d))}function Qt(d,m,A){if(d.tag===3)sc(d,d,A);else for(;m!==null;){if(m.tag===3){sc(m,d,A);break}else if(m.tag===1){var C=m.stateNode;if(typeof m.type.getDerivedStateFromError=="function"||typeof C.componentDidCatch=="function"&&(bl===null||!bl.has(C))){d=ie(A,d),A=L1(2),C=za(m,A,2),C!==null&&(k1(A,C,m,d),D(C,2),_t(C));break}}m=m.return}}function Nf(d,m,A){var C=d.pingCache;if(C===null){C=d.pingCache=new Ja;var L=new Set;C.set(m,L)}else L=C.get(m),L===void 0&&(L=new Set,C.set(m,L));L.has(A)||(bc=!0,L.add(A),d=t_.bind(null,d,m,A),m.then(d,d))}function t_(d,m,A){var C=d.pingCache;C!==null&&C.delete(m),d.pingedLanes|=d.suspendedLanes&A,d.warmLanes&=~A,gn===d&&(En&A)===A&&(Dr===4||Dr===3&&(En&62914560)===En&&300>$i()-Ch?(Sn&2)===0&&Br(d,0):$f|=A,Xf===En&&(Xf=0)),_t(d)}function n_(d,m){m===0&&(m=P()),d=Wi(d,m),d!==null&&(D(d,m),_t(d))}function FT(d){var m=d.memoizedState,A=0;m!==null&&(A=m.retryLane),n_(d,A)}function UT(d,m){var A=0;switch(d.tag){case 31:case 13:var C=d.stateNode,L=d.memoizedState;L!==null&&(A=L.retryLane);break;case 19:C=d.stateNode;break;case 22:C=d.stateNode._retryCache;break;default:throw Error(i(314))}C!==null&&C.delete(m),n_(d,A)}function Qr(d,m){return xh(d,m)}function jy(d,m,A,C){this.tag=d,this.key=A,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=m,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=C,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function cu(d){return d=d.prototype,!(!d||!d.isReactComponent)}function Wa(d,m){var A=d.alternate;return A===null?(A=n(d.tag,m,d.key,d.mode),A.elementType=d.elementType,A.type=d.type,A.stateNode=d.stateNode,A.alternate=d,d.alternate=A):(A.pendingProps=m,A.type=d.type,A.flags=0,A.subtreeFlags=0,A.deletions=null),A.flags=d.flags&65011712,A.childLanes=d.childLanes,A.lanes=d.lanes,A.child=d.child,A.memoizedProps=d.memoizedProps,A.memoizedState=d.memoizedState,A.updateQueue=d.updateQueue,m=d.dependencies,A.dependencies=m===null?null:{lanes:m.lanes,firstContext:m.firstContext},A.sibling=d.sibling,A.index=d.index,A.ref=d.ref,A.refCleanup=d.refCleanup,A}function xm(d,m){d.flags&=65011714;var A=d.alternate;return A===null?(d.childLanes=0,d.lanes=m,d.child=null,d.subtreeFlags=0,d.memoizedProps=null,d.memoizedState=null,d.updateQueue=null,d.dependencies=null,d.stateNode=null):(d.childLanes=A.childLanes,d.lanes=A.lanes,d.child=A.child,d.subtreeFlags=0,d.deletions=null,d.memoizedProps=A.memoizedProps,d.memoizedState=A.memoizedState,d.updateQueue=A.updateQueue,d.type=A.type,m=A.dependencies,d.dependencies=m===null?null:{lanes:m.lanes,firstContext:m.firstContext}),d}function ul(d,m,A,C,L,F){var K=0;if(C=d,typeof d=="function")cu(d)&&(K=1);else if(typeof d=="string")K=_s&&fi?Im(d,A,Ai.current)?26:A0(d)?27:5:_s?Im(d,A,Ai.current)?26:5:fi&&A0(d)?27:5;else e:switch(d){case dh:return d=n(31,A,m,L),d.elementType=dh,d.lanes=F,d;case hu:return ys(A.children,L,F,m);case pu:K=8,L|=24;break;case mu:return d=n(12,A,m,L|2),d.elementType=mu,d.lanes=F,d;case Am:return d=n(13,A,m,L),d.elementType=Am,d.lanes=F,d;case fl:return d=n(19,A,m,L),d.elementType=fl,d.lanes=F,d;default:if(typeof d=="object"&&d!==null)switch(d.$$typeof){case xs:K=10;break e;case fh:K=9;break e;case If:K=11;break e;case wm:K=14;break e;case ia:K=16,C=null;break e}K=29,A=Error(i(130,d===null?"null":typeof d,"")),C=null}return m=n(K,A,m,L),m.elementType=d,m.type=C,m.lanes=F,m}function ys(d,m,A,C){return d=n(7,d,C,m),d.lanes=A,d}function zy(d,m,A){return d=n(6,d,null,m),d.lanes=A,d}function Gy(d){var m=n(18,null,null,0);return m.stateNode=d,m}function Hy(d,m,A){return m=n(4,d.children!==null?d.children:[],d.key,m),m.lanes=A,m.stateNode={containerInfo:d.containerInfo,pendingChildren:null,implementation:d.implementation},m}function r_(d,m,A,C,L,F,K,ce,Le){this.tag=1,this.containerInfo=d,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=ba,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=R(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=R(0),this.hiddenUpdates=R(null),this.identifierPrefix=C,this.onUncaughtError=L,this.onCaughtError=F,this.onRecoverableError=K,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=Le,this.incompleteTransitions=new Map}function oc(d,m,A,C,L,F,K,ce,Le,Je,ht,nt){return d=new r_(d,m,A,K,Le,Je,ht,nt,ce),m=1,F===!0&&(m|=24),F=n(3,null,null,m),d.current=F,F.stateNode=d,m=Ne(),m.refCount++,d.pooledCache=m,m.refCount++,F.memoizedState={element:C,isDehydrated:A,cache:m},li(F),d}function bm(d){return d?(d=_o,d):_o}function ch(d){var m=d._reactInternals;if(m===void 0)throw typeof d.render=="function"?Error(i(188)):(d=Object.keys(d).join(","),Error(i(268,d)));return d=o(m),d=d!==null?c(d):null,d===null?null:Lf(d.stateNode)}function Vy(d,m,A,C,L,F){L=bm(L),C.context===null?C.context=L:C.pendingContext=L,C=ja(m),C.payload={element:A},F=F===void 0?null:F,F!==null&&(C.callback=F),A=za(d,C,m),A!==null&&(Cr(A,d,m),Xl(A,d,m))}function uu(d,m){if(d=d.memoizedState,d!==null&&d.dehydrated!==null){var A=d.retryLane;d.retryLane=A!==0&&A=Je&&F>=nt&&L<=ht&&K<=Mt){d.splice(m,1);break}else if(C!==Je||A.width!==Le.width||MtK){if(!(F!==nt||A.height!==Le.height||htL)){Je>C&&(Le.width+=Je-C,Le.x=C),htF&&(Le.height+=nt-F,Le.y=F),MtA&&(A=ce)),ce ")+` - -No matching component was found for: - `)+d.join(" > ")}return null},pn.getPublicRootInstance=function(d){if(d=d.current,!d.child)return null;switch(d.child.tag){case 27:case 5:return Lf(d.child.stateNode);default:return d.child.stateNode}},pn.injectIntoDevTools=function(){var d={bundleType:0,version:qy,rendererPackageName:hh,currentDispatcherRef:Vt,reconcilerVersion:"19.2.0"};if(Bf!==null&&(d.rendererConfig=Bf),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")d=!1;else{var m=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(m.isDisabled||!m.supportsFiber)d=!0;else{try{Su=m.inject(d),Sa=m}catch{}d=!!m.checkDCE}}return d},pn.isAlreadyRendering=function(){return(Sn&6)!==0},pn.observeVisibleRects=function(d,m,A,C){if(!ui)throw Error(i(363));d=va(d,m);var L=Rm(d,A,C).disconnect;return{disconnect:function(){L()}}},pn.shouldError=function(){return null},pn.shouldSuspend=function(){return!1},pn.startHostTransition=function(d,m,A,C){if(d.tag!==5)throw Error(i(476));var L=O1(d).queue;R1(d,L,m,vu,A===null?r:function(){var F=O1(d);return F.next===null&&(F=d.alternate.memoizedState),Jd(d,F.next.queue,{},yr()),A(C)})},pn.updateContainer=function(d,m,A,C){var L=m.current,F=yr();return Vy(L,F,d,m,A,C),F},pn.updateContainerSync=function(d,m,A,C){return Vy(m.current,2,d,m,A,C),2},pn},t.exports.default=t.exports,Object.defineProperty(t.exports,"__esModule",{value:!0})})(jH)),jH.exports}var GH;function MDe(){return GH||(GH=1,UH.exports=wDe()),UH.exports}var EDe=MDe();const TDe=ADe(EDe);function CDe(t){const e=TDe(t);return e.injectIntoDevTools(),e}const xJ=0,zv={},RDe=/^three(?=[A-Z])/,MT=t=>`${t[0].toUpperCase()}${t.slice(1)}`;let ODe=0;const PDe=t=>typeof t=="function";function DDe(t){if(PDe(t)){const e=`${ODe++}`;return zv[e]=t,e}else Object.assign(zv,t)}function bJ(t,e){const n=MT(t),r=zv[n];if(t!=="primitive"&&!r)throw new Error(`R3F: ${n} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(t==="primitive"&&!e.object)throw new Error("R3F: Primitives without 'object' are invalid!");if(e.args!==void 0&&!Array.isArray(e.args))throw new Error("R3F: The args prop must be an array!")}function NDe(t,e,n){var r;return t=MT(t)in zv?t:t.replace(RDe,""),bJ(t,e),t==="primitive"&&(r=e.object)!=null&&r.__r3f&&delete e.object.__r3f,XM(e.object,n,t,e)}function IDe(t){if(!t.isHidden){var e;t.props.attach&&(e=t.parent)!=null&&e.object?YM(t.parent,t):es(t.object)&&(t.object.visible=!1),t.isHidden=!0,dy(t)}}function _J(t){if(t.isHidden){var e;t.props.attach&&(e=t.parent)!=null&&e.object?KM(t.parent,t):es(t.object)&&t.props.visible!==!1&&(t.object.visible=!0),t.isHidden=!1,dy(t)}}function Mk(t,e,n){const r=e.root.getState();if(!(!t.parent&&t.object!==r.scene)){if(!e.object){var i,a;const s=zv[MT(e.type)];e.object=(i=e.props.object)!=null?i:new s(...(a=e.props.args)!=null?a:[]),e.object.__r3f=e}if(yd(e.object,e.props),e.props.attach)KM(t,e);else if(es(e.object)&&es(t.object)){const s=t.object.children.indexOf(n?.object);if(n&&s!==-1){const o=t.object.children.indexOf(e.object);if(o!==-1){t.object.children.splice(o,1);const c=o{try{t.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT<"u"?e():mB.unstable_scheduleCallback(mB.unstable_IdlePriority,e)}}function vB(t,e,n){if(!e)return;e.parent=null;const r=t.children.indexOf(e);r!==-1&&t.children.splice(r,1),e.props.attach?YM(t,e):es(e.object)&&es(t.object)&&(t.object.remove(e.object),pDe(uJ(e),e.object));const i=e.props.dispose!==null&&n!==!1;for(let a=e.children.length-1;a>=0;a--){const s=e.children[a];vB(e,s,i)}e.children.length=0,delete e.object.__r3f,i&&e.type!=="primitive"&&e.object.type!=="Scene"&&SJ(e.object),n===void 0&&dy(e)}function BDe(t,e){for(const n of[t,t.alternate])if(n!==null)if(typeof n.ref=="function"){n.refCleanup==null||n.refCleanup();const r=n.ref(e);typeof r=="function"&&(n.refCleanup=r)}else n.ref&&(n.ref.current=e)}const zA=[];function LDe(){for(const[n]of zA){const r=n.parent;if(r){n.props.attach?YM(r,n):es(n.object)&&es(r.object)&&r.object.remove(n.object);for(const i of n.children)i.props.attach?YM(n,i):es(i.object)&&es(n.object)&&n.object.remove(i.object)}n.isHidden&&_J(n),n.object.__r3f&&delete n.object.__r3f,n.type!=="primitive"&&SJ(n.object)}for(const[n,r,i]of zA){n.props=r;const a=n.parent;if(a){var t,e;const s=zv[MT(n.type)];n.object=(t=n.props.object)!=null?t:new s(...(e=n.props.args)!=null?e:[]),n.object.__r3f=n,BDe(i,n.object),yd(n.object,n.props),n.props.attach?KM(a,n):es(n.object)&&es(a.object)&&a.object.add(n.object);for(const o of n.children)o.props.attach?KM(n,o):es(o.object)&&es(n.object)&&n.object.add(o.object);dy(n)}}zA.length=0}const LD=()=>{},VH={};let bA=xJ;const kDe=0,FDe=4,yB=CDe({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:NDe,removeChild:vB,appendChild:BD,appendInitialChild:BD,insertBefore:HH,appendChildToContainer(t,e){const n=t.getState().scene.__r3f;!e||!n||BD(n,e)},removeChildFromContainer(t,e){const n=t.getState().scene.__r3f;!e||!n||vB(n,e)},insertInContainerBefore(t,e,n){const r=t.getState().scene.__r3f;!e||!n||!r||HH(r,e,n)},getRootHostContext:()=>VH,getChildHostContext:()=>VH,commitUpdate(t,e,n,r,i){var a,s,o;bJ(e,r);let c=!1;if((t.type==="primitive"&&n.object!==r.object||((a=r.args)==null?void 0:a.length)!==((s=n.args)==null?void 0:s.length)||(o=r.args)!=null&&o.some((h,p)=>{var v;return h!==((v=n.args)==null?void 0:v[p])}))&&(c=!0),c)zA.push([t,{...r},i]);else{const h=uDe(t,r);Object.keys(h).length&&(Object.assign(t.props,h),yd(t.object,h))}(i.sibling===null||(i.flags&FDe)===kDe)&&LDe()},finalizeInitialChildren:()=>!1,commitMount(){},getPublicInstance:t=>t?.object,prepareForCommit:()=>null,preparePortalMount:t=>XM(t.getState().scene,t,"",{}),resetAfterCommit:()=>{},shouldSetTextContent:()=>!1,clearContainer:()=>!1,hideInstance:IDe,unhideInstance:_J,createTextInstance:LD,hideTextInstance:LD,unhideTextInstance:LD,scheduleTimeout:typeof setTimeout=="function"?setTimeout:void 0,cancelTimeout:typeof clearTimeout=="function"?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=>null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=>null,shouldAttemptEagerTransition:()=>!1,trackSchedulerEvent:()=>{},resolveEventType:()=>null,resolveEventTimeStamp:()=>-1.1,requestPostPaintCallback(){},maySuspendCommit:()=>!1,preloadInstance:()=>!0,suspendInstance(){},waitForCommitToBeReady:()=>null,NotPendingTransition:null,HostTransitionContext:j.createContext(null),setCurrentUpdatePriority(t){bA=t},getCurrentUpdatePriority(){return bA},resolveUpdatePriority(){var t;if(bA!==xJ)return bA;switch(typeof window<"u"&&((t=window.event)==null?void 0:t.type)){case"click":case"contextmenu":case"dblclick":case"pointercancel":case"pointerdown":case"pointerup":return _De;case"pointermove":case"pointerout":case"pointerover":case"pointerenter":case"pointerleave":case"wheel":return xDe;default:return bDe}},resetFormInstance(){},rendererPackageName:"@react-three/fiber",rendererVersion:SDe.version,applyViewTransitionName(t,e,n){},restoreViewTransitionName(t,e){},cancelViewTransitionName(t,e,n){},cancelRootViewTransitionName(t){},restoreRootViewTransitionName(t){},InstanceMeasurement:null,measureInstance:t=>null,wasInstanceInViewport:t=>!0,hasInstanceChanged:(t,e)=>!1,hasInstanceAffectedParent:(t,e)=>!1,suspendOnActiveViewTransition(t,e){},startGestureTransition:()=>null,startViewTransition:()=>null,stopViewTransition(t){},createViewTransitionInstance:t=>null,getCurrentGestureOffset(t){throw new Error("startGestureTransition is not yet supported in react-three-fiber.")},cloneMutableInstance(t,e){return t},cloneMutableTextInstance(t){return t},cloneRootViewTransitionContainer(t){throw new Error("Not implemented.")},removeRootViewTransitionClone(t,e){throw new Error("Not implemented.")},createFragmentInstance:t=>null,updateFragmentInstanceFiber(t,e){},commitNewChildToFragmentInstance(t,e){},deleteChildFromFragmentInstance(t,e){},measureClonedInstance:t=>null,maySuspendCommitOnUpdate:(t,e,n)=>!1,maySuspendCommitInSyncRender:(t,e)=>!1,startSuspendingCommit:()=>null,getSuspendedCommitReason:(t,e)=>null}),Ip=new Map,Cg={objects:"shallow",strict:!1};function UDe(t,e){if(!e&&typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement&&t.parentElement){const{width:n,height:r,top:i,left:a}=t.parentElement.getBoundingClientRect();return{width:n,height:r,top:i,left:a}}else if(!e&&typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas)return{width:t.width,height:t.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...e}}function jDe(t){const e=Ip.get(t),n=e?.fiber,r=e?.store;e&&console.warn("R3F.createRoot should only be called once!");const i=typeof reportError=="function"?reportError:console.error,a=r||gDe(_B,qH),s=n||yB.createContainer(a,yDe,null,!1,null,"",i,i,i,null);e||Ip.set(t,{fiber:s,store:a});let o,c,u=!1,h=null;return{async configure(p={}){let v;h=new Promise(X=>v=X);let{gl:y,size:b,scene:w,events:_,onCreated:S,shadows:E=!1,linear:T=!1,flat:P=!1,legacy:R=!1,orthographic:D=!1,frameloop:I="always",dpr:k=[1,2],performance:B,raycaster:U,camera:z,onPointerMissed:q}=p,W=a.getState(),ee=W.gl;if(!W.gl){const X={canvas:t,powerPreference:"high-performance",antialias:!0,alpha:!0},ae=typeof y=="function"?await y(X):y;kH(ae)?ee=ae:ee=new iJ({...X,...y}),W.set({gl:ee})}let Q=W.raycaster;Q||W.set({raycaster:Q=new YY});const{params:V,...$}=U||{};if(Ur.equ($,Q,Cg)||yd(Q,{...$}),Ur.equ(V,Q.params,Cg)||yd(Q,{params:{...Q.params,...V}}),!W.camera||W.camera===c&&!Ur.equ(c,z,Cg)){c=z;const X=z?.isCamera,ae=X?z:D?new qo(0,0,0,0,.1,1e3):new jr(75,0,.1,1e3);X||(ae.position.z=5,z&&(yd(ae,z),ae.manual||("aspect"in z||"left"in z||"right"in z||"bottom"in z||"top"in z)&&(ae.manual=!0,ae.updateProjectionMatrix())),!W.camera&&!(z!=null&&z.rotation)&&ae.lookAt(0,0,0)),W.set({camera:ae}),Q.camera=ae}if(!W.scene){let X;w!=null&&w.isScene?(X=w,XM(X,a,"",{})):(X=new W5,XM(X,a,"",{}),w&&yd(X,w)),W.set({scene:X})}_&&!W.events.handlers&&W.set({events:_(a)});const Y=UDe(t,b);if(Ur.equ(Y,W.size,Cg)||W.setSize(Y.width,Y.height,Y.top,Y.left),k&&W.viewport.dpr!==hJ(k)&&W.setDpr(k),W.frameloop!==I&&W.setFrameloop(I),W.onPointerMissed||W.set({onPointerMissed:q}),B&&!Ur.equ(B,W.performance,Cg)&&W.set(X=>({performance:{...X.performance,...B}})),!W.xr){var ie;const X=(Se,$e)=>{const me=a.getState();me.frameloop!=="never"&&qH(Se,!0,me,$e)},ae=()=>{const Se=a.getState();Se.gl.xr.enabled=Se.gl.xr.isPresenting,Se.gl.xr.setAnimationLoop(Se.gl.xr.isPresenting?X:null),Se.gl.xr.isPresenting||_B(Se)},ue={connect(){const Se=a.getState().gl;Se.xr.addEventListener("sessionstart",ae),Se.xr.addEventListener("sessionend",ae)},disconnect(){const Se=a.getState().gl;Se.xr.removeEventListener("sessionstart",ae),Se.xr.removeEventListener("sessionend",ae)}};typeof((ie=ee.xr)==null?void 0:ie.addEventListener)=="function"&&ue.connect(),W.set({xr:ue})}if(ee.shadowMap){const X=ee.shadowMap.enabled,ae=ee.shadowMap.type;if(ee.shadowMap.enabled=!!E,Ur.boo(E))ee.shadowMap.type=Ix;else if(Ur.str(E)){var de;const ue={basic:bK,percentage:Yg,soft:Ix,variance:cp};ee.shadowMap.type=(de=ue[E])!=null?de:Ix}else Ur.obj(E)&&Object.assign(ee.shadowMap,E);(X!==ee.shadowMap.enabled||ae!==ee.shadowMap.type)&&(ee.shadowMap.needsUpdate=!0)}return Fn.enabled=!R,u||(ee.outputColorSpace=T?Od:Pa,ee.toneMapping=P?Wo:GE),W.legacy!==R&&W.set(()=>({legacy:R})),W.linear!==T&&W.set(()=>({linear:T})),W.flat!==P&&W.set(()=>({flat:P})),y&&!Ur.fun(y)&&!kH(y)&&!Ur.equ(y,ee,Cg)&&yd(ee,y),o=S,u=!0,v(),this},render(p){return!u&&!h&&this.configure(),h.then(()=>{yB.updateContainer(M.jsx(zDe,{store:a,children:p,onCreated:o,rootElement:t}),s,null,()=>{})}),a},unmount(){AJ(t)}}}function zDe({store:t,children:e,onCreated:n,rootElement:r}){return v1(()=>{const i=t.getState();i.set(a=>({internal:{...a.internal,active:!0}})),n&&n(i),t.getState().events.connected||i.events.connect==null||i.events.connect(r)},[]),M.jsx(gJ.Provider,{value:t,children:e})}function AJ(t,e){const n=Ip.get(t),r=n?.fiber;if(r){const i=n?.store.getState();i&&(i.internal.active=!1),yB.updateContainer(null,r,null,()=>{i&&setTimeout(()=>{try{var a,s,o,c;i.events.disconnect==null||i.events.disconnect(),(a=i.gl)==null||(s=a.renderLists)==null||s.dispose==null||s.dispose(),(o=i.gl)==null||o.forceContextLoss==null||o.forceContextLoss(),(c=i.gl)!=null&&c.xr&&i.xr.disconnect(),oDe(i.scene),Ip.delete(t)}catch{}},500)})}}const GDe=new Set,HDe=new Set,VDe=new Set;function kD(t,e){if(t.size)for(const{callback:n}of t.values())n(e)}function Gx(t,e){switch(t){case"before":return kD(GDe,e);case"after":return kD(HDe,e);case"tail":return kD(VDe,e)}}let FD,UD;function xB(t,e,n){let r=e.clock.getDelta();e.frameloop==="never"&&typeof t=="number"&&(r=t-e.clock.elapsedTime,e.clock.oldTime=e.clock.elapsedTime,e.clock.elapsedTime=t),FD=e.internal.subscribers;for(let i=0;i0)&&!((e=Rg.gl.xr)!=null&&e.isPresenting)&&(jD+=xB(t,Rg))}if(bB=!1,Gx("after",t),jD===0)return Gx("tail",t),JM=!1,cancelAnimationFrame(WH)}function _B(t,e=1){var n;if(!t)return Ip.forEach(r=>_B(r.store.getState(),e));(n=t.gl.xr)!=null&&n.isPresenting||!t.internal.active||t.frameloop==="never"||(e>1?t.internal.frames=Math.min(60,t.internal.frames+e):bB?t.internal.frames=2:t.internal.frames=1,JM||(JM=!0,requestAnimationFrame(wJ)))}function qH(t,e=!0,n,r){if(e&&Gx("before",t),n)xB(t,n,r);else for(const i of Ip.values())xB(t,i.store.getState());e&&Gx("after",t)}const zD={onClick:["click",!1],onContextMenu:["contextmenu",!1],onDoubleClick:["dblclick",!1],onWheel:["wheel",!0],onPointerDown:["pointerdown",!0],onPointerUp:["pointerup",!0],onPointerLeave:["pointerleave",!0],onPointerMove:["pointermove",!0],onPointerCancel:["pointercancel",!0],onLostPointerCapture:["lostpointercapture",!0]};function WDe(t){const{handlePointer:e}=mDe(t);return{priority:1,enabled:!0,compute(n,r,i){r.pointer.set(n.offsetX/r.size.width*2-1,-(n.offsetY/r.size.height)*2+1),r.raycaster.setFromCamera(r.pointer,r.camera)},connected:void 0,handlers:Object.keys(zD).reduce((n,r)=>({...n,[r]:e(r)}),{}),update:()=>{var n;const{events:r,internal:i}=t.getState();(n=i.lastEvent)!=null&&n.current&&r.handlers&&r.handlers.onPointerMove(i.lastEvent.current)},connect:n=>{const{set:r,events:i}=t.getState();if(i.disconnect==null||i.disconnect(),r(a=>({events:{...a.events,connected:n}})),i.handlers)for(const a in i.handlers){const s=i.handlers[a],[o,c]=zD[a];n.addEventListener(o,s,{passive:c})}},disconnect:()=>{const{set:n,events:r}=t.getState();if(r.connected){if(r.handlers)for(const i in r.handlers){const a=r.handlers[i],[s]=zD[i];r.connected.removeEventListener(s,a)}n(i=>({events:{...i.events,connected:void 0}}))}}}}function $H(t,e){let n;return(...r)=>{window.clearTimeout(n),n=window.setTimeout(()=>t(...r),e)}}function qDe({debounce:t,scroll:e,polyfill:n,offsetSize:r}={debounce:0,scroll:!1,offsetSize:!1}){const i=n||(typeof window>"u"?class{}:window.ResizeObserver);if(!i)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[a,s]=j.useState({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),o=j.useRef({element:null,scrollContainers:null,resizeObserver:null,lastBounds:a,orientationHandler:null}),c=t?typeof t=="number"?t:t.scroll:null,u=t?typeof t=="number"?t:t.resize:null,h=j.useRef(!1);j.useEffect(()=>(h.current=!0,()=>{h.current=!1}));const[p,v,y]=j.useMemo(()=>{const S=()=>{if(!o.current.element)return;const{left:E,top:T,width:P,height:R,bottom:D,right:I,x:k,y:B}=o.current.element.getBoundingClientRect(),U={left:E,top:T,width:P,height:R,bottom:D,right:I,x:k,y:B};o.current.element instanceof HTMLElement&&r&&(U.height=o.current.element.offsetHeight,U.width=o.current.element.offsetWidth),Object.freeze(U),h.current&&!YDe(o.current.lastBounds,U)&&s(o.current.lastBounds=U)};return[S,u?$H(S,u):S,c?$H(S,c):S]},[s,r,c,u]);function b(){o.current.scrollContainers&&(o.current.scrollContainers.forEach(S=>S.removeEventListener("scroll",y,!0)),o.current.scrollContainers=null),o.current.resizeObserver&&(o.current.resizeObserver.disconnect(),o.current.resizeObserver=null),o.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",o.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",o.current.orientationHandler))}function w(){o.current.element&&(o.current.resizeObserver=new i(y),o.current.resizeObserver.observe(o.current.element),e&&o.current.scrollContainers&&o.current.scrollContainers.forEach(S=>S.addEventListener("scroll",y,{capture:!0,passive:!0})),o.current.orientationHandler=()=>{y()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",o.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",o.current.orientationHandler))}const _=S=>{!S||S===o.current.element||(b(),o.current.element=S,o.current.scrollContainers=MJ(S),w())};return XDe(y,!!e),$De(v),j.useEffect(()=>{b(),w()},[e,y,v]),j.useEffect(()=>b,[]),[_,a,p]}function $De(t){j.useEffect(()=>{const e=t;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[t])}function XDe(t,e){j.useEffect(()=>{if(e){const n=t;return window.addEventListener("scroll",n,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",n,!0)}}},[t,e])}function MJ(t){const e=[];if(!t||t===document.body)return e;const{overflow:n,overflowX:r,overflowY:i}=window.getComputedStyle(t);return[n,r,i].some(a=>a==="auto"||a==="scroll")&&e.push(t),[...e,...MJ(t.parentElement)]}const KDe=["x","y","top","bottom","left","right","width","height"],YDe=(t,e)=>KDe.every(n=>t[n]===e[n]);function JDe({ref:t,children:e,fallback:n,resize:r,style:i,gl:a,events:s=WDe,eventSource:o,eventPrefix:c,shadows:u,linear:h,flat:p,legacy:v,orthographic:y,frameloop:b,dpr:w,performance:_,raycaster:S,camera:E,scene:T,onPointerMissed:P,onCreated:R,...D}){j.useMemo(()=>DDe(k3e),[]);const I=rDe(),[k,B]=qDe({scroll:!0,debounce:{scroll:50,resize:0},...r}),U=j.useRef(null),z=j.useRef(null);j.useImperativeHandle(t,()=>U.current);const q=dJ(P),[W,ee]=j.useState(!1),[Q,V]=j.useState(!1);if(W)throw W;if(Q)throw Q;const $=j.useRef(null);v1(()=>{const ie=U.current;if(B.width>0&&B.height>0&&ie){$.current||($.current=jDe(ie));async function de(){await $.current.configure({gl:a,scene:T,events:s,shadows:u,linear:h,flat:p,legacy:v,orthographic:y,frameloop:b,dpr:w,performance:_,raycaster:S,camera:E,size:B,onPointerMissed:(...X)=>q.current==null?void 0:q.current(...X),onCreated:X=>{X.events.connect==null||X.events.connect(o?tDe(o)?o.current:o:z.current),c&&X.setEvents({compute:(ae,ue)=>{const Se=ae[c+"X"],$e=ae[c+"Y"];ue.pointer.set(Se/ue.size.width*2-1,-($e/ue.size.height)*2+1),ue.raycaster.setFromCamera(ue.pointer,ue.camera)}}),R?.(X)}}),$.current.render(M.jsx(I,{children:M.jsx(aDe,{set:V,children:M.jsx(j.Suspense,{fallback:M.jsx(iDe,{set:ee}),children:e??null})})}))}de()}}),j.useEffect(()=>{const ie=U.current;if(ie)return()=>AJ(ie)},[]);const Y=o?"none":"auto";return M.jsx("div",{ref:z,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:Y,...i},...D,children:M.jsx("div",{ref:k,style:{width:"100%",height:"100%"},children:M.jsx("canvas",{ref:U,style:{display:"block"},children:n})})})}function EJ(t){return M.jsx(lJ,{children:M.jsx(JDe,{...t})})}const x1=new ne,Ek=new ne,ZDe=new ne,XH=new Ve;function QDe(t,e,n){const r=x1.setFromMatrixPosition(t.matrixWorld);r.project(e);const i=n.width/2,a=n.height/2;return[r.x*i+i,-(r.y*a)+a]}function eNe(t,e){const n=x1.setFromMatrixPosition(t.matrixWorld),r=Ek.setFromMatrixPosition(e.matrixWorld),i=n.sub(r),a=e.getWorldDirection(ZDe);return i.angleTo(a)>Math.PI/2}function tNe(t,e,n,r){const i=x1.setFromMatrixPosition(t.matrixWorld),a=i.clone();a.project(e),XH.set(a.x,a.y),n.setFromCamera(XH,e);const s=n.intersectObjects(r,!0);if(s.length){const o=s[0].distance;return i.distanceTo(n.ray.origin)Math.abs(t)<1e-10?0:t;function TJ(t,e,n=""){let r="matrix3d(";for(let i=0;i!==16;i++)r+=SB(e[i]*t.elements[i])+(i!==15?",":")");return n+r}const iNe=(t=>e=>TJ(e,t))([1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1]),aNe=(t=>(e,n)=>TJ(e,t(n),"translate(-50%,-50%)"))(t=>[1/t,1/t,1/t,1,-1/t,-1/t,-1/t,-1,1/t,1/t,1/t,1,1,1,1,1]);function sNe(t){return t&&typeof t=="object"&&"current"in t}const oNe=j.forwardRef(({children:t,eps:e=.001,style:n,className:r,prepend:i,center:a,fullscreen:s,portal:o,distanceFactor:c,sprite:u=!1,transform:h=!1,occlude:p,onOcclude:v,castShadow:y,receiveShadow:b,material:w,geometry:_,zIndexRange:S=[16777271,0],calculatePosition:E=QDe,as:T="div",wrapperClass:P,pointerEvents:R="auto",...D},I)=>{const{gl:k,camera:B,scene:U,size:z,raycaster:q,events:W,viewport:ee}=Cl(),[Q]=j.useState(()=>document.createElement(T)),V=j.useRef(null),$=j.useRef(null),Y=j.useRef(0),ie=j.useRef([0,0]),de=j.useRef(null),X=j.useRef(null),ae=o?.current||W.connected||k.domElement.parentNode,ue=j.useRef(null),Se=j.useRef(!1),$e=j.useMemo(()=>p&&p!=="blending"||Array.isArray(p)&&p.length&&sNe(p[0]),[p]);j.useLayoutEffect(()=>{const Fe=k.domElement;p&&p==="blending"?(Fe.style.zIndex=`${Math.floor(S[0]/2)}`,Fe.style.position="absolute",Fe.style.pointerEvents="none"):(Fe.style.zIndex=null,Fe.style.position=null,Fe.style.pointerEvents=null)},[p]),j.useLayoutEffect(()=>{if($.current){const Fe=V.current=PV.createRoot(Q);if(U.updateMatrixWorld(),h)Q.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const Xe=E($.current,B,z);Q.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${Xe[0]}px,${Xe[1]}px,0);transform-origin:0 0;`}return ae&&(i?ae.prepend(Q):ae.appendChild(Q)),()=>{ae&&ae.removeChild(Q),Fe.unmount()}}},[ae,h]),j.useLayoutEffect(()=>{P&&(Q.className=P)},[P]);const me=j.useMemo(()=>h?{position:"absolute",top:0,left:0,width:z.width,height:z.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:a?"translate3d(-50%,-50%,0)":"none",...s&&{top:-z.height/2,left:-z.width/2,width:z.width,height:z.height},...n},[n,a,s,z,h]),ve=j.useMemo(()=>({position:"absolute",pointerEvents:R}),[R]);j.useLayoutEffect(()=>{if(Se.current=!1,h){var Fe;(Fe=V.current)==null||Fe.render(j.createElement("div",{ref:de,style:me},j.createElement("div",{ref:X,style:ve},j.createElement("div",{ref:I,className:r,style:n,children:t}))))}else{var Xe;(Xe=V.current)==null||Xe.render(j.createElement("div",{ref:I,style:me,className:r,children:t}))}});const We=j.useRef(!0);wk(Fe=>{if($.current){B.updateMatrixWorld(),$.current.updateWorldMatrix(!0,!1);const Xe=h?ie.current:E($.current,B,z);if(h||Math.abs(Y.current-B.zoom)>e||Math.abs(ie.current[0]-Xe[0])>e||Math.abs(ie.current[1]-Xe[1])>e){const Re=eNe($.current,B);let ot=!1;$e&&(Array.isArray(p)?ot=p.map(Ye=>Ye.current):p!=="blending"&&(ot=[U]));const we=We.current;if(ot){const Ye=tNe($.current,B,q,ot);We.current=Ye&&!Re}else We.current=!Re;we!==We.current&&(v?v(!We.current):Q.style.display=We.current?"block":"none");const Ue=Math.floor(S[0]/2),Be=p?$e?[S[0],Ue]:[Ue-1,0]:S;if(Q.style.zIndex=`${rNe($.current,B,Be)}`,h){const[Ye,re]=[z.width/2,z.height/2],At=B.projectionMatrix.elements[5]*re,{isOrthographicCamera:ft,top:Et,left:Ze,bottom:te,right:H}=B,he=iNe(B.matrixWorldInverse),Ne=ft?`scale(${At})translate(${SB(-(H+Ze)/2)}px,${SB((Et+te)/2)}px)`:`translateZ(${At}px)`;let je=$.current.matrixWorld;u&&(je=B.matrixWorldInverse.clone().transpose().copyPosition(je).scale($.current.scale),je.elements[3]=je.elements[7]=je.elements[11]=0,je.elements[15]=1),Q.style.width=z.width+"px",Q.style.height=z.height+"px",Q.style.perspective=ft?"":`${At}px`,de.current&&X.current&&(de.current.style.transform=`${Ne}${he}translate(${Ye}px,${re}px)`,X.current.style.transform=aNe(je,1/((c||10)/400)))}else{const Ye=c===void 0?1:nNe($.current,B)*c;Q.style.transform=`translate3d(${Xe[0]}px,${Xe[1]}px,0) scale(${Ye})`}ie.current=Xe,Y.current=B.zoom}}if(!$e&&ue.current&&!Se.current)if(h){if(de.current){const Xe=de.current.children[0];if(Xe!=null&&Xe.clientWidth&&Xe!=null&&Xe.clientHeight){const{isOrthographicCamera:Re}=B;if(Re||_)D.scale&&(Array.isArray(D.scale)?D.scale instanceof ne?ue.current.scale.copy(D.scale.clone().divideScalar(1)):ue.current.scale.set(1/D.scale[0],1/D.scale[1],1/D.scale[2]):ue.current.scale.setScalar(1/D.scale));else{const ot=(c||10)/400,we=Xe.clientWidth*ot,Ue=Xe.clientHeight*ot;ue.current.scale.set(we,Ue,1)}Se.current=!0}}}else{const Xe=Q.children[0];if(Xe!=null&&Xe.clientWidth&&Xe!=null&&Xe.clientHeight){const Re=1/ee.factor,ot=Xe.clientWidth*Re,we=Xe.clientHeight*Re;ue.current.scale.set(ot,we,1),Se.current=!0}ue.current.lookAt(Fe.camera.position)}});const _e=j.useMemo(()=>({vertexShader:h?void 0:` - /* - This shader is from the THREE's SpriteMaterial. - We need to turn the backing plane into a Sprite - (make it always face the camera) if "transfrom" - is false. - */ - #include - - void main() { - vec2 center = vec2(0., 1.); - float rotation = 0.0; - - // This is somewhat arbitrary, but it seems to work well - // Need to figure out how to derive this dynamically if it even matters - float size = 0.03; - - vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); - vec2 scale; - scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); - scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); - - bool isPerspective = isPerspectiveMatrix( projectionMatrix ); - if ( isPerspective ) scale *= - mvPosition.z; - - vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; - vec2 rotatedPosition; - rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; - rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; - mvPosition.xy += rotatedPosition; - - gl_Position = projectionMatrix * mvPosition; - } - `,fragmentShader:` - void main() { - gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); - } - `}),[h]);return j.createElement("group",Iw({},D,{ref:$}),p&&!$e&&j.createElement("mesh",{castShadow:y,receiveShadow:b,ref:ue},_||j.createElement("planeGeometry",null),w||j.createElement("shaderMaterial",{side:Fo,vertexShader:_e.vertexShader,fragmentShader:_e.fragmentShader})))}),lNe=parseInt(s1.replace(/\D+/g,""));function KH(t,e){if(e===WK)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),t;if(e===HM||e===U5){let n=t.getIndex();if(n===null){const s=[],o=t.getAttribute("position");if(o!==void 0){for(let c=0;ce in t?cNe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,fNe=(t,e,n)=>(uNe(t,e+"",n),n);class dNe{constructor(){fNe(this,"_listeners")}addEventListener(e,n){this._listeners===void 0&&(this._listeners={});const r=this._listeners;r[e]===void 0&&(r[e]=[]),r[e].indexOf(n)===-1&&r[e].push(n)}hasEventListener(e,n){if(this._listeners===void 0)return!1;const r=this._listeners;return r[e]!==void 0&&r[e].indexOf(n)!==-1}removeEventListener(e,n){if(this._listeners===void 0)return;const i=this._listeners[e];if(i!==void 0){const a=i.indexOf(n);a!==-1&&i.splice(a,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const r=this._listeners[e.type];if(r!==void 0){e.target=this;const i=r.slice(0);for(let a=0,s=i.length;ae in t?hNe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Yt=(t,e,n)=>(pNe(t,typeof e!="symbol"?e+"":e,n),n);const _A=new Hp,YH=new ju,mNe=Math.cos(70*(Math.PI/180)),JH=(t,e)=>(t%e+e)%e;let gNe=class extends dNe{constructor(e,n){super(),Yt(this,"object"),Yt(this,"domElement"),Yt(this,"enabled",!0),Yt(this,"target",new ne),Yt(this,"minDistance",0),Yt(this,"maxDistance",1/0),Yt(this,"minZoom",0),Yt(this,"maxZoom",1/0),Yt(this,"minPolarAngle",0),Yt(this,"maxPolarAngle",Math.PI),Yt(this,"minAzimuthAngle",-1/0),Yt(this,"maxAzimuthAngle",1/0),Yt(this,"enableDamping",!1),Yt(this,"dampingFactor",.05),Yt(this,"enableZoom",!0),Yt(this,"zoomSpeed",1),Yt(this,"enableRotate",!0),Yt(this,"rotateSpeed",1),Yt(this,"enablePan",!0),Yt(this,"panSpeed",1),Yt(this,"screenSpacePanning",!0),Yt(this,"keyPanSpeed",7),Yt(this,"zoomToCursor",!1),Yt(this,"autoRotate",!1),Yt(this,"autoRotateSpeed",2),Yt(this,"reverseOrbit",!1),Yt(this,"reverseHorizontalOrbit",!1),Yt(this,"reverseVerticalOrbit",!1),Yt(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),Yt(this,"mouseButtons",{LEFT:Cc.ROTATE,MIDDLE:Cc.DOLLY,RIGHT:Cc.PAN}),Yt(this,"touches",{ONE:Zh.ROTATE,TWO:Zh.DOLLY_PAN}),Yt(this,"target0"),Yt(this,"position0"),Yt(this,"zoom0"),Yt(this,"_domElementKeyEvents",null),Yt(this,"getPolarAngle"),Yt(this,"getAzimuthalAngle"),Yt(this,"setPolarAngle"),Yt(this,"setAzimuthalAngle"),Yt(this,"getDistance"),Yt(this,"getZoomScale"),Yt(this,"listenToKeyEvents"),Yt(this,"stopListenToKeyEvents"),Yt(this,"saveState"),Yt(this,"reset"),Yt(this,"update"),Yt(this,"connect"),Yt(this,"dispose"),Yt(this,"dollyIn"),Yt(this,"dollyOut"),Yt(this,"getScale"),Yt(this,"setScale"),this.object=e,this.domElement=n,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>h.phi,this.getAzimuthalAngle=()=>h.theta,this.setPolarAngle=se=>{let Ae=JH(se,2*Math.PI),dt=h.phi;dt<0&&(dt+=2*Math.PI),Ae<0&&(Ae+=2*Math.PI);let oe=Math.abs(Ae-dt);2*Math.PI-oe{let Ae=JH(se,2*Math.PI),dt=h.theta;dt<0&&(dt+=2*Math.PI),Ae<0&&(Ae+=2*Math.PI);let oe=Math.abs(Ae-dt);2*Math.PI-oer.object.position.distanceTo(r.target),this.listenToKeyEvents=se=>{se.addEventListener("keydown",Ie),this._domElementKeyEvents=se},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",Ie),this._domElementKeyEvents=null},this.saveState=()=>{r.target0.copy(r.target),r.position0.copy(r.object.position),r.zoom0=r.object.zoom},this.reset=()=>{r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.zoom=r.zoom0,r.object.updateProjectionMatrix(),r.dispatchEvent(i),r.update(),c=o.NONE},this.update=(()=>{const se=new ne,Ae=new ne(0,1,0),dt=new gi().setFromUnitVectors(e.up,Ae),oe=dt.clone().invert(),it=new ne,et=new gi,pt=2*Math.PI;return function(){const He=r.object.position;dt.setFromUnitVectors(e.up,Ae),oe.copy(dt).invert(),se.copy(He).sub(r.target),se.applyQuaternion(dt),h.setFromVector3(se),r.autoRotate&&c===o.NONE&&ee(q()),r.enableDamping?(h.theta+=p.theta*r.dampingFactor,h.phi+=p.phi*r.dampingFactor):(h.theta+=p.theta,h.phi+=p.phi);let at=r.minAzimuthAngle,jt=r.maxAzimuthAngle;isFinite(at)&&isFinite(jt)&&(at<-Math.PI?at+=pt:at>Math.PI&&(at-=pt),jt<-Math.PI?jt+=pt:jt>Math.PI&&(jt-=pt),at<=jt?h.theta=Math.max(at,Math.min(jt,h.theta)):h.theta=h.theta>(at+jt)/2?Math.max(at,h.theta):Math.min(jt,h.theta)),h.phi=Math.max(r.minPolarAngle,Math.min(r.maxPolarAngle,h.phi)),h.makeSafe(),r.enableDamping===!0?r.target.addScaledVector(y,r.dampingFactor):r.target.add(y),r.zoomToCursor&&B||r.object.isOrthographicCamera?h.radius=ue(h.radius):h.radius=ue(h.radius*v),se.setFromSpherical(h),se.applyQuaternion(oe),He.copy(r.target).add(se),r.object.matrixAutoUpdate||r.object.updateMatrix(),r.object.lookAt(r.target),r.enableDamping===!0?(p.theta*=1-r.dampingFactor,p.phi*=1-r.dampingFactor,y.multiplyScalar(1-r.dampingFactor)):(p.set(0,0,0),y.set(0,0,0));let un=!1;if(r.zoomToCursor&&B){let hn=null;if(r.object instanceof jr&&r.object.isPerspectiveCamera){const Mr=se.length();hn=ue(Mr*v);const oi=Mr-hn;r.object.position.addScaledVector(I,oi),r.object.updateMatrixWorld()}else if(r.object.isOrthographicCamera){const Mr=new ne(k.x,k.y,0);Mr.unproject(r.object),r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/v)),r.object.updateProjectionMatrix(),un=!0;const oi=new ne(k.x,k.y,0);oi.unproject(r.object),r.object.position.sub(oi).add(Mr),r.object.updateMatrixWorld(),hn=se.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),r.zoomToCursor=!1;hn!==null&&(r.screenSpacePanning?r.target.set(0,0,-1).transformDirection(r.object.matrix).multiplyScalar(hn).add(r.object.position):(_A.origin.copy(r.object.position),_A.direction.set(0,0,-1).transformDirection(r.object.matrix),Math.abs(r.object.up.dot(_A.direction))u||8*(1-et.dot(r.object.quaternion))>u?(r.dispatchEvent(i),it.copy(r.object.position),et.copy(r.object.quaternion),un=!1,!0):!1}})(),this.connect=se=>{r.domElement=se,r.domElement.style.touchAction="none",r.domElement.addEventListener("contextmenu",Tt),r.domElement.addEventListener("pointerdown",Ze),r.domElement.addEventListener("pointercancel",H),r.domElement.addEventListener("wheel",je)},this.dispose=()=>{var se,Ae,dt,oe,it,et;r.domElement&&(r.domElement.style.touchAction="auto"),(se=r.domElement)==null||se.removeEventListener("contextmenu",Tt),(Ae=r.domElement)==null||Ae.removeEventListener("pointerdown",Ze),(dt=r.domElement)==null||dt.removeEventListener("pointercancel",H),(oe=r.domElement)==null||oe.removeEventListener("wheel",je),(it=r.domElement)==null||it.ownerDocument.removeEventListener("pointermove",te),(et=r.domElement)==null||et.ownerDocument.removeEventListener("pointerup",H),r._domElementKeyEvents!==null&&r._domElementKeyEvents.removeEventListener("keydown",Ie)};const r=this,i={type:"change"},a={type:"start"},s={type:"end"},o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let c=o.NONE;const u=1e-6,h=new uB,p=new uB;let v=1;const y=new ne,b=new Ve,w=new Ve,_=new Ve,S=new Ve,E=new Ve,T=new Ve,P=new Ve,R=new Ve,D=new Ve,I=new ne,k=new Ve;let B=!1;const U=[],z={};function q(){return 2*Math.PI/60/60*r.autoRotateSpeed}function W(){return Math.pow(.95,r.zoomSpeed)}function ee(se){r.reverseOrbit||r.reverseHorizontalOrbit?p.theta+=se:p.theta-=se}function Q(se){r.reverseOrbit||r.reverseVerticalOrbit?p.phi+=se:p.phi-=se}const V=(()=>{const se=new ne;return function(dt,oe){se.setFromMatrixColumn(oe,0),se.multiplyScalar(-dt),y.add(se)}})(),$=(()=>{const se=new ne;return function(dt,oe){r.screenSpacePanning===!0?se.setFromMatrixColumn(oe,1):(se.setFromMatrixColumn(oe,0),se.crossVectors(r.object.up,se)),se.multiplyScalar(dt),y.add(se)}})(),Y=(()=>{const se=new ne;return function(dt,oe){const it=r.domElement;if(it&&r.object instanceof jr&&r.object.isPerspectiveCamera){const et=r.object.position;se.copy(et).sub(r.target);let pt=se.length();pt*=Math.tan(r.object.fov/2*Math.PI/180),V(2*dt*pt/it.clientHeight,r.object.matrix),$(2*oe*pt/it.clientHeight,r.object.matrix)}else it&&r.object instanceof qo&&r.object.isOrthographicCamera?(V(dt*(r.object.right-r.object.left)/r.object.zoom/it.clientWidth,r.object.matrix),$(oe*(r.object.top-r.object.bottom)/r.object.zoom/it.clientHeight,r.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}})();function ie(se){r.object instanceof jr&&r.object.isPerspectiveCamera||r.object instanceof qo&&r.object.isOrthographicCamera?v=se:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function de(se){ie(v/se)}function X(se){ie(v*se)}function ae(se){if(!r.zoomToCursor||!r.domElement)return;B=!0;const Ae=r.domElement.getBoundingClientRect(),dt=se.clientX-Ae.left,oe=se.clientY-Ae.top,it=Ae.width,et=Ae.height;k.x=dt/it*2-1,k.y=-(oe/et)*2+1,I.set(k.x,k.y,1).unproject(r.object).sub(r.object.position).normalize()}function ue(se){return Math.max(r.minDistance,Math.min(r.maxDistance,se))}function Se(se){b.set(se.clientX,se.clientY)}function $e(se){ae(se),P.set(se.clientX,se.clientY)}function me(se){S.set(se.clientX,se.clientY)}function ve(se){w.set(se.clientX,se.clientY),_.subVectors(w,b).multiplyScalar(r.rotateSpeed);const Ae=r.domElement;Ae&&(ee(2*Math.PI*_.x/Ae.clientHeight),Q(2*Math.PI*_.y/Ae.clientHeight)),b.copy(w),r.update()}function We(se){R.set(se.clientX,se.clientY),D.subVectors(R,P),D.y>0?de(W()):D.y<0&&X(W()),P.copy(R),r.update()}function _e(se){E.set(se.clientX,se.clientY),T.subVectors(E,S).multiplyScalar(r.panSpeed),Y(T.x,T.y),S.copy(E),r.update()}function Fe(se){ae(se),se.deltaY<0?X(W()):se.deltaY>0&&de(W()),r.update()}function Xe(se){let Ae=!1;switch(se.code){case r.keys.UP:Y(0,r.keyPanSpeed),Ae=!0;break;case r.keys.BOTTOM:Y(0,-r.keyPanSpeed),Ae=!0;break;case r.keys.LEFT:Y(r.keyPanSpeed,0),Ae=!0;break;case r.keys.RIGHT:Y(-r.keyPanSpeed,0),Ae=!0;break}Ae&&(se.preventDefault(),r.update())}function Re(){if(U.length==1)b.set(U[0].pageX,U[0].pageY);else{const se=.5*(U[0].pageX+U[1].pageX),Ae=.5*(U[0].pageY+U[1].pageY);b.set(se,Ae)}}function ot(){if(U.length==1)S.set(U[0].pageX,U[0].pageY);else{const se=.5*(U[0].pageX+U[1].pageX),Ae=.5*(U[0].pageY+U[1].pageY);S.set(se,Ae)}}function we(){const se=U[0].pageX-U[1].pageX,Ae=U[0].pageY-U[1].pageY,dt=Math.sqrt(se*se+Ae*Ae);P.set(0,dt)}function Ue(){r.enableZoom&&we(),r.enablePan&&ot()}function Be(){r.enableZoom&&we(),r.enableRotate&&Re()}function Ye(se){if(U.length==1)w.set(se.pageX,se.pageY);else{const dt=vt(se),oe=.5*(se.pageX+dt.x),it=.5*(se.pageY+dt.y);w.set(oe,it)}_.subVectors(w,b).multiplyScalar(r.rotateSpeed);const Ae=r.domElement;Ae&&(ee(2*Math.PI*_.x/Ae.clientHeight),Q(2*Math.PI*_.y/Ae.clientHeight)),b.copy(w)}function re(se){if(U.length==1)E.set(se.pageX,se.pageY);else{const Ae=vt(se),dt=.5*(se.pageX+Ae.x),oe=.5*(se.pageY+Ae.y);E.set(dt,oe)}T.subVectors(E,S).multiplyScalar(r.panSpeed),Y(T.x,T.y),S.copy(E)}function At(se){const Ae=vt(se),dt=se.pageX-Ae.x,oe=se.pageY-Ae.y,it=Math.sqrt(dt*dt+oe*oe);R.set(0,it),D.set(0,Math.pow(R.y/P.y,r.zoomSpeed)),de(D.y),P.copy(R)}function ft(se){r.enableZoom&&At(se),r.enablePan&&re(se)}function Et(se){r.enableZoom&&At(se),r.enableRotate&&Ye(se)}function Ze(se){var Ae,dt;r.enabled!==!1&&(U.length===0&&((Ae=r.domElement)==null||Ae.ownerDocument.addEventListener("pointermove",te),(dt=r.domElement)==null||dt.ownerDocument.addEventListener("pointerup",H)),Gt(se),se.pointerType==="touch"?_t(se):he(se))}function te(se){r.enabled!==!1&&(se.pointerType==="touch"?lt(se):Ne(se))}function H(se){var Ae,dt,oe;Qe(se),U.length===0&&((Ae=r.domElement)==null||Ae.releasePointerCapture(se.pointerId),(dt=r.domElement)==null||dt.ownerDocument.removeEventListener("pointermove",te),(oe=r.domElement)==null||oe.ownerDocument.removeEventListener("pointerup",H)),r.dispatchEvent(s),c=o.NONE}function he(se){let Ae;switch(se.button){case 0:Ae=r.mouseButtons.LEFT;break;case 1:Ae=r.mouseButtons.MIDDLE;break;case 2:Ae=r.mouseButtons.RIGHT;break;default:Ae=-1}switch(Ae){case Cc.DOLLY:if(r.enableZoom===!1)return;$e(se),c=o.DOLLY;break;case Cc.ROTATE:if(se.ctrlKey||se.metaKey||se.shiftKey){if(r.enablePan===!1)return;me(se),c=o.PAN}else{if(r.enableRotate===!1)return;Se(se),c=o.ROTATE}break;case Cc.PAN:if(se.ctrlKey||se.metaKey||se.shiftKey){if(r.enableRotate===!1)return;Se(se),c=o.ROTATE}else{if(r.enablePan===!1)return;me(se),c=o.PAN}break;default:c=o.NONE}c!==o.NONE&&r.dispatchEvent(a)}function Ne(se){if(r.enabled!==!1)switch(c){case o.ROTATE:if(r.enableRotate===!1)return;ve(se);break;case o.DOLLY:if(r.enableZoom===!1)return;We(se);break;case o.PAN:if(r.enablePan===!1)return;_e(se);break}}function je(se){r.enabled===!1||r.enableZoom===!1||c!==o.NONE&&c!==o.ROTATE||(se.preventDefault(),r.dispatchEvent(a),Fe(se),r.dispatchEvent(s))}function Ie(se){r.enabled===!1||r.enablePan===!1||Xe(se)}function _t(se){switch(st(se),U.length){case 1:switch(r.touches.ONE){case Zh.ROTATE:if(r.enableRotate===!1)return;Re(),c=o.TOUCH_ROTATE;break;case Zh.PAN:if(r.enablePan===!1)return;ot(),c=o.TOUCH_PAN;break;default:c=o.NONE}break;case 2:switch(r.touches.TWO){case Zh.DOLLY_PAN:if(r.enableZoom===!1&&r.enablePan===!1)return;Ue(),c=o.TOUCH_DOLLY_PAN;break;case Zh.DOLLY_ROTATE:if(r.enableZoom===!1&&r.enableRotate===!1)return;Be(),c=o.TOUCH_DOLLY_ROTATE;break;default:c=o.NONE}break;default:c=o.NONE}c!==o.NONE&&r.dispatchEvent(a)}function lt(se){switch(st(se),c){case o.TOUCH_ROTATE:if(r.enableRotate===!1)return;Ye(se),r.update();break;case o.TOUCH_PAN:if(r.enablePan===!1)return;re(se),r.update();break;case o.TOUCH_DOLLY_PAN:if(r.enableZoom===!1&&r.enablePan===!1)return;ft(se),r.update();break;case o.TOUCH_DOLLY_ROTATE:if(r.enableZoom===!1&&r.enableRotate===!1)return;Et(se),r.update();break;default:c=o.NONE}}function Tt(se){r.enabled!==!1&&se.preventDefault()}function Gt(se){U.push(se)}function Qe(se){delete z[se.pointerId];for(let Ae=0;Ae{X(se),r.update()},this.dollyOut=(se=W())=>{de(se),r.update()},this.getScale=()=>v,this.setScale=se=>{ie(se),r.update()},this.getZoomScale=()=>W(),n!==void 0&&this.connect(n),this.update()}};function ZM(t){if(typeof TextDecoder<"u")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n=2.0 are supported."));return}const c=new YNe(a,{path:n||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let u=0;u=0&&o[h]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+h+'".')}}c.setExtensions(s),c.setPlugins(o),c.parse(r,i)}parseAsync(e,n){const r=this;return new Promise(function(i,a){r.parse(e,n,i,a)})}}function yNe(){let t={};return{get:function(e){return t[e]},add:function(e,n){t[e]=n},remove:function(e){delete t[e]},removeAll:function(){t={}}}}const Nn={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class xNe{constructor(e){this.parser=e,this.name=Nn.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,n=this.parser.json.nodes||[];for(let r=0,i=n.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return n.loadTextureImage(e,a.source,s)}}class NNe{constructor(e){this.parser=e,this.name=Nn.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const n=this.name,r=this.parser,i=r.json,a=i.textures[e];if(!a.extensions||!a.extensions[n])return null;const s=a.extensions[n],o=i.images[s.source];let c=r.textureLoader;if(o.uri){const u=r.options.manager.getHandler(o.uri);u!==null&&(c=u)}return this.detectSupport().then(function(u){if(u)return r.loadTextureImage(e,s.source,c);if(i.extensionsRequired&&i.extensionsRequired.indexOf(n)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const n=new Image;n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",n.onload=n.onerror=function(){e(n.height===1)}})),this.isSupported}}class INe{constructor(e){this.parser=e,this.name=Nn.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const n=this.name,r=this.parser,i=r.json,a=i.textures[e];if(!a.extensions||!a.extensions[n])return null;const s=a.extensions[n],o=i.images[s.source];let c=r.textureLoader;if(o.uri){const u=r.options.manager.getHandler(o.uri);u!==null&&(c=u)}return this.detectSupport().then(function(u){if(u)return r.loadTextureImage(e,s.source,c);if(i.extensionsRequired&&i.extensionsRequired.indexOf(n)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const n=new Image;n.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",n.onload=n.onerror=function(){e(n.height===1)}})),this.isSupported}}class BNe{constructor(e){this.name=Nn.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const n=this.parser.json,r=n.bufferViews[e];if(r.extensions&&r.extensions[this.name]){const i=r.extensions[this.name],a=this.parser.getDependency("buffer",i.buffer),s=this.parser.options.meshoptDecoder;if(!s||!s.supported){if(n.extensionsRequired&&n.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return a.then(function(o){const c=i.byteOffset||0,u=i.byteLength||0,h=i.count,p=i.byteStride,v=new Uint8Array(o,c,u);return s.decodeGltfBufferAsync?s.decodeGltfBufferAsync(h,p,v,i.mode,i.filter).then(function(y){return y.buffer}):s.ready.then(function(){const y=new ArrayBuffer(h*p);return s.decodeGltfBuffer(new Uint8Array(y),h,p,v,i.mode,i.filter),y})})}else return null}}class LNe{constructor(e){this.name=Nn.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const n=this.parser.json,r=n.nodes[e];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const i=n.meshes[r.mesh];for(const u of i.primitives)if(u.mode!==ko.TRIANGLES&&u.mode!==ko.TRIANGLE_STRIP&&u.mode!==ko.TRIANGLE_FAN&&u.mode!==void 0)return null;const s=r.extensions[this.name].attributes,o=[],c={};for(const u in s)o.push(this.parser.getDependency("accessor",s[u]).then(h=>(c[u]=h,c[u])));return o.length<1?null:(o.push(this.parser.createNodeMesh(e)),Promise.all(o).then(u=>{const h=u.pop(),p=h.isGroup?h.children:[h],v=u[0].count,y=[];for(const b of p){const w=new qt,_=new ne,S=new gi,E=new ne(1,1,1),T=new X5(b.geometry,b.material,v);for(let P=0;P=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},fd={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},HNe={CUBICSPLINE:void 0,LINEAR:Dv,STEP:Pv},HD={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function VNe(t){return t.DefaultMaterial===void 0&&(t.DefaultMaterial=new g1({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:Vc})),t.DefaultMaterial}function Xh(t,e,n){for(const r in n.extensions)t[r]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[r]=n.extensions[r])}function Uu(t,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(t.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function WNe(t,e,n){let r=!1,i=!1,a=!1;for(let u=0,h=e.length;u0||t.search(/^data\:image\/jpeg/)===0?"image/jpeg":t.search(/\.webp($|\?)/i)>0||t.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const KNe=new qt;class YNe{constructor(e={},n={}){this.json=e,this.extensions={},this.plugins={},this.options=n,this.cache=new yNe,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,i=!1,a=-1;typeof navigator<"u"&&typeof navigator.userAgent<"u"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,i=navigator.userAgent.indexOf("Firefox")>-1,a=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||r||i&&a<98?this.textureLoader=new FY(this.options.manager):this.textureLoader=new WY(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new io(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,n){const r=this,i=this.json,a=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(s){return s._markDefs&&s._markDefs()}),Promise.all(this._invokeAll(function(s){return s.beforeRoot&&s.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(s){const o={scene:s[0][i.scene||0],scenes:s[0],animations:s[1],cameras:s[2],asset:i.asset,parser:r,userData:{}};return Xh(a,o,i),Uu(o,i),Promise.all(r._invokeAll(function(c){return c.afterRoot&&c.afterRoot(o)})).then(function(){for(const c of o.scenes)c.updateMatrixWorld();e(o)})}).catch(n)}_markDefs(){const e=this.json.nodes||[],n=this.json.skins||[],r=this.json.meshes||[];for(let i=0,a=n.length;i{const c=this.associations.get(s);c!=null&&this.associations.set(o,c);for(const[u,h]of s.children.entries())a(h,o.children[u])};return a(r,i),i.name+="_instance_"+e.uses[n]++,i}_invokeOne(e){const n=Object.values(this.plugins);n.push(this);for(let r=0;r=2&&_.setY(B,D[I*c+1]),c>=3&&_.setZ(B,D[I*c+2]),c>=4&&_.setW(B,D[I*c+3]),c>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return _})}loadTexture(e){const n=this.json,r=this.options,a=n.textures[e].source,s=n.images[a];let o=this.textureLoader;if(s.uri){const c=r.manager.getHandler(s.uri);c!==null&&(o=c)}return this.loadTextureImage(e,a,o)}loadTextureImage(e,n,r){const i=this,a=this.json,s=a.textures[e],o=a.images[n],c=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[c])return this.textureCache[c];const u=this.loadImageSource(n,r).then(function(h){h.flipY=!1,h.name=s.name||o.name||"",h.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(h.name=o.uri);const v=(a.samplers||{})[s.sampler]||{};return h.magFilter=eV[v.magFilter]||vr,h.minFilter=eV[v.minFilter]||zo,h.wrapS=tV[v.wrapS]||Rd,h.wrapT=tV[v.wrapT]||Rd,i.associations.set(h,{textures:e}),h}).catch(function(){return null});return this.textureCache[c]=u,u}loadImageSource(e,n){const r=this,i=this.json,a=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(p=>p.clone());const s=i.images[e],o=self.URL||self.webkitURL;let c=s.uri||"",u=!1;if(s.bufferView!==void 0)c=r.getDependency("bufferView",s.bufferView).then(function(p){u=!0;const v=new Blob([p],{type:s.mimeType});return c=o.createObjectURL(v),c});else if(s.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const h=Promise.resolve(c).then(function(p){return new Promise(function(v,y){let b=v;n.isImageBitmapLoader===!0&&(b=function(w){const _=new Gr(w);_.needsUpdate=!0,v(_)}),n.load(Ed.resolveURL(p,a.path),b,void 0,y)})}).then(function(p){return u===!0&&o.revokeObjectURL(c),Uu(p,s),p.userData.mimeType=s.mimeType||XNe(s.uri),p}).catch(function(p){throw console.error("THREE.GLTFLoader: Couldn't load texture",c),p});return this.sourceCache[e]=h,h}assignTexture(e,n,r,i){const a=this;return this.getDependency("texture",r.index).then(function(s){if(!s)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(s=s.clone(),s.channel=r.texCoord),a.extensions[Nn.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[Nn.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const c=a.associations.get(s);s=a.extensions[Nn.KHR_TEXTURE_TRANSFORM].extendTexture(s,o),a.associations.set(s,c)}}return i!==void 0&&(typeof i=="number"&&(i=i===ZH?mp:ef),"colorSpace"in s?s.colorSpace=i:s.encoding=i===mp?ZH:vNe),e[n]=s,s})}assignFinalMaterial(e){const n=e.geometry;let r=e.material;const i=n.attributes.tangent===void 0,a=n.attributes.color!==void 0,s=n.attributes.normal===void 0;if(e.isPoints){const o="PointsMaterial:"+r.uuid;let c=this.cache.get(o);c||(c=new oT,zi.prototype.copy.call(c,r),c.color.copy(r.color),c.map=r.map,c.sizeAttenuation=!1,this.cache.add(o,c)),r=c}else if(e.isLine){const o="LineBasicMaterial:"+r.uuid;let c=this.cache.get(o);c||(c=new La,zi.prototype.copy.call(c,r),c.color.copy(r.color),c.map=r.map,this.cache.add(o,c)),r=c}if(i||a||s){let o="ClonedMaterial:"+r.uuid+":";i&&(o+="derivative-tangents:"),a&&(o+="vertex-colors:"),s&&(o+="flat-shading:");let c=this.cache.get(o);c||(c=r.clone(),a&&(c.vertexColors=!0),s&&(c.flatShading=!0),i&&(c.normalScale&&(c.normalScale.y*=-1),c.clearcoatNormalScale&&(c.clearcoatNormalScale.y*=-1)),this.cache.add(o,c),this.associations.set(c,this.associations.get(r))),r=c}e.material=r}getMaterialType(){return g1}loadMaterial(e){const n=this,r=this.json,i=this.extensions,a=r.materials[e];let s;const o={},c=a.extensions||{},u=[];if(c[Nn.KHR_MATERIALS_UNLIT]){const p=i[Nn.KHR_MATERIALS_UNLIT];s=p.getMaterialType(),u.push(p.extendParams(o,a,n))}else{const p=a.pbrMetallicRoughness||{};if(o.color=new bt(1,1,1),o.opacity=1,Array.isArray(p.baseColorFactor)){const v=p.baseColorFactor;o.color.setRGB(v[0],v[1],v[2],ef),o.opacity=v[3]}p.baseColorTexture!==void 0&&u.push(n.assignTexture(o,"map",p.baseColorTexture,mp)),o.metalness=p.metallicFactor!==void 0?p.metallicFactor:1,o.roughness=p.roughnessFactor!==void 0?p.roughnessFactor:1,p.metallicRoughnessTexture!==void 0&&(u.push(n.assignTexture(o,"metalnessMap",p.metallicRoughnessTexture)),u.push(n.assignTexture(o,"roughnessMap",p.metallicRoughnessTexture))),s=this._invokeOne(function(v){return v.getMaterialType&&v.getMaterialType(e)}),u.push(Promise.all(this._invokeAll(function(v){return v.extendMaterialParams&&v.extendMaterialParams(e,o)})))}a.doubleSided===!0&&(o.side=Fo);const h=a.alphaMode||HD.OPAQUE;if(h===HD.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,h===HD.MASK&&(o.alphaTest=a.alphaCutoff!==void 0?a.alphaCutoff:.5)),a.normalTexture!==void 0&&s!==Qs&&(u.push(n.assignTexture(o,"normalMap",a.normalTexture)),o.normalScale=new Ve(1,1),a.normalTexture.scale!==void 0)){const p=a.normalTexture.scale;o.normalScale.set(p,p)}if(a.occlusionTexture!==void 0&&s!==Qs&&(u.push(n.assignTexture(o,"aoMap",a.occlusionTexture)),a.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=a.occlusionTexture.strength)),a.emissiveFactor!==void 0&&s!==Qs){const p=a.emissiveFactor;o.emissive=new bt().setRGB(p[0],p[1],p[2],ef)}return a.emissiveTexture!==void 0&&s!==Qs&&u.push(n.assignTexture(o,"emissiveMap",a.emissiveTexture,mp)),Promise.all(u).then(function(){const p=new s(o);return a.name&&(p.name=a.name),Uu(p,a),n.associations.set(p,{materials:e}),a.extensions&&Xh(i,p,a),p})}createUniqueName(e){const n=Hn.sanitizeNodeName(e||"");return n in this.nodeNamesUsed?n+"_"+ ++this.nodeNamesUsed[n]:(this.nodeNamesUsed[n]=0,n)}loadGeometries(e){const n=this,r=this.extensions,i=this.primitiveCache;function a(o){return r[Nn.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,n).then(function(c){return nV(c,o,n)})}const s=[];for(let o=0,c=e.length;o0&&qNe(S,a),S.name=n.createUniqueName(a.name||"mesh_"+e),Uu(S,a),_.extensions&&Xh(i,S,_),n.assignFinalMaterial(S),p.push(S)}for(let y=0,b=p.length;y1?h=new $u:u.length===1?h=u[0]:h=new zn,h!==u[0])for(let p=0,v=u.length;p{const p=new Map;for(const[v,y]of i.associations)(v instanceof zi||v instanceof Gr)&&p.set(v,y);return h.traverse(v=>{const y=i.associations.get(v);y!=null&&p.set(v,y)}),p};return i.associations=u(a),a})}_createAnimationTracks(e,n,r,i,a){const s=[],o=e.name?e.name:e.uuid,c=[];fd[a.path]===fd.weights?e.traverse(function(v){v.morphTargetInfluences&&c.push(v.name?v.name:v.uuid)}):c.push(o);let u;switch(fd[a.path]){case fd.weights:u=Pp;break;case fd.rotation:u=Dp;break;case fd.position:case fd.scale:u=Np;break;default:r.itemSize===1?u=Pp:u=Np;break}const h=i.interpolation!==void 0?HNe[i.interpolation]:Dv,p=this._getArrayFromAccessor(r);for(let v=0,y=c.length;v{const o={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(s,o).then(n).catch(i)},r,i)}decodeDracoFile(e,n,r,i){const a={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:i||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,a).then(n)}decodeGeometry(e,n){for(const c in n.attributeTypes){const u=n.attributeTypes[c];u.BYTES_PER_ELEMENT!==void 0&&(n.attributeTypes[c]=u.name)}const r=JSON.stringify(n);if(WD.has(e)){const c=WD.get(e);if(c.key===r)return c.promise;if(e.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let i;const a=this.workerNextTaskID++,s=e.byteLength,o=this._getWorker(a,s).then(c=>(i=c,new Promise((u,h)=>{i._callbacks[a]={resolve:u,reject:h},i.postMessage({type:"decode",id:a,taskConfig:n,buffer:e},[e])}))).then(c=>this._createGeometry(c.geometry));return o.catch(()=>!0).then(()=>{i&&a&&this._releaseTask(i,a)}),WD.set(e,{key:r,promise:o}),o}_createGeometry(e){const n=new an;e.index&&n.setIndex(new qn(e.index.array,1));for(let r=0;r{r.load(e,i,void 0,a)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e=typeof WebAssembly!="object"||this.decoderConfig.type==="js",n=[];return e?n.push(this._loadLibrary("draco_decoder.js","text")):(n.push(this._loadLibrary("draco_wasm_wrapper.js","text")),n.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(n).then(r=>{const i=r[0];e||(this.decoderConfig.wasmBinary=r[1]);const a=QNe.toString(),s=["/* draco decoder */",i,"","/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([s]))}),this.decoderPending}_getWorker(e,n){return this._initDecoder().then(()=>{if(this.workerPool.lengtha._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=n,r._taskLoad+=n,r})}_releaseTask(e,n){e._taskLoad-=e._taskCosts[n],delete e._callbacks[n],delete e._taskCosts[n]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{const p=h.draco,v=new p.Decoder,y=new p.DecoderBuffer;y.Init(new Int8Array(c),c.byteLength);try{const b=n(p,v,y,u),w=b.attributes.map(_=>_.array.buffer);b.index&&w.push(b.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:b},w)}catch(b){console.error(b),self.postMessage({type:"error",id:o.id,error:b.message})}finally{p.destroy(y),p.destroy(v)}});break}};function n(s,o,c,u){const h=u.attributeIDs,p=u.attributeTypes;let v,y;const b=o.GetEncodedGeometryType(c);if(b===s.TRIANGULAR_MESH)v=new s.Mesh,y=o.DecodeBufferToMesh(c,v);else if(b===s.POINT_CLOUD)v=new s.PointCloud,y=o.DecodeBufferToPointCloud(c,v);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!y.ok()||v.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+y.error_msg());const w={index:null,attributes:[]};for(const _ in h){const S=self[p[_]];let E,T;if(u.useUniqueIDs)T=h[_],E=o.GetAttributeByUniqueId(v,T);else{if(T=o.GetAttributeId(v,s[h[_]]),T===-1)continue;E=o.GetAttribute(v,T)}w.attributes.push(i(s,o,v,_,S,E))}return b===s.TRIANGULAR_MESH&&(w.index=r(s,o,v)),s.destroy(v),w}function r(s,o,c){const h=c.num_faces()*3,p=h*4,v=s._malloc(p);o.GetTrianglesUInt32Array(c,p,v);const y=new Uint32Array(s.HEAPF32.buffer,v,h).slice();return s._free(v),{array:y,itemSize:1}}function i(s,o,c,u,h,p){const v=p.num_components(),b=c.num_points()*v,w=b*h.BYTES_PER_ELEMENT,_=a(s,h),S=s._malloc(w);o.GetAttributeDataArrayForAllPoints(c,p,_,w,S);const E=new h(s.HEAPF32.buffer,S,b).slice();return s._free(S),{name:u,array:E,itemSize:v}}function a(s,o){switch(o){case Float32Array:return s.DT_FLOAT32;case Int8Array:return s.DT_INT8;case Int16Array:return s.DT_INT16;case Int32Array:return s.DT_INT32;case Uint8Array:return s.DT_UINT8;case Uint16Array:return s.DT_UINT16;case Uint32Array:return s.DT_UINT32}}}let SA;const qD=()=>{if(SA)return SA;const t="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",e="B9h9z9tFBBBFiI9gBB9gLaaaaaFa9gEaaaB9gFaFaEMcBBFBFFGGGEILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBOn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBNI9z9iqlBVc+N9IcIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMk8lLbaE97F9+FaL978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAeDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAeDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAeDeBJAiCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPAPDQBFGENVcMILKOSQfbHeD8dBh+BsxoxoUwN0AeD8dFhxoUwkwk+gUa0sHnhTkAnsHnhNkAnsHn7CgFZHiCEWCxkUUBJDBEBAiCx+YUUBJDBBBHeAeDQBBBBBBBBBBBBBBBBAnhAk7CgFZHiCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAeDeBJAiCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBReCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBH8ZCFD9tA8ZAPD9OD9hD9RH8ZDQBTFtGmEYIPLdKeOnHpAIAQJDBIBHyCFD9tAyAPD9OD9hD9RHyAIASJDBIBH8cCFD9tA8cAPD9OD9hD9RH8cDQBTFtGmEYIPLdKeOnH8dDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAeD9uHeDyBjGBAEAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeApA8dDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNiV8ZcpMyS8cQ8df8eb8fHdAyA8cDQNiV8ZcpMyS8cQ8df8eb8fH8ZDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJHIAeAdA8ZDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHeDyBjGBAIAGJHIAeAPAPDQILKOILKOILKOILKOD9uHeDyBjGBAIAGJHIAeAPAPDQNVcMNVcMNVcMNVcMD9uHeDyBjGBAIAGJHIAeAPAPDQSQfbSQfbSQfbSQfbD9uHeDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/dLEK97FaF97GXGXAGCI9HQBAF9FQFCBRGEXABABDBBBHECiD+rFCiD+sFD/6FHIAECND+rFCiD+sFD/6FAID/gFAECTD+rFCiD+sFD/6FHLD/gFD/kFD/lFHKCBDtD+2FHOAICUUUU94DtHND9OD9RD/kFHI9DBB/+hDYAIAID/mFAKAKD/mFALAOALAND9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHLD/mF9DBBX9LDYHOD/kFCgFDtD9OAECUUU94DtD9OD9QAIALD/mFAOD/kFCND+rFCU/+EDtD9OD9QAKALD/mFAOD/kFCTD+rFCUU/8ODtD9OD9QDMBBABCTJRBAGCIJHGAF9JQBSGMMAF9FQBCBRGEXABCTJHVAVDBBBHECBDtHOCUU98D8cFCUU98D8cEHND9OABDBBBHKAEDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAKAEDQBFGENVcMTtmYi8ZpyHECTD+sFD/6FHID/gFAECTD+rFCTD+sFD/6FHLD/gFD/kFD/lFHE9DB/+g6DYALAEAOD+2FHOALCUUUU94DtHcD9OD9RD/kFHLALD/mFAEAED/mFAIAOAIAcD9OD9RD/kFHEAED/mFD/kFD/kFD/jFD/nFHID/mF9DBBX9LDYHOD/kFCTD+rFALAID/mFAOD/kFCggEDtD9OD9QHLAEAID/mFAOD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHEDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAKAND9OALAEDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM/hEIGaF97FaL978jUUUUBCTlREGXAF9FQBCBRIEXAEABDBBBHLABCTJHKDBBBHODQILKOSQfbPden8c8d8e8fHNCTD+sFHVCID+rFDMIBAB9DBBU8/DY9D/zI818/DYAVCEDtD9QD/6FD/nFHVALAODQBFGENVcMTtmYi8ZpyHLCTD+rFCTD+sFD/6FD/mFHOAOD/mFAVALCTD+sFD/6FD/mFHcAcD/mFAVANCTD+rFCTD+sFD/6FD/mFHNAND/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHVD/mF9DBBX9LDYHLD/kFCggEDtHMD9OAcAVD/mFALD/kFCTD+rFD9QHcANAVD/mFALD/kFCTD+rFAOAVD/mFALD/kFAMD9OD9QHVDQBFTtGEmYILPdKOenHLD8dBAEDBIBDyB+t+J83EBABCNJALD8dFAEDBIBDyF+t+J83EBAKAcAVDQNVi8ZcMpySQ8c8dfb8e8fHVD8dBAEDBIBDyG+t+J83EBABCiJAVD8dFAEDBIBDyE+t+J83EBABCAJRBAICIJHIAF9JQBMMM9jFF97GXAGCGrAF9sHG9FQBCBRFEXABABDBBBHECND+rFCND+sFD/6FAECiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBABCTJRBAFCIJHFAG9JQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if(typeof WebAssembly!="object")return{supported:!1};let i=t;WebAssembly.validate(n)&&(i=e);let a;const s=WebAssembly.instantiate(o(i),{}).then(p=>{a=p.instance,a.exports.__wasm_call_ctors()});function o(p){const v=new Uint8Array(p.length);for(let b=0;b96?w-71:w>64?w-65:w>47?w+4:w>46?63:62}let y=0;for(let b=0;b{n&&n(r),t&&(AA||(AA=new ZNe),AA.setDecoderPath(typeof t=="string"?t:OJ),r.setDRACOLoader(AA)),e&&r.setMeshoptDecoder(typeof qD=="function"?qD():qD)}}const hy=(t,e,n,r)=>y1(Tk,t,PJ(e,n,r));hy.preload=(t,e,n,r)=>y1.preload(Tk,t,PJ(e,n,r));hy.clear=t=>y1.clear(Tk,t);hy.setDecoderPath=t=>{OJ=t};const DJ=j.forwardRef(({makeDefault:t,camera:e,regress:n,domElement:r,enableDamping:i=!0,keyEvents:a=!1,onChange:s,onStart:o,onEnd:c,...u},h)=>{const p=Cl(D=>D.invalidate),v=Cl(D=>D.camera),y=Cl(D=>D.gl),b=Cl(D=>D.events),w=Cl(D=>D.setEvents),_=Cl(D=>D.set),S=Cl(D=>D.get),E=Cl(D=>D.performance),T=e||v,P=r||b.connected||y.domElement,R=j.useMemo(()=>new gNe(T),[T]);return wk(()=>{R.enabled&&R.update()},-1),j.useEffect(()=>(a&&R.connect(a===!0?P:a),R.connect(P),()=>{R.dispose()}),[a,P,n,R,p]),j.useEffect(()=>{const D=B=>{p(),n&&E.regress(),s&&s(B)},I=B=>{o&&o(B)},k=B=>{c&&c(B)};return R.addEventListener("change",D),R.addEventListener("start",I),R.addEventListener("end",k),()=>{R.removeEventListener("start",I),R.removeEventListener("end",k),R.removeEventListener("change",D)}},[s,o,c,R,p,w]),j.useEffect(()=>{if(t){const D=S().controls;return _({controls:R}),()=>_({controls:D})}},[t,R]),j.createElement("primitive",Iw({ref:h,object:R,enableDamping:i},u))});var Lo=(function(t){return t[t.NONE=0]="NONE",t[t.START=1]="START",t[t.ACTIVE=2]="ACTIVE",t})(Lo||{});const Og=t=>t&&t.isOrthographicCamera,eIe=t=>t&&t.isBox3,tIe=t=>1-Math.exp(-5*t)+.007*t,nIe=j.createContext(null);function NJ({children:t,maxDuration:e=1,margin:n=1.2,observe:r,fit:i,clip:a,interpolateFunc:s=tIe,onFit:o}){const c=j.useRef(null),{camera:u,size:h,invalidate:p}=Cl(),v=Cl(R=>R.controls),y=j.useRef(o);y.current=o;const b=j.useRef({camPos:new ne,camRot:new gi,camZoom:1}),w=j.useRef({camPos:void 0,camRot:void 0,camZoom:void 0,camUp:void 0,target:void 0}),_=j.useRef(Lo.NONE),S=j.useRef(0),[E]=j.useState(()=>new Oi),T=j.useMemo(()=>{function R(){const D=E.getSize(new ne),I=E.getCenter(new ne),k=Math.max(D.x,D.y,D.z),B=Og(u)?k*4:k/(2*Math.atan(Math.PI*u.fov/360)),U=Og(u)?k*4:B/u.aspect,z=n*Math.max(B,U);return{box:E,size:D,center:I,distance:z}}return{getSize:R,refresh(D){if(eIe(D))E.copy(D);else{const I=D||c.current;if(!I)return this;I.updateWorldMatrix(!0,!0),E.setFromObject(I)}if(E.isEmpty()){const I=u.position.length()||10;E.setFromCenterAndSize(new ne,new ne(I,I,I))}return b.current.camPos.copy(u.position),b.current.camRot.copy(u.quaternion),Og(u)&&(b.current.camZoom=u.zoom),w.current.camPos=void 0,w.current.camRot=void 0,w.current.camZoom=void 0,w.current.camUp=void 0,w.current.target=void 0,this},reset(){const{center:D,distance:I}=R(),k=u.position.clone().sub(D).normalize();w.current.camPos=D.clone().addScaledVector(k,I),w.current.target=D.clone();const B=new qt().lookAt(w.current.camPos,w.current.target,u.up);return w.current.camRot=new gi().setFromRotationMatrix(B),_.current=Lo.START,S.current=0,this},moveTo(D){return w.current.camPos=Array.isArray(D)?new ne(...D):D.clone(),_.current=Lo.START,S.current=0,this},lookAt({target:D,up:I}){w.current.target=Array.isArray(D)?new ne(...D):D.clone(),I?w.current.camUp=Array.isArray(I)?new ne(...I):I.clone():w.current.camUp=u.up.clone();const k=new qt().lookAt(w.current.camPos||u.position,w.current.target,w.current.camUp);return w.current.camRot=new gi().setFromRotationMatrix(k),_.current=Lo.START,S.current=0,this},to({position:D,target:I}){return this.moveTo(D).lookAt({target:I})},fit(){if(!Og(u))return this.reset();let D=0,I=0;const k=[new ne(E.min.x,E.min.y,E.min.z),new ne(E.min.x,E.max.y,E.min.z),new ne(E.min.x,E.min.y,E.max.z),new ne(E.min.x,E.max.y,E.max.z),new ne(E.max.x,E.max.y,E.max.z),new ne(E.max.x,E.max.y,E.min.z),new ne(E.max.x,E.min.y,E.max.z),new ne(E.max.x,E.min.y,E.min.z)],B=w.current.camPos||u.position,U=w.current.target||v?.target,z=w.current.camUp||u.up,q=U?new qt().lookAt(B,U,z).setPosition(B).invert():u.matrixWorldInverse;for(const Q of k)Q.applyMatrix4(q),D=Math.max(D,Math.abs(Q.y)),I=Math.max(I,Math.abs(Q.x));D*=2,I*=2;const W=(u.top-u.bottom)/D,ee=(u.right-u.left)/I;return w.current.camZoom=Math.min(W,ee)/n,_.current=Lo.START,S.current=0,y.current&&y.current(this.getSize()),this},clip(){const{distance:D}=R();return u.near=D/100,u.far=D*100,u.updateProjectionMatrix(),v&&(v.maxDistance=D*10,v.update()),p(),this}}},[E,u,v,n,p]);j.useLayoutEffect(()=>{if(v){const R=()=>{if(v&&w.current.target&&_.current!==Lo.NONE){const D=new ne().setFromMatrixColumn(u.matrix,2),I=b.current.camPos.distanceTo(v.target),k=(w.current.camPos||b.current.camPos).distanceTo(w.current.target),B=(1-S.current)*I+S.current*k;v.target.copy(u.position).addScaledVector(D,-B),v.update()}_.current=Lo.NONE};return v.addEventListener("start",R),()=>v.removeEventListener("start",R)}},[v]);const P=j.useRef(0);return j.useLayoutEffect(()=>{(r||P.current++===0)&&(T.refresh(),i&&T.reset().fit(),a&&T.clip())},[h,a,i,r,u,v]),wk((R,D)=>{if(_.current===Lo.START)_.current=Lo.ACTIVE,p();else if(_.current===Lo.ACTIVE){if(S.current+=D/e,S.current>=1)w.current.camPos&&u.position.copy(w.current.camPos),w.current.camRot&&u.quaternion.copy(w.current.camRot),w.current.camUp&&u.up.copy(w.current.camUp),w.current.camZoom&&Og(u)&&(u.zoom=w.current.camZoom),u.updateMatrixWorld(),u.updateProjectionMatrix(),v&&w.current.target&&(v.target.copy(w.current.target),v.update()),_.current=Lo.NONE;else{const I=s(S.current);w.current.camPos&&u.position.lerpVectors(b.current.camPos,w.current.camPos,I),w.current.camRot&&u.quaternion.slerpQuaternions(b.current.camRot,w.current.camRot,I),w.current.camUp&&u.up.set(0,1,0).applyQuaternion(u.quaternion),w.current.camZoom&&Og(u)&&(u.zoom=(1-I)*b.current.camZoom+I*w.current.camZoom),u.updateMatrixWorld(),u.updateProjectionMatrix()}p()}}),j.createElement("group",{ref:c},j.createElement(nIe.Provider,{value:T},t))}const Gv={u1:"/penthouse-images/1.jpg",u2:"/penthouse-images/2.jpg",u3:"/penthouse-images/3.jpg",u4:"/penthouse-images/4.jpg",u5:"/penthouse-images/5.jpg",u6:"/penthouse-images/6.jpg",u7:"/penthouse-images/7.jpg",u8:"/penthouse-images/8.jpg"},rIe=new URL(""+new URL("f6b441fc43a460a957df992433ee39ca-CmWpZmjx.jpg",import.meta.url).href,import.meta.url).href,iIe=new URL(""+new URL("ee2057aab582951894fea5b1f56ea27e-B0aag1Nm.jpg",import.meta.url).href,import.meta.url).href,Ck="/models/house1/house1.glb",Rk="/models/house2/house2.glb",aIe="https://www.google.com/maps?q=Dubai+Marina&output=embed";hy.preload(Ck);hy.preload(Rk);function IJ({status:t}){const e={available:{icon:Dae,label:"Available",color:"text-green-300 bg-green-500/20 border-green-500/30"},reserved:{icon:RN,label:"Reserved",color:"text-amber-300 bg-amber-500/20 border-amber-500/30"},sold:{icon:Iae,label:"Sold",color:"text-zinc-300 bg-zinc-500/20 border-zinc-500/30"},hold:{icon:RN,label:"On Hold",color:"text-red-300 bg-red-500/20 border-red-500/30"}},{icon:n,label:r,color:i}=e[t];return M.jsxs("span",{"code-path":"src\\components\\modules\\Inventory.tsx:68:5",className:`inline-flex items-center gap-1 rounded-full border px-2.5 py-1 text-[11px] ${i}`,children:[M.jsx(n,{"code-path":"src\\components\\modules\\Inventory.tsx:69:7",className:"h-3 w-3"}),r]})}function BJ({onClose:t}){return M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:77:5",className:"flex items-center gap-2",children:[M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:78:7",type:"button",onClick:t,className:"h-3.5 w-3.5 rounded-full bg-[#ff5f57] hover:brightness-110"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:79:7",className:"h-3.5 w-3.5 rounded-full bg-[#febc2e]"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:80:7",className:"h-3.5 w-3.5 rounded-full bg-[#28c840]"})]})}function LJ({url:t}){const{scene:e}=hy(t),n=j.useMemo(()=>{const r=e.clone(),i=new Oi().setFromObject(r),a=new ne;i.getSize(a);const o=5/(Math.max(a.x,a.y,a.z)||1);r.scale.setScalar(o);const c=new Oi().setFromObject(r),u=new ne;return c.getCenter(u),r.position.sub(u),r},[e]);return M.jsx("primitive",{"code-path":"src\\components\\modules\\Inventory.tsx:108:10",object:n})}function sIe({unit:t}){const e=t.id==="u1"||t.id==="u2"?Rk:Ck;return M.jsxs(EJ,{"code-path":"src\\components\\modules\\Inventory.tsx:115:5",camera:{position:[6,5,8],fov:55},gl:{antialias:!0},dpr:[1,2],children:[M.jsx("color",{"code-path":"src\\components\\modules\\Inventory.tsx:116:7",attach:"background",args:["#060d1f"]}),M.jsx("ambientLight",{"code-path":"src\\components\\modules\\Inventory.tsx:117:7",intensity:1.2}),M.jsx("directionalLight",{"code-path":"src\\components\\modules\\Inventory.tsx:118:7",intensity:1.5,position:[10,12,8],castShadow:!0}),M.jsx("directionalLight",{"code-path":"src\\components\\modules\\Inventory.tsx:119:7",intensity:.6,position:[-8,4,-6]}),M.jsx("pointLight",{"code-path":"src\\components\\modules\\Inventory.tsx:120:7",position:[0,8,0],intensity:.4}),M.jsx(j.Suspense,{"code-path":"src\\components\\modules\\Inventory.tsx:122:7",fallback:M.jsx(oNe,{"code-path":"src\\components\\modules\\Inventory.tsx:124:11",center:!0,children:M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:125:13",className:"rounded-lg border border-white/20 bg-zinc-900/90 px-4 py-3 text-sm text-zinc-200 backdrop-blur-xl",children:M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:126:15",className:"flex items-center gap-2",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:127:17",className:"h-4 w-4 animate-spin rounded-full border-2 border-cyan-400 border-t-transparent"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:128:17",children:"Loading 3D model…"})]})})}),children:M.jsx(NJ,{"code-path":"src\\components\\modules\\Inventory.tsx:134:9",fit:!0,clip:!0,observe:!0,margin:1.15,children:M.jsx(LJ,{"code-path":"src\\components\\modules\\Inventory.tsx:135:11",url:e})})}),M.jsx(DJ,{"code-path":"src\\components\\modules\\Inventory.tsx:139:7",enableDamping:!0,dampingFactor:.06,minDistance:1,maxDistance:30,enablePan:!0,mouseButtons:{LEFT:Cc.ROTATE,MIDDLE:Cc.DOLLY,RIGHT:Cc.PAN}})]})}const kJ={u1:{bedrooms:4,bathrooms:4,parking:2,description:"Sky-high penthouse with unobstructed panoramic sea views, private terrace, and bespoke interiors across two levels.",features:["Private Rooftop Terrace","Smart Home Automation","Floor-to-Ceiling Glazing","Private Elevator Lobby","Chef's Kitchen","Maid's Room"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"40%"},{label:"On Handover",value:"50%"}]},u2:{bedrooms:3,bathrooms:3,parking:2,description:"Expansive penthouse overlooking the sea and marina, featuring a wraparound terrace and premium finishes throughout.",features:["Wraparound Terrace","Marina & Sea Views","Smart Home System","Private Pool","Walk-in Wardrobes","Maid's Room"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"40%"},{label:"On Handover",value:"50%"}]},u3:{bedrooms:3,bathrooms:3,parking:2,description:"Generous 3-bedroom residence with sweeping sea views, open-plan living, and premium finishes on the 45th floor.",features:["Sea View","Open-Plan Living","Balcony","Built-in Wardrobes","Laundry Room","Storage Room"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"50%"},{label:"On Handover",value:"40%"}]},u4:{bedrooms:3,bathrooms:3,parking:2,description:"Elegant 3-bedroom apartment with marina views, contemporary design, and a spacious open-plan layout.",features:["Marina View","Open-Plan Living","Balcony","Built-in Wardrobes","Laundry Room","Storage Room"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"50%"},{label:"On Handover",value:"40%"}]},u5:{bedrooms:2,bathrooms:2,parking:1,description:"Bright 2-bedroom apartment with sea views and a modern open-plan kitchen and living area on the 44th floor.",features:["Sea View","Open-Plan Kitchen","Balcony","Built-in Wardrobes","Laundry Closet"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"50%"},{label:"On Handover",value:"40%"}]},u6:{bedrooms:2,bathrooms:2,parking:1,description:"Contemporary 2-bedroom apartment with city views, modern interiors, and a private balcony on the 44th floor.",features:["City View","Open-Plan Kitchen","Balcony","Built-in Wardrobes","Laundry Closet"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"50%"},{label:"On Handover",value:"40%"}]},u7:{bedrooms:1,bathrooms:1,parking:1,description:"Stylish 1-bedroom apartment with sea views and a well-appointed open-plan layout on the 43rd floor.",features:["Sea View","Open-Plan Layout","Balcony","Built-in Wardrobe"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"60%"},{label:"On Handover",value:"30%"}]},u8:{bedrooms:1,bathrooms:1,parking:1,description:"Modern 1-bedroom apartment with city views and a compact, efficient layout on the 43rd floor.",features:["City View","Open-Plan Layout","Balcony","Built-in Wardrobe"],paymentPlan:[{label:"On Booking",value:"10%"},{label:"During Construction",value:"60%"},{label:"On Handover",value:"30%"}]}},oIe=kJ.u1;function lIe({unit:t,onClose:e,onOpen3D:n,onOpenBlueprint:r}){const i=kJ[t.id]??oIe,a=Gv[t.id]??Gv.u1,s={available:"text-emerald-300 border-emerald-400/30 bg-emerald-500/10",reserved:"text-amber-300 border-amber-400/30 bg-amber-500/10",sold:"text-red-300 border-red-400/30 bg-red-500/10",hold:"text-zinc-300 border-zinc-400/30 bg-zinc-500/10"},o=Math.round(t.price/t.area);return M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:241:5",className:"fixed inset-0 z-[95] flex items-center justify-center p-4",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:248:7",className:"absolute inset-0 bg-black/75 backdrop-blur-md",onClick:e}),M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:251:7",initial:{y:24,scale:.96},animate:{y:0,scale:1},exit:{y:24,scale:.96},transition:{type:"spring",stiffness:320,damping:28},className:"relative z-10 flex h-[88vh] w-full max-w-5xl flex-col overflow-hidden rounded-3xl border border-white/15 bg-gradient-to-br from-zinc-900/95 via-zinc-900/90 to-zinc-950/95 shadow-2xl backdrop-blur-2xl",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:259:9",className:"flex shrink-0 items-center justify-between border-b border-white/10 px-5 py-3.5",children:[M.jsx(BJ,{"code-path":"src\\components\\modules\\Inventory.tsx:260:11",onClose:e}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:261:11",className:"flex items-center gap-2",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:262:13",className:"text-xs text-zinc-500",children:"Unit"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:263:13",className:"text-sm font-semibold text-zinc-100",children:t.unitNumber}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:264:13",className:"mx-1 text-zinc-600",children:"·"}),M.jsxs("span",{"code-path":"src\\components\\modules\\Inventory.tsx:265:13",className:"text-xs text-zinc-400",children:["Floor ",t.floor]})]}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:267:11",className:`rounded-full border px-3 py-1 text-xs font-medium capitalize ${s[t.status]}`,children:t.status})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:273:9",className:"flex-1 overflow-y-auto custom-scrollbar",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:275:11",className:"relative h-64 w-full shrink-0 overflow-hidden",children:[M.jsx("img",{"code-path":"src\\components\\modules\\Inventory.tsx:276:13",src:a,alt:t.unitNumber,className:"h-full w-full object-cover"}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:281:13",className:"absolute inset-0 bg-gradient-to-t from-zinc-950/90 via-zinc-950/20 to-transparent"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:283:13",className:"absolute bottom-4 left-5",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:284:15",className:"text-xs text-zinc-400",children:"Starting from"}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:285:15",className:"text-3xl font-bold tracking-tight text-white",children:lp(t.price)}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:286:15",className:"text-xs text-zinc-400",children:[lp(o)," / m²"]})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:291:11",className:"grid gap-5 p-5 md:grid-cols-[1fr_280px]",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:293:13",className:"space-y-5",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:295:15",children:[M.jsxs("h2",{"code-path":"src\\components\\modules\\Inventory.tsx:296:17",className:"mb-1 text-xl font-semibold text-zinc-100",children:[t.type==="penthouse"?"Penthouse":t.type.toUpperCase()," · ",t.unitNumber]}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:299:17",className:"text-sm leading-relaxed text-zinc-400",children:i.description})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:303:15",className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[{icon:M.jsx(hae,{"code-path":"src\\components\\modules\\Inventory.tsx:305:27",className:"h-4 w-4"}),label:"Bedrooms",value:i.bedrooms},{icon:M.jsx(fae,{"code-path":"src\\components\\modules\\Inventory.tsx:306:27",className:"h-4 w-4"}),label:"Bathrooms",value:i.bathrooms},{icon:M.jsx(ose,{"code-path":"src\\components\\modules\\Inventory.tsx:307:27",className:"h-4 w-4"}),label:"Area",value:`${t.area} m²`},{icon:M.jsx(AW,{"code-path":"src\\components\\modules\\Inventory.tsx:308:27",className:"h-4 w-4"}),label:"Floor",value:t.floor}].map(c=>M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:310:19",className:"flex flex-col items-center gap-1.5 rounded-xl border border-white/10 bg-white/5 p-3",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:311:21",className:"text-cyan-300",children:c.icon}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:312:21",className:"text-lg font-semibold text-zinc-100",children:c.value}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:313:21",className:"text-[11px] text-zinc-500",children:c.label})]},c.label))}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:319:15",className:"grid grid-cols-3 gap-2",children:[{icon:M.jsx(kae,{"code-path":"src\\components\\modules\\Inventory.tsx:321:27",className:"h-3.5 w-3.5"}),label:"View",value:t.view},{icon:M.jsx(dL,{"code-path":"src\\components\\modules\\Inventory.tsx:322:27",className:"h-3.5 w-3.5"}),label:"Parking",value:`${i.parking} Bay${i.parking>1?"s":""}`},{icon:M.jsx(zse,{"code-path":"src\\components\\modules\\Inventory.tsx:323:27",className:"h-3.5 w-3.5"}),label:"Type",value:t.type.toUpperCase()}].map(c=>M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:325:19",className:"rounded-xl border border-white/10 bg-white/5 px-3 py-2.5",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:326:21",className:"mb-1 flex items-center gap-1.5 text-zinc-500",children:[c.icon,M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:328:23",className:"text-[10px] uppercase tracking-wide",children:c.label})]}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:330:21",className:"text-sm font-medium text-zinc-200",children:c.value})]},c.label))}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:336:15",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:337:17",className:"mb-2.5 text-xs uppercase tracking-widest text-zinc-500",children:"Features & Amenities"}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:338:17",className:"flex flex-wrap gap-2",children:i.features.map(c=>M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:340:21",className:"rounded-full border border-cyan-300/20 bg-cyan-500/10 px-3 py-1 text-xs text-cyan-200",children:c},c))})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:351:15",className:"grid grid-cols-2 gap-3",children:[M.jsxs("button",{"code-path":"src\\components\\modules\\Inventory.tsx:352:17",type:"button",onClick:()=>{e(),n(t)},className:"flex items-center justify-center gap-2 rounded-xl border border-cyan-300/30 bg-cyan-500/10 py-3 text-sm font-medium text-cyan-100 transition-colors hover:bg-cyan-500/20",children:["3D Viewer ",M.jsx(n4,{"code-path":"src\\components\\modules\\Inventory.tsx:357:29",className:"h-4 w-4"})]}),M.jsxs("button",{"code-path":"src\\components\\modules\\Inventory.tsx:359:17",type:"button",onClick:()=>{e(),r(t)},className:"flex items-center justify-center gap-2 rounded-xl border border-blue-300/30 bg-blue-500/10 py-3 text-sm font-medium text-blue-100 transition-colors hover:bg-blue-500/20",children:["Blueprint Studio ",M.jsx(n4,{"code-path":"src\\components\\modules\\Inventory.tsx:364:36",className:"h-4 w-4"})]})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:370:13",className:"space-y-4",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:372:15",className:"rounded-2xl border border-white/10 bg-white/5 p-4",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:373:17",className:"mb-3 text-xs uppercase tracking-widest text-zinc-500",children:"Pricing"}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:374:17",className:"text-2xl font-bold text-zinc-100",children:lp(t.price)}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:375:17",className:"mt-0.5 text-xs text-zinc-500",children:[lp(o)," per m²"]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:376:17",className:"my-3 border-t border-white/10"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:377:17",className:"space-y-1.5 text-sm",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:378:19",className:"flex justify-between",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:379:21",className:"text-zinc-400",children:"Unit Area"}),M.jsxs("span",{"code-path":"src\\components\\modules\\Inventory.tsx:380:21",className:"text-zinc-200",children:[t.area," m²"]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:382:19",className:"flex justify-between",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:383:21",className:"text-zinc-400",children:"Floor"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:384:21",className:"text-zinc-200",children:t.floor})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:386:19",className:"flex justify-between",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:387:21",className:"text-zinc-400",children:"Parking"}),M.jsxs("span",{"code-path":"src\\components\\modules\\Inventory.tsx:388:21",className:"text-zinc-200",children:[i.parking," Bay",i.parking>1?"s":""]})]})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:394:15",className:"rounded-2xl border border-white/10 bg-white/5 p-4",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:395:17",className:"mb-3 text-xs uppercase tracking-widest text-zinc-500",children:"Payment Plan"}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:396:17",className:"space-y-2",children:i.paymentPlan.map((c,u)=>M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:398:21",className:"flex items-center gap-3",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:399:23",className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full border border-cyan-300/30 bg-cyan-500/10 text-[10px] font-bold text-cyan-300",children:u+1}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:402:23",className:"flex flex-1 items-center justify-between",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:403:25",className:"text-xs text-zinc-400",children:c.label}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:404:25",className:"text-sm font-semibold text-zinc-100",children:c.value})]})]},c.label))})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:412:15",className:"rounded-2xl border border-white/10 bg-white/5 p-4",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:413:17",className:"mb-2 text-xs uppercase tracking-widest text-zinc-500",children:"Availability"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:414:17",className:`inline-block rounded-full border px-3 py-1 text-sm font-medium capitalize ${s[t.status]}`,children:t.status==="available"?"✓ Available Now":t.status==="reserved"?"⏳ Reserved":t.status==="sold"?"✗ Sold":"⏸ On Hold"}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:419:17",className:"mt-2 text-[11px] text-zinc-600",children:["Last updated: ",t.lastUpdated.toLocaleDateString("en-AE",{day:"numeric",month:"short",year:"numeric"})]})]})]})]})]})]})]})}function cIe({unit:t,onOpen3D:e,onOpenBlueprint:n,onViewDetails:r}){const i=Gv[t.id]??Gv.u1,[a,s]=j.useState(!1),o=t.status==="available"?"rgba(34,197,94,0.15)":t.status==="reserved"?"rgba(245,158,11,0.15)":t.status==="sold"?"rgba(139,92,246,0.12)":"rgba(239,68,68,0.12)";return M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:453:5",className:"group relative cursor-pointer overflow-hidden rounded-2xl",style:{background:"rgba(14, 16, 21, 0.72)",border:"1px solid rgba(255,255,255,0.08)",backdropFilter:"blur(18px)",WebkitBackdropFilter:"blur(18px)"},onClick:()=>r(t),whileHover:{y:-3,scale:1.008},onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),transition:{type:"spring",stiffness:400,damping:28},children:[M.jsx(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:468:7",className:"absolute top-0 right-0 w-32 h-32 rounded-full blur-3xl pointer-events-none",style:{background:o},animate:{opacity:a?1:.5},transition:{duration:.3}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:476:7",className:"relative z-10 p-4",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:479:9",className:"mb-2.5 flex items-start justify-between",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:480:11",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:481:13",className:"mb-1.5 inline-flex items-center gap-1.5 rounded-lg px-2 py-0.5 text-[10px] font-medium tracking-wide",style:{background:"rgba(255,255,255,0.06)",color:"hsl(var(--muted-fg))",border:"1px solid rgba(255,255,255,0.08)"},children:[M.jsx($ae,{"code-path":"src\\components\\modules\\Inventory.tsx:485:15",className:"h-3 w-3",style:{color:"hsl(var(--accent))"}}),"Unit Folder"]}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:488:13",className:"text-2xl font-bold leading-none tracking-tight text-white",children:t.unitNumber}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:489:13",className:"text-xs mt-1",style:{color:"hsl(var(--muted-fg))"},children:["Floor ",t.floor]})]}),M.jsx(IJ,{"code-path":"src\\components\\modules\\Inventory.tsx:491:11",status:t.status})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:495:9",className:"mb-3 overflow-hidden rounded-xl",style:{border:"1px solid rgba(255,255,255,0.07)"},children:a?M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:502:13",className:"h-36 w-full",style:{background:"hsl(var(--background))"},children:M.jsxs(EJ,{"code-path":"src\\components\\modules\\Inventory.tsx:503:15",camera:{position:[6,5,8],fov:50},children:[M.jsx("ambientLight",{"code-path":"src\\components\\modules\\Inventory.tsx:504:17",intensity:1.2}),M.jsx("directionalLight",{"code-path":"src\\components\\modules\\Inventory.tsx:505:17",intensity:1.4,position:[8,10,6]}),M.jsx(j.Suspense,{"code-path":"src\\components\\modules\\Inventory.tsx:506:17",fallback:null,children:M.jsx(NJ,{"code-path":"src\\components\\modules\\Inventory.tsx:507:19",fit:!0,clip:!0,observe:!0,margin:1.1,children:M.jsx(LJ,{"code-path":"src\\components\\modules\\Inventory.tsx:508:21",url:t.id==="u1"||t.id==="u2"?Rk:Ck})})}),M.jsx(DJ,{"code-path":"src\\components\\modules\\Inventory.tsx:511:17",autoRotate:!0,autoRotateSpeed:1.2,enablePan:!1,enableZoom:!1})]})}):M.jsx("img",{"code-path":"src\\components\\modules\\Inventory.tsx:500:13",src:i,alt:`${t.unitNumber} preview`,className:"h-36 w-full object-cover"})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:518:9",className:"mb-3 grid grid-cols-3 gap-1.5",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:519:11",className:"tag text-center uppercase",children:t.type}),M.jsxs("span",{"code-path":"src\\components\\modules\\Inventory.tsx:520:11",className:"tag text-center",children:[t.area," m²"]}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:521:11",className:"tag text-center truncate",children:t.view})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:525:9",className:"mb-3",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:526:11",className:"stat-label mb-0.5",children:"Starting from"}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:527:11",className:"text-xl font-bold leading-none tracking-tight text-white",children:lp(t.price)})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:531:9",className:"mb-3 h-px",style:{background:"rgba(255,255,255,0.06)"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:534:9",className:"grid grid-cols-2 gap-2",children:[M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:535:11",type:"button",onClick:c=>{c.stopPropagation(),e(t)},className:"rounded-xl py-2 text-xs font-semibold transition-all hover:brightness-110 active:scale-95",style:{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"},children:"3D Viewer"}),M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:543:11",type:"button",onClick:c=>{c.stopPropagation(),n(t)},className:"rounded-xl py-2 text-xs font-medium transition-all hover:brightness-110 active:scale-95",style:{background:"rgba(255,255,255,0.06)",color:"hsl(var(--muted-fg))",border:"1px solid rgba(255,255,255,0.1)"},children:"Blueprint"})]})]})]})}function uIe({blueprintImage:t,unitNumber:e}){const n=j.useRef(null),r=j.useRef(null),[i,a]=j.useState(1),[s,o]=j.useState(1),[c,u]=j.useState({x:0,y:0}),[h,p]=j.useState(!1),v=j.useRef({mx:0,my:0,ox:0,oy:0}),y=()=>{const I=r.current,k=n.current;if(!I||!k)return;const B=I.naturalWidth,U=I.naturalHeight,z=k.clientHeight,q=k.clientWidth,W=z/U,ee=q/B,Q=Math.min(W,ee)*.92;o(Q),a(Q),u({x:0,y:0})},b=I=>Math.max(s*.5,Math.min(s*8,I)),w=I=>{I.preventDefault();const k=I.deltaY<0?1.12:1/1.12;a(B=>b(B*k))},_=I=>{I.preventDefault(),p(!0),v.current={mx:I.clientX,my:I.clientY,ox:c.x,oy:c.y}},S=I=>{h&&u({x:v.current.ox+(I.clientX-v.current.mx),y:v.current.oy+(I.clientY-v.current.my)})},E=()=>p(!1),T=()=>a(I=>b(I*1.25)),P=()=>a(I=>b(I/1.25)),R=()=>{a(s),u({x:0,y:0})},D=Math.round(i/s*100);return M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:622:5",ref:n,className:"relative h-full w-full overflow-hidden bg-[#060d1f]",onWheel:w,onMouseDown:_,onMouseMove:S,onMouseUp:E,onMouseLeave:E,style:{cursor:h?"grabbing":"grab",userSelect:"none"},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:633:7",className:"absolute inset-0 flex items-center justify-center",style:{pointerEvents:"none"},children:M.jsx("img",{"code-path":"src\\components\\modules\\Inventory.tsx:637:9",ref:r,src:t,alt:`${e} blueprint`,onLoad:y,draggable:!1,className:"brightness-110 contrast-125 saturate-0",style:{transform:`translate(${c.x}px, ${c.y}px) scale(${i})`,transformOrigin:"center center",maxWidth:"none",maxHeight:"none"}})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:654:7",className:"absolute right-4 top-4 flex flex-col gap-1.5 z-10",children:[M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:655:9",type:"button",onClick:T,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-white/20 bg-zinc-900/90 text-lg font-light text-zinc-200 backdrop-blur-xl transition-colors hover:bg-zinc-800/90",title:"Zoom In",children:"+"}),M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:661:9",type:"button",onClick:P,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-white/20 bg-zinc-900/90 text-lg font-light text-zinc-200 backdrop-blur-xl transition-colors hover:bg-zinc-800/90",title:"Zoom Out",children:"−"}),M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:667:9",type:"button",onClick:R,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-white/20 bg-zinc-900/90 text-[10px] text-zinc-300 backdrop-blur-xl transition-colors hover:bg-zinc-800/90",title:"Reset View",children:"⌂"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:676:7",className:"absolute bottom-4 left-4 z-10 rounded-lg border border-white/20 bg-zinc-900/90 px-3 py-1.5 text-xs text-zinc-300 backdrop-blur-xl",children:[D,"%"]})]})}function fIe({unit:t,mode:e,onClose:n}){if(!t||!e)return null;const r=t.id==="u1"||t.id==="u2"?iIe:rIe;return M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:696:5",className:"fixed inset-0 z-[90] grid place-items-center p-6",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:697:7",className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:n}),M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:698:7",initial:{y:18,scale:.97},animate:{y:0,scale:1},className:"relative z-10 h-[80vh] w-[92vw] overflow-hidden rounded-3xl border border-white/15 bg-zinc-900/90 backdrop-blur-2xl",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:703:9",className:"flex items-center justify-between border-b border-white/10 px-4 py-3",children:[M.jsx(BJ,{"code-path":"src\\components\\modules\\Inventory.tsx:704:11",onClose:n}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:705:11",className:"text-sm font-medium text-zinc-200",children:[e==="3d"?"3D Unit Studio":"Blueprint Studio"," - ",t.unitNumber]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:706:11"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:709:9",className:["h-[calc(80vh-56px)]",e==="3d"?"grid grid-rows-[1fr_auto]":"grid grid-rows-[1fr]"].join(" "),children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:710:11",className:"relative bg-[#060d1f]",children:e==="3d"?M.jsx(sIe,{"code-path":"src\\components\\modules\\Inventory.tsx:711:30",unit:t}):M.jsx(uIe,{"code-path":"src\\components\\modules\\Inventory.tsx:711:57",blueprintImage:r,unitNumber:t.unitNumber})}),e==="3d"&&M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:715:13",className:"grid grid-cols-[1fr_280px] gap-3 border-t border-white/10 bg-zinc-950/75 p-3",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:716:15",className:"rounded-xl border border-white/10 bg-white/5 p-3",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:717:17",className:"text-xs uppercase tracking-wide text-zinc-400",children:"Model Viewport"}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:718:17",className:"mt-1 text-sm text-zinc-200",children:"Interactive 3D model loaded from OBJ + MTL + textures."})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:720:15",className:"rounded-xl border border-white/10 bg-white/5 p-3",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:721:17",className:"mb-2 text-xs uppercase tracking-wide text-zinc-400",children:"Controls"}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:722:17",className:"text-xs text-zinc-300",children:"Mouse: rotate, pan, zoom"}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:723:17",className:"text-xs text-zinc-300",children:["Model source: House ",t.id==="u1"||t.id==="u2"?"2":"1"]})]})]})]})]})]})}function dIe({units:t}){return M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:735:5",className:"relative h-full min-h-[36rem] overflow-hidden rounded-2xl border border-white/10 bg-zinc-900/70",children:[M.jsx("iframe",{"code-path":"src\\components\\modules\\Inventory.tsx:736:7",title:"Dubai Map",src:aIe,className:"h-full w-full border-0",loading:"lazy",referrerPolicy:"no-referrer-when-downgrade"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:737:7",className:"absolute left-3 top-3 rounded-xl border border-white/20 bg-zinc-900/80 px-3 py-2 text-xs text-zinc-200 backdrop-blur-xl",children:[M.jsx(Tx,{"code-path":"src\\components\\modules\\Inventory.tsx:738:9",className:"mr-1 inline h-3.5 w-3.5 text-cyan-300"}),"Google Maps - Inventory Region"]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:741:7",className:"absolute bottom-3 left-3 right-3 grid grid-cols-2 gap-2 rounded-xl border border-white/15 bg-zinc-900/75 p-2 backdrop-blur-xl",children:t.slice(0,4).map(e=>M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:743:11",className:"rounded-lg border border-white/10 bg-white/5 px-2 py-1 text-xs text-zinc-200",children:[e.unitNumber," - ",lp(e.price)]},e.id))})]})}function hIe({unit:t,onViewDetails:e,onOpen3D:n,onOpenBlueprint:r}){return M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:766:5",className:"flex items-center gap-4 px-4 py-3 rounded-xl cursor-pointer transition-colors",style:{background:"hsl(var(--surface-2))"},whileHover:{background:"hsl(var(--surface-3))"},onClick:()=>e(t),layout:!0,children:[M.jsx("img",{"code-path":"src\\components\\modules\\Inventory.tsx:774:7",src:Gv[t.id]??Gv.u1,alt:t.unitNumber,className:"w-14 h-10 rounded-lg object-cover flex-shrink-0",style:{border:"1px solid hsl(var(--border-subtle))"}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:782:7",className:"flex-1 min-w-0 grid grid-cols-5 items-center gap-3",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:783:9",className:"col-span-1",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:784:11",className:"font-bold text-white text-sm leading-none",children:t.unitNumber}),M.jsxs("p",{"code-path":"src\\components\\modules\\Inventory.tsx:785:11",className:"text-xs mt-0.5",style:{color:"hsl(var(--muted-fg))"},children:["Floor ",t.floor]})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:787:9",className:"col-span-1",children:M.jsx(IJ,{"code-path":"src\\components\\modules\\Inventory.tsx:788:11",status:t.status})}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:790:9",className:"col-span-1 flex gap-1.5",children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:791:11",className:"tag",children:t.type}),M.jsxs("span",{"code-path":"src\\components\\modules\\Inventory.tsx:792:11",className:"tag",children:[t.area," m²"]})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:794:9",className:"col-span-1",children:M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:795:11",className:"text-xs",style:{color:"hsl(var(--muted-fg))"},children:t.view})}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:797:9",className:"col-span-1",children:M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:798:11",className:"text-sm font-bold text-white",children:lp(t.price)})})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:803:7",className:"flex items-center gap-2 flex-shrink-0",onClick:i=>i.stopPropagation(),children:[M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:804:9",type:"button",onClick:()=>n(t),className:"px-3 py-1.5 rounded-lg text-xs font-semibold transition-opacity hover:opacity-90",style:{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"},children:"3D"}),M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:812:9",type:"button",onClick:()=>r(t),className:"px-3 py-1.5 rounded-lg text-xs font-medium transition-colors",style:{background:"hsl(var(--surface-3))",color:"hsl(var(--muted-fg))",border:"1px solid hsl(var(--border-subtle))"},children:"Blueprint"})]})]})}function pIe(){const{units:t,filterStatus:e,setFilterStatus:n}=ao(),[r,i]=j.useState(""),[a,s]=j.useState("grid"),[o,c]=j.useState(null),[u,h]=j.useState(null),[p,v]=j.useState(null),y=j.useMemo(()=>({total:t.length,available:t.filter(S=>S.status==="available").length,reserved:t.filter(S=>S.status==="reserved").length,sold:t.filter(S=>S.status==="sold").length}),[t]),b=j.useMemo(()=>t.filter(S=>{const E=S.unitNumber.toLowerCase().includes(r.toLowerCase())||S.view.toLowerCase().includes(r.toLowerCase()),T=e==="all"||S.status===e;return E&&T}),[t,r,e]),w=[{value:"all",label:"All Units"},{value:"available",label:"Available"},{value:"reserved",label:"Reserved"},{value:"sold",label:"Sold"},{value:"hold",label:"On Hold"}],_=[{label:"Total Units",value:y.total,sub:"In portfolio",color:"hsl(var(--accent))",fill:100},{label:"Available",value:y.available,sub:`${Math.round(y.available/y.total*100)||0}% of total`,color:"hsl(var(--success))",fill:y.available/y.total*100},{label:"Reserved",value:y.reserved,sub:`${Math.round(y.reserved/y.total*100)||0}% of total`,color:"hsl(var(--warning))",fill:y.reserved/y.total*100},{label:"Sold",value:y.sold,sub:`${Math.round(y.sold/y.total*100)||0}% of total`,color:"#a78bfa",fill:y.sold/y.total*100}];return M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:892:5",className:"space-y-4",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:895:7",className:"grid grid-cols-4 gap-3",children:_.map(S=>M.jsxs(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:897:11",className:"rounded-2xl p-4 relative overflow-hidden",style:{background:"rgba(18,20,26,0.6)",border:"1px solid rgba(255,255,255,0.08)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.3},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:911:13",className:"absolute top-0 right-0 w-20 h-20 rounded-full blur-2xl opacity-20 -translate-y-1/2 translate-x-1/2 pointer-events-none",style:{background:S.color}}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:917:13",className:"flex items-center justify-between mb-3",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:918:15",className:"text-xs font-medium uppercase tracking-widest",style:{color:"hsl(var(--muted-fg))"},children:S.label}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:921:15",className:"w-2 h-2 rounded-full",style:{background:S.color,boxShadow:`0 0 8px ${S.color}`}})]}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:925:13",className:"text-4xl font-bold text-white leading-none mb-1",children:S.value}),M.jsx("p",{"code-path":"src\\components\\modules\\Inventory.tsx:926:13",className:"text-xs mb-3",style:{color:"hsl(var(--subtle-fg))"},children:S.sub}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:929:13",className:"h-1 rounded-full overflow-hidden",style:{background:"rgba(255,255,255,0.07)"},children:M.jsx(yt.div,{"code-path":"src\\components\\modules\\Inventory.tsx:930:15",className:"h-full rounded-full",style:{background:S.color},initial:{width:0},animate:{width:`${S.fill}%`},transition:{duration:.8,ease:[.4,0,.2,1]}})})]},S.label))}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:943:7",className:"flex flex-wrap items-center gap-3 p-3 rounded-2xl",style:{background:"rgba(18,20,26,0.6)",border:"1px solid rgba(255,255,255,0.08)",backdropFilter:"blur(20px)",WebkitBackdropFilter:"blur(20px)"},children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:948:9",className:"relative min-w-[240px] flex-1",children:[M.jsx(Tse,{"code-path":"src\\components\\modules\\Inventory.tsx:949:11",className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2",style:{color:"hsl(var(--muted-fg))"}}),M.jsx("input",{"code-path":"src\\components\\modules\\Inventory.tsx:950:11",type:"text",value:r,onChange:S=>i(S.target.value),placeholder:"Search units...",className:"h-9 w-full rounded-xl pl-9 pr-3 text-sm text-white placeholder:text-zinc-500 focus:outline-none transition-all",style:{background:"hsl(var(--surface-2))",border:"1px solid hsl(var(--border-subtle))"}})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:961:9",className:"flex items-center gap-1.5",children:w.map(S=>M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:963:13",type:"button",onClick:()=>n(S.value),className:"rounded-xl px-3 py-1.5 text-xs font-medium transition-all",style:e===S.value?{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"}:{background:"hsl(var(--surface-2))",color:"hsl(var(--muted-fg))",border:"1px solid hsl(var(--border-subtle))"},children:S.label},S.value))}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:979:9",className:"flex items-center rounded-xl p-1 gap-1",style:{background:"hsl(var(--surface-2))",border:"1px solid hsl(var(--border-subtle))"},children:[M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:983:11",type:"button",onClick:()=>s("grid"),className:"p-1.5 rounded-lg transition-all",style:a==="grid"?{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"}:{color:"hsl(var(--muted-fg))"},title:"Grid view",children:M.jsx(AW,{"code-path":"src\\components\\modules\\Inventory.tsx:993:13",className:"w-4 h-4"})}),M.jsx("button",{"code-path":"src\\components\\modules\\Inventory.tsx:995:11",type:"button",onClick:()=>s("list"),className:"p-1.5 rounded-lg transition-all",style:a==="list"?{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"}:{color:"hsl(var(--muted-fg))"},title:"List view",children:M.jsx(dL,{"code-path":"src\\components\\modules\\Inventory.tsx:1005:13",className:"w-4 h-4"})})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:1011:7",className:"grid gap-4 xl:grid-cols-2",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:1012:9",className:"h-[44rem] overflow-y-auto rounded-2xl p-3 custom-scrollbar",style:{background:"hsl(var(--surface))",border:"1px solid hsl(var(--border-subtle))"},children:a==="grid"?M.jsx("div",{"code-path":"src\\components\\modules\\Inventory.tsx:1017:13",className:"grid grid-cols-2 gap-3",children:b.map(S=>M.jsx(cIe,{"code-path":"src\\components\\modules\\Inventory.tsx:1019:17",unit:S,onViewDetails:E=>v(E),onOpen3D:E=>{c(E),h("3d")},onOpenBlueprint:E=>{c(E),h("blueprint")}},S.id))}):M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:1029:13",className:"space-y-2",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Inventory.tsx:1031:15",className:"grid grid-cols-5 gap-3 px-4 py-2 text-xs font-medium uppercase tracking-widest",style:{color:"hsl(var(--subtle-fg))"},children:[M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:1032:17",className:"col-span-1",children:"Unit"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:1033:17",className:"col-span-1",children:"Status"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:1034:17",className:"col-span-1",children:"Type / Area"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:1035:17",className:"col-span-1",children:"View"}),M.jsx("span",{"code-path":"src\\components\\modules\\Inventory.tsx:1036:17",className:"col-span-1",children:"Price"})]}),b.map(S=>M.jsx(hIe,{"code-path":"src\\components\\modules\\Inventory.tsx:1039:17",unit:S,onViewDetails:E=>v(E),onOpen3D:E=>{c(E),h("3d")},onOpenBlueprint:E=>{c(E),h("blueprint")}},S.id))]})}),M.jsx(dIe,{"code-path":"src\\components\\modules\\Inventory.tsx:1051:9",units:b})]}),M.jsx(Bs,{"code-path":"src\\components\\modules\\Inventory.tsx:1054:7",children:p&&M.jsx(lIe,{"code-path":"src\\components\\modules\\Inventory.tsx:1056:11",unit:p,onClose:()=>v(null),onOpen3D:S=>{v(null),c(S),h("3d")},onOpenBlueprint:S=>{v(null),c(S),h("blueprint")}})}),M.jsx(Bs,{"code-path":"src\\components\\modules\\Inventory.tsx:1065:7",children:u&&M.jsx(fIe,{"code-path":"src\\components\\modules\\Inventory.tsx:1067:11",unit:o,mode:u,onClose:()=>{h(null),c(null)}})})]})}const mIe={background:"rgba(14, 16, 21, 0.72)",border:"1px solid rgba(255,255,255,0.08)",backdropFilter:"blur(18px)",WebkitBackdropFilter:"blur(18px)"},Nc={background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.07)"};function Vd({children:t,delay:e=0,className:n=""}){return M.jsx(yt.div,{"code-path":"src\\components\\modules\\Settings.tsx:46:5",className:`rounded-2xl overflow-hidden ${n}`,style:mIe,initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.35,delay:e},children:t})}function Wd({icon:t,title:e,accent:n="hsl(var(--accent))"}){return M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:60:5",className:"flex items-center gap-3 px-6 pt-6 pb-4 mb-2",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:61:7",className:"w-9 h-9 rounded-xl flex items-center justify-center flex-shrink-0",style:{background:`${n}22`,border:`1px solid ${n}33`},children:M.jsx(t,{"code-path":"src\\components\\modules\\Settings.tsx:65:9",className:"w-4 h-4",style:{color:n}})}),M.jsx("h3",{"code-path":"src\\components\\modules\\Settings.tsx:67:7",className:"text-white font-semibold text-base tracking-tight",children:e})]})}function pa({label:t,description:e,children:n,danger:r=!1}){return M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:84:5",className:"flex items-center justify-between px-6 py-3.5",style:{borderBottom:"1px solid rgba(255,255,255,0.04)"},children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:88:7",className:"flex-1 min-w-0 pr-4",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:89:9",className:`text-sm font-medium ${r?"text-red-400":"text-white"}`,children:t}),e&&M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:91:11",className:"text-xs mt-0.5",style:{color:"hsl(var(--muted-fg))"},children:e})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:94:7",className:"flex-shrink-0",children:n})]})}function Bp({enabled:t,onChange:e}){return M.jsx("button",{"code-path":"src\\components\\modules\\Settings.tsx:102:5",type:"button",onClick:()=>e(!t),className:"relative w-11 h-6 rounded-full transition-colors duration-200 flex-shrink-0",style:{background:t?"hsl(var(--accent))":"rgba(255,255,255,0.12)"},children:M.jsx(yt.div,{"code-path":"src\\components\\modules\\Settings.tsx:108:7",className:"absolute top-1 w-4 h-4 rounded-full bg-white shadow-sm",animate:{left:t?"24px":"4px"},transition:{type:"spring",stiffness:500,damping:32}})})}function QM({value:t,onChange:e,options:n}){const[r,i]=j.useState(!1),a=n.find(s=>s.value===t)??n[0];return M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:131:5",className:"relative",children:[M.jsxs("button",{"code-path":"src\\components\\modules\\Settings.tsx:132:7",type:"button",onClick:()=>i(s=>!s),className:"flex items-center gap-2 rounded-xl px-3 py-2 text-sm text-white transition-colors min-w-[140px] justify-between",style:Nc,children:[M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:138:9",children:a.label}),M.jsx(_W,{"code-path":"src\\components\\modules\\Settings.tsx:139:9",className:"w-3.5 h-3.5 transition-transform flex-shrink-0",style:{color:"hsl(var(--muted-fg))",transform:r?"rotate(180deg)":"rotate(0deg)"}})]}),M.jsx(Bs,{"code-path":"src\\components\\modules\\Settings.tsx:144:7",children:r&&M.jsx(yt.div,{"code-path":"src\\components\\modules\\Settings.tsx:146:11",className:"absolute right-0 top-full mt-1.5 z-50 rounded-xl overflow-hidden min-w-[160px]",style:{background:"rgba(18,20,26,0.96)",border:"1px solid rgba(255,255,255,0.1)",backdropFilter:"blur(24px)",WebkitBackdropFilter:"blur(24px)",boxShadow:"0 16px 48px rgba(0,0,0,0.5)"},initial:{opacity:0,y:-6,scale:.97},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-4,scale:.97},transition:{duration:.15},children:n.map(s=>M.jsx("button",{"code-path":"src\\components\\modules\\Settings.tsx:161:15",type:"button",onClick:()=>{e(s.value),i(!1)},className:"w-full text-left px-4 py-2.5 text-sm transition-colors",style:{color:s.value===t?"hsl(var(--accent))":"rgba(255,255,255,0.85)",background:s.value===t?"hsl(var(--accent) / 0.1)":"transparent"},onMouseEnter:o=>{s.value!==t&&(o.currentTarget.style.background="rgba(255,255,255,0.06)")},onMouseLeave:o=>{s.value!==t&&(o.currentTarget.style.background="transparent")},children:s.label},s.value))})}),r&&M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:179:16",className:"fixed inset-0 z-40",onClick:()=>i(!1)})]})}function zb({children:t,onClick:e,danger:n=!1}){return M.jsx(yt.button,{"code-path":"src\\components\\modules\\Settings.tsx:187:5",type:"button",onClick:e,className:"px-4 py-2 rounded-xl text-sm font-medium transition-colors",style:n?{background:"rgba(239,68,68,0.12)",color:"#f87171",border:"1px solid rgba(239,68,68,0.2)"}:{...Nc,color:"rgba(255,255,255,0.8)"},whileHover:{scale:1.02},whileTap:{scale:.97},children:t})}function $D({type:t="text",defaultValue:e,placeholder:n}){return M.jsx("input",{"code-path":"src\\components\\modules\\Settings.tsx:206:5",type:t,defaultValue:e,placeholder:n,className:"rounded-xl px-3 py-2 text-sm text-white w-48 focus:outline-none transition-all",style:{...Nc,caretColor:"hsl(var(--accent))"},onFocus:r=>{r.currentTarget.style.border="1px solid hsl(var(--accent) / 0.4)"},onBlur:r=>{r.currentTarget.style.border="1px solid rgba(255,255,255,0.07)"}})}function gIe(){const{status:t,updateStatus:e}=ao();return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:226:5",delay:0,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:227:7",icon:Pse,title:"System Status"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:228:7",className:"px-6 pb-6 space-y-3",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:230:9",className:"flex items-center justify-between p-4 rounded-xl",style:Nc,children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:231:11",className:"flex items-center gap-3",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:232:13",className:"relative w-3 h-3",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:233:15",className:`w-3 h-3 rounded-full ${t.isConnected?"bg-green-500":"bg-red-500"}`}),t.isConnected&&M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:234:38",className:"absolute inset-0 rounded-full bg-green-500 status-pulse"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:236:13",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:237:15",className:"text-white text-sm font-medium",children:"Backend Connection"}),M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:238:15",className:"text-xs mt-0.5",style:{color:"hsl(var(--muted-fg))"},children:t.isConnected?"Connected to local server":"Connection lost"})]})]}),M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:243:11",className:"px-2.5 py-1 rounded-full text-[11px] font-medium",style:t.isConnected?{background:"rgba(34,197,94,0.15)",color:"#86efac"}:{background:"rgba(239,68,68,0.15)",color:"#fca5a5"},children:t.serverStatus.toUpperCase()})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:255:9",className:"grid grid-cols-2 gap-3",children:[{label:"Version",value:t.version},{label:"Last Sync",value:t.lastSync.toLocaleTimeString()}].map(({label:n,value:r})=>M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:260:13",className:"p-3 rounded-xl",style:Nc,children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:261:15",className:"text-xs mb-1",style:{color:"hsl(var(--muted-fg))"},children:n}),M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:262:15",className:"text-white text-sm font-medium",children:r})]},n))}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:268:9",className:"flex gap-3",children:[M.jsxs(yt.button,{"code-path":"src\\components\\modules\\Settings.tsx:269:11",type:"button",className:"flex-1 py-2.5 rounded-xl text-sm font-medium flex items-center justify-center gap-2 transition-colors",style:Nc,whileHover:{scale:1.02},whileTap:{scale:.97},onClick:()=>e({serverStatus:"syncing"}),children:[M.jsx(MW,{"code-path":"src\\components\\modules\\Settings.tsx:277:13",className:"w-4 h-4",style:{color:"hsl(var(--accent))"}}),M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:278:13",className:"text-white",children:"Sync Now"})]}),M.jsxs(yt.button,{"code-path":"src\\components\\modules\\Settings.tsx:280:11",type:"button",className:"flex-1 py-2.5 rounded-xl text-sm font-medium flex items-center justify-center gap-2 transition-colors",style:Nc,whileHover:{scale:1.02},whileTap:{scale:.97},children:[M.jsx(_se,{"code-path":"src\\components\\modules\\Settings.tsx:287:13",className:"w-4 h-4",style:{color:"hsl(var(--muted-fg))"}}),M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:288:13",className:"text-white",children:"Restart"})]})]})]})]})}function vIe(){const[t,e]=j.useState(!1),[n,r]=j.useState(!1),[i,a]=j.useState(!1),s="VLC-7F3A-9B2D",o="192.168.1.42:8765",c=()=>{r(!0),setTimeout(()=>{r(!1),e(!0)},2e3)},u=h=>{navigator.clipboard.writeText(h),a(!0),setTimeout(()=>a(!1),1800)};return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:316:5",delay:.05,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:317:7",icon:s4,title:"iOS App / Device",accent:"#a78bfa"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:318:7",className:"px-6 pb-6 space-y-3",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:321:9",className:"flex items-center justify-between p-4 rounded-xl",style:Nc,children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:322:11",className:"flex items-center gap-3",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:323:13",className:"relative w-3 h-3",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:324:15",className:`w-3 h-3 rounded-full ${t?"bg-green-500":"bg-zinc-500"}`}),t&&M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:325:26",className:"absolute inset-0 rounded-full bg-green-500 status-pulse"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:327:13",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:328:15",className:"text-white text-sm font-medium",children:t?"iPhone Paired":"No Device Paired"}),M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:329:15",className:"text-xs mt-0.5",style:{color:"hsl(var(--muted-fg))"},children:t?"Ahmed’s iPhone 15 Pro":"Open Velocity iOS app to connect"})]})]}),t?M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:335:15",className:"px-2.5 py-1 rounded-full text-[11px] font-medium",style:{background:"rgba(34,197,94,0.15)",color:"#86efac"},children:"CONNECTED"}):M.jsx(RW,{"code-path":"src\\components\\modules\\Settings.tsx:336:15",className:"w-4 h-4",style:{color:"hsl(var(--muted-fg))"}})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:341:9",className:"p-4 rounded-xl space-y-3",style:Nc,children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:342:11",className:"text-xs font-medium uppercase tracking-widest",style:{color:"hsl(var(--muted-fg))"},children:"Pairing Code"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:343:11",className:"flex items-center justify-between",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:344:13",className:"text-2xl font-bold tracking-[0.2em] text-white font-mono",children:s}),M.jsx("button",{"code-path":"src\\components\\modules\\Settings.tsx:345:13",type:"button",onClick:()=>u(s),className:"p-2 rounded-lg transition-colors",style:{background:"rgba(255,255,255,0.06)"},children:i?M.jsx(r4,{"code-path":"src\\components\\modules\\Settings.tsx:351:25",className:"w-4 h-4 text-green-400"}):M.jsx(i4,{"code-path":"src\\components\\modules\\Settings.tsx:351:72",className:"w-4 h-4",style:{color:"hsl(var(--muted-fg))"}})})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:354:11",className:"flex items-center gap-2",children:[M.jsxs("p",{"code-path":"src\\components\\modules\\Settings.tsx:355:13",className:"text-xs",style:{color:"hsl(var(--muted-fg))"},children:["Local IP: ",M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:355:88",className:"text-white font-mono",children:o})]}),M.jsx("button",{"code-path":"src\\components\\modules\\Settings.tsx:356:13",type:"button",onClick:()=>u(o),className:"p-1 rounded transition-colors hover:opacity-70",children:M.jsx(i4,{"code-path":"src\\components\\modules\\Settings.tsx:357:15",className:"w-3 h-3",style:{color:"hsl(var(--muted-fg))"}})})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:363:9",className:"flex gap-3",children:[M.jsx(yt.button,{"code-path":"src\\components\\modules\\Settings.tsx:364:11",type:"button",onClick:c,disabled:n||t,className:"flex-1 py-2.5 rounded-xl text-sm font-semibold flex items-center justify-center gap-2 transition-all",style:t?{background:"rgba(34,197,94,0.15)",color:"#86efac",border:"1px solid rgba(34,197,94,0.2)"}:{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"},whileHover:t?{}:{scale:1.02},whileTap:t?{}:{scale:.97},children:n?M.jsxs(M.Fragment,{children:[M.jsx(MW,{"code-path":"src\\components\\modules\\Settings.tsx:377:17",className:"w-4 h-4 animate-spin"})," Pairing…"]}):t?M.jsxs(M.Fragment,{children:[M.jsx(r4,{"code-path":"src\\components\\modules\\Settings.tsx:379:17",className:"w-4 h-4"})," Paired"]}):M.jsxs(M.Fragment,{children:[M.jsx(s4,{"code-path":"src\\components\\modules\\Settings.tsx:381:17",className:"w-4 h-4"})," Pair Device"]})}),t&&M.jsx(zb,{"code-path":"src\\components\\modules\\Settings.tsx:385:13",onClick:()=>e(!1),danger:!0,children:"Unpair"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:390:9",className:"flex items-center justify-between pt-1",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:391:11",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:392:13",className:"text-sm font-medium text-white",children:"Push Notifications"}),M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:393:13",className:"text-xs mt-0.5",style:{color:"hsl(var(--muted-fg))"},children:"Send alerts to paired iPhone"})]}),M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:395:11",enabled:t,onChange:()=>{}})]})]})]})}function yIe(){const{user:t}=ao(),e=t?.name.split(" ").map(n=>n[0]).join("")??"AA";return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:408:5",delay:.1,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:409:7",icon:CW,title:"Profile"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:410:7",className:"px-6 pb-6",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:411:9",className:"flex items-center gap-4 mb-5 p-4 rounded-xl",style:Nc,children:[M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:412:11",className:"w-14 h-14 rounded-full flex items-center justify-center flex-shrink-0 text-white text-lg font-bold",style:{background:"hsl(var(--accent))",boxShadow:"0 0 20px hsl(var(--accent) / 0.3)"},children:e}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:418:11",children:[M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:419:13",className:"text-white font-semibold",children:t?.name}),M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:420:13",className:"text-xs mt-0.5",style:{color:"hsl(var(--muted-fg))"},children:t?.role==="sales_director"?"Sales Director":"Administrator"})]})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:425:9",className:"space-y-0 -mx-6",children:[M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:426:11",label:"Full Name",description:"Your display name",children:M.jsx($D,{"code-path":"src\\components\\modules\\Settings.tsx:427:13",defaultValue:t?.name})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:429:11",label:"Email",description:"Notification email",children:M.jsx($D,{"code-path":"src\\components\\modules\\Settings.tsx:430:13",type:"email",defaultValue:"ahmed@velocity.re"})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:432:11",label:"Phone",description:"Contact number",children:M.jsx($D,{"code-path":"src\\components\\modules\\Settings.tsx:433:13",type:"tel",defaultValue:"+971 50 123 4567"})})]})]})]})}function xIe(){const[t,e]=j.useState({newLeads:!0,sentimentAlerts:!0,viewings:!0,systemUpdates:!1,emailDigest:!0}),n=[{key:"newLeads",label:"New Lead Alerts",desc:"Get notified when a new lead is captured"},{key:"sentimentAlerts",label:"Sentiment Alerts",desc:"Alert when visitor sentiment drops"},{key:"viewings",label:"Viewing Reminders",desc:"Reminders for scheduled viewings"},{key:"systemUpdates",label:"System Updates",desc:"Notifications about system maintenance"},{key:"emailDigest",label:"Daily Email Digest",desc:"Summary of daily activity"}];return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:453:5",delay:.15,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:454:7",icon:mae,title:"Notifications"}),M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:455:7",className:"-mx-0",children:n.map(({key:r,label:i,desc:a})=>M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:457:11",label:i,description:a,children:M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:458:13",enabled:t[r],onChange:s=>e({...t,[r]:s})})},r))})]})}function bIe(){const[t,e]=j.useState(!0),[n,r]=j.useState(!0),[i,a]=j.useState("30");return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:473:5",delay:.2,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:474:7",icon:Bse,title:"Security",accent:"#f59e0b"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:475:7",children:[M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:476:9",label:"Two-Factor Authentication",description:"Require OTP for login",children:M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:477:11",enabled:t,onChange:e})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:479:9",label:"Biometric Login",description:"Use FaceID for authentication",children:M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:480:11",enabled:n,onChange:r})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:482:9",label:"Change Password",description:"Update your password",children:M.jsx(zb,{"code-path":"src\\components\\modules\\Settings.tsx:483:11",children:"Change"})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:485:9",label:"API Keys",description:"Manage API access",children:M.jsx(zb,{"code-path":"src\\components\\modules\\Settings.tsx:486:11",children:"Manage"})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:488:9",label:"Session Timeout",description:"Auto-logout after inactivity",children:M.jsx(QM,{"code-path":"src\\components\\modules\\Settings.tsx:489:11",value:i,onChange:a,options:[{value:"15",label:"15 minutes"},{value:"30",label:"30 minutes"},{value:"60",label:"1 hour"},{value:"never",label:"Never"}]})})]})]})}function _Ie(){const[t,e]=j.useState(!1),[n,r]=j.useState(!1),[i,a]=j.useState("en"),[s,o]=j.useState("dxb");return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:513:5",delay:.25,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:514:7",icon:yse,title:"Display"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:515:7",children:[M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:516:9",label:"Reduced Motion",description:"Minimize animations",children:M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:517:11",enabled:t,onChange:e})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:519:9",label:"Compact Mode",description:"Show more content per screen",children:M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:520:11",enabled:n,onChange:r})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:522:9",label:"Language",description:"Interface language",children:M.jsx(QM,{"code-path":"src\\components\\modules\\Settings.tsx:523:11",value:i,onChange:a,options:[{value:"en",label:"English"},{value:"ar",label:"العربية"}]})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:532:9",label:"Timezone",description:"Local time display",children:M.jsx(QM,{"code-path":"src\\components\\modules\\Settings.tsx:533:11",value:s,onChange:o,options:[{value:"dxb",label:"Dubai (GMT+4)"},{value:"ruh",label:"Riyadh (GMT+3)"},{value:"lon",label:"London (GMT+0)"}]})})]})]})}function SIe(){const[t,e]=j.useState("90");return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:553:5",delay:.3,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:554:7",icon:Gae,title:"Data & Privacy"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:555:7",children:[M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:556:9",label:"Auto-Backup",description:"Automatically backup data daily",children:M.jsx(Bp,{"code-path":"src\\components\\modules\\Settings.tsx:557:11",enabled:!0,onChange:()=>{}})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:559:9",label:"Data Retention",description:"How long to keep visitor data",children:M.jsx(QM,{"code-path":"src\\components\\modules\\Settings.tsx:560:11",value:t,onChange:e,options:[{value:"30",label:"30 days"},{value:"90",label:"90 days"},{value:"180",label:"6 months"},{value:"365",label:"1 year"}]})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:571:9",label:"Export Data",description:"Download all your data",children:M.jsx(zb,{"code-path":"src\\components\\modules\\Settings.tsx:572:11",children:"Export"})}),M.jsx(pa,{"code-path":"src\\components\\modules\\Settings.tsx:574:9",label:"Clear Cache",description:"Remove temporary files",danger:!0,children:M.jsx(zb,{"code-path":"src\\components\\modules\\Settings.tsx:575:11",danger:!0,children:"Clear"})})]})]})}function AIe(){return M.jsxs(Vd,{"code-path":"src\\components\\modules\\Settings.tsx:585:5",delay:.35,children:[M.jsx(Wd,{"code-path":"src\\components\\modules\\Settings.tsx:586:7",icon:RW,title:"About"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:587:7",className:"px-6 pb-6 text-center",children:[M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:588:9",className:"w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-4 text-white text-2xl font-bold",style:{background:"hsl(var(--accent))",boxShadow:"0 0 28px hsl(var(--accent) / 0.35)"},children:"V"}),M.jsx("h4",{"code-path":"src\\components\\modules\\Settings.tsx:594:9",className:"text-white font-semibold text-lg mb-1",children:"Velocity WebOS"}),M.jsx("p",{"code-path":"src\\components\\modules\\Settings.tsx:595:9",className:"text-sm mb-4",style:{color:"hsl(var(--muted-fg))"},children:"Real Estate Operating System"}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:596:9",className:"flex items-center justify-center gap-2 text-xs mb-6",style:{color:"hsl(var(--subtle-fg))"},children:[M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:597:11",children:"Version 2.1.0"}),M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:598:11",children:"•"}),M.jsx("span",{"code-path":"src\\components\\modules\\Settings.tsx:599:11",children:"Build 2024.02.18"})]}),M.jsx("div",{"code-path":"src\\components\\modules\\Settings.tsx:601:9",className:"flex items-center justify-center gap-4",children:["Terms of Service","Privacy Policy","Documentation"].map(t=>M.jsx("button",{"code-path":"src\\components\\modules\\Settings.tsx:603:13",type:"button",className:"text-sm transition-colors hover:opacity-80",style:{color:"hsl(var(--accent))"},children:t},t))})]})]})}function wIe(){return M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:616:5",className:"space-y-4",children:[M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:618:7",className:"grid grid-cols-2 gap-4",children:[M.jsx(gIe,{"code-path":"src\\components\\modules\\Settings.tsx:619:9"}),M.jsx(vIe,{"code-path":"src\\components\\modules\\Settings.tsx:620:9"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:624:7",className:"grid grid-cols-2 gap-4",children:[M.jsx(yIe,{"code-path":"src\\components\\modules\\Settings.tsx:625:9"}),M.jsx(xIe,{"code-path":"src\\components\\modules\\Settings.tsx:626:9"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:630:7",className:"grid grid-cols-2 gap-4",children:[M.jsx(bIe,{"code-path":"src\\components\\modules\\Settings.tsx:631:9"}),M.jsx(_Ie,{"code-path":"src\\components\\modules\\Settings.tsx:632:9"})]}),M.jsxs("div",{"code-path":"src\\components\\modules\\Settings.tsx:636:7",className:"grid grid-cols-2 gap-4",children:[M.jsx(SIe,{"code-path":"src\\components\\modules\\Settings.tsx:637:9"}),M.jsx(AIe,{"code-path":"src\\components\\modules\\Settings.tsx:638:9"})]})]})}function Vn(t,e,{checkForDefaultPrevented:n=!0}={}){return function(i){if(t?.(i),n===!1||!i.defaultPrevented)return e?.(i)}}function b1(t,e=[]){let n=[];function r(a,s){const o=j.createContext(s),c=n.length;n=[...n,s];const u=p=>{const{scope:v,children:y,...b}=p,w=v?.[t]?.[c]||o,_=j.useMemo(()=>b,Object.values(b));return M.jsx(w.Provider,{value:_,children:y})};u.displayName=a+"Provider";function h(p,v){const y=v?.[t]?.[c]||o,b=j.useContext(y);if(b)return b;if(s!==void 0)return s;throw new Error(`\`${p}\` must be used within \`${a}\``)}return[u,h]}const i=()=>{const a=n.map(s=>j.createContext(s));return function(o){const c=o?.[t]||a;return j.useMemo(()=>({[`__scope${t}`]:{...o,[t]:c}}),[o,c])}};return i.scopeName=t,[r,MIe(i,...e)]}function MIe(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const r=t.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(a){const s=r.reduce((o,{useScope:c,scopeName:u})=>{const p=c(a)[`__scope${u}`];return{...o,...p}},{});return j.useMemo(()=>({[`__scope${e.scopeName}`]:s}),[s])}};return n.scopeName=e.scopeName,n}var EIe=NB[" useInsertionEffect ".trim().toString()]||Ul;function FJ({prop:t,defaultProp:e,onChange:n=()=>{},caller:r}){const[i,a,s]=TIe({defaultProp:e,onChange:n}),o=t!==void 0,c=o?t:i;{const h=j.useRef(t!==void 0);j.useEffect(()=>{const p=h.current;p!==o&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${o?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),h.current=o},[o,r])}const u=j.useCallback(h=>{if(o){const p=CIe(h)?h(t):h;p!==t&&s.current?.(p)}else a(h)},[o,t,a,s]);return[c,u]}function TIe({defaultProp:t,onChange:e}){const[n,r]=j.useState(t),i=j.useRef(n),a=j.useRef(e);return EIe(()=>{a.current=e},[e]),j.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function CIe(t){return typeof t=="function"}function RIe(t){const e=OIe(t),n=j.forwardRef((r,i)=>{const{children:a,...s}=r,o=j.Children.toArray(a),c=o.find(DIe);if(c){const u=c.props.children,h=o.map(p=>p===c?j.Children.count(u)>1?j.Children.only(null):j.isValidElement(u)?u.props.children:null:p);return M.jsx(e,{...s,ref:i,children:j.isValidElement(u)?j.cloneElement(u,void 0,h):null})}return M.jsx(e,{...s,ref:i,children:a})});return n.displayName=`${t}.Slot`,n}function OIe(t){const e=j.forwardRef((n,r)=>{const{children:i,...a}=n;if(j.isValidElement(i)){const s=IIe(i),o=NIe(a,i.props);return i.type!==j.Fragment&&(o.ref=r?Gp(r,s):s),j.cloneElement(i,o)}return j.Children.count(i)>1?j.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var PIe=Symbol("radix.slottable");function DIe(t){return j.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===PIe}function NIe(t,e){const n={...e};for(const r in e){const i=t[r],a=e[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...o)=>{const c=a(...o);return i(...o),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...a}:r==="className"&&(n[r]=[i,a].filter(Boolean).join(" "))}return{...t,...n}}function IIe(t){let e=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=Object.getOwnPropertyDescriptor(t,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var BIe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],us=BIe.reduce((t,e)=>{const n=RIe(`Primitive.${e}`),r=j.forwardRef((i,a)=>{const{asChild:s,...o}=i,c=s?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),M.jsx(c,{...o,ref:a})});return r.displayName=`Primitive.${e}`,{...t,[e]:r}},{});function UJ(t,e){t&&o5.flushSync(()=>t.dispatchEvent(e))}function rV(t){const e=LIe(t),n=j.forwardRef((r,i)=>{const{children:a,...s}=r,o=j.Children.toArray(a),c=o.find(FIe);if(c){const u=c.props.children,h=o.map(p=>p===c?j.Children.count(u)>1?j.Children.only(null):j.isValidElement(u)?u.props.children:null:p);return M.jsx(e,{...s,ref:i,children:j.isValidElement(u)?j.cloneElement(u,void 0,h):null})}return M.jsx(e,{...s,ref:i,children:a})});return n.displayName=`${t}.Slot`,n}function LIe(t){const e=j.forwardRef((n,r)=>{const{children:i,...a}=n;if(j.isValidElement(i)){const s=jIe(i),o=UIe(a,i.props);return i.type!==j.Fragment&&(o.ref=r?Gp(r,s):s),j.cloneElement(i,o)}return j.Children.count(i)>1?j.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var kIe=Symbol("radix.slottable");function FIe(t){return j.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===kIe}function UIe(t,e){const n={...e};for(const r in e){const i=t[r],a=e[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...o)=>{const c=a(...o);return i(...o),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...a}:r==="className"&&(n[r]=[i,a].filter(Boolean).join(" "))}return{...t,...n}}function jIe(t){let e=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=Object.getOwnPropertyDescriptor(t,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function jJ(t){const e=t+"CollectionProvider",[n,r]=b1(e),[i,a]=n(e,{collectionRef:{current:null},itemMap:new Map}),s=w=>{const{scope:_,children:S}=w,E=fe.useRef(null),T=fe.useRef(new Map).current;return M.jsx(i,{scope:_,itemMap:T,collectionRef:E,children:S})};s.displayName=e;const o=t+"CollectionSlot",c=rV(o),u=fe.forwardRef((w,_)=>{const{scope:S,children:E}=w,T=a(o,S),P=Ls(_,T.collectionRef);return M.jsx(c,{ref:P,children:E})});u.displayName=o;const h=t+"CollectionItemSlot",p="data-radix-collection-item",v=rV(h),y=fe.forwardRef((w,_)=>{const{scope:S,children:E,...T}=w,P=fe.useRef(null),R=Ls(_,P),D=a(h,S);return fe.useEffect(()=>(D.itemMap.set(P,{ref:P,...T}),()=>{D.itemMap.delete(P)})),M.jsx(v,{[p]:"",ref:R,children:E})});y.displayName=h;function b(w){const _=a(t+"CollectionConsumer",w);return fe.useCallback(()=>{const E=_.collectionRef.current;if(!E)return[];const T=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(_.itemMap.values()).sort((D,I)=>T.indexOf(D.ref.current)-T.indexOf(I.ref.current))},[_.collectionRef,_.itemMap])}return[{Provider:s,Slot:u,ItemSlot:y},b,r]}var zIe=j.createContext(void 0);function zJ(t){const e=j.useContext(zIe);return t||e||"ltr"}function GIe(t,e=globalThis?.document){const n=Hc(t);j.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return e.addEventListener("keydown",r,{capture:!0}),()=>e.removeEventListener("keydown",r,{capture:!0})},[n,e])}var HIe="DismissableLayer",MB="dismissableLayer.update",VIe="dismissableLayer.pointerDownOutside",WIe="dismissableLayer.focusOutside",iV,GJ=j.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),HJ=j.forwardRef((t,e)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:s,onDismiss:o,...c}=t,u=j.useContext(GJ),[h,p]=j.useState(null),v=h?.ownerDocument??globalThis?.document,[,y]=j.useState({}),b=Ls(e,I=>p(I)),w=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),S=w.indexOf(_),E=h?w.indexOf(h):-1,T=u.layersWithOutsidePointerEventsDisabled.size>0,P=E>=S,R=XIe(I=>{const k=I.target,B=[...u.branches].some(U=>U.contains(k));!P||B||(i?.(I),s?.(I),I.defaultPrevented||o?.())},v),D=KIe(I=>{const k=I.target;[...u.branches].some(U=>U.contains(k))||(a?.(I),s?.(I),I.defaultPrevented||o?.())},v);return GIe(I=>{E===u.layers.size-1&&(r?.(I),!I.defaultPrevented&&o&&(I.preventDefault(),o()))},v),j.useEffect(()=>{if(h)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(iV=v.body.style.pointerEvents,v.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(h)),u.layers.add(h),aV(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(v.body.style.pointerEvents=iV)}},[h,v,n,u]),j.useEffect(()=>()=>{h&&(u.layers.delete(h),u.layersWithOutsidePointerEventsDisabled.delete(h),aV())},[h,u]),j.useEffect(()=>{const I=()=>y({});return document.addEventListener(MB,I),()=>document.removeEventListener(MB,I)},[]),M.jsx(us.div,{...c,ref:b,style:{pointerEvents:T?P?"auto":"none":void 0,...t.style},onFocusCapture:Vn(t.onFocusCapture,D.onFocusCapture),onBlurCapture:Vn(t.onBlurCapture,D.onBlurCapture),onPointerDownCapture:Vn(t.onPointerDownCapture,R.onPointerDownCapture)})});HJ.displayName=HIe;var qIe="DismissableLayerBranch",$Ie=j.forwardRef((t,e)=>{const n=j.useContext(GJ),r=j.useRef(null),i=Ls(e,r);return j.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),M.jsx(us.div,{...t,ref:i})});$Ie.displayName=qIe;function XIe(t,e=globalThis?.document){const n=Hc(t),r=j.useRef(!1),i=j.useRef(()=>{});return j.useEffect(()=>{const a=o=>{if(o.target&&!r.current){let c=function(){VJ(VIe,n,u,{discrete:!0})};const u={originalEvent:o};o.pointerType==="touch"?(e.removeEventListener("click",i.current),i.current=c,e.addEventListener("click",i.current,{once:!0})):c()}else e.removeEventListener("click",i.current);r.current=!1},s=window.setTimeout(()=>{e.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(s),e.removeEventListener("pointerdown",a),e.removeEventListener("click",i.current)}},[e,n]),{onPointerDownCapture:()=>r.current=!0}}function KIe(t,e=globalThis?.document){const n=Hc(t),r=j.useRef(!1);return j.useEffect(()=>{const i=a=>{a.target&&!r.current&&VJ(WIe,n,{originalEvent:a},{discrete:!1})};return e.addEventListener("focusin",i),()=>e.removeEventListener("focusin",i)},[e,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function aV(){const t=new CustomEvent(MB);document.dispatchEvent(t)}function VJ(t,e,n,{discrete:r}){const i=n.originalEvent.target,a=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&i.addEventListener(t,e,{once:!0}),r?UJ(i,a):i.dispatchEvent(a)}var XD=0;function YIe(){j.useEffect(()=>{const t=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",t[0]??sV()),document.body.insertAdjacentElement("beforeend",t[1]??sV()),XD++,()=>{XD===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),XD--}},[])}function sV(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var KD="focusScope.autoFocusOnMount",YD="focusScope.autoFocusOnUnmount",oV={bubbles:!1,cancelable:!0},JIe="FocusScope",WJ=j.forwardRef((t,e)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...s}=t,[o,c]=j.useState(null),u=Hc(i),h=Hc(a),p=j.useRef(null),v=Ls(e,w=>c(w)),y=j.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;j.useEffect(()=>{if(r){let w=function(T){if(y.paused||!o)return;const P=T.target;o.contains(P)?p.current=P:pd(p.current,{select:!0})},_=function(T){if(y.paused||!o)return;const P=T.relatedTarget;P!==null&&(o.contains(P)||pd(p.current,{select:!0}))},S=function(T){if(document.activeElement===document.body)for(const R of T)R.removedNodes.length>0&&pd(o)};document.addEventListener("focusin",w),document.addEventListener("focusout",_);const E=new MutationObserver(S);return o&&E.observe(o,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",_),E.disconnect()}}},[r,o,y.paused]),j.useEffect(()=>{if(o){cV.add(y);const w=document.activeElement;if(!o.contains(w)){const S=new CustomEvent(KD,oV);o.addEventListener(KD,u),o.dispatchEvent(S),S.defaultPrevented||(ZIe(rBe(qJ(o)),{select:!0}),document.activeElement===w&&pd(o))}return()=>{o.removeEventListener(KD,u),setTimeout(()=>{const S=new CustomEvent(YD,oV);o.addEventListener(YD,h),o.dispatchEvent(S),S.defaultPrevented||pd(w??document.body,{select:!0}),o.removeEventListener(YD,h),cV.remove(y)},0)}}},[o,u,h,y]);const b=j.useCallback(w=>{if(!n&&!r||y.paused)return;const _=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,S=document.activeElement;if(_&&S){const E=w.currentTarget,[T,P]=QIe(E);T&&P?!w.shiftKey&&S===P?(w.preventDefault(),n&&pd(T,{select:!0})):w.shiftKey&&S===T&&(w.preventDefault(),n&&pd(P,{select:!0})):S===E&&w.preventDefault()}},[n,r,y.paused]);return M.jsx(us.div,{tabIndex:-1,...s,ref:v,onKeyDown:b})});WJ.displayName=JIe;function ZIe(t,{select:e=!1}={}){const n=document.activeElement;for(const r of t)if(pd(r,{select:e}),document.activeElement!==n)return}function QIe(t){const e=qJ(t),n=lV(e,t),r=lV(e.reverse(),t);return[n,r]}function qJ(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)e.push(n.currentNode);return e}function lV(t,e){for(const n of t)if(!eBe(n,{upTo:e}))return n}function eBe(t,{upTo:e}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(e!==void 0&&t===e)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function tBe(t){return t instanceof HTMLInputElement&&"select"in t}function pd(t,{select:e=!1}={}){if(t&&t.focus){const n=document.activeElement;t.focus({preventScroll:!0}),t!==n&&tBe(t)&&e&&t.select()}}var cV=nBe();function nBe(){let t=[];return{add(e){const n=t[0];e!==n&&n?.pause(),t=uV(t,e),t.unshift(e)},remove(e){t=uV(t,e),t[0]?.resume()}}}function uV(t,e){const n=[...t],r=n.indexOf(e);return r!==-1&&n.splice(r,1),n}function rBe(t){return t.filter(e=>e.tagName!=="A")}var iBe=NB[" useId ".trim().toString()]||(()=>{}),aBe=0;function EB(t){const[e,n]=j.useState(iBe());return Ul(()=>{n(r=>r??String(aBe++))},[t]),t||(e?`radix-${e}`:"")}const sBe=["top","right","bottom","left"],Nd=Math.min,Ys=Math.max,eE=Math.round,wA=Math.floor,Uc=t=>({x:t,y:t}),oBe={left:"right",right:"left",bottom:"top",top:"bottom"},lBe={start:"end",end:"start"};function TB(t,e,n){return Ys(t,Nd(e,n))}function lf(t,e){return typeof t=="function"?t(e):t}function cf(t){return t.split("-")[0]}function py(t){return t.split("-")[1]}function Ok(t){return t==="x"?"y":"x"}function Pk(t){return t==="y"?"height":"width"}const cBe=new Set(["top","bottom"]);function Ic(t){return cBe.has(cf(t))?"y":"x"}function Dk(t){return Ok(Ic(t))}function uBe(t,e,n){n===void 0&&(n=!1);const r=py(t),i=Dk(t),a=Pk(i);let s=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return e.reference[a]>e.floating[a]&&(s=tE(s)),[s,tE(s)]}function fBe(t){const e=tE(t);return[CB(t),e,CB(e)]}function CB(t){return t.replace(/start|end/g,e=>lBe[e])}const fV=["left","right"],dV=["right","left"],dBe=["top","bottom"],hBe=["bottom","top"];function pBe(t,e,n){switch(t){case"top":case"bottom":return n?e?dV:fV:e?fV:dV;case"left":case"right":return e?dBe:hBe;default:return[]}}function mBe(t,e,n,r){const i=py(t);let a=pBe(cf(t),n==="start",r);return i&&(a=a.map(s=>s+"-"+i),e&&(a=a.concat(a.map(CB)))),a}function tE(t){return t.replace(/left|right|bottom|top/g,e=>oBe[e])}function gBe(t){return{top:0,right:0,bottom:0,left:0,...t}}function $J(t){return typeof t!="number"?gBe(t):{top:t,right:t,bottom:t,left:t}}function nE(t){const{x:e,y:n,width:r,height:i}=t;return{width:r,height:i,top:n,left:e,right:e+r,bottom:n+i,x:e,y:n}}function hV(t,e,n){let{reference:r,floating:i}=t;const a=Ic(e),s=Dk(e),o=Pk(s),c=cf(e),u=a==="y",h=r.x+r.width/2-i.width/2,p=r.y+r.height/2-i.height/2,v=r[o]/2-i[o]/2;let y;switch(c){case"top":y={x:h,y:r.y-i.height};break;case"bottom":y={x:h,y:r.y+r.height};break;case"right":y={x:r.x+r.width,y:p};break;case"left":y={x:r.x-i.width,y:p};break;default:y={x:r.x,y:r.y}}switch(py(e)){case"start":y[s]-=v*(n&&u?-1:1);break;case"end":y[s]+=v*(n&&u?-1:1);break}return y}const vBe=async(t,e,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:a=[],platform:s}=n,o=a.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(e));let u=await s.getElementRects({reference:t,floating:e,strategy:i}),{x:h,y:p}=hV(u,r,c),v=r,y={},b=0;for(let w=0;w({name:"arrow",options:t,async fn(e){const{x:n,y:r,placement:i,rects:a,platform:s,elements:o,middlewareData:c}=e,{element:u,padding:h=0}=lf(t,e)||{};if(u==null)return{};const p=$J(h),v={x:n,y:r},y=Dk(i),b=Pk(y),w=await s.getDimensions(u),_=y==="y",S=_?"top":"left",E=_?"bottom":"right",T=_?"clientHeight":"clientWidth",P=a.reference[b]+a.reference[y]-v[y]-a.floating[b],R=v[y]-a.reference[y],D=await(s.getOffsetParent==null?void 0:s.getOffsetParent(u));let I=D?D[T]:0;(!I||!await(s.isElement==null?void 0:s.isElement(D)))&&(I=o.floating[T]||a.floating[b]);const k=P/2-R/2,B=I/2-w[b]/2-1,U=Nd(p[S],B),z=Nd(p[E],B),q=U,W=I-w[b]-z,ee=I/2-w[b]/2+k,Q=TB(q,ee,W),V=!c.arrow&&py(i)!=null&&ee!==Q&&a.reference[b]/2-(eeee<=0)){var z,q;const ee=(((z=a.flip)==null?void 0:z.index)||0)+1,Q=I[ee];if(Q&&(!(p==="alignment"?E!==Ic(Q):!1)||U.every(Y=>Ic(Y.placement)===E?Y.overflows[0]>0:!0)))return{data:{index:ee,overflows:U},reset:{placement:Q}};let V=(q=U.filter($=>$.overflows[0]<=0).sort(($,Y)=>$.overflows[1]-Y.overflows[1])[0])==null?void 0:q.placement;if(!V)switch(y){case"bestFit":{var W;const $=(W=U.filter(Y=>{if(D){const ie=Ic(Y.placement);return ie===E||ie==="y"}return!0}).map(Y=>[Y.placement,Y.overflows.filter(ie=>ie>0).reduce((ie,de)=>ie+de,0)]).sort((Y,ie)=>Y[1]-ie[1])[0])==null?void 0:W[0];$&&(V=$);break}case"initialPlacement":V=o;break}if(i!==V)return{reset:{placement:V}}}return{}}}};function pV(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function mV(t){return sBe.some(e=>t[e]>=0)}const bBe=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n}=e,{strategy:r="referenceHidden",...i}=lf(t,e);switch(r){case"referenceHidden":{const a=await Gb(e,{...i,elementContext:"reference"}),s=pV(a,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:mV(s)}}}case"escaped":{const a=await Gb(e,{...i,altBoundary:!0}),s=pV(a,n.floating);return{data:{escapedOffsets:s,escaped:mV(s)}}}default:return{}}}}},XJ=new Set(["left","top"]);async function _Be(t,e){const{placement:n,platform:r,elements:i}=t,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),s=cf(n),o=py(n),c=Ic(n)==="y",u=XJ.has(s)?-1:1,h=a&&c?-1:1,p=lf(e,t);let{mainAxis:v,crossAxis:y,alignmentAxis:b}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return o&&typeof b=="number"&&(y=o==="end"?b*-1:b),c?{x:y*h,y:v*u}:{x:v*u,y:y*h}}const SBe=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,r;const{x:i,y:a,placement:s,middlewareData:o}=e,c=await _Be(e,t);return s===((n=o.offset)==null?void 0:n.placement)&&(r=o.arrow)!=null&&r.alignmentOffset?{}:{x:i+c.x,y:a+c.y,data:{...c,placement:s}}}}},ABe=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:r,placement:i}=e,{mainAxis:a=!0,crossAxis:s=!1,limiter:o={fn:_=>{let{x:S,y:E}=_;return{x:S,y:E}}},...c}=lf(t,e),u={x:n,y:r},h=await Gb(e,c),p=Ic(cf(i)),v=Ok(p);let y=u[v],b=u[p];if(a){const _=v==="y"?"top":"left",S=v==="y"?"bottom":"right",E=y+h[_],T=y-h[S];y=TB(E,y,T)}if(s){const _=p==="y"?"top":"left",S=p==="y"?"bottom":"right",E=b+h[_],T=b-h[S];b=TB(E,b,T)}const w=o.fn({...e,[v]:y,[p]:b});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[v]:a,[p]:s}}}}}},wBe=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:r,placement:i,rects:a,middlewareData:s}=e,{offset:o=0,mainAxis:c=!0,crossAxis:u=!0}=lf(t,e),h={x:n,y:r},p=Ic(i),v=Ok(p);let y=h[v],b=h[p];const w=lf(o,e),_=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(c){const T=v==="y"?"height":"width",P=a.reference[v]-a.floating[T]+_.mainAxis,R=a.reference[v]+a.reference[T]-_.mainAxis;yR&&(y=R)}if(u){var S,E;const T=v==="y"?"width":"height",P=XJ.has(cf(i)),R=a.reference[p]-a.floating[T]+(P&&((S=s.offset)==null?void 0:S[p])||0)+(P?0:_.crossAxis),D=a.reference[p]+a.reference[T]+(P?0:((E=s.offset)==null?void 0:E[p])||0)-(P?_.crossAxis:0);bD&&(b=D)}return{[v]:y,[p]:b}}}},MBe=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,r;const{placement:i,rects:a,platform:s,elements:o}=e,{apply:c=()=>{},...u}=lf(t,e),h=await Gb(e,u),p=cf(i),v=py(i),y=Ic(i)==="y",{width:b,height:w}=a.floating;let _,S;p==="top"||p==="bottom"?(_=p,S=v===(await(s.isRTL==null?void 0:s.isRTL(o.floating))?"start":"end")?"left":"right"):(S=p,_=v==="end"?"top":"bottom");const E=w-h.top-h.bottom,T=b-h.left-h.right,P=Nd(w-h[_],E),R=Nd(b-h[S],T),D=!e.middlewareData.shift;let I=P,k=R;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(k=T),(r=e.middlewareData.shift)!=null&&r.enabled.y&&(I=E),D&&!v){const U=Ys(h.left,0),z=Ys(h.right,0),q=Ys(h.top,0),W=Ys(h.bottom,0);y?k=b-2*(U!==0||z!==0?U+z:Ys(h.left,h.right)):I=w-2*(q!==0||W!==0?q+W:Ys(h.top,h.bottom))}await c({...e,availableWidth:k,availableHeight:I});const B=await s.getDimensions(o.floating);return b!==B.width||w!==B.height?{reset:{rects:!0}}:{}}}};function ET(){return typeof window<"u"}function my(t){return KJ(t)?(t.nodeName||"").toLowerCase():"#document"}function no(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Jc(t){var e;return(e=(KJ(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function KJ(t){return ET()?t instanceof Node||t instanceof no(t).Node:!1}function jl(t){return ET()?t instanceof Element||t instanceof no(t).Element:!1}function Xc(t){return ET()?t instanceof HTMLElement||t instanceof no(t).HTMLElement:!1}function gV(t){return!ET()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof no(t).ShadowRoot}const EBe=new Set(["inline","contents"]);function _1(t){const{overflow:e,overflowX:n,overflowY:r,display:i}=zl(t);return/auto|scroll|overlay|hidden|clip/.test(e+r+n)&&!EBe.has(i)}const TBe=new Set(["table","td","th"]);function CBe(t){return TBe.has(my(t))}const RBe=[":popover-open",":modal"];function TT(t){return RBe.some(e=>{try{return t.matches(e)}catch{return!1}})}const OBe=["transform","translate","scale","rotate","perspective"],PBe=["transform","translate","scale","rotate","perspective","filter"],DBe=["paint","layout","strict","content"];function Nk(t){const e=Ik(),n=jl(t)?zl(t):t;return OBe.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||PBe.some(r=>(n.willChange||"").includes(r))||DBe.some(r=>(n.contain||"").includes(r))}function NBe(t){let e=Id(t);for(;Xc(e)&&!Hv(e);){if(Nk(e))return e;if(TT(e))return null;e=Id(e)}return null}function Ik(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const IBe=new Set(["html","body","#document"]);function Hv(t){return IBe.has(my(t))}function zl(t){return no(t).getComputedStyle(t)}function CT(t){return jl(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Id(t){if(my(t)==="html")return t;const e=t.assignedSlot||t.parentNode||gV(t)&&t.host||Jc(t);return gV(e)?e.host:e}function YJ(t){const e=Id(t);return Hv(e)?t.ownerDocument?t.ownerDocument.body:t.body:Xc(e)&&_1(e)?e:YJ(e)}function Hb(t,e,n){var r;e===void 0&&(e=[]),n===void 0&&(n=!0);const i=YJ(t),a=i===((r=t.ownerDocument)==null?void 0:r.body),s=no(i);if(a){const o=RB(s);return e.concat(s,s.visualViewport||[],_1(i)?i:[],o&&n?Hb(o):[])}return e.concat(i,Hb(i,[],n))}function RB(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function JJ(t){const e=zl(t);let n=parseFloat(e.width)||0,r=parseFloat(e.height)||0;const i=Xc(t),a=i?t.offsetWidth:n,s=i?t.offsetHeight:r,o=eE(n)!==a||eE(r)!==s;return o&&(n=a,r=s),{width:n,height:r,$:o}}function Bk(t){return jl(t)?t:t.contextElement}function ev(t){const e=Bk(t);if(!Xc(e))return Uc(1);const n=e.getBoundingClientRect(),{width:r,height:i,$:a}=JJ(e);let s=(a?eE(n.width):n.width)/r,o=(a?eE(n.height):n.height)/i;return(!s||!Number.isFinite(s))&&(s=1),(!o||!Number.isFinite(o))&&(o=1),{x:s,y:o}}const BBe=Uc(0);function ZJ(t){const e=no(t);return!Ik()||!e.visualViewport?BBe:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function LBe(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==no(t)?!1:e}function Lp(t,e,n,r){e===void 0&&(e=!1),n===void 0&&(n=!1);const i=t.getBoundingClientRect(),a=Bk(t);let s=Uc(1);e&&(r?jl(r)&&(s=ev(r)):s=ev(t));const o=LBe(a,n,r)?ZJ(a):Uc(0);let c=(i.left+o.x)/s.x,u=(i.top+o.y)/s.y,h=i.width/s.x,p=i.height/s.y;if(a){const v=no(a),y=r&&jl(r)?no(r):r;let b=v,w=RB(b);for(;w&&r&&y!==b;){const _=ev(w),S=w.getBoundingClientRect(),E=zl(w),T=S.left+(w.clientLeft+parseFloat(E.paddingLeft))*_.x,P=S.top+(w.clientTop+parseFloat(E.paddingTop))*_.y;c*=_.x,u*=_.y,h*=_.x,p*=_.y,c+=T,u+=P,b=no(w),w=RB(b)}}return nE({width:h,height:p,x:c,y:u})}function RT(t,e){const n=CT(t).scrollLeft;return e?e.left+n:Lp(Jc(t)).left+n}function QJ(t,e){const n=t.getBoundingClientRect(),r=n.left+e.scrollLeft-RT(t,n),i=n.top+e.scrollTop;return{x:r,y:i}}function kBe(t){let{elements:e,rect:n,offsetParent:r,strategy:i}=t;const a=i==="fixed",s=Jc(r),o=e?TT(e.floating):!1;if(r===s||o&&a)return n;let c={scrollLeft:0,scrollTop:0},u=Uc(1);const h=Uc(0),p=Xc(r);if((p||!p&&!a)&&((my(r)!=="body"||_1(s))&&(c=CT(r)),Xc(r))){const y=Lp(r);u=ev(r),h.x=y.x+r.clientLeft,h.y=y.y+r.clientTop}const v=s&&!p&&!a?QJ(s,c):Uc(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-c.scrollLeft*u.x+h.x+v.x,y:n.y*u.y-c.scrollTop*u.y+h.y+v.y}}function FBe(t){return Array.from(t.getClientRects())}function UBe(t){const e=Jc(t),n=CT(t),r=t.ownerDocument.body,i=Ys(e.scrollWidth,e.clientWidth,r.scrollWidth,r.clientWidth),a=Ys(e.scrollHeight,e.clientHeight,r.scrollHeight,r.clientHeight);let s=-n.scrollLeft+RT(t);const o=-n.scrollTop;return zl(r).direction==="rtl"&&(s+=Ys(e.clientWidth,r.clientWidth)-i),{width:i,height:a,x:s,y:o}}const vV=25;function jBe(t,e){const n=no(t),r=Jc(t),i=n.visualViewport;let a=r.clientWidth,s=r.clientHeight,o=0,c=0;if(i){a=i.width,s=i.height;const h=Ik();(!h||h&&e==="fixed")&&(o=i.offsetLeft,c=i.offsetTop)}const u=RT(r);if(u<=0){const h=r.ownerDocument,p=h.body,v=getComputedStyle(p),y=h.compatMode==="CSS1Compat"&&parseFloat(v.marginLeft)+parseFloat(v.marginRight)||0,b=Math.abs(r.clientWidth-p.clientWidth-y);b<=vV&&(a-=b)}else u<=vV&&(a+=u);return{width:a,height:s,x:o,y:c}}const zBe=new Set(["absolute","fixed"]);function GBe(t,e){const n=Lp(t,!0,e==="fixed"),r=n.top+t.clientTop,i=n.left+t.clientLeft,a=Xc(t)?ev(t):Uc(1),s=t.clientWidth*a.x,o=t.clientHeight*a.y,c=i*a.x,u=r*a.y;return{width:s,height:o,x:c,y:u}}function yV(t,e,n){let r;if(e==="viewport")r=jBe(t,n);else if(e==="document")r=UBe(Jc(t));else if(jl(e))r=GBe(e,n);else{const i=ZJ(t);r={x:e.x-i.x,y:e.y-i.y,width:e.width,height:e.height}}return nE(r)}function eZ(t,e){const n=Id(t);return n===e||!jl(n)||Hv(n)?!1:zl(n).position==="fixed"||eZ(n,e)}function HBe(t,e){const n=e.get(t);if(n)return n;let r=Hb(t,[],!1).filter(o=>jl(o)&&my(o)!=="body"),i=null;const a=zl(t).position==="fixed";let s=a?Id(t):t;for(;jl(s)&&!Hv(s);){const o=zl(s),c=Nk(s);!c&&o.position==="fixed"&&(i=null),(a?!c&&!i:!c&&o.position==="static"&&!!i&&zBe.has(i.position)||_1(s)&&!c&&eZ(t,s))?r=r.filter(h=>h!==s):i=o,s=Id(s)}return e.set(t,r),r}function VBe(t){let{element:e,boundary:n,rootBoundary:r,strategy:i}=t;const s=[...n==="clippingAncestors"?TT(e)?[]:HBe(e,this._c):[].concat(n),r],o=s[0],c=s.reduce((u,h)=>{const p=yV(e,h,i);return u.top=Ys(p.top,u.top),u.right=Nd(p.right,u.right),u.bottom=Nd(p.bottom,u.bottom),u.left=Ys(p.left,u.left),u},yV(e,o,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function WBe(t){const{width:e,height:n}=JJ(t);return{width:e,height:n}}function qBe(t,e,n){const r=Xc(e),i=Jc(e),a=n==="fixed",s=Lp(t,!0,a,e);let o={scrollLeft:0,scrollTop:0};const c=Uc(0);function u(){c.x=RT(i)}if(r||!r&&!a)if((my(e)!=="body"||_1(i))&&(o=CT(e)),r){const y=Lp(e,!0,a,e);c.x=y.x+e.clientLeft,c.y=y.y+e.clientTop}else i&&u();a&&!r&&i&&u();const h=i&&!r&&!a?QJ(i,o):Uc(0),p=s.left+o.scrollLeft-c.x-h.x,v=s.top+o.scrollTop-c.y-h.y;return{x:p,y:v,width:s.width,height:s.height}}function JD(t){return zl(t).position==="static"}function xV(t,e){if(!Xc(t)||zl(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return Jc(t)===n&&(n=n.ownerDocument.body),n}function tZ(t,e){const n=no(t);if(TT(t))return n;if(!Xc(t)){let i=Id(t);for(;i&&!Hv(i);){if(jl(i)&&!JD(i))return i;i=Id(i)}return n}let r=xV(t,e);for(;r&&CBe(r)&&JD(r);)r=xV(r,e);return r&&Hv(r)&&JD(r)&&!Nk(r)?n:r||NBe(t)||n}const $Be=async function(t){const e=this.getOffsetParent||tZ,n=this.getDimensions,r=await n(t.floating);return{reference:qBe(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function XBe(t){return zl(t).direction==="rtl"}const KBe={convertOffsetParentRelativeRectToViewportRelativeRect:kBe,getDocumentElement:Jc,getClippingRect:VBe,getOffsetParent:tZ,getElementRects:$Be,getClientRects:FBe,getDimensions:WBe,getScale:ev,isElement:jl,isRTL:XBe};function nZ(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function YBe(t,e){let n=null,r;const i=Jc(t);function a(){var o;clearTimeout(r),(o=n)==null||o.disconnect(),n=null}function s(o,c){o===void 0&&(o=!1),c===void 0&&(c=1),a();const u=t.getBoundingClientRect(),{left:h,top:p,width:v,height:y}=u;if(o||e(),!v||!y)return;const b=wA(p),w=wA(i.clientWidth-(h+v)),_=wA(i.clientHeight-(p+y)),S=wA(h),T={rootMargin:-b+"px "+-w+"px "+-_+"px "+-S+"px",threshold:Ys(0,Nd(1,c))||1};let P=!0;function R(D){const I=D[0].intersectionRatio;if(I!==c){if(!P)return s();I?s(!1,I):r=setTimeout(()=>{s(!1,1e-7)},1e3)}I===1&&!nZ(u,t.getBoundingClientRect())&&s(),P=!1}try{n=new IntersectionObserver(R,{...T,root:i.ownerDocument})}catch{n=new IntersectionObserver(R,T)}n.observe(t)}return s(!0),a}function JBe(t,e,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:o=typeof IntersectionObserver=="function",animationFrame:c=!1}=r,u=Bk(t),h=i||a?[...u?Hb(u):[],...Hb(e)]:[];h.forEach(S=>{i&&S.addEventListener("scroll",n,{passive:!0}),a&&S.addEventListener("resize",n)});const p=u&&o?YBe(u,n):null;let v=-1,y=null;s&&(y=new ResizeObserver(S=>{let[E]=S;E&&E.target===u&&y&&(y.unobserve(e),cancelAnimationFrame(v),v=requestAnimationFrame(()=>{var T;(T=y)==null||T.observe(e)})),n()}),u&&!c&&y.observe(u),y.observe(e));let b,w=c?Lp(t):null;c&&_();function _(){const S=Lp(t);w&&!nZ(w,S)&&n(),w=S,b=requestAnimationFrame(_)}return n(),()=>{var S;h.forEach(E=>{i&&E.removeEventListener("scroll",n),a&&E.removeEventListener("resize",n)}),p?.(),(S=y)==null||S.disconnect(),y=null,c&&cancelAnimationFrame(b)}}const ZBe=SBe,QBe=ABe,eLe=xBe,tLe=MBe,nLe=bBe,bV=yBe,rLe=wBe,iLe=(t,e,n)=>{const r=new Map,i={platform:KBe,...n},a={...i.platform,_c:r};return vBe(t,e,{...i,platform:a})};var aLe=typeof document<"u",sLe=function(){},GA=aLe?j.useLayoutEffect:sLe;function rE(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,r,i;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(r=n;r--!==0;)if(!rE(t[r],e[r]))return!1;return!0}if(i=Object.keys(t),n=i.length,n!==Object.keys(e).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(e,i[r]))return!1;for(r=n;r--!==0;){const a=i[r];if(!(a==="_owner"&&t.$$typeof)&&!rE(t[a],e[a]))return!1}return!0}return t!==t&&e!==e}function rZ(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function _V(t,e){const n=rZ(t);return Math.round(e*n)/n}function ZD(t){const e=j.useRef(t);return GA(()=>{e.current=t}),e}function oLe(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:a,floating:s}={},transform:o=!0,whileElementsMounted:c,open:u}=t,[h,p]=j.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[v,y]=j.useState(r);rE(v,r)||y(r);const[b,w]=j.useState(null),[_,S]=j.useState(null),E=j.useCallback(Y=>{Y!==D.current&&(D.current=Y,w(Y))},[]),T=j.useCallback(Y=>{Y!==I.current&&(I.current=Y,S(Y))},[]),P=a||b,R=s||_,D=j.useRef(null),I=j.useRef(null),k=j.useRef(h),B=c!=null,U=ZD(c),z=ZD(i),q=ZD(u),W=j.useCallback(()=>{if(!D.current||!I.current)return;const Y={placement:e,strategy:n,middleware:v};z.current&&(Y.platform=z.current),iLe(D.current,I.current,Y).then(ie=>{const de={...ie,isPositioned:q.current!==!1};ee.current&&!rE(k.current,de)&&(k.current=de,o5.flushSync(()=>{p(de)}))})},[v,e,n,z,q]);GA(()=>{u===!1&&k.current.isPositioned&&(k.current.isPositioned=!1,p(Y=>({...Y,isPositioned:!1})))},[u]);const ee=j.useRef(!1);GA(()=>(ee.current=!0,()=>{ee.current=!1}),[]),GA(()=>{if(P&&(D.current=P),R&&(I.current=R),P&&R){if(U.current)return U.current(P,R,W);W()}},[P,R,W,U,B]);const Q=j.useMemo(()=>({reference:D,floating:I,setReference:E,setFloating:T}),[E,T]),V=j.useMemo(()=>({reference:P,floating:R}),[P,R]),$=j.useMemo(()=>{const Y={position:n,left:0,top:0};if(!V.floating)return Y;const ie=_V(V.floating,h.x),de=_V(V.floating,h.y);return o?{...Y,transform:"translate("+ie+"px, "+de+"px)",...rZ(V.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:ie,top:de}},[n,o,V.floating,h.x,h.y]);return j.useMemo(()=>({...h,update:W,refs:Q,elements:V,floatingStyles:$}),[h,W,Q,V,$])}const lLe=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:r,padding:i}=typeof t=="function"?t(n):t;return r&&e(r)?r.current!=null?bV({element:r.current,padding:i}).fn(n):{}:r?bV({element:r,padding:i}).fn(n):{}}}},cLe=(t,e)=>({...ZBe(t),options:[t,e]}),uLe=(t,e)=>({...QBe(t),options:[t,e]}),fLe=(t,e)=>({...rLe(t),options:[t,e]}),dLe=(t,e)=>({...eLe(t),options:[t,e]}),hLe=(t,e)=>({...tLe(t),options:[t,e]}),pLe=(t,e)=>({...nLe(t),options:[t,e]}),mLe=(t,e)=>({...lLe(t),options:[t,e]});var gLe="Arrow",iZ=j.forwardRef((t,e)=>{const{children:n,width:r=10,height:i=5,...a}=t;return M.jsx(us.svg,{...a,ref:e,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:M.jsx("polygon",{points:"0,0 30,0 15,10"})})});iZ.displayName=gLe;var vLe=iZ;function yLe(t){const[e,n]=j.useState(void 0);return Ul(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const a=i[0];let s,o;if("borderBoxSize"in a){const c=a.borderBoxSize,u=Array.isArray(c)?c[0]:c;s=u.inlineSize,o=u.blockSize}else s=t.offsetWidth,o=t.offsetHeight;n({width:s,height:o})});return r.observe(t,{box:"border-box"}),()=>r.unobserve(t)}else n(void 0)},[t]),e}var Lk="Popper",[aZ,sZ]=b1(Lk),[xLe,oZ]=aZ(Lk),lZ=t=>{const{__scopePopper:e,children:n}=t,[r,i]=j.useState(null);return M.jsx(xLe,{scope:e,anchor:r,onAnchorChange:i,children:n})};lZ.displayName=Lk;var cZ="PopperAnchor",uZ=j.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:r,...i}=t,a=oZ(cZ,n),s=j.useRef(null),o=Ls(e,s),c=j.useRef(null);return j.useEffect(()=>{const u=c.current;c.current=r?.current||s.current,u!==c.current&&a.onAnchorChange(c.current)}),r?null:M.jsx(us.div,{...i,ref:o})});uZ.displayName=cZ;var kk="PopperContent",[bLe,_Le]=aZ(kk),fZ=j.forwardRef((t,e)=>{const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:a="center",alignOffset:s=0,arrowPadding:o=0,avoidCollisions:c=!0,collisionBoundary:u=[],collisionPadding:h=0,sticky:p="partial",hideWhenDetached:v=!1,updatePositionStrategy:y="optimized",onPlaced:b,...w}=t,_=oZ(kk,n),[S,E]=j.useState(null),T=Ls(e,ve=>E(ve)),[P,R]=j.useState(null),D=yLe(P),I=D?.width??0,k=D?.height??0,B=r+(a!=="center"?"-"+a:""),U=typeof h=="number"?h:{top:0,right:0,bottom:0,left:0,...h},z=Array.isArray(u)?u:[u],q=z.length>0,W={padding:U,boundary:z.filter(ALe),altBoundary:q},{refs:ee,floatingStyles:Q,placement:V,isPositioned:$,middlewareData:Y}=oLe({strategy:"fixed",placement:B,whileElementsMounted:(...ve)=>JBe(...ve,{animationFrame:y==="always"}),elements:{reference:_.anchor},middleware:[cLe({mainAxis:i+k,alignmentAxis:s}),c&&uLe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?fLe():void 0,...W}),c&&dLe({...W}),hLe({...W,apply:({elements:ve,rects:We,availableWidth:_e,availableHeight:Fe})=>{const{width:Xe,height:Re}=We.reference,ot=ve.floating.style;ot.setProperty("--radix-popper-available-width",`${_e}px`),ot.setProperty("--radix-popper-available-height",`${Fe}px`),ot.setProperty("--radix-popper-anchor-width",`${Xe}px`),ot.setProperty("--radix-popper-anchor-height",`${Re}px`)}}),P&&mLe({element:P,padding:o}),wLe({arrowWidth:I,arrowHeight:k}),v&&pLe({strategy:"referenceHidden",...W})]}),[ie,de]=pZ(V),X=Hc(b);Ul(()=>{$&&X?.()},[$,X]);const ae=Y.arrow?.x,ue=Y.arrow?.y,Se=Y.arrow?.centerOffset!==0,[$e,me]=j.useState();return Ul(()=>{S&&me(window.getComputedStyle(S).zIndex)},[S]),M.jsx("div",{ref:ee.setFloating,"data-radix-popper-content-wrapper":"",style:{...Q,transform:$?Q.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:$e,"--radix-popper-transform-origin":[Y.transformOrigin?.x,Y.transformOrigin?.y].join(" "),...Y.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:M.jsx(bLe,{scope:n,placedSide:ie,onArrowChange:R,arrowX:ae,arrowY:ue,shouldHideArrow:Se,children:M.jsx(us.div,{"data-side":ie,"data-align":de,...w,ref:T,style:{...w.style,animation:$?void 0:"none"}})})})});fZ.displayName=kk;var dZ="PopperArrow",SLe={top:"bottom",right:"left",bottom:"top",left:"right"},hZ=j.forwardRef(function(e,n){const{__scopePopper:r,...i}=e,a=_Le(dZ,r),s=SLe[a.placedSide];return M.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:M.jsx(vLe,{...i,ref:n,style:{...i.style,display:"block"}})})});hZ.displayName=dZ;function ALe(t){return t!==null}var wLe=t=>({name:"transformOrigin",options:t,fn(e){const{placement:n,rects:r,middlewareData:i}=e,s=i.arrow?.centerOffset!==0,o=s?0:t.arrowWidth,c=s?0:t.arrowHeight,[u,h]=pZ(n),p={start:"0%",center:"50%",end:"100%"}[h],v=(i.arrow?.x??0)+o/2,y=(i.arrow?.y??0)+c/2;let b="",w="";return u==="bottom"?(b=s?p:`${v}px`,w=`${-c}px`):u==="top"?(b=s?p:`${v}px`,w=`${r.floating.height+c}px`):u==="right"?(b=`${-c}px`,w=s?p:`${y}px`):u==="left"&&(b=`${r.floating.width+c}px`,w=s?p:`${y}px`),{data:{x:b,y:w}}}});function pZ(t){const[e,n="center"]=t.split("-");return[e,n]}var MLe=lZ,ELe=uZ,TLe=fZ,CLe=hZ,RLe="Portal",mZ=j.forwardRef((t,e)=>{const{container:n,...r}=t,[i,a]=j.useState(!1);Ul(()=>a(!0),[]);const s=n||i&&globalThis?.document?.body;return s?r0e.createPortal(M.jsx(us.div,{...r,ref:e}),s):null});mZ.displayName=RLe;function OLe(t,e){return j.useReducer((n,r)=>e[n][r]??n,t)}var S1=t=>{const{present:e,children:n}=t,r=PLe(e),i=typeof n=="function"?n({present:r.isPresent}):j.Children.only(n),a=Ls(r.ref,DLe(i));return typeof n=="function"||r.isPresent?j.cloneElement(i,{ref:a}):null};S1.displayName="Presence";function PLe(t){const[e,n]=j.useState(),r=j.useRef(null),i=j.useRef(t),a=j.useRef("none"),s=t?"mounted":"unmounted",[o,c]=OLe(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return j.useEffect(()=>{const u=MA(r.current);a.current=o==="mounted"?u:"none"},[o]),Ul(()=>{const u=r.current,h=i.current;if(h!==t){const v=a.current,y=MA(u);t?c("MOUNT"):y==="none"||u?.display==="none"?c("UNMOUNT"):c(h&&v!==y?"ANIMATION_OUT":"UNMOUNT"),i.current=t}},[t,c]),Ul(()=>{if(e){let u;const h=e.ownerDocument.defaultView??window,p=y=>{const w=MA(r.current).includes(CSS.escape(y.animationName));if(y.target===e&&w&&(c("ANIMATION_END"),!i.current)){const _=e.style.animationFillMode;e.style.animationFillMode="forwards",u=h.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=_)})}},v=y=>{y.target===e&&(a.current=MA(r.current))};return e.addEventListener("animationstart",v),e.addEventListener("animationcancel",p),e.addEventListener("animationend",p),()=>{h.clearTimeout(u),e.removeEventListener("animationstart",v),e.removeEventListener("animationcancel",p),e.removeEventListener("animationend",p)}}else c("ANIMATION_END")},[e,c]),{isPresent:["mounted","unmountSuspended"].includes(o),ref:j.useCallback(u=>{r.current=u?getComputedStyle(u):null,n(u)},[])}}function MA(t){return t?.animationName||"none"}function DLe(t){let e=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=Object.getOwnPropertyDescriptor(t,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var QD="rovingFocusGroup.onEntryFocus",NLe={bubbles:!1,cancelable:!0},A1="RovingFocusGroup",[OB,gZ,ILe]=jJ(A1),[BLe,vZ]=b1(A1,[ILe]),[LLe,kLe]=BLe(A1),yZ=j.forwardRef((t,e)=>M.jsx(OB.Provider,{scope:t.__scopeRovingFocusGroup,children:M.jsx(OB.Slot,{scope:t.__scopeRovingFocusGroup,children:M.jsx(FLe,{...t,ref:e})})}));yZ.displayName=A1;var FLe=j.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:s,defaultCurrentTabStopId:o,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:h=!1,...p}=t,v=j.useRef(null),y=Ls(e,v),b=zJ(a),[w,_]=FJ({prop:s,defaultProp:o??null,onChange:c,caller:A1}),[S,E]=j.useState(!1),T=Hc(u),P=gZ(n),R=j.useRef(!1),[D,I]=j.useState(0);return j.useEffect(()=>{const k=v.current;if(k)return k.addEventListener(QD,T),()=>k.removeEventListener(QD,T)},[T]),M.jsx(LLe,{scope:n,orientation:r,dir:b,loop:i,currentTabStopId:w,onItemFocus:j.useCallback(k=>_(k),[_]),onItemShiftTab:j.useCallback(()=>E(!0),[]),onFocusableItemAdd:j.useCallback(()=>I(k=>k+1),[]),onFocusableItemRemove:j.useCallback(()=>I(k=>k-1),[]),children:M.jsx(us.div,{tabIndex:S||D===0?-1:0,"data-orientation":r,...p,ref:y,style:{outline:"none",...t.style},onMouseDown:Vn(t.onMouseDown,()=>{R.current=!0}),onFocus:Vn(t.onFocus,k=>{const B=!R.current;if(k.target===k.currentTarget&&B&&!S){const U=new CustomEvent(QD,NLe);if(k.currentTarget.dispatchEvent(U),!U.defaultPrevented){const z=P().filter(V=>V.focusable),q=z.find(V=>V.active),W=z.find(V=>V.id===w),Q=[q,W,...z].filter(Boolean).map(V=>V.ref.current);_Z(Q,h)}}R.current=!1}),onBlur:Vn(t.onBlur,()=>E(!1))})})}),xZ="RovingFocusGroupItem",bZ=j.forwardRef((t,e)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:s,...o}=t,c=EB(),u=a||c,h=kLe(xZ,n),p=h.currentTabStopId===u,v=gZ(n),{onFocusableItemAdd:y,onFocusableItemRemove:b,currentTabStopId:w}=h;return j.useEffect(()=>{if(r)return y(),()=>b()},[r,y,b]),M.jsx(OB.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:M.jsx(us.span,{tabIndex:p?0:-1,"data-orientation":h.orientation,...o,ref:e,onMouseDown:Vn(t.onMouseDown,_=>{r?h.onItemFocus(u):_.preventDefault()}),onFocus:Vn(t.onFocus,()=>h.onItemFocus(u)),onKeyDown:Vn(t.onKeyDown,_=>{if(_.key==="Tab"&&_.shiftKey){h.onItemShiftTab();return}if(_.target!==_.currentTarget)return;const S=zLe(_,h.orientation,h.dir);if(S!==void 0){if(_.metaKey||_.ctrlKey||_.altKey||_.shiftKey)return;_.preventDefault();let T=v().filter(P=>P.focusable).map(P=>P.ref.current);if(S==="last")T.reverse();else if(S==="prev"||S==="next"){S==="prev"&&T.reverse();const P=T.indexOf(_.currentTarget);T=h.loop?GLe(T,P+1):T.slice(P+1)}setTimeout(()=>_Z(T))}}),children:typeof s=="function"?s({isCurrentTabStop:p,hasTabStop:w!=null}):s})})});bZ.displayName=xZ;var ULe={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function jLe(t,e){return e!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function zLe(t,e,n){const r=jLe(t.key,n);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return ULe[r]}function _Z(t,e=!1){const n=document.activeElement;for(const r of t)if(r===n||(r.focus({preventScroll:e}),document.activeElement!==n))return}function GLe(t,e){return t.map((n,r)=>t[(e+r)%t.length])}var HLe=yZ,VLe=bZ;function WLe(t){const e=qLe(t),n=j.forwardRef((r,i)=>{const{children:a,...s}=r,o=j.Children.toArray(a),c=o.find(XLe);if(c){const u=c.props.children,h=o.map(p=>p===c?j.Children.count(u)>1?j.Children.only(null):j.isValidElement(u)?u.props.children:null:p);return M.jsx(e,{...s,ref:i,children:j.isValidElement(u)?j.cloneElement(u,void 0,h):null})}return M.jsx(e,{...s,ref:i,children:a})});return n.displayName=`${t}.Slot`,n}function qLe(t){const e=j.forwardRef((n,r)=>{const{children:i,...a}=n;if(j.isValidElement(i)){const s=YLe(i),o=KLe(a,i.props);return i.type!==j.Fragment&&(o.ref=r?Gp(r,s):s),j.cloneElement(i,o)}return j.Children.count(i)>1?j.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var $Le=Symbol("radix.slottable");function XLe(t){return j.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===$Le}function KLe(t,e){const n={...e};for(const r in e){const i=t[r],a=e[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...o)=>{const c=a(...o);return i(...o),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...a}:r==="className"&&(n[r]=[i,a].filter(Boolean).join(" "))}return{...t,...n}}function YLe(t){let e=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=Object.getOwnPropertyDescriptor(t,"ref")?.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var JLe=function(t){if(typeof document>"u")return null;var e=Array.isArray(t)?t[0]:t;return e.ownerDocument.body},Pg=new WeakMap,EA=new WeakMap,TA={},eN=0,SZ=function(t){return t&&(t.host||SZ(t.parentNode))},ZLe=function(t,e){return e.map(function(n){if(t.contains(n))return n;var r=SZ(n);return r&&t.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",t,". Doing nothing"),null)}).filter(function(n){return!!n})},QLe=function(t,e,n,r){var i=ZLe(e,Array.isArray(t)?t:[t]);TA[n]||(TA[n]=new WeakMap);var a=TA[n],s=[],o=new Set,c=new Set(i),u=function(p){!p||o.has(p)||(o.add(p),u(p.parentNode))};i.forEach(u);var h=function(p){!p||c.has(p)||Array.prototype.forEach.call(p.children,function(v){if(o.has(v))h(v);else try{var y=v.getAttribute(r),b=y!==null&&y!=="false",w=(Pg.get(v)||0)+1,_=(a.get(v)||0)+1;Pg.set(v,w),a.set(v,_),s.push(v),w===1&&b&&EA.set(v,!0),_===1&&v.setAttribute(n,"true"),b||v.setAttribute(r,"true")}catch(S){console.error("aria-hidden: cannot operate on ",v,S)}})};return h(e),o.clear(),eN++,function(){s.forEach(function(p){var v=Pg.get(p)-1,y=a.get(p)-1;Pg.set(p,v),a.set(p,y),v||(EA.has(p)||p.removeAttribute(r),EA.delete(p)),y||p.removeAttribute(n)}),eN--,eN||(Pg=new WeakMap,Pg=new WeakMap,EA=new WeakMap,TA={})}},e5e=function(t,e,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(t)?t:[t]),i=JLe(t);return i?(r.push.apply(r,Array.from(i.querySelectorAll("[aria-live], script"))),QLe(r,i,n,"aria-hidden")):function(){return null}},Rc=function(){return Rc=Object.assign||function(e){for(var n,r=1,i=arguments.length;r"u")return v5e;var e=y5e(t),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,r-n+e[2]-e[0])}},b5e=EZ(),tv="data-scroll-locked",_5e=function(t,e,n,r){var i=t.left,a=t.top,s=t.right,o=t.gap;return n===void 0&&(n="margin"),` - .`.concat(n5e,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(o,"px ").concat(r,`; - } - body[`).concat(tv,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([e&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(i,`px; - padding-top: `).concat(a,`px; - padding-right: `).concat(s,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(o,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(o,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(HA,` { - right: `).concat(o,"px ").concat(r,`; - } - - .`).concat(VA,` { - margin-right: `).concat(o,"px ").concat(r,`; - } - - .`).concat(HA," .").concat(HA,` { - right: 0 `).concat(r,`; - } - - .`).concat(VA," .").concat(VA,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(tv,`] { - `).concat(r5e,": ").concat(o,`px; - } -`)},AV=function(){var t=parseInt(document.body.getAttribute(tv)||"0",10);return isFinite(t)?t:0},S5e=function(){j.useEffect(function(){return document.body.setAttribute(tv,(AV()+1).toString()),function(){var t=AV()-1;t<=0?document.body.removeAttribute(tv):document.body.setAttribute(tv,t.toString())}},[])},A5e=function(t){var e=t.noRelative,n=t.noImportant,r=t.gapMode,i=r===void 0?"margin":r;S5e();var a=j.useMemo(function(){return x5e(i)},[i]);return j.createElement(b5e,{styles:_5e(a,!e,i,n?"":"!important")})},PB=!1;if(typeof window<"u")try{var CA=Object.defineProperty({},"passive",{get:function(){return PB=!0,!0}});window.addEventListener("test",CA,CA),window.removeEventListener("test",CA,CA)}catch{PB=!1}var Dg=PB?{passive:!1}:!1,w5e=function(t){return t.tagName==="TEXTAREA"},TZ=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);return n[e]!=="hidden"&&!(n.overflowY===n.overflowX&&!w5e(t)&&n[e]==="visible")},M5e=function(t){return TZ(t,"overflowY")},E5e=function(t){return TZ(t,"overflowX")},wV=function(t,e){var n=e.ownerDocument,r=e;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var i=CZ(t,r);if(i){var a=RZ(t,r),s=a[1],o=a[2];if(s>o)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},T5e=function(t){var e=t.scrollTop,n=t.scrollHeight,r=t.clientHeight;return[e,n,r]},C5e=function(t){var e=t.scrollLeft,n=t.scrollWidth,r=t.clientWidth;return[e,n,r]},CZ=function(t,e){return t==="v"?M5e(e):E5e(e)},RZ=function(t,e){return t==="v"?T5e(e):C5e(e)},R5e=function(t,e){return t==="h"&&e==="rtl"?-1:1},O5e=function(t,e,n,r,i){var a=R5e(t,window.getComputedStyle(e).direction),s=a*r,o=n.target,c=e.contains(o),u=!1,h=s>0,p=0,v=0;do{if(!o)break;var y=RZ(t,o),b=y[0],w=y[1],_=y[2],S=w-_-a*b;(b||S)&&CZ(t,o)&&(p+=S,v+=b);var E=o.parentNode;o=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!c&&o!==document.body||c&&(e.contains(o)||e===o));return(h&&Math.abs(p)<1||!h&&Math.abs(v)<1)&&(u=!0),u},RA=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},MV=function(t){return[t.deltaX,t.deltaY]},EV=function(t){return t&&"current"in t?t.current:t},P5e=function(t,e){return t[0]===e[0]&&t[1]===e[1]},D5e=function(t){return` - .block-interactivity-`.concat(t,` {pointer-events: none;} - .allow-interactivity-`).concat(t,` {pointer-events: all;} -`)},N5e=0,Ng=[];function I5e(t){var e=j.useRef([]),n=j.useRef([0,0]),r=j.useRef(),i=j.useState(N5e++)[0],a=j.useState(EZ)[0],s=j.useRef(t);j.useEffect(function(){s.current=t},[t]),j.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(i));var w=t5e([t.lockRef.current],(t.shards||[]).map(EV),!0).filter(Boolean);return w.forEach(function(_){return _.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),w.forEach(function(_){return _.classList.remove("allow-interactivity-".concat(i))})}}},[t.inert,t.lockRef.current,t.shards]);var o=j.useCallback(function(w,_){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!s.current.allowPinchZoom;var S=RA(w),E=n.current,T="deltaX"in w?w.deltaX:E[0]-S[0],P="deltaY"in w?w.deltaY:E[1]-S[1],R,D=w.target,I=Math.abs(T)>Math.abs(P)?"h":"v";if("touches"in w&&I==="h"&&D.type==="range")return!1;var k=window.getSelection(),B=k&&k.anchorNode,U=B?B===D||B.contains(D):!1;if(U)return!1;var z=wV(I,D);if(!z)return!0;if(z?R=I:(R=I==="v"?"h":"v",z=wV(I,D)),!z)return!1;if(!r.current&&"changedTouches"in w&&(T||P)&&(r.current=R),!R)return!0;var q=r.current||R;return O5e(q,_,w,q==="h"?T:P)},[]),c=j.useCallback(function(w){var _=w;if(!(!Ng.length||Ng[Ng.length-1]!==a)){var S="deltaY"in _?MV(_):RA(_),E=e.current.filter(function(R){return R.name===_.type&&(R.target===_.target||_.target===R.shadowParent)&&P5e(R.delta,S)})[0];if(E&&E.should){_.cancelable&&_.preventDefault();return}if(!E){var T=(s.current.shards||[]).map(EV).filter(Boolean).filter(function(R){return R.contains(_.target)}),P=T.length>0?o(_,T[0]):!s.current.noIsolation;P&&_.cancelable&&_.preventDefault()}}},[]),u=j.useCallback(function(w,_,S,E){var T={name:w,delta:_,target:S,should:E,shadowParent:B5e(S)};e.current.push(T),setTimeout(function(){e.current=e.current.filter(function(P){return P!==T})},1)},[]),h=j.useCallback(function(w){n.current=RA(w),r.current=void 0},[]),p=j.useCallback(function(w){u(w.type,MV(w),w.target,o(w,t.lockRef.current))},[]),v=j.useCallback(function(w){u(w.type,RA(w),w.target,o(w,t.lockRef.current))},[]);j.useEffect(function(){return Ng.push(a),t.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:v}),document.addEventListener("wheel",c,Dg),document.addEventListener("touchmove",c,Dg),document.addEventListener("touchstart",h,Dg),function(){Ng=Ng.filter(function(w){return w!==a}),document.removeEventListener("wheel",c,Dg),document.removeEventListener("touchmove",c,Dg),document.removeEventListener("touchstart",h,Dg)}},[]);var y=t.removeScrollBar,b=t.inert;return j.createElement(j.Fragment,null,b?j.createElement(a,{styles:D5e(i)}):null,y?j.createElement(A5e,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function B5e(t){for(var e=null;t!==null;)t instanceof ShadowRoot&&(e=t.host,t=t.host),t=t.parentNode;return e}const L5e=u5e(MZ,I5e);var OZ=j.forwardRef(function(t,e){return j.createElement(OT,Rc({},t,{ref:e,sideCar:L5e}))});OZ.classNames=OT.classNames;var DB=["Enter"," "],k5e=["ArrowDown","PageUp","Home"],PZ=["ArrowUp","PageDown","End"],F5e=[...k5e,...PZ],U5e={ltr:[...DB,"ArrowRight"],rtl:[...DB,"ArrowLeft"]},j5e={ltr:["ArrowLeft"],rtl:["ArrowRight"]},w1="Menu",[Vb,z5e,G5e]=jJ(w1),[$p,DZ]=b1(w1,[G5e,sZ,vZ]),PT=sZ(),NZ=vZ(),[H5e,Xp]=$p(w1),[V5e,M1]=$p(w1),IZ=t=>{const{__scopeMenu:e,open:n=!1,children:r,dir:i,onOpenChange:a,modal:s=!0}=t,o=PT(e),[c,u]=j.useState(null),h=j.useRef(!1),p=Hc(a),v=zJ(i);return j.useEffect(()=>{const y=()=>{h.current=!0,document.addEventListener("pointerdown",b,{capture:!0,once:!0}),document.addEventListener("pointermove",b,{capture:!0,once:!0})},b=()=>h.current=!1;return document.addEventListener("keydown",y,{capture:!0}),()=>{document.removeEventListener("keydown",y,{capture:!0}),document.removeEventListener("pointerdown",b,{capture:!0}),document.removeEventListener("pointermove",b,{capture:!0})}},[]),M.jsx(MLe,{...o,children:M.jsx(H5e,{scope:e,open:n,onOpenChange:p,content:c,onContentChange:u,children:M.jsx(V5e,{scope:e,onClose:j.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:h,dir:v,modal:s,children:r})})})};IZ.displayName=w1;var W5e="MenuAnchor",Fk=j.forwardRef((t,e)=>{const{__scopeMenu:n,...r}=t,i=PT(n);return M.jsx(ELe,{...i,...r,ref:e})});Fk.displayName=W5e;var Uk="MenuPortal",[q5e,BZ]=$p(Uk,{forceMount:void 0}),LZ=t=>{const{__scopeMenu:e,forceMount:n,children:r,container:i}=t,a=Xp(Uk,e);return M.jsx(q5e,{scope:e,forceMount:n,children:M.jsx(S1,{present:n||a.open,children:M.jsx(mZ,{asChild:!0,container:i,children:r})})})};LZ.displayName=Uk;var $o="MenuContent",[$5e,jk]=$p($o),kZ=j.forwardRef((t,e)=>{const n=BZ($o,t.__scopeMenu),{forceMount:r=n.forceMount,...i}=t,a=Xp($o,t.__scopeMenu),s=M1($o,t.__scopeMenu);return M.jsx(Vb.Provider,{scope:t.__scopeMenu,children:M.jsx(S1,{present:r||a.open,children:M.jsx(Vb.Slot,{scope:t.__scopeMenu,children:s.modal?M.jsx(X5e,{...i,ref:e}):M.jsx(K5e,{...i,ref:e})})})})}),X5e=j.forwardRef((t,e)=>{const n=Xp($o,t.__scopeMenu),r=j.useRef(null),i=Ls(e,r);return j.useEffect(()=>{const a=r.current;if(a)return e5e(a)},[]),M.jsx(zk,{...t,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Vn(t.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),K5e=j.forwardRef((t,e)=>{const n=Xp($o,t.__scopeMenu);return M.jsx(zk,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Y5e=WLe("MenuContent.ScrollLock"),zk=j.forwardRef((t,e)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:o,onEntryFocus:c,onEscapeKeyDown:u,onPointerDownOutside:h,onFocusOutside:p,onInteractOutside:v,onDismiss:y,disableOutsideScroll:b,...w}=t,_=Xp($o,n),S=M1($o,n),E=PT(n),T=NZ(n),P=z5e(n),[R,D]=j.useState(null),I=j.useRef(null),k=Ls(e,I,_.onContentChange),B=j.useRef(0),U=j.useRef(""),z=j.useRef(0),q=j.useRef(null),W=j.useRef("right"),ee=j.useRef(0),Q=b?OZ:j.Fragment,V=b?{as:Y5e,allowPinchZoom:!0}:void 0,$=ie=>{const de=U.current+ie,X=P().filter(ve=>!ve.disabled),ae=document.activeElement,ue=X.find(ve=>ve.ref.current===ae)?.textValue,Se=X.map(ve=>ve.textValue),$e=lke(Se,de,ue),me=X.find(ve=>ve.textValue===$e)?.ref.current;(function ve(We){U.current=We,window.clearTimeout(B.current),We!==""&&(B.current=window.setTimeout(()=>ve(""),1e3))})(de),me&&setTimeout(()=>me.focus())};j.useEffect(()=>()=>window.clearTimeout(B.current),[]),YIe();const Y=j.useCallback(ie=>W.current===q.current?.side&&uke(ie,q.current?.area),[]);return M.jsx($5e,{scope:n,searchRef:U,onItemEnter:j.useCallback(ie=>{Y(ie)&&ie.preventDefault()},[Y]),onItemLeave:j.useCallback(ie=>{Y(ie)||(I.current?.focus(),D(null))},[Y]),onTriggerLeave:j.useCallback(ie=>{Y(ie)&&ie.preventDefault()},[Y]),pointerGraceTimerRef:z,onPointerGraceIntentChange:j.useCallback(ie=>{q.current=ie},[]),children:M.jsx(Q,{...V,children:M.jsx(WJ,{asChild:!0,trapped:i,onMountAutoFocus:Vn(a,ie=>{ie.preventDefault(),I.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:M.jsx(HJ,{asChild:!0,disableOutsidePointerEvents:o,onEscapeKeyDown:u,onPointerDownOutside:h,onFocusOutside:p,onInteractOutside:v,onDismiss:y,children:M.jsx(HLe,{asChild:!0,...T,dir:S.dir,orientation:"vertical",loop:r,currentTabStopId:R,onCurrentTabStopIdChange:D,onEntryFocus:Vn(c,ie=>{S.isUsingKeyboardRef.current||ie.preventDefault()}),preventScrollOnEntryFocus:!0,children:M.jsx(TLe,{role:"menu","aria-orientation":"vertical","data-state":QZ(_.open),"data-radix-menu-content":"",dir:S.dir,...E,...w,ref:k,style:{outline:"none",...w.style},onKeyDown:Vn(w.onKeyDown,ie=>{const X=ie.target.closest("[data-radix-menu-content]")===ie.currentTarget,ae=ie.ctrlKey||ie.altKey||ie.metaKey,ue=ie.key.length===1;X&&(ie.key==="Tab"&&ie.preventDefault(),!ae&&ue&&$(ie.key));const Se=I.current;if(ie.target!==Se||!F5e.includes(ie.key))return;ie.preventDefault();const me=P().filter(ve=>!ve.disabled).map(ve=>ve.ref.current);PZ.includes(ie.key)&&me.reverse(),ske(me)}),onBlur:Vn(t.onBlur,ie=>{ie.currentTarget.contains(ie.target)||(window.clearTimeout(B.current),U.current="")}),onPointerMove:Vn(t.onPointerMove,Wb(ie=>{const de=ie.target,X=ee.current!==ie.clientX;if(ie.currentTarget.contains(de)&&X){const ae=ie.clientX>ee.current?"right":"left";W.current=ae,ee.current=ie.clientX}}))})})})})})})});kZ.displayName=$o;var J5e="MenuGroup",Gk=j.forwardRef((t,e)=>{const{__scopeMenu:n,...r}=t;return M.jsx(us.div,{role:"group",...r,ref:e})});Gk.displayName=J5e;var Z5e="MenuLabel",FZ=j.forwardRef((t,e)=>{const{__scopeMenu:n,...r}=t;return M.jsx(us.div,{...r,ref:e})});FZ.displayName=Z5e;var iE="MenuItem",TV="menu.itemSelect",DT=j.forwardRef((t,e)=>{const{disabled:n=!1,onSelect:r,...i}=t,a=j.useRef(null),s=M1(iE,t.__scopeMenu),o=jk(iE,t.__scopeMenu),c=Ls(e,a),u=j.useRef(!1),h=()=>{const p=a.current;if(!n&&p){const v=new CustomEvent(TV,{bubbles:!0,cancelable:!0});p.addEventListener(TV,y=>r?.(y),{once:!0}),UJ(p,v),v.defaultPrevented?u.current=!1:s.onClose()}};return M.jsx(UZ,{...i,ref:c,disabled:n,onClick:Vn(t.onClick,h),onPointerDown:p=>{t.onPointerDown?.(p),u.current=!0},onPointerUp:Vn(t.onPointerUp,p=>{u.current||p.currentTarget?.click()}),onKeyDown:Vn(t.onKeyDown,p=>{const v=o.searchRef.current!=="";n||v&&p.key===" "||DB.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});DT.displayName=iE;var UZ=j.forwardRef((t,e)=>{const{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=t,s=jk(iE,n),o=NZ(n),c=j.useRef(null),u=Ls(e,c),[h,p]=j.useState(!1),[v,y]=j.useState("");return j.useEffect(()=>{const b=c.current;b&&y((b.textContent??"").trim())},[a.children]),M.jsx(Vb.ItemSlot,{scope:n,disabled:r,textValue:i??v,children:M.jsx(VLe,{asChild:!0,...o,focusable:!r,children:M.jsx(us.div,{role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...a,ref:u,onPointerMove:Vn(t.onPointerMove,Wb(b=>{r?s.onItemLeave(b):(s.onItemEnter(b),b.defaultPrevented||b.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Vn(t.onPointerLeave,Wb(b=>s.onItemLeave(b))),onFocus:Vn(t.onFocus,()=>p(!0)),onBlur:Vn(t.onBlur,()=>p(!1))})})})}),Q5e="MenuCheckboxItem",jZ=j.forwardRef((t,e)=>{const{checked:n=!1,onCheckedChange:r,...i}=t;return M.jsx(WZ,{scope:t.__scopeMenu,checked:n,children:M.jsx(DT,{role:"menuitemcheckbox","aria-checked":aE(n)?"mixed":n,...i,ref:e,"data-state":Vk(n),onSelect:Vn(i.onSelect,()=>r?.(aE(n)?!0:!n),{checkForDefaultPrevented:!1})})})});jZ.displayName=Q5e;var zZ="MenuRadioGroup",[eke,tke]=$p(zZ,{value:void 0,onValueChange:()=>{}}),GZ=j.forwardRef((t,e)=>{const{value:n,onValueChange:r,...i}=t,a=Hc(r);return M.jsx(eke,{scope:t.__scopeMenu,value:n,onValueChange:a,children:M.jsx(Gk,{...i,ref:e})})});GZ.displayName=zZ;var HZ="MenuRadioItem",VZ=j.forwardRef((t,e)=>{const{value:n,...r}=t,i=tke(HZ,t.__scopeMenu),a=n===i.value;return M.jsx(WZ,{scope:t.__scopeMenu,checked:a,children:M.jsx(DT,{role:"menuitemradio","aria-checked":a,...r,ref:e,"data-state":Vk(a),onSelect:Vn(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});VZ.displayName=HZ;var Hk="MenuItemIndicator",[WZ,nke]=$p(Hk,{checked:!1}),qZ=j.forwardRef((t,e)=>{const{__scopeMenu:n,forceMount:r,...i}=t,a=nke(Hk,n);return M.jsx(S1,{present:r||aE(a.checked)||a.checked===!0,children:M.jsx(us.span,{...i,ref:e,"data-state":Vk(a.checked)})})});qZ.displayName=Hk;var rke="MenuSeparator",$Z=j.forwardRef((t,e)=>{const{__scopeMenu:n,...r}=t;return M.jsx(us.div,{role:"separator","aria-orientation":"horizontal",...r,ref:e})});$Z.displayName=rke;var ike="MenuArrow",XZ=j.forwardRef((t,e)=>{const{__scopeMenu:n,...r}=t,i=PT(n);return M.jsx(CLe,{...i,...r,ref:e})});XZ.displayName=ike;var ake="MenuSub",[m2e,KZ]=$p(ake),_x="MenuSubTrigger",YZ=j.forwardRef((t,e)=>{const n=Xp(_x,t.__scopeMenu),r=M1(_x,t.__scopeMenu),i=KZ(_x,t.__scopeMenu),a=jk(_x,t.__scopeMenu),s=j.useRef(null),{pointerGraceTimerRef:o,onPointerGraceIntentChange:c}=a,u={__scopeMenu:t.__scopeMenu},h=j.useCallback(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return j.useEffect(()=>h,[h]),j.useEffect(()=>{const p=o.current;return()=>{window.clearTimeout(p),c(null)}},[o,c]),M.jsx(Fk,{asChild:!0,...u,children:M.jsx(UZ,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":i.contentId,"data-state":QZ(n.open),...t,ref:Gp(e,i.onTriggerChange),onClick:p=>{t.onClick?.(p),!(t.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Vn(t.onPointerMove,Wb(p=>{a.onItemEnter(p),!p.defaultPrevented&&!t.disabled&&!n.open&&!s.current&&(a.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{n.onOpenChange(!0),h()},100))})),onPointerLeave:Vn(t.onPointerLeave,Wb(p=>{h();const v=n.content?.getBoundingClientRect();if(v){const y=n.content?.dataset.side,b=y==="right",w=b?-5:5,_=v[b?"left":"right"],S=v[b?"right":"left"];a.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:_,y:v.top},{x:S,y:v.top},{x:S,y:v.bottom},{x:_,y:v.bottom}],side:y}),window.clearTimeout(o.current),o.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(p),p.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:Vn(t.onKeyDown,p=>{const v=a.searchRef.current!=="";t.disabled||v&&p.key===" "||U5e[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});YZ.displayName=_x;var JZ="MenuSubContent",ZZ=j.forwardRef((t,e)=>{const n=BZ($o,t.__scopeMenu),{forceMount:r=n.forceMount,...i}=t,a=Xp($o,t.__scopeMenu),s=M1($o,t.__scopeMenu),o=KZ(JZ,t.__scopeMenu),c=j.useRef(null),u=Ls(e,c);return M.jsx(Vb.Provider,{scope:t.__scopeMenu,children:M.jsx(S1,{present:r||a.open,children:M.jsx(Vb.Slot,{scope:t.__scopeMenu,children:M.jsx(zk,{id:o.contentId,"aria-labelledby":o.triggerId,...i,ref:u,align:"start",side:s.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:h=>{s.isUsingKeyboardRef.current&&c.current?.focus(),h.preventDefault()},onCloseAutoFocus:h=>h.preventDefault(),onFocusOutside:Vn(t.onFocusOutside,h=>{h.target!==o.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:Vn(t.onEscapeKeyDown,h=>{s.onClose(),h.preventDefault()}),onKeyDown:Vn(t.onKeyDown,h=>{const p=h.currentTarget.contains(h.target),v=j5e[s.dir].includes(h.key);p&&v&&(a.onOpenChange(!1),o.trigger?.focus(),h.preventDefault())})})})})})});ZZ.displayName=JZ;function QZ(t){return t?"open":"closed"}function aE(t){return t==="indeterminate"}function Vk(t){return aE(t)?"indeterminate":t?"checked":"unchecked"}function ske(t){const e=document.activeElement;for(const n of t)if(n===e||(n.focus(),document.activeElement!==e))return}function oke(t,e){return t.map((n,r)=>t[(e+r)%t.length])}function lke(t,e,n){const i=e.length>1&&Array.from(e).every(u=>u===e[0])?e[0]:e,a=n?t.indexOf(n):-1;let s=oke(t,Math.max(a,0));i.length===1&&(s=s.filter(u=>u!==n));const c=s.find(u=>u.toLowerCase().startsWith(i.toLowerCase()));return c!==n?c:void 0}function cke(t,e){const{x:n,y:r}=t;let i=!1;for(let a=0,s=e.length-1;ar!=v>r&&n<(p-u)*(r-h)/(v-h)+u&&(i=!i)}return i}function uke(t,e){if(!e)return!1;const n={x:t.clientX,y:t.clientY};return cke(n,e)}function Wb(t){return e=>e.pointerType==="mouse"?t(e):void 0}var fke=IZ,dke=Fk,hke=LZ,pke=kZ,mke=Gk,gke=FZ,vke=DT,yke=jZ,xke=GZ,bke=VZ,_ke=qZ,Ske=$Z,Ake=XZ,wke=YZ,Mke=ZZ,NT="DropdownMenu",[Eke]=b1(NT,[DZ]),fs=DZ(),[Tke,eQ]=Eke(NT),tQ=t=>{const{__scopeDropdownMenu:e,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:s,modal:o=!0}=t,c=fs(e),u=j.useRef(null),[h,p]=FJ({prop:i,defaultProp:a??!1,onChange:s,caller:NT});return M.jsx(Tke,{scope:e,triggerId:EB(),triggerRef:u,contentId:EB(),open:h,onOpenChange:p,onOpenToggle:j.useCallback(()=>p(v=>!v),[p]),modal:o,children:M.jsx(fke,{...c,open:h,onOpenChange:p,dir:r,modal:o,children:n})})};tQ.displayName=NT;var nQ="DropdownMenuTrigger",rQ=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...i}=t,a=eQ(nQ,n),s=fs(n);return M.jsx(dke,{asChild:!0,...s,children:M.jsx(us.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...i,ref:Gp(e,a.triggerRef),onPointerDown:Vn(t.onPointerDown,o=>{!r&&o.button===0&&o.ctrlKey===!1&&(a.onOpenToggle(),a.open||o.preventDefault())}),onKeyDown:Vn(t.onKeyDown,o=>{r||(["Enter"," "].includes(o.key)&&a.onOpenToggle(),o.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(o.key)&&o.preventDefault())})})})});rQ.displayName=nQ;var Cke="DropdownMenuPortal",iQ=t=>{const{__scopeDropdownMenu:e,...n}=t,r=fs(e);return M.jsx(hke,{...r,...n})};iQ.displayName=Cke;var aQ="DropdownMenuContent",sQ=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=eQ(aQ,n),a=fs(n),s=j.useRef(!1);return M.jsx(pke,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:e,onCloseAutoFocus:Vn(t.onCloseAutoFocus,o=>{s.current||i.triggerRef.current?.focus(),s.current=!1,o.preventDefault()}),onInteractOutside:Vn(t.onInteractOutside,o=>{const c=o.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0,h=c.button===2||u;(!i.modal||h)&&(s.current=!0)}),style:{...t.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});sQ.displayName=aQ;var Rke="DropdownMenuGroup",Oke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(mke,{...i,...r,ref:e})});Oke.displayName=Rke;var Pke="DropdownMenuLabel",Dke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(gke,{...i,...r,ref:e})});Dke.displayName=Pke;var Nke="DropdownMenuItem",oQ=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(vke,{...i,...r,ref:e})});oQ.displayName=Nke;var Ike="DropdownMenuCheckboxItem",Bke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(yke,{...i,...r,ref:e})});Bke.displayName=Ike;var Lke="DropdownMenuRadioGroup",kke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(xke,{...i,...r,ref:e})});kke.displayName=Lke;var Fke="DropdownMenuRadioItem",Uke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(bke,{...i,...r,ref:e})});Uke.displayName=Fke;var jke="DropdownMenuItemIndicator",zke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(_ke,{...i,...r,ref:e})});zke.displayName=jke;var Gke="DropdownMenuSeparator",lQ=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(Ske,{...i,...r,ref:e})});lQ.displayName=Gke;var Hke="DropdownMenuArrow",Vke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(Ake,{...i,...r,ref:e})});Vke.displayName=Hke;var Wke="DropdownMenuSubTrigger",qke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(wke,{...i,...r,ref:e})});qke.displayName=Wke;var $ke="DropdownMenuSubContent",Xke=j.forwardRef((t,e)=>{const{__scopeDropdownMenu:n,...r}=t,i=fs(n);return M.jsx(Mke,{...i,...r,ref:e,style:{...t.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Xke.displayName=$ke;var Kke=tQ,Yke=rQ,Jke=iQ,Zke=sQ,Qke=oQ,e2e=lQ;function t2e({...t}){return M.jsx(Kke,{"code-path":"src\\components\\ui\\dropdown-menu.tsx:10:10","data-slot":"dropdown-menu",...t})}function n2e({...t}){return M.jsx(Yke,{"code-path":"src\\components\\ui\\dropdown-menu.tsx:25:5","data-slot":"dropdown-menu-trigger",...t})}function r2e({className:t,sideOffset:e=4,...n}){return M.jsx(Jke,{"code-path":"src\\components\\ui\\dropdown-menu.tsx:38:5",children:M.jsx(Zke,{"code-path":"src\\components\\ui\\dropdown-menu.tsx:39:7","data-slot":"dropdown-menu-content",sideOffset:e,className:hf("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...n})})}function CV({className:t,inset:e,variant:n="default",...r}){return M.jsx(Qke,{"code-path":"src\\components\\ui\\dropdown-menu.tsx:70:5","data-slot":"dropdown-menu-item","data-inset":e,"data-variant":n,className:hf("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...r})}function i2e({className:t,...e}){return M.jsx(e2e,{"code-path":"src\\components\\ui\\dropdown-menu.tsx:169:5","data-slot":"dropdown-menu-separator",className:hf("bg-border -mx-1 my-1 h-px",t),...e})}const a2e={dashboard:vAe,oracle:HAe,sentinel:swe,inventory:pIe,settings:wIe},s2e={dashboard:"Dashboard",oracle:"The Oracle",sentinel:"The Sentinel",inventory:"Inventory",settings:"Settings"};function o2e(){const{activeModule:t,setActiveModule:e,sidebarExpanded:n,logout:r}=ao(),i=a2e[t];return M.jsxs("div",{"code-path":"src\\App.tsx:45:5",className:"min-h-screen flex",style:{background:"#000"},children:[M.jsx(noe,{"code-path":"src\\App.tsx:47:7"}),M.jsxs(yt.main,{"code-path":"src\\App.tsx:50:7",className:"flex-1 min-h-screen overflow-auto custom-scrollbar",initial:{marginLeft:72},animate:{marginLeft:n?232:72},transition:{type:"spring",stiffness:320,damping:32,mass:.8},children:[M.jsx("header",{"code-path":"src\\App.tsx:62:9",className:"sticky top-0 z-40 px-6 py-4",children:M.jsxs("div",{"code-path":"src\\App.tsx:63:11",className:"flex items-center justify-between px-5 py-3 rounded-2xl",style:{background:"hsl(var(--surface))",border:"1px solid hsl(var(--border-subtle))"},children:[M.jsxs(yt.div,{"code-path":"src\\App.tsx:70:13",initial:{opacity:0,x:-12},animate:{opacity:1,x:0},transition:{duration:.25},children:[M.jsx("h1",{"code-path":"src\\App.tsx:76:15",className:"text-base font-semibold text-white tracking-tight",children:s2e[t]}),M.jsx("p",{"code-path":"src\\App.tsx:77:15",className:"text-xs",style:{color:"hsl(var(--muted-fg))"},children:"Project Velocity · v.1.1"})]},t),M.jsxs("div",{"code-path":"src\\App.tsx:81:13",className:"flex items-center gap-3",children:[M.jsxs("div",{"code-path":"src\\App.tsx:82:15",className:"text-right",children:[M.jsx("p",{"code-path":"src\\App.tsx:83:17",className:"text-sm font-medium text-white",children:"Ahmed Al-Farsi"}),M.jsx("p",{"code-path":"src\\App.tsx:84:17",className:"text-xs",style:{color:"hsl(var(--muted-fg))"},children:"Sales Director"})]}),M.jsx("div",{"code-path":"src\\App.tsx:86:15",className:"w-9 h-9 rounded-xl flex items-center justify-center text-sm font-semibold",style:{background:"hsl(var(--accent))",color:"hsl(var(--accent-fg))"},children:"AA"}),M.jsxs(t2e,{"code-path":"src\\App.tsx:95:15",children:[M.jsx(n2e,{"code-path":"src\\App.tsx:96:17",asChild:!0,children:M.jsx("button",{"code-path":"src\\App.tsx:97:19",className:"h-9 w-9 flex items-center justify-center rounded-lg hover:bg-white/5 text-zinc-400 hover:text-white transition-colors outline-none",children:M.jsx(Vae,{"code-path":"src\\App.tsx:98:21",className:"w-5 h-5"})})}),M.jsxs(r2e,{"code-path":"src\\App.tsx:101:17",align:"end",className:"w-48 bg-[#0A0B10] border-white/10 text-zinc-200",children:[M.jsxs(CV,{"code-path":"src\\App.tsx:102:19",className:"cursor-pointer focus:bg-white/5",onClick:()=>e("settings"),children:[M.jsx(Nse,{"code-path":"src\\App.tsx:106:21",className:"mr-2 h-4 w-4 text-zinc-400"}),M.jsx("span",{"code-path":"src\\App.tsx:107:21",children:"Settings"})]}),M.jsx(i2e,{"code-path":"src\\App.tsx:109:19",className:"bg-white/10"}),M.jsxs(CV,{"code-path":"src\\App.tsx:110:19",className:"text-red-400 focus:text-red-400 focus:bg-red-500/10 cursor-pointer",onClick:()=>r(),children:[M.jsx(rse,{"code-path":"src\\App.tsx:111:21",className:"mr-2 h-4 w-4"}),M.jsx("span",{"code-path":"src\\App.tsx:112:21",children:"Log out"})]})]})]})]})]})}),M.jsx("div",{"code-path":"src\\App.tsx:121:9",className:"px-8 pb-8",children:M.jsx(Bs,{"code-path":"src\\App.tsx:122:11",mode:"wait",children:M.jsx(yt.div,{"code-path":"src\\App.tsx:123:13",initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.3,ease:[.4,0,.2,1]},children:M.jsx(i,{"code-path":"src\\App.tsx:133:15"})},t)})})]})]})}function l2e(){const{isAuthenticated:t}=ao();return M.jsx(Bs,{"code-path":"src\\App.tsx:146:5",mode:"wait",children:t?M.jsx(yt.div,{"code-path":"src\\App.tsx:158:9",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.5},children:M.jsx(o2e,{"code-path":"src\\App.tsx:165:11"})},"app"):M.jsx(yt.div,{"code-path":"src\\App.tsx:148:9",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.5},children:M.jsx(roe,{"code-path":"src\\App.tsx:155:11"})},"login")})}PV.createRoot(document.getElementById("root")).render(M.jsx(j.StrictMode,{"code-path":"src\\main.tsx:7:3",children:M.jsx(l2e,{"code-path":"src\\main.tsx:8:5"})})); diff --git a/app/dist/assets/index-J4PPDOa9.css b/app/dist/assets/index-J4PPDOa9.css deleted file mode 100644 index 4f750918..00000000 --- a/app/dist/assets/index-J4PPDOa9.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";*,: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,SF Pro Display,Segoe UI,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}:root{--background: 0 0% 0%;--surface: 220 12% 9%;--surface-2: 220 10% 12%;--surface-3: 220 9% 16%;--foreground: 0 0% 96%;--muted-fg: 220 8% 55%;--subtle-fg: 220 6% 35%;--accent: 217 91% 60%;--accent-dim: 217 70% 45%;--accent-fg: 0 0% 100%;--success: 142 71% 45%;--warning: 38 92% 50%;--danger: 0 84% 60%;--info: 199 89% 48%;--border: 220 12% 18%;--border-subtle: 220 10% 13%;--radius: .875rem;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6);--shadow-xl: 0 24px 64px rgba(0, 0, 0, .7);--sidebar-background: 220 14% 7%;--sidebar-foreground: 0 0% 90%;--sidebar-primary: 217 91% 60%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 220 10% 12%;--sidebar-accent-foreground: 0 0% 98%;--sidebar-border: 220 12% 14%;--sidebar-ring: 217 91% 60%;--card: 220 12% 9%;--card-foreground: 0 0% 96%;--popover: 220 12% 9%;--popover-foreground: 0 0% 96%;--primary: 217 91% 60%;--primary-foreground: 0 0% 100%;--secondary: 220 10% 14%;--secondary-foreground: 0 0% 90%;--muted: 220 10% 14%;--muted-foreground: 220 8% 55%;--input: 220 10% 14%;--ring: 82 95% 59%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%}*,*:before,*:after{box-sizing:border-box;border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;font-size:14px;line-height:1.5;letter-spacing:-.011em}h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;font-weight:600}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-2{inset:-.5rem}.inset-0{inset:0}.inset-\[12px\]{inset:12px}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-bottom-10{bottom:-2.5rem}.-bottom-12{bottom:-3rem}.-bottom-8{bottom:-2rem}.-left-12{left:-3rem}.-left-\[5px\]{left:-5px}.-right-0\.5{right:-.125rem}.-right-12{right:-3rem}.-right-8{right:-2rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-1\/4{bottom:25%}.bottom-2{bottom:.5rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.left-1\/3{left:33.333333%}.left-2{left:.5rem}.left-3{left:.75rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.left-5{left:1.25rem}.left-\[20px\]{left:20px}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\/3{right:33.333333%}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[90\]{z-index:90}.z-\[95\]{z-index:95}.z-\[998\]{z-index:998}.z-\[999\]{z-index:999}.order-first{order:-9999}.order-last{order:9999}.col-span-1{grid-column:span 1 / span 1}.col-span-12{grid-column:span 12 / span 12}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2 / span 2}.row-start-1{grid-row-start:1}.\!m-0{margin:0!important}.-mx-0{margin-left:-0px;margin-right:-0px}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-10{width:2.5rem;height:2.5rem}.size-2{width:.5rem;height:.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-36{height:9rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[1\.15rem\]{height:1.15rem}.h-\[130px\]{height:130px}.h-\[156px\]{height:156px}.h-\[180px\]{height:180px}.h-\[18px\]{height:18px}.h-\[220px\]{height:220px}.h-\[2px\]{height:2px}.h-\[30rem\]{height:30rem}.h-\[340px\]{height:340px}.h-\[44rem\]{height:44rem}.h-\[500px\]{height:500px}.h-\[560px\]{height:560px}.h-\[80vh\]{height:80vh}.h-\[88vh\]{height:88vh}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(80vh-56px\)\]{height:calc(80vh - 56px)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-\[300px\]{max-height:300px}.min-h-0{min-height:0px}.min-h-16{min-height:4rem}.min-h-4{min-height:1rem}.min-h-\[148px\]{min-height:148px}.min-h-\[16rem\]{min-height:16rem}.min-h-\[2\.5em\]{min-height:2.5em}.min-h-\[28rem\]{min-height:28rem}.min-h-\[300px\]{min-height:300px}.min-h-\[36rem\]{min-height:36rem}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[100px\]{width:100px}.w-\[18px\]{width:18px}.w-\[2px\]{width:2px}.w-\[3px\]{width:3px}.w-\[500px\]{width:500px}.w-\[92vw\]{width:92vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-10{min-width:2.5rem}.min-w-5{min-width:1.25rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-\[80\%\]{max-width:80%}.max-w-\[85\%\]{max-width:85%}.max-w-\[86\%\]{max-width:86%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;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))}.-translate-x-full{--tw-translate-x: -100%;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))}.-translate-x-px{--tw-translate-x: -1px;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))}.-translate-y-1\/2{--tw-translate-y: -50%;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))}.translate-x-1\/2{--tw-translate-x: 50%;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))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;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))}.translate-x-px{--tw-translate-x: 1px;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))}.translate-y-0\.5{--tw-translate-y: .125rem;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))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;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))}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;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))}.-rotate-90{--tw-rotate: -90deg;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))}.rotate-45{--tw-rotate: 45deg;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))}.rotate-90{--tw-rotate: 90deg;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))}.transform{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))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}.animate-caret-blink{animation:caret-blink 1.25s ease-out infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.scroll-py-1{scroll-padding-top:.25rem;scroll-padding-bottom:.25rem}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-\[minmax\(140px\,auto\)\]{grid-auto-rows:minmax(140px,auto)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.grid-rows-\[1fr\]{grid-template-rows:1fr}.grid-rows-\[1fr_auto\]{grid-template-rows:1fr auto}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-\[--spacing\(var\(--gap\)\)\]{gap:var(--spacing(var(--gap)))}.gap-y-0\.5{row-gap:.125rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-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))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.875rem}.rounded-md{border-radius:.75rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.5rem}.rounded-xl{border-radius:1rem}.rounded-xs{border-radius:.375rem}.rounded-l-md{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-tl-sm{border-top-left-radius:.5rem}.rounded-tr-sm{border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-\[12px\]{border-width:12px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-amber-400\/20{border-color:#fbbf2433}.border-amber-400\/30{border-color:#fbbf244d}.border-amber-500\/30{border-color:#f59e0b4d}.border-blue-300\/30{border-color:#93c5fd4d}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-blue-400\/30{border-color:#60a5fa4d}.border-blue-500\/15{border-color:#3b82f626}.border-blue-500\/20{border-color:#3b82f633}.border-blue-500\/30{border-color:#3b82f64d}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-cyan-300\/20{border-color:#67e8f933}.border-cyan-300\/30{border-color:#67e8f94d}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity, 1))}.border-cyan-400\/20{border-color:#22d3ee33}.border-cyan-400\/50{border-color:#22d3ee80}.border-emerald-400\/30{border-color:#34d3994d}.border-green-500\/30{border-color:#22c55e4d}.border-indigo-500\/30{border-color:#6366f14d}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-400\/30{border-color:#f871714d}.border-red-500\/30{border-color:#ef44444d}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-white\/10{border-color:#ffffff1a}.border-white\/15{border-color:#ffffff26}.border-white\/20{border-color:#fff3}.border-white\/5{border-color:#ffffff0d}.border-white\/80{border-color:#fffc}.border-yellow-200\/10{border-color:#fef08a1a}.border-zinc-400\/30{border-color:#a1a1aa4d}.border-zinc-500\/30{border-color:#71717a4d}.border-zinc-700\/70{border-color:#3f3f46b3}.border-zinc-950{--tw-border-opacity: 1;border-color:rgb(9 9 11 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#060d1f\]{--tw-bg-opacity: 1;background-color:rgb(6 13 31 / var(--tw-bg-opacity, 1))}.bg-\[\#0A0B10\]{--tw-bg-opacity: 1;background-color:rgb(10 11 16 / var(--tw-bg-opacity, 1))}.bg-\[\#28c840\]{--tw-bg-opacity: 1;background-color:rgb(40 200 64 / var(--tw-bg-opacity, 1))}.bg-\[\#febc2e\]{--tw-bg-opacity: 1;background-color:rgb(254 188 46 / var(--tw-bg-opacity, 1))}.bg-\[\#ff5f57\]{--tw-bg-opacity: 1;background-color:rgb(255 95 87 / var(--tw-bg-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-400\/10{background-color:#fbbf241a}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/20{background-color:#f59e0b33}.bg-background{background-color:hsl(var(--background))}.bg-black\/50{background-color:#00000080}.bg-black\/70{background-color:#000000b3}.bg-black\/75{background-color:#000000bf}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.bg-blue-400\/10{background-color:#60a5fa1a}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-500\/5{background-color:#3b82f60d}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-blue-600\/5{background-color:#2563eb0d}.bg-blue-600\/90{background-color:#2563ebe6}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-400{--tw-bg-opacity: 1;background-color:rgb(34 211 238 / var(--tw-bg-opacity, 1))}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity, 1))}.bg-cyan-500\/10{background-color:#06b6d41a}.bg-cyan-500\/20{background-color:#06b6d433}.bg-destructive{--tw-bg-opacity: 1;background-color:hsl(var(--destructive) / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-foreground{background-color:hsl(var(--foreground))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.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-green-500\/20{background-color:#22c55e33}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/20{background-color:#f9731633}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-purple-500\/20{background-color:#a855f733}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-400\/80{background-color:#94a3b8cc}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/40{background-color:#fff6}.bg-white\/5{background-color:#ffffff0d}.bg-yellow-200\/5{background-color:#fef08a0d}.bg-zinc-500{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity, 1))}.bg-zinc-500\/10{background-color:#71717a1a}.bg-zinc-500\/20{background-color:#71717a33}.bg-zinc-600\/40{background-color:#52525b66}.bg-zinc-800{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.bg-zinc-900\/40{background-color:#18181b66}.bg-zinc-900\/70{background-color:#18181bb3}.bg-zinc-900\/75{background-color:#18181bbf}.bg-zinc-900\/80{background-color:#18181bcc}.bg-zinc-900\/90{background-color:#18181be6}.bg-zinc-950{--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity, 1))}.bg-zinc-950\/40{background-color:#09090b66}.bg-zinc-950\/70{background-color:#09090bb3}.bg-zinc-950\/75{background-color:#09090bbf}.bg-zinc-950\/80{background-color:#09090bcc}.bg-\[radial-gradient\(circle_at_30\%_0\%\,rgba\(14\,116\,144\,0\.15\)\,transparent_40\%\)\,radial-gradient\(circle_at_70\%_100\%\,rgba\(59\,130\,246\,0\.10\)\,transparent_35\%\)\]{background-image:radial-gradient(circle at 30% 0%,rgba(14,116,144,.15),transparent 40%),radial-gradient(circle at 70% 100%,rgba(59,130,246,.1),transparent 35%)}.bg-\[radial-gradient\(circle_at_50\%_50\%\,rgba\(0\,0\,0\,0\)_40\%\,rgba\(10\,12\,20\,0\.5\)_100\%\)\]{background-image:radial-gradient(circle at 50% 50%,#0000 40%,#0a0c1480)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-300\/20{--tw-gradient-from: rgb(103 232 249 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(103 232 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-zinc-900\/95{--tw-gradient-from: rgb(24 24 27 / .95) var(--tw-gradient-from-position);--tw-gradient-to: rgb(24 24 27 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-zinc-950\/90{--tw-gradient-from: rgb(9 9 11 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(9 9 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-cyan-300{--tw-gradient-to: rgb(103 232 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #67e8f9 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-cyan-500\/50{--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(6 182 212 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/5{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-zinc-900\/90{--tw-gradient-to: rgb(24 24 27 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(24 24 27 / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-zinc-950\/20{--tw-gradient-to: rgb(9 9 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(9 9 11 / .2) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-300\/20{--tw-gradient-to: rgb(103 232 249 / .2) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-zinc-400{--tw-gradient-to: #a1a1aa var(--tw-gradient-to-position)}.to-zinc-950\/95{--tw-gradient-to: rgb(9 9 11 / .95) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.fill-foreground{fill:hsl(var(--foreground))}.fill-primary{fill:hsl(var(--primary))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-28{padding-bottom:7rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-12{padding-right:3rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-3\.5{padding-top:.875rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-sm\/relaxed{font-size:.875rem;line-height:1.625}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-fg))}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.text-blue-200{--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-300\/80{color:#93c5fdcc}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-100{--tw-text-opacity: 1;color:rgb(207 250 254 / var(--tw-text-opacity, 1))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-cyan-50{--tw-text-opacity: 1;color:rgb(236 254 255 / var(--tw-text-opacity, 1))}.text-destructive{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-green-300{--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-400\/60{color:#4ade8099}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/60{color:#f8717199}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/20{color:#fff3}.text-white\/30{color:#ffffff4d}.text-white\/40{color:#fff6}.text-white\/50{color:#ffffff80}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-yellow-100\/80{color:#fef9c3cc}.text-zinc-100{--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.text-zinc-200{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-50{--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(34\,211\,238\,0\.8\)\]{--tw-shadow: 0 0 10px rgba(34,211,238,.8);--tw-shadow-colored: 0 0 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_10px_rgba\(37\,99\,235\,0\.4\)\]{--tw-shadow: 0 0 10px rgba(37,99,235,.4);--tw-shadow-colored: 0 0 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_12px_\#3b82f6\]{--tw-shadow: 0 0 12px #3b82f6;--tw-shadow-colored: 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(59\,130\,246\,1\)\]{--tw-shadow: 0 0 12px rgba(59,130,246,1);--tw-shadow-colored: 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(148\,163\,184\,0\.4\)\]{--tw-shadow: 0 0 15px rgba(148,163,184,.4);--tw-shadow-colored: 0 0 15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_20px_rgba\(34\,211\,238\,0\.6\)\]{--tw-shadow: 0 0 20px rgba(34,211,238,.6);--tw-shadow-colored: 0 0 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_25px_rgba\(59\,130\,246\,0\.9\)\]{--tw-shadow: 0 0 25px rgba(59,130,246,.9);--tw-shadow-colored: 0 0 25px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_40px_rgba\(10\,12\,20\,0\.8\)\]{--tw-shadow: 0 0 40px rgba(10,12,20,.8);--tw-shadow-colored: 0 0 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_\#22d3ee\]{--tw-shadow: 0 0 8px #22d3ee;--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_\#3b82f6\]{--tw-shadow: 0 0 8px #3b82f6;--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_\#60a5fa\]{--tw-shadow: 0 0 8px #60a5fa;--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_\#6366f1\]{--tw-shadow: 0 0 8px #6366f1;--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(148\,163\,184\,0\.6\)\]{--tw-shadow: 0 0 8px rgba(148,163,184,.6);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 12px 40px rgba(0,0,0,.6);--tw-shadow-colored: 0 12px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 8px 32px rgba(0,0,0,.55);--tw-shadow-colored: 0 8px 32px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 4px 16px rgba(0,0,0,.5);--tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 24px 64px rgba(0,0,0,.7);--tw-shadow-colored: 0 24px 64px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xs{--tw-shadow: 0 1px 3px rgba(0,0,0,.4);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-cyan-300\/60{--tw-ring-color: rgb(103 232 249 / .6)}.ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);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)}.blur-2xl{--tw-blur: blur(40px);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)}.blur-3xl{--tw-blur: blur(64px);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)}.blur-\[80px\]{--tw-blur: blur(80px);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)}.brightness-110{--tw-brightness: brightness(1.1);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)}.contrast-125{--tw-contrast: contrast(1.25);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)}.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)}.drop-shadow-\[0_0_10px_rgba\(59\,130\,246\,0\.5\)\]{--tw-drop-shadow: drop-shadow(0 0 10px rgba(59,130,246,.5));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)}.drop-shadow-\[0_0_15px_rgba\(59\,130\,246\,0\.3\)\]{--tw-drop-shadow: drop-shadow(0 0 15px rgba(59,130,246,.3));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)}.saturate-0{--tw-saturate: saturate(0);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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-2xl{--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-100{animation-duration:.1s}.duration-1000{animation-duration:1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-700{animation-duration:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.card{background-color:hsl(var(--surface));border:1px solid hsl(var(--border-subtle));border-radius:var(--radius)}.stat-label{font-size:.6875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--muted-fg))}.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:9999px;font-size:.6875rem;font-weight:500;letter-spacing:.02em;background:hsl(var(--surface-3));border:1px solid hsl(var(--border-subtle));color:hsl(var(--muted-fg))}.status-pulse{animation:status-pulse 2s ease-in-out infinite}.custom-scrollbar::-webkit-scrollbar{width:4px;height:4px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:2px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-fg))}.skeleton-pulse{animation:skeleton-pulse 1.5s ease-in-out infinite}.\[--cell-size\:--spacing\(8\)\]{--cell-size: var(--spacing(8))}.\[animation-delay\:-0\.15s\]{animation-delay:-.15s}.\[animation-delay\:-0\.3s\]{animation-delay:-.3s}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes status-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.15)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes scan-line{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes faceid-pulse{0%{transform:scale(.95);opacity:.5}50%{transform:scale(1.05);opacity:1}to{transform:scale(.95);opacity:.5}}@keyframes skeleton-pulse{0%,to{opacity:.35}50%{opacity:.6}}.selection\:bg-primary *::-moz-selection{background-color:hsl(var(--primary))}.selection\:bg-primary *::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground *::-moz-selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground *::selection{color:hsl(var(--primary-foreground))}.selection\:bg-primary::-moz-selection{background-color:hsl(var(--primary))}.selection\:bg-primary::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground::-moz-selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground::selection{color:hsl(var(--primary-foreground))}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:1.75rem}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-zinc-500::-moz-placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.placeholder\:text-zinc-500::placeholder{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;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))}.first\:rounded-l-md:first-child{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.first\:border-l:first-child{border-left-width:1px}.last\:mt-0:last-child{margin-top:0}.last\:rounded-r-md:last-child{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:border-blue-500\/20:hover{border-color:#3b82f633}.hover\:border-white\/10:hover{border-color:#ffffff1a}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-400\/20:hover{background-color:#60a5fa33}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-500\/20:hover{background-color:#3b82f633}.hover\:bg-cyan-500\/20:hover{background-color:#06b6d433}.hover\:bg-cyan-500\/30:hover{background-color:#06b6d44d}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-indigo-500\/20:hover{background-color:#6366f133}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:bg-zinc-800:hover{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-800\/90:hover{background-color:#27272ae6}.hover\:bg-zinc-950\/60:hover{background-color:#09090b99}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-fg))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:ring-4:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);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)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-red-500\/10:focus{background-color:#ef44441a}.focus\:bg-white\/5:focus{background-color:#ffffff0d}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-fg))}.focus\:text-red-400:focus{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:hsl(var(--ring))}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-4:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: hsl(var(--destructive) / .2)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: hsl(var(--ring) / .5)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.active\:scale-95: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))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-full{--tw-translate-x: 100%;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))}.group:hover .group-hover\:border-blue-500\/30{border-color:#3b82f64d}.group:hover .group-hover\:border-blue-500\/40{border-color:#3b82f666}.group:hover .group-hover\:bg-blue-500\/20{background-color:#3b82f633}.group:hover .group-hover\:text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-blue-200\/50{color:#bfdbfe80}.group:hover .group-hover\:text-blue-200\/60{color:#bfdbfe99}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>button\]\:mr-\[-0\.45rem\]:has(>button){margin-right:-.45rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:.5rem}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:.75rem}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:.75rem}.has-\[\>svg\]\:gap-x-3:has(>svg){-moz-column-gap:.75rem;column-gap:.75rem}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:.75rem}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-width:1px}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:hsl(var(--ring))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){--tw-border-opacity: 1;border-color:hsl(var(--destructive) / var(--tw-border-opacity, 1))}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-left:.5rem;padding-right:.5rem}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-left:.625rem;padding-right:.625rem}.has-\[\>svg\]\:px-3:has(>svg){padding-left:.75rem;padding-right:.75rem}.has-\[\>svg\]\:px-4:has(>svg){padding-left:1rem;padding-right:1rem}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]:focus-visible){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color: hsl(var(--ring) / .5)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color: hsl(var(--destructive) / .2)}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5{--tw-translate-y: .125rem;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))}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:self-start{align-self:flex-start}.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance{text-wrap:balance}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5{padding-bottom:.625rem}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5{padding-top:.625rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{left:0;right:0}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{top:0;bottom:0}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{left:0;right:0}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:0}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:0}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:0}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:0}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:6rem}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:6rem}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:.375rem}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[size\=default\]\:h-9[data-size=default]{height:2.25rem}.data-\[size\=sm\]\:h-8[data-size=sm]{height:2rem}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom],.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:11rem}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:.375rem}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;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))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;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))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;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))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;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))}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;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))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;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))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical],.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:.75rem}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:.75rem}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:.75rem}.data-\[selected\=true\]\:rounded-none[data-selected=true],.data-\[spacing\=0\]\:rounded-none[data-spacing="0"]{border-radius:0}.data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:.875rem;border-top-right-radius:.875rem}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:.875rem;border-bottom-left-radius:.875rem}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0[data-variant=outline][data-spacing="0"]{border-left-width:0px}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-width:1px}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:hsl(var(--ring))}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:hsl(var(--primary))}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:hsl(var(--accent) / .5)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[inset\]\:pl-8[data-inset]{padding-left:2rem}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:.875rem;line-height:1.25rem}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:1rem;line-height:1.5rem}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:hsl(var(--accent-fg))}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[error\=true\]\:text-destructive[data-error=true],.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-fg))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-fg))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-fg))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[spacing\=0\]\:shadow-none[data-spacing="0"]{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[spacing\=default\]\:data-\[variant\=outline\]\:shadow-xs[data-variant=outline][data-spacing=default]{--tw-shadow: 0 1px 3px rgba(0,0,0,.4);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 4px 16px rgba(0,0,0,.5);--tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color: hsl(var(--ring) / .5)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed],.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot=select-value]>*{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\*\:data-\[slot\=select-value\]\:flex[data-slot=select-value]>*{display:flex}.\*\:data-\[slot\=select-value\]\:items-center[data-slot=select-value]>*{align-items:center}.\*\:data-\[slot\=select-value\]\:gap-2[data-slot=select-value]>*{gap:.5rem}.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot=alert-description]>*{color:hsl(var(--destructive) / .9)}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;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))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;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))}.data-\[spacing\=0\]\:first\:rounded-l-md:first-child[data-spacing="0"]{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:first-child[data-variant=outline][data-spacing="0"]{border-left-width:1px}.data-\[spacing\=0\]\:last\:rounded-r-md:last-child[data-spacing="0"]{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.data-\[active\=true\]\:hover\:bg-accent:hover[data-active=true],.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.data-\[active\=true\]\:focus\:bg-accent:focus[data-active=true]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open]{background-color:hsl(var(--accent))}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant=destructive]{background-color:hsl(var(--destructive) / .1)}.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant=destructive]{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:top-full{top:100%}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group\/field-group[data-variant=outline] .group-data-\[variant\=outline\]\/field-group\:-mb-2{margin-bottom:-.5rem}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5{margin-top:.375rem}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block{display:block}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{width:calc(var(--sidebar-width-icon) + (--spacing(4)))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{width:calc(var(--sidebar-width-icon) + (--spacing(4)) + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;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))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;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))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:.875rem}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md{border-radius:.75rem}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover{background-color:hsl(var(--popover))}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center,.group\/drawer-content[data-vaul-drawer-direction=top] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center{text-align:center}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground{color:hsl(var(--popover-foreground))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group\/field[data-disabled=true] .group-data-\[disabled\=true\]\/field\:opacity-50,.group\/input-group[data-disabled=true] .group-data-\[disabled\=true\]\/input-group\:opacity-50,.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50{opacity:.5}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow-sm{--tw-shadow: 0 4px 16px rgba(0,0,0,.5);--tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200{transition-duration:.2s;animation-duration:.2s}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-input:is(.dark *){border-color:hsl(var(--input))}.dark\:bg-destructive\/60:is(.dark *){background-color:hsl(var(--destructive) / .6)}.dark\:bg-input\/30:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:text-muted-foreground:is(.dark *){color:hsl(var(--muted-foreground))}.dark\:hover\:bg-accent\/50:hover:is(.dark *){background-color:hsl(var(--accent) / .5)}.dark\:hover\:bg-input\/50:hover:is(.dark *){background-color:hsl(var(--input) / .5)}.dark\:hover\:text-accent-foreground:hover:is(.dark *){color:hsl(var(--accent-fg))}.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:hsl(var(--input))}.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:hsl(var(--primary))}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:hsl(var(--primary-foreground))}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:hsl(var(--foreground))}.dark\:data-\[state\=unchecked\]\:bg-input\/80[data-state=unchecked]:is(.dark *){background-color:hsl(var(--input) / .8)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:hsl(var(--foreground))}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant=destructive]:is(.dark *){background-color:hsl(var(--destructive) / .2)}@media(min-width:640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:pl-2\.5{padding-left:.625rem}.sm\:pr-2\.5{padding-right:.625rem}.sm\:text-left{text-align:left}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:24rem}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1fr_280px\]{grid-template-columns:1fr 280px}.md\:flex-row{flex-direction:row}.md\:gap-1\.5{gap:.375rem}.md\:p-12{padding:3rem}.md\:text-left{text-align:left}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.md\:after\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset][data-state=collapsed]~.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:1rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow-sm{--tw-shadow: 0 4px 16px rgba(0,0,0,.5);--tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-8{grid-column:span 8 / span 8}}@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-\[1\.5fr_340px\]{grid-template-columns:1.5fr 340px}.xl\:grid-cols-\[1fr_1\.5fr\]{grid-template-columns:1fr 1.5fr}.xl\:grid-cols-\[260px_minmax\(0\,1fr\)_320px\]{grid-template-columns:260px minmax(0,1fr) 320px}}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-l-none>*:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>*:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-l-0>*:not(:first-child){border-left-width:0px}.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>*:not(:first-child){border-top-width:0px}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>*:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-r-none>*:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:focus-visible\:relative:focus-visible>*{position:relative}.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>*{z-index:10}.\[\&\>\*\]\:data-\[slot\=field\]\:p-4[data-slot=field]>*{padding:1rem}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:1rem}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:1 1 auto}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child){border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:-moz-fit-content;width:fit-content}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>a\:hover\]\:text-primary>a:hover{color:hsl(var(--primary))}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>input\]\:flex-1>input{flex:1 1 0%}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3>input:has(>[data-align=block-end]){padding-top:.75rem}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3>input:has(>[data-align=block-start]){padding-bottom:.75rem}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2>input:has(>[data-align=inline-end]){padding-right:.5rem}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2>input:has(>[data-align=inline-start]){padding-left:.5rem}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:1rem;height:1rem}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:.75rem;height:.75rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y: .125rem;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))}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;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))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;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))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*=size-]){width:1.5rem;height:1.5rem}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:hsl(var(--muted-foreground))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20{background-color:hsl(var(--background) / .2)}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:text-background{color:hsl(var(--background))}[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:is(.dark *){background-color:hsl(var(--background) / .1)}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:-.375rem}a.\[a\&\]\:hover\:bg-accent:hover{background-color:hsl(var(--accent))}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:hsl(var(--accent-fg))} diff --git a/app/dist/index.html b/app/dist/index.html index b5342acb..8ec91bfc 100644 --- a/app/dist/index.html +++ b/app/dist/index.html @@ -4,8 +4,8 @@ Velocity WebOS - - + +
diff --git a/app/node_modules/.bin/tsc b/app/node_modules/.bin/tsc old mode 100644 new mode 100755 diff --git a/app/node_modules/.bin/vite b/app/node_modules/.bin/vite old mode 100644 new mode 100755 diff --git a/app/node_modules/.package-lock.json b/app/node_modules/.package-lock.json index 4f1ec0f9..6c6e3e0c 100644 --- a/app/node_modules/.package-lock.json +++ b/app/node_modules/.package-lock.json @@ -1835,18 +1835,18 @@ "react": ">=16.8.0" } }, - "node_modules/@esbuild/win32-x64": { + "node_modules/@esbuild/darwin-arm64": { "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" + "darwin" ], "engines": { "node": ">=18" @@ -3922,32 +3922,18 @@ "dev": true, "license": "MIT" }, - "node_modules/@rollup/rollup-win32-x64-gnu": { + "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", - "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", - "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" + "darwin" ] }, "node_modules/@standard-schema/utils": { @@ -5008,6 +4994,19 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/core-js-compat": { "version": "3.48.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", @@ -5777,6 +5776,21 @@ } } }, + "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", @@ -6961,6 +6975,44 @@ "react-dom": "^18.0.0 || ^19.0.0" } }, + "node_modules/react-router": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.1.tgz", + "integrity": "sha512-td+xP4X2/6BJvZoX6xw++A2DdEi++YypA69bJUV5oVvqf6/9/9nNlD70YO1e9d3MyamJEBQFEzk6mbfDYbqrSA==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.13.1.tgz", + "integrity": "sha512-UJnV3Rxc5TgUPJt2KJpo1Jpy0OKQr0AjgbZzBFjaPJcFOb2Y8jA5H3LT8HUJAiRLlWrEXWHbF1Z4SCZaQjWDHw==", + "license": "MIT", + "dependencies": { + "react-router": "7.13.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/react-smooth": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", @@ -7291,6 +7343,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/app/node_modules/.tmp/tsconfig.app.tsbuildinfo b/app/node_modules/.tmp/tsconfig.app.tsbuildinfo index f4703972..b14b6c56 100644 --- a/app/node_modules/.tmp/tsconfig.app.tsbuildinfo +++ b/app/node_modules/.tmp/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["../../src/app.tsx","../../src/main.tsx","../../src/app/oracle/page.tsx","../../src/components/layout/loginscreen.tsx","../../src/components/layout/sidebar.tsx","../../src/components/modules/dashboard.tsx","../../src/components/modules/inventory.tsx","../../src/components/modules/oracle.tsx","../../src/components/modules/sentinel.tsx","../../src/components/modules/settings.tsx","../../src/components/oracle/leadinspector.tsx","../../src/components/oracle/pipelineview.tsx","../../src/components/oracle/mockleads.ts","../../src/components/sentinel/journeyriver/inspectorpanel.tsx","../../src/components/sentinel/journeyriver/riverpath.tsx","../../src/components/sentinel/journeyriver/index.tsx","../../src/components/ui/accordion.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ui/alert.tsx","../../src/components/ui/aspect-ratio.tsx","../../src/components/ui/avatar.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/breadcrumb.tsx","../../src/components/ui/button-group.tsx","../../src/components/ui/button.tsx","../../src/components/ui/calendar.tsx","../../src/components/ui/card.tsx","../../src/components/ui/carousel.tsx","../../src/components/ui/chart.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/collapsible.tsx","../../src/components/ui/command.tsx","../../src/components/ui/context-menu.tsx","../../src/components/ui/dialog.tsx","../../src/components/ui/drawer.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/empty.tsx","../../src/components/ui/field.tsx","../../src/components/ui/form.tsx","../../src/components/ui/hover-card.tsx","../../src/components/ui/input-group.tsx","../../src/components/ui/input-otp.tsx","../../src/components/ui/input.tsx","../../src/components/ui/item.tsx","../../src/components/ui/kbd.tsx","../../src/components/ui/label.tsx","../../src/components/ui/menubar.tsx","../../src/components/ui/navigation-menu.tsx","../../src/components/ui/pagination.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/progress.tsx","../../src/components/ui/radio-group.tsx","../../src/components/ui/resizable.tsx","../../src/components/ui/scroll-area.tsx","../../src/components/ui/select.tsx","../../src/components/ui/separator.tsx","../../src/components/ui/sheet.tsx","../../src/components/ui/sidebar.tsx","../../src/components/ui/skeleton.tsx","../../src/components/ui/slider.tsx","../../src/components/ui/sonner.tsx","../../src/components/ui/spinner.tsx","../../src/components/ui/switch.tsx","../../src/components/ui/table.tsx","../../src/components/ui/tabs.tsx","../../src/components/ui/textarea.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/ui/toggle.tsx","../../src/components/ui/tooltip.tsx","../../src/hooks/use-mobile.ts","../../src/lib/oraclequeryclient.ts","../../src/lib/utils.ts","../../src/store/usestore.ts","../../src/types/crm.ts","../../src/types/index.ts","../../src/utils/curvegenerator.ts"],"version":"5.9.3"} \ No newline at end of file +{"root":["../../src/app.tsx","../../src/main.tsx","../../src/app/oracle/page.tsx","../../src/components/layout/loginscreen.tsx","../../src/components/layout/sidebar.tsx","../../src/components/modules/catalyst.tsx","../../src/components/modules/dashboard.tsx","../../src/components/modules/inventory.tsx","../../src/components/modules/oracle.tsx","../../src/components/modules/sentinel.tsx","../../src/components/modules/settings.tsx","../../src/components/oracle/leadinspector.tsx","../../src/components/oracle/pipelineview.tsx","../../src/components/oracle/mockleads.ts","../../src/components/sentinel/journeyriver/inspectorpanel.tsx","../../src/components/sentinel/journeyriver/riverpath.tsx","../../src/components/sentinel/journeyriver/index.tsx","../../src/components/ui/accordion.tsx","../../src/components/ui/alert-dialog.tsx","../../src/components/ui/alert.tsx","../../src/components/ui/aspect-ratio.tsx","../../src/components/ui/avatar.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/breadcrumb.tsx","../../src/components/ui/button-group.tsx","../../src/components/ui/button.tsx","../../src/components/ui/calendar.tsx","../../src/components/ui/card.tsx","../../src/components/ui/carousel.tsx","../../src/components/ui/chart.tsx","../../src/components/ui/checkbox.tsx","../../src/components/ui/collapsible.tsx","../../src/components/ui/command.tsx","../../src/components/ui/context-menu.tsx","../../src/components/ui/dialog.tsx","../../src/components/ui/drawer.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/empty.tsx","../../src/components/ui/field.tsx","../../src/components/ui/form.tsx","../../src/components/ui/hover-card.tsx","../../src/components/ui/input-group.tsx","../../src/components/ui/input-otp.tsx","../../src/components/ui/input.tsx","../../src/components/ui/item.tsx","../../src/components/ui/kbd.tsx","../../src/components/ui/label.tsx","../../src/components/ui/menubar.tsx","../../src/components/ui/navigation-menu.tsx","../../src/components/ui/pagination.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/progress.tsx","../../src/components/ui/radio-group.tsx","../../src/components/ui/resizable.tsx","../../src/components/ui/scroll-area.tsx","../../src/components/ui/select.tsx","../../src/components/ui/separator.tsx","../../src/components/ui/sheet.tsx","../../src/components/ui/sidebar.tsx","../../src/components/ui/skeleton.tsx","../../src/components/ui/slider.tsx","../../src/components/ui/sonner.tsx","../../src/components/ui/spinner.tsx","../../src/components/ui/switch.tsx","../../src/components/ui/table.tsx","../../src/components/ui/tabs.tsx","../../src/components/ui/textarea.tsx","../../src/components/ui/toggle-group.tsx","../../src/components/ui/toggle.tsx","../../src/components/ui/tooltip.tsx","../../src/hooks/use-mobile.ts","../../src/lib/oraclequeryclient.ts","../../src/lib/utils.ts","../../src/store/usemarketingstore.ts","../../src/store/usestore.ts","../../src/types/crm.ts","../../src/types/index.ts","../../src/utils/curvegenerator.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/app/node_modules/.vite/deps/@dnd-kit_core.js b/app/node_modules/.vite/deps/@dnd-kit_core.js deleted file mode 100644 index b9078549..00000000 --- a/app/node_modules/.vite/deps/@dnd-kit_core.js +++ /dev/null @@ -1,3591 +0,0 @@ -import { - CSS, - add, - canUseDOM, - findFirstFocusableNode, - getEventCoordinates, - getOwnerDocument, - getWindow, - isDocument, - isHTMLElement, - isKeyboardEvent, - isNode, - isSVGElement, - isWindow, - subtract, - useEvent, - useInterval, - useIsomorphicLayoutEffect, - useLatestValue, - useLazyMemo, - useNodeRef, - usePrevious, - useUniqueId -} from "./chunk-YJZCGBGU.js"; -import { - require_react_dom -} from "./chunk-YF4B4G2L.js"; -import { - require_react -} from "./chunk-WUR7D6NS.js"; -import { - __toESM -} from "./chunk-G3PMV62Z.js"; - -// node_modules/@dnd-kit/core/dist/core.esm.js -var import_react2 = __toESM(require_react()); -var import_react_dom = __toESM(require_react_dom()); - -// node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js -var import_react = __toESM(require_react()); -var hiddenStyles = { - display: "none" -}; -function HiddenText(_ref) { - let { - id, - value - } = _ref; - return import_react.default.createElement("div", { - id, - style: hiddenStyles - }, value); -} -function LiveRegion(_ref) { - let { - id, - announcement, - ariaLiveType = "assertive" - } = _ref; - const visuallyHidden = { - position: "fixed", - top: 0, - left: 0, - width: 1, - height: 1, - margin: -1, - border: 0, - padding: 0, - overflow: "hidden", - clip: "rect(0 0 0 0)", - clipPath: "inset(100%)", - whiteSpace: "nowrap" - }; - return import_react.default.createElement("div", { - id, - style: visuallyHidden, - role: "status", - "aria-live": ariaLiveType, - "aria-atomic": true - }, announcement); -} -function useAnnouncement() { - const [announcement, setAnnouncement] = (0, import_react.useState)(""); - const announce = (0, import_react.useCallback)((value) => { - if (value != null) { - setAnnouncement(value); - } - }, []); - return { - announce, - announcement - }; -} - -// node_modules/@dnd-kit/core/dist/core.esm.js -var DndMonitorContext = (0, import_react2.createContext)(null); -function useDndMonitor(listener) { - const registerListener = (0, import_react2.useContext)(DndMonitorContext); - (0, import_react2.useEffect)(() => { - if (!registerListener) { - throw new Error("useDndMonitor must be used within a children of "); - } - const unsubscribe = registerListener(listener); - return unsubscribe; - }, [listener, registerListener]); -} -function useDndMonitorProvider() { - const [listeners] = (0, import_react2.useState)(() => /* @__PURE__ */ new Set()); - const registerListener = (0, import_react2.useCallback)((listener) => { - listeners.add(listener); - return () => listeners.delete(listener); - }, [listeners]); - const dispatch = (0, import_react2.useCallback)((_ref) => { - let { - type, - event - } = _ref; - listeners.forEach((listener) => { - var _listener$type; - return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event); - }); - }, [listeners]); - return [dispatch, registerListener]; -} -var defaultScreenReaderInstructions = { - draggable: "\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n " -}; -var defaultAnnouncements = { - onDragStart(_ref) { - let { - active - } = _ref; - return "Picked up draggable item " + active.id + "."; - }, - onDragOver(_ref2) { - let { - active, - over - } = _ref2; - if (over) { - return "Draggable item " + active.id + " was moved over droppable area " + over.id + "."; - } - return "Draggable item " + active.id + " is no longer over a droppable area."; - }, - onDragEnd(_ref3) { - let { - active, - over - } = _ref3; - if (over) { - return "Draggable item " + active.id + " was dropped over droppable area " + over.id; - } - return "Draggable item " + active.id + " was dropped."; - }, - onDragCancel(_ref4) { - let { - active - } = _ref4; - return "Dragging was cancelled. Draggable item " + active.id + " was dropped."; - } -}; -function Accessibility(_ref) { - let { - announcements = defaultAnnouncements, - container, - hiddenTextDescribedById, - screenReaderInstructions = defaultScreenReaderInstructions - } = _ref; - const { - announce, - announcement - } = useAnnouncement(); - const liveRegionId = useUniqueId("DndLiveRegion"); - const [mounted, setMounted] = (0, import_react2.useState)(false); - (0, import_react2.useEffect)(() => { - setMounted(true); - }, []); - useDndMonitor((0, import_react2.useMemo)(() => ({ - onDragStart(_ref2) { - let { - active - } = _ref2; - announce(announcements.onDragStart({ - active - })); - }, - onDragMove(_ref3) { - let { - active, - over - } = _ref3; - if (announcements.onDragMove) { - announce(announcements.onDragMove({ - active, - over - })); - } - }, - onDragOver(_ref4) { - let { - active, - over - } = _ref4; - announce(announcements.onDragOver({ - active, - over - })); - }, - onDragEnd(_ref5) { - let { - active, - over - } = _ref5; - announce(announcements.onDragEnd({ - active, - over - })); - }, - onDragCancel(_ref6) { - let { - active, - over - } = _ref6; - announce(announcements.onDragCancel({ - active, - over - })); - } - }), [announce, announcements])); - if (!mounted) { - return null; - } - const markup = import_react2.default.createElement(import_react2.default.Fragment, null, import_react2.default.createElement(HiddenText, { - id: hiddenTextDescribedById, - value: screenReaderInstructions.draggable - }), import_react2.default.createElement(LiveRegion, { - id: liveRegionId, - announcement - })); - return container ? (0, import_react_dom.createPortal)(markup, container) : markup; -} -var Action; -(function(Action2) { - Action2["DragStart"] = "dragStart"; - Action2["DragMove"] = "dragMove"; - Action2["DragEnd"] = "dragEnd"; - Action2["DragCancel"] = "dragCancel"; - Action2["DragOver"] = "dragOver"; - Action2["RegisterDroppable"] = "registerDroppable"; - Action2["SetDroppableDisabled"] = "setDroppableDisabled"; - Action2["UnregisterDroppable"] = "unregisterDroppable"; -})(Action || (Action = {})); -function noop() { -} -function useSensor(sensor, options) { - return (0, import_react2.useMemo)( - () => ({ - sensor, - options: options != null ? options : {} - }), - // eslint-disable-next-line react-hooks/exhaustive-deps - [sensor, options] - ); -} -function useSensors() { - for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) { - sensors[_key] = arguments[_key]; - } - return (0, import_react2.useMemo)( - () => [...sensors].filter((sensor) => sensor != null), - // eslint-disable-next-line react-hooks/exhaustive-deps - [...sensors] - ); -} -var defaultCoordinates = Object.freeze({ - x: 0, - y: 0 -}); -function distanceBetween(p1, p2) { - return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2)); -} -function getRelativeTransformOrigin(event, rect) { - const eventCoordinates = getEventCoordinates(event); - if (!eventCoordinates) { - return "0 0"; - } - const transformOrigin = { - x: (eventCoordinates.x - rect.left) / rect.width * 100, - y: (eventCoordinates.y - rect.top) / rect.height * 100 - }; - return transformOrigin.x + "% " + transformOrigin.y + "%"; -} -function sortCollisionsAsc(_ref, _ref2) { - let { - data: { - value: a - } - } = _ref; - let { - data: { - value: b - } - } = _ref2; - return a - b; -} -function sortCollisionsDesc(_ref3, _ref4) { - let { - data: { - value: a - } - } = _ref3; - let { - data: { - value: b - } - } = _ref4; - return b - a; -} -function cornersOfRectangle(_ref5) { - let { - left, - top, - height, - width - } = _ref5; - return [{ - x: left, - y: top - }, { - x: left + width, - y: top - }, { - x: left, - y: top + height - }, { - x: left + width, - y: top + height - }]; -} -function getFirstCollision(collisions, property) { - if (!collisions || collisions.length === 0) { - return null; - } - const [firstCollision] = collisions; - return property ? firstCollision[property] : firstCollision; -} -function centerOfRectangle(rect, left, top) { - if (left === void 0) { - left = rect.left; - } - if (top === void 0) { - top = rect.top; - } - return { - x: left + rect.width * 0.5, - y: top + rect.height * 0.5 - }; -} -var closestCenter = (_ref) => { - let { - collisionRect, - droppableRects, - droppableContainers - } = _ref; - const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top); - const collisions = []; - for (const droppableContainer of droppableContainers) { - const { - id - } = droppableContainer; - const rect = droppableRects.get(id); - if (rect) { - const distBetween = distanceBetween(centerOfRectangle(rect), centerRect); - collisions.push({ - id, - data: { - droppableContainer, - value: distBetween - } - }); - } - } - return collisions.sort(sortCollisionsAsc); -}; -var closestCorners = (_ref) => { - let { - collisionRect, - droppableRects, - droppableContainers - } = _ref; - const corners = cornersOfRectangle(collisionRect); - const collisions = []; - for (const droppableContainer of droppableContainers) { - const { - id - } = droppableContainer; - const rect = droppableRects.get(id); - if (rect) { - const rectCorners = cornersOfRectangle(rect); - const distances = corners.reduce((accumulator, corner, index) => { - return accumulator + distanceBetween(rectCorners[index], corner); - }, 0); - const effectiveDistance = Number((distances / 4).toFixed(4)); - collisions.push({ - id, - data: { - droppableContainer, - value: effectiveDistance - } - }); - } - } - return collisions.sort(sortCollisionsAsc); -}; -function getIntersectionRatio(entry, target) { - const top = Math.max(target.top, entry.top); - const left = Math.max(target.left, entry.left); - const right = Math.min(target.left + target.width, entry.left + entry.width); - const bottom = Math.min(target.top + target.height, entry.top + entry.height); - const width = right - left; - const height = bottom - top; - if (left < right && top < bottom) { - const targetArea = target.width * target.height; - const entryArea = entry.width * entry.height; - const intersectionArea = width * height; - const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea); - return Number(intersectionRatio.toFixed(4)); - } - return 0; -} -var rectIntersection = (_ref) => { - let { - collisionRect, - droppableRects, - droppableContainers - } = _ref; - const collisions = []; - for (const droppableContainer of droppableContainers) { - const { - id - } = droppableContainer; - const rect = droppableRects.get(id); - if (rect) { - const intersectionRatio = getIntersectionRatio(rect, collisionRect); - if (intersectionRatio > 0) { - collisions.push({ - id, - data: { - droppableContainer, - value: intersectionRatio - } - }); - } - } - } - return collisions.sort(sortCollisionsDesc); -}; -function isPointWithinRect(point, rect) { - const { - top, - left, - bottom, - right - } = rect; - return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right; -} -var pointerWithin = (_ref) => { - let { - droppableContainers, - droppableRects, - pointerCoordinates - } = _ref; - if (!pointerCoordinates) { - return []; - } - const collisions = []; - for (const droppableContainer of droppableContainers) { - const { - id - } = droppableContainer; - const rect = droppableRects.get(id); - if (rect && isPointWithinRect(pointerCoordinates, rect)) { - const corners = cornersOfRectangle(rect); - const distances = corners.reduce((accumulator, corner) => { - return accumulator + distanceBetween(pointerCoordinates, corner); - }, 0); - const effectiveDistance = Number((distances / 4).toFixed(4)); - collisions.push({ - id, - data: { - droppableContainer, - value: effectiveDistance - } - }); - } - } - return collisions.sort(sortCollisionsAsc); -}; -function adjustScale(transform, rect1, rect2) { - return { - ...transform, - scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1, - scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1 - }; -} -function getRectDelta(rect1, rect2) { - return rect1 && rect2 ? { - x: rect1.left - rect2.left, - y: rect1.top - rect2.top - } : defaultCoordinates; -} -function createRectAdjustmentFn(modifier) { - return function adjustClientRect(rect) { - for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - adjustments[_key - 1] = arguments[_key]; - } - return adjustments.reduce((acc, adjustment) => ({ - ...acc, - top: acc.top + modifier * adjustment.y, - bottom: acc.bottom + modifier * adjustment.y, - left: acc.left + modifier * adjustment.x, - right: acc.right + modifier * adjustment.x - }), { - ...rect - }); - }; -} -var getAdjustedRect = createRectAdjustmentFn(1); -function parseTransform(transform) { - if (transform.startsWith("matrix3d(")) { - const transformArray = transform.slice(9, -1).split(/, /); - return { - x: +transformArray[12], - y: +transformArray[13], - scaleX: +transformArray[0], - scaleY: +transformArray[5] - }; - } else if (transform.startsWith("matrix(")) { - const transformArray = transform.slice(7, -1).split(/, /); - return { - x: +transformArray[4], - y: +transformArray[5], - scaleX: +transformArray[0], - scaleY: +transformArray[3] - }; - } - return null; -} -function inverseTransform(rect, transform, transformOrigin) { - const parsedTransform = parseTransform(transform); - if (!parsedTransform) { - return rect; - } - const { - scaleX, - scaleY, - x: translateX, - y: translateY - } = parsedTransform; - const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin); - const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(" ") + 1)); - const w = scaleX ? rect.width / scaleX : rect.width; - const h = scaleY ? rect.height / scaleY : rect.height; - return { - width: w, - height: h, - top: y, - right: x + w, - bottom: y + h, - left: x - }; -} -var defaultOptions = { - ignoreTransform: false -}; -function getClientRect(element, options) { - if (options === void 0) { - options = defaultOptions; - } - let rect = element.getBoundingClientRect(); - if (options.ignoreTransform) { - const { - transform, - transformOrigin - } = getWindow(element).getComputedStyle(element); - if (transform) { - rect = inverseTransform(rect, transform, transformOrigin); - } - } - const { - top, - left, - width, - height, - bottom, - right - } = rect; - return { - top, - left, - width, - height, - bottom, - right - }; -} -function getTransformAgnosticClientRect(element) { - return getClientRect(element, { - ignoreTransform: true - }); -} -function getWindowClientRect(element) { - const width = element.innerWidth; - const height = element.innerHeight; - return { - top: 0, - left: 0, - right: width, - bottom: height, - width, - height - }; -} -function isFixed(node, computedStyle) { - if (computedStyle === void 0) { - computedStyle = getWindow(node).getComputedStyle(node); - } - return computedStyle.position === "fixed"; -} -function isScrollable(element, computedStyle) { - if (computedStyle === void 0) { - computedStyle = getWindow(element).getComputedStyle(element); - } - const overflowRegex = /(auto|scroll|overlay)/; - const properties2 = ["overflow", "overflowX", "overflowY"]; - return properties2.some((property) => { - const value = computedStyle[property]; - return typeof value === "string" ? overflowRegex.test(value) : false; - }); -} -function getScrollableAncestors(element, limit) { - const scrollParents = []; - function findScrollableAncestors(node) { - if (limit != null && scrollParents.length >= limit) { - return scrollParents; - } - if (!node) { - return scrollParents; - } - if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) { - scrollParents.push(node.scrollingElement); - return scrollParents; - } - if (!isHTMLElement(node) || isSVGElement(node)) { - return scrollParents; - } - if (scrollParents.includes(node)) { - return scrollParents; - } - const computedStyle = getWindow(element).getComputedStyle(node); - if (node !== element) { - if (isScrollable(node, computedStyle)) { - scrollParents.push(node); - } - } - if (isFixed(node, computedStyle)) { - return scrollParents; - } - return findScrollableAncestors(node.parentNode); - } - if (!element) { - return scrollParents; - } - return findScrollableAncestors(element); -} -function getFirstScrollableAncestor(node) { - const [firstScrollableAncestor] = getScrollableAncestors(node, 1); - return firstScrollableAncestor != null ? firstScrollableAncestor : null; -} -function getScrollableElement(element) { - if (!canUseDOM || !element) { - return null; - } - if (isWindow(element)) { - return element; - } - if (!isNode(element)) { - return null; - } - if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) { - return window; - } - if (isHTMLElement(element)) { - return element; - } - return null; -} -function getScrollXCoordinate(element) { - if (isWindow(element)) { - return element.scrollX; - } - return element.scrollLeft; -} -function getScrollYCoordinate(element) { - if (isWindow(element)) { - return element.scrollY; - } - return element.scrollTop; -} -function getScrollCoordinates(element) { - return { - x: getScrollXCoordinate(element), - y: getScrollYCoordinate(element) - }; -} -var Direction; -(function(Direction2) { - Direction2[Direction2["Forward"] = 1] = "Forward"; - Direction2[Direction2["Backward"] = -1] = "Backward"; -})(Direction || (Direction = {})); -function isDocumentScrollingElement(element) { - if (!canUseDOM || !element) { - return false; - } - return element === document.scrollingElement; -} -function getScrollPosition(scrollingContainer) { - const minScroll = { - x: 0, - y: 0 - }; - const dimensions = isDocumentScrollingElement(scrollingContainer) ? { - height: window.innerHeight, - width: window.innerWidth - } : { - height: scrollingContainer.clientHeight, - width: scrollingContainer.clientWidth - }; - const maxScroll = { - x: scrollingContainer.scrollWidth - dimensions.width, - y: scrollingContainer.scrollHeight - dimensions.height - }; - const isTop = scrollingContainer.scrollTop <= minScroll.y; - const isLeft = scrollingContainer.scrollLeft <= minScroll.x; - const isBottom = scrollingContainer.scrollTop >= maxScroll.y; - const isRight = scrollingContainer.scrollLeft >= maxScroll.x; - return { - isTop, - isLeft, - isBottom, - isRight, - maxScroll, - minScroll - }; -} -var defaultThreshold = { - x: 0.2, - y: 0.2 -}; -function getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) { - let { - top, - left, - right, - bottom - } = _ref; - if (acceleration === void 0) { - acceleration = 10; - } - if (thresholdPercentage === void 0) { - thresholdPercentage = defaultThreshold; - } - const { - isTop, - isBottom, - isLeft, - isRight - } = getScrollPosition(scrollContainer); - const direction = { - x: 0, - y: 0 - }; - const speed = { - x: 0, - y: 0 - }; - const threshold = { - height: scrollContainerRect.height * thresholdPercentage.y, - width: scrollContainerRect.width * thresholdPercentage.x - }; - if (!isTop && top <= scrollContainerRect.top + threshold.height) { - direction.y = Direction.Backward; - speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height); - } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) { - direction.y = Direction.Forward; - speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height); - } - if (!isRight && right >= scrollContainerRect.right - threshold.width) { - direction.x = Direction.Forward; - speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width); - } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) { - direction.x = Direction.Backward; - speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width); - } - return { - direction, - speed - }; -} -function getScrollElementRect(element) { - if (element === document.scrollingElement) { - const { - innerWidth, - innerHeight - } = window; - return { - top: 0, - left: 0, - right: innerWidth, - bottom: innerHeight, - width: innerWidth, - height: innerHeight - }; - } - const { - top, - left, - right, - bottom - } = element.getBoundingClientRect(); - return { - top, - left, - right, - bottom, - width: element.clientWidth, - height: element.clientHeight - }; -} -function getScrollOffsets(scrollableAncestors) { - return scrollableAncestors.reduce((acc, node) => { - return add(acc, getScrollCoordinates(node)); - }, defaultCoordinates); -} -function getScrollXOffset(scrollableAncestors) { - return scrollableAncestors.reduce((acc, node) => { - return acc + getScrollXCoordinate(node); - }, 0); -} -function getScrollYOffset(scrollableAncestors) { - return scrollableAncestors.reduce((acc, node) => { - return acc + getScrollYCoordinate(node); - }, 0); -} -function scrollIntoViewIfNeeded(element, measure) { - if (measure === void 0) { - measure = getClientRect; - } - if (!element) { - return; - } - const { - top, - left, - bottom, - right - } = measure(element); - const firstScrollableAncestor = getFirstScrollableAncestor(element); - if (!firstScrollableAncestor) { - return; - } - if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) { - element.scrollIntoView({ - block: "center", - inline: "center" - }); - } -} -var properties = [["x", ["left", "right"], getScrollXOffset], ["y", ["top", "bottom"], getScrollYOffset]]; -var Rect = class { - constructor(rect, element) { - this.rect = void 0; - this.width = void 0; - this.height = void 0; - this.top = void 0; - this.bottom = void 0; - this.right = void 0; - this.left = void 0; - const scrollableAncestors = getScrollableAncestors(element); - const scrollOffsets = getScrollOffsets(scrollableAncestors); - this.rect = { - ...rect - }; - this.width = rect.width; - this.height = rect.height; - for (const [axis, keys, getScrollOffset] of properties) { - for (const key2 of keys) { - Object.defineProperty(this, key2, { - get: () => { - const currentOffsets = getScrollOffset(scrollableAncestors); - const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets; - return this.rect[key2] + scrollOffsetsDeltla; - }, - enumerable: true - }); - } - } - Object.defineProperty(this, "rect", { - enumerable: false - }); - } -}; -var Listeners = class { - constructor(target) { - this.target = void 0; - this.listeners = []; - this.removeAll = () => { - this.listeners.forEach((listener) => { - var _this$target; - return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener); - }); - }; - this.target = target; - } - add(eventName, handler, options) { - var _this$target2; - (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options); - this.listeners.push([eventName, handler, options]); - } -}; -function getEventListenerTarget(target) { - const { - EventTarget - } = getWindow(target); - return target instanceof EventTarget ? target : getOwnerDocument(target); -} -function hasExceededDistance(delta, measurement) { - const dx = Math.abs(delta.x); - const dy = Math.abs(delta.y); - if (typeof measurement === "number") { - return Math.sqrt(dx ** 2 + dy ** 2) > measurement; - } - if ("x" in measurement && "y" in measurement) { - return dx > measurement.x && dy > measurement.y; - } - if ("x" in measurement) { - return dx > measurement.x; - } - if ("y" in measurement) { - return dy > measurement.y; - } - return false; -} -var EventName; -(function(EventName2) { - EventName2["Click"] = "click"; - EventName2["DragStart"] = "dragstart"; - EventName2["Keydown"] = "keydown"; - EventName2["ContextMenu"] = "contextmenu"; - EventName2["Resize"] = "resize"; - EventName2["SelectionChange"] = "selectionchange"; - EventName2["VisibilityChange"] = "visibilitychange"; -})(EventName || (EventName = {})); -function preventDefault(event) { - event.preventDefault(); -} -function stopPropagation(event) { - event.stopPropagation(); -} -var KeyboardCode; -(function(KeyboardCode2) { - KeyboardCode2["Space"] = "Space"; - KeyboardCode2["Down"] = "ArrowDown"; - KeyboardCode2["Right"] = "ArrowRight"; - KeyboardCode2["Left"] = "ArrowLeft"; - KeyboardCode2["Up"] = "ArrowUp"; - KeyboardCode2["Esc"] = "Escape"; - KeyboardCode2["Enter"] = "Enter"; - KeyboardCode2["Tab"] = "Tab"; -})(KeyboardCode || (KeyboardCode = {})); -var defaultKeyboardCodes = { - start: [KeyboardCode.Space, KeyboardCode.Enter], - cancel: [KeyboardCode.Esc], - end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab] -}; -var defaultKeyboardCoordinateGetter = (event, _ref) => { - let { - currentCoordinates - } = _ref; - switch (event.code) { - case KeyboardCode.Right: - return { - ...currentCoordinates, - x: currentCoordinates.x + 25 - }; - case KeyboardCode.Left: - return { - ...currentCoordinates, - x: currentCoordinates.x - 25 - }; - case KeyboardCode.Down: - return { - ...currentCoordinates, - y: currentCoordinates.y + 25 - }; - case KeyboardCode.Up: - return { - ...currentCoordinates, - y: currentCoordinates.y - 25 - }; - } - return void 0; -}; -var KeyboardSensor = class { - constructor(props) { - this.props = void 0; - this.autoScrollEnabled = false; - this.referenceCoordinates = void 0; - this.listeners = void 0; - this.windowListeners = void 0; - this.props = props; - const { - event: { - target - } - } = props; - this.props = props; - this.listeners = new Listeners(getOwnerDocument(target)); - this.windowListeners = new Listeners(getWindow(target)); - this.handleKeyDown = this.handleKeyDown.bind(this); - this.handleCancel = this.handleCancel.bind(this); - this.attach(); - } - attach() { - this.handleStart(); - this.windowListeners.add(EventName.Resize, this.handleCancel); - this.windowListeners.add(EventName.VisibilityChange, this.handleCancel); - setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown)); - } - handleStart() { - const { - activeNode, - onStart - } = this.props; - const node = activeNode.node.current; - if (node) { - scrollIntoViewIfNeeded(node); - } - onStart(defaultCoordinates); - } - handleKeyDown(event) { - if (isKeyboardEvent(event)) { - const { - active, - context, - options - } = this.props; - const { - keyboardCodes = defaultKeyboardCodes, - coordinateGetter = defaultKeyboardCoordinateGetter, - scrollBehavior = "smooth" - } = options; - const { - code - } = event; - if (keyboardCodes.end.includes(code)) { - this.handleEnd(event); - return; - } - if (keyboardCodes.cancel.includes(code)) { - this.handleCancel(event); - return; - } - const { - collisionRect - } = context.current; - const currentCoordinates = collisionRect ? { - x: collisionRect.left, - y: collisionRect.top - } : defaultCoordinates; - if (!this.referenceCoordinates) { - this.referenceCoordinates = currentCoordinates; - } - const newCoordinates = coordinateGetter(event, { - active, - context: context.current, - currentCoordinates - }); - if (newCoordinates) { - const coordinatesDelta = subtract(newCoordinates, currentCoordinates); - const scrollDelta = { - x: 0, - y: 0 - }; - const { - scrollableAncestors - } = context.current; - for (const scrollContainer of scrollableAncestors) { - const direction = event.code; - const { - isTop, - isRight, - isLeft, - isBottom, - maxScroll, - minScroll - } = getScrollPosition(scrollContainer); - const scrollElementRect = getScrollElementRect(scrollContainer); - const clampedCoordinates = { - x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)), - y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y)) - }; - const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft; - const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop; - if (canScrollX && clampedCoordinates.x !== newCoordinates.x) { - const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x; - const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x; - if (canScrollToNewCoordinates && !coordinatesDelta.y) { - scrollContainer.scrollTo({ - left: newScrollCoordinates, - behavior: scrollBehavior - }); - return; - } - if (canScrollToNewCoordinates) { - scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates; - } else { - scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x; - } - if (scrollDelta.x) { - scrollContainer.scrollBy({ - left: -scrollDelta.x, - behavior: scrollBehavior - }); - } - break; - } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) { - const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y; - const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y; - if (canScrollToNewCoordinates && !coordinatesDelta.x) { - scrollContainer.scrollTo({ - top: newScrollCoordinates, - behavior: scrollBehavior - }); - return; - } - if (canScrollToNewCoordinates) { - scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates; - } else { - scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y; - } - if (scrollDelta.y) { - scrollContainer.scrollBy({ - top: -scrollDelta.y, - behavior: scrollBehavior - }); - } - break; - } - } - this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta)); - } - } - } - handleMove(event, coordinates) { - const { - onMove - } = this.props; - event.preventDefault(); - onMove(coordinates); - } - handleEnd(event) { - const { - onEnd - } = this.props; - event.preventDefault(); - this.detach(); - onEnd(); - } - handleCancel(event) { - const { - onCancel - } = this.props; - event.preventDefault(); - this.detach(); - onCancel(); - } - detach() { - this.listeners.removeAll(); - this.windowListeners.removeAll(); - } -}; -KeyboardSensor.activators = [{ - eventName: "onKeyDown", - handler: (event, _ref, _ref2) => { - let { - keyboardCodes = defaultKeyboardCodes, - onActivation - } = _ref; - let { - active - } = _ref2; - const { - code - } = event.nativeEvent; - if (keyboardCodes.start.includes(code)) { - const activator = active.activatorNode.current; - if (activator && event.target !== activator) { - return false; - } - event.preventDefault(); - onActivation == null ? void 0 : onActivation({ - event: event.nativeEvent - }); - return true; - } - return false; - } -}]; -function isDistanceConstraint(constraint) { - return Boolean(constraint && "distance" in constraint); -} -function isDelayConstraint(constraint) { - return Boolean(constraint && "delay" in constraint); -} -var AbstractPointerSensor = class { - constructor(props, events2, listenerTarget) { - var _getEventCoordinates; - if (listenerTarget === void 0) { - listenerTarget = getEventListenerTarget(props.event.target); - } - this.props = void 0; - this.events = void 0; - this.autoScrollEnabled = true; - this.document = void 0; - this.activated = false; - this.initialCoordinates = void 0; - this.timeoutId = null; - this.listeners = void 0; - this.documentListeners = void 0; - this.windowListeners = void 0; - this.props = props; - this.events = events2; - const { - event - } = props; - const { - target - } = event; - this.props = props; - this.events = events2; - this.document = getOwnerDocument(target); - this.documentListeners = new Listeners(this.document); - this.listeners = new Listeners(listenerTarget); - this.windowListeners = new Listeners(getWindow(target)); - this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates; - this.handleStart = this.handleStart.bind(this); - this.handleMove = this.handleMove.bind(this); - this.handleEnd = this.handleEnd.bind(this); - this.handleCancel = this.handleCancel.bind(this); - this.handleKeydown = this.handleKeydown.bind(this); - this.removeTextSelection = this.removeTextSelection.bind(this); - this.attach(); - } - attach() { - const { - events: events2, - props: { - options: { - activationConstraint, - bypassActivationConstraint - } - } - } = this; - this.listeners.add(events2.move.name, this.handleMove, { - passive: false - }); - this.listeners.add(events2.end.name, this.handleEnd); - if (events2.cancel) { - this.listeners.add(events2.cancel.name, this.handleCancel); - } - this.windowListeners.add(EventName.Resize, this.handleCancel); - this.windowListeners.add(EventName.DragStart, preventDefault); - this.windowListeners.add(EventName.VisibilityChange, this.handleCancel); - this.windowListeners.add(EventName.ContextMenu, preventDefault); - this.documentListeners.add(EventName.Keydown, this.handleKeydown); - if (activationConstraint) { - if (bypassActivationConstraint != null && bypassActivationConstraint({ - event: this.props.event, - activeNode: this.props.activeNode, - options: this.props.options - })) { - return this.handleStart(); - } - if (isDelayConstraint(activationConstraint)) { - this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay); - this.handlePending(activationConstraint); - return; - } - if (isDistanceConstraint(activationConstraint)) { - this.handlePending(activationConstraint); - return; - } - } - this.handleStart(); - } - detach() { - this.listeners.removeAll(); - this.windowListeners.removeAll(); - setTimeout(this.documentListeners.removeAll, 50); - if (this.timeoutId !== null) { - clearTimeout(this.timeoutId); - this.timeoutId = null; - } - } - handlePending(constraint, offset) { - const { - active, - onPending - } = this.props; - onPending(active, constraint, this.initialCoordinates, offset); - } - handleStart() { - const { - initialCoordinates - } = this; - const { - onStart - } = this.props; - if (initialCoordinates) { - this.activated = true; - this.documentListeners.add(EventName.Click, stopPropagation, { - capture: true - }); - this.removeTextSelection(); - this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection); - onStart(initialCoordinates); - } - } - handleMove(event) { - var _getEventCoordinates2; - const { - activated, - initialCoordinates, - props - } = this; - const { - onMove, - options: { - activationConstraint - } - } = props; - if (!initialCoordinates) { - return; - } - const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates; - const delta = subtract(initialCoordinates, coordinates); - if (!activated && activationConstraint) { - if (isDistanceConstraint(activationConstraint)) { - if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) { - return this.handleCancel(); - } - if (hasExceededDistance(delta, activationConstraint.distance)) { - return this.handleStart(); - } - } - if (isDelayConstraint(activationConstraint)) { - if (hasExceededDistance(delta, activationConstraint.tolerance)) { - return this.handleCancel(); - } - } - this.handlePending(activationConstraint, delta); - return; - } - if (event.cancelable) { - event.preventDefault(); - } - onMove(coordinates); - } - handleEnd() { - const { - onAbort, - onEnd - } = this.props; - this.detach(); - if (!this.activated) { - onAbort(this.props.active); - } - onEnd(); - } - handleCancel() { - const { - onAbort, - onCancel - } = this.props; - this.detach(); - if (!this.activated) { - onAbort(this.props.active); - } - onCancel(); - } - handleKeydown(event) { - if (event.code === KeyboardCode.Esc) { - this.handleCancel(); - } - } - removeTextSelection() { - var _this$document$getSel; - (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges(); - } -}; -var events = { - cancel: { - name: "pointercancel" - }, - move: { - name: "pointermove" - }, - end: { - name: "pointerup" - } -}; -var PointerSensor = class extends AbstractPointerSensor { - constructor(props) { - const { - event - } = props; - const listenerTarget = getOwnerDocument(event.target); - super(props, events, listenerTarget); - } -}; -PointerSensor.activators = [{ - eventName: "onPointerDown", - handler: (_ref, _ref2) => { - let { - nativeEvent: event - } = _ref; - let { - onActivation - } = _ref2; - if (!event.isPrimary || event.button !== 0) { - return false; - } - onActivation == null ? void 0 : onActivation({ - event - }); - return true; - } -}]; -var events$1 = { - move: { - name: "mousemove" - }, - end: { - name: "mouseup" - } -}; -var MouseButton; -(function(MouseButton2) { - MouseButton2[MouseButton2["RightClick"] = 2] = "RightClick"; -})(MouseButton || (MouseButton = {})); -var MouseSensor = class extends AbstractPointerSensor { - constructor(props) { - super(props, events$1, getOwnerDocument(props.event.target)); - } -}; -MouseSensor.activators = [{ - eventName: "onMouseDown", - handler: (_ref, _ref2) => { - let { - nativeEvent: event - } = _ref; - let { - onActivation - } = _ref2; - if (event.button === MouseButton.RightClick) { - return false; - } - onActivation == null ? void 0 : onActivation({ - event - }); - return true; - } -}]; -var events$2 = { - cancel: { - name: "touchcancel" - }, - move: { - name: "touchmove" - }, - end: { - name: "touchend" - } -}; -var TouchSensor = class extends AbstractPointerSensor { - constructor(props) { - super(props, events$2); - } - static setup() { - window.addEventListener(events$2.move.name, noop2, { - capture: false, - passive: false - }); - return function teardown() { - window.removeEventListener(events$2.move.name, noop2); - }; - function noop2() { - } - } -}; -TouchSensor.activators = [{ - eventName: "onTouchStart", - handler: (_ref, _ref2) => { - let { - nativeEvent: event - } = _ref; - let { - onActivation - } = _ref2; - const { - touches - } = event; - if (touches.length > 1) { - return false; - } - onActivation == null ? void 0 : onActivation({ - event - }); - return true; - } -}]; -var AutoScrollActivator; -(function(AutoScrollActivator2) { - AutoScrollActivator2[AutoScrollActivator2["Pointer"] = 0] = "Pointer"; - AutoScrollActivator2[AutoScrollActivator2["DraggableRect"] = 1] = "DraggableRect"; -})(AutoScrollActivator || (AutoScrollActivator = {})); -var TraversalOrder; -(function(TraversalOrder2) { - TraversalOrder2[TraversalOrder2["TreeOrder"] = 0] = "TreeOrder"; - TraversalOrder2[TraversalOrder2["ReversedTreeOrder"] = 1] = "ReversedTreeOrder"; -})(TraversalOrder || (TraversalOrder = {})); -function useAutoScroller(_ref) { - let { - acceleration, - activator = AutoScrollActivator.Pointer, - canScroll, - draggingRect, - enabled, - interval = 5, - order = TraversalOrder.TreeOrder, - pointerCoordinates, - scrollableAncestors, - scrollableAncestorRects, - delta, - threshold - } = _ref; - const scrollIntent = useScrollIntent({ - delta, - disabled: !enabled - }); - const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval(); - const scrollSpeed = (0, import_react2.useRef)({ - x: 0, - y: 0 - }); - const scrollDirection = (0, import_react2.useRef)({ - x: 0, - y: 0 - }); - const rect = (0, import_react2.useMemo)(() => { - switch (activator) { - case AutoScrollActivator.Pointer: - return pointerCoordinates ? { - top: pointerCoordinates.y, - bottom: pointerCoordinates.y, - left: pointerCoordinates.x, - right: pointerCoordinates.x - } : null; - case AutoScrollActivator.DraggableRect: - return draggingRect; - } - }, [activator, draggingRect, pointerCoordinates]); - const scrollContainerRef = (0, import_react2.useRef)(null); - const autoScroll = (0, import_react2.useCallback)(() => { - const scrollContainer = scrollContainerRef.current; - if (!scrollContainer) { - return; - } - const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x; - const scrollTop = scrollSpeed.current.y * scrollDirection.current.y; - scrollContainer.scrollBy(scrollLeft, scrollTop); - }, []); - const sortedScrollableAncestors = (0, import_react2.useMemo)(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]); - (0, import_react2.useEffect)( - () => { - if (!enabled || !scrollableAncestors.length || !rect) { - clearAutoScrollInterval(); - return; - } - for (const scrollContainer of sortedScrollableAncestors) { - if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) { - continue; - } - const index = scrollableAncestors.indexOf(scrollContainer); - const scrollContainerRect = scrollableAncestorRects[index]; - if (!scrollContainerRect) { - continue; - } - const { - direction, - speed - } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold); - for (const axis of ["x", "y"]) { - if (!scrollIntent[axis][direction[axis]]) { - speed[axis] = 0; - direction[axis] = 0; - } - } - if (speed.x > 0 || speed.y > 0) { - clearAutoScrollInterval(); - scrollContainerRef.current = scrollContainer; - setAutoScrollInterval(autoScroll, interval); - scrollSpeed.current = speed; - scrollDirection.current = direction; - return; - } - } - scrollSpeed.current = { - x: 0, - y: 0 - }; - scrollDirection.current = { - x: 0, - y: 0 - }; - clearAutoScrollInterval(); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [ - acceleration, - autoScroll, - canScroll, - clearAutoScrollInterval, - enabled, - interval, - // eslint-disable-next-line react-hooks/exhaustive-deps - JSON.stringify(rect), - // eslint-disable-next-line react-hooks/exhaustive-deps - JSON.stringify(scrollIntent), - setAutoScrollInterval, - scrollableAncestors, - sortedScrollableAncestors, - scrollableAncestorRects, - // eslint-disable-next-line react-hooks/exhaustive-deps - JSON.stringify(threshold) - ] - ); -} -var defaultScrollIntent = { - x: { - [Direction.Backward]: false, - [Direction.Forward]: false - }, - y: { - [Direction.Backward]: false, - [Direction.Forward]: false - } -}; -function useScrollIntent(_ref2) { - let { - delta, - disabled - } = _ref2; - const previousDelta = usePrevious(delta); - return useLazyMemo((previousIntent) => { - if (disabled || !previousDelta || !previousIntent) { - return defaultScrollIntent; - } - const direction = { - x: Math.sign(delta.x - previousDelta.x), - y: Math.sign(delta.y - previousDelta.y) - }; - return { - x: { - [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1, - [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1 - }, - y: { - [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1, - [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1 - } - }; - }, [disabled, delta, previousDelta]); -} -function useCachedNode(draggableNodes, id) { - const draggableNode = id != null ? draggableNodes.get(id) : void 0; - const node = draggableNode ? draggableNode.node.current : null; - return useLazyMemo((cachedNode) => { - var _ref; - if (id == null) { - return null; - } - return (_ref = node != null ? node : cachedNode) != null ? _ref : null; - }, [node, id]); -} -function useCombineActivators(sensors, getSyntheticHandler) { - return (0, import_react2.useMemo)(() => sensors.reduce((accumulator, sensor) => { - const { - sensor: Sensor - } = sensor; - const sensorActivators = Sensor.activators.map((activator) => ({ - eventName: activator.eventName, - handler: getSyntheticHandler(activator.handler, sensor) - })); - return [...accumulator, ...sensorActivators]; - }, []), [sensors, getSyntheticHandler]); -} -var MeasuringStrategy; -(function(MeasuringStrategy2) { - MeasuringStrategy2[MeasuringStrategy2["Always"] = 0] = "Always"; - MeasuringStrategy2[MeasuringStrategy2["BeforeDragging"] = 1] = "BeforeDragging"; - MeasuringStrategy2[MeasuringStrategy2["WhileDragging"] = 2] = "WhileDragging"; -})(MeasuringStrategy || (MeasuringStrategy = {})); -var MeasuringFrequency; -(function(MeasuringFrequency2) { - MeasuringFrequency2["Optimized"] = "optimized"; -})(MeasuringFrequency || (MeasuringFrequency = {})); -var defaultValue = /* @__PURE__ */ new Map(); -function useDroppableMeasuring(containers, _ref) { - let { - dragging, - dependencies, - config - } = _ref; - const [queue, setQueue] = (0, import_react2.useState)(null); - const { - frequency, - measure, - strategy - } = config; - const containersRef = (0, import_react2.useRef)(containers); - const disabled = isDisabled(); - const disabledRef = useLatestValue(disabled); - const measureDroppableContainers = (0, import_react2.useCallback)(function(ids) { - if (ids === void 0) { - ids = []; - } - if (disabledRef.current) { - return; - } - setQueue((value) => { - if (value === null) { - return ids; - } - return value.concat(ids.filter((id) => !value.includes(id))); - }); - }, [disabledRef]); - const timeoutId = (0, import_react2.useRef)(null); - const droppableRects = useLazyMemo((previousValue) => { - if (disabled && !dragging) { - return defaultValue; - } - if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) { - const map = /* @__PURE__ */ new Map(); - for (let container of containers) { - if (!container) { - continue; - } - if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) { - map.set(container.id, container.rect.current); - continue; - } - const node = container.node.current; - const rect = node ? new Rect(measure(node), node) : null; - container.rect.current = rect; - if (rect) { - map.set(container.id, rect); - } - } - return map; - } - return previousValue; - }, [containers, queue, dragging, disabled, measure]); - (0, import_react2.useEffect)(() => { - containersRef.current = containers; - }, [containers]); - (0, import_react2.useEffect)( - () => { - if (disabled) { - return; - } - measureDroppableContainers(); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [dragging, disabled] - ); - (0, import_react2.useEffect)( - () => { - if (queue && queue.length > 0) { - setQueue(null); - } - }, - //eslint-disable-next-line react-hooks/exhaustive-deps - [JSON.stringify(queue)] - ); - (0, import_react2.useEffect)( - () => { - if (disabled || typeof frequency !== "number" || timeoutId.current !== null) { - return; - } - timeoutId.current = setTimeout(() => { - measureDroppableContainers(); - timeoutId.current = null; - }, frequency); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [frequency, disabled, measureDroppableContainers, ...dependencies] - ); - return { - droppableRects, - measureDroppableContainers, - measuringScheduled: queue != null - }; - function isDisabled() { - switch (strategy) { - case MeasuringStrategy.Always: - return false; - case MeasuringStrategy.BeforeDragging: - return dragging; - default: - return !dragging; - } - } -} -function useInitialValue(value, computeFn) { - return useLazyMemo((previousValue) => { - if (!value) { - return null; - } - if (previousValue) { - return previousValue; - } - return typeof computeFn === "function" ? computeFn(value) : value; - }, [computeFn, value]); -} -function useInitialRect(node, measure) { - return useInitialValue(node, measure); -} -function useMutationObserver(_ref) { - let { - callback, - disabled - } = _ref; - const handleMutations = useEvent(callback); - const mutationObserver = (0, import_react2.useMemo)(() => { - if (disabled || typeof window === "undefined" || typeof window.MutationObserver === "undefined") { - return void 0; - } - const { - MutationObserver - } = window; - return new MutationObserver(handleMutations); - }, [handleMutations, disabled]); - (0, import_react2.useEffect)(() => { - return () => mutationObserver == null ? void 0 : mutationObserver.disconnect(); - }, [mutationObserver]); - return mutationObserver; -} -function useResizeObserver(_ref) { - let { - callback, - disabled - } = _ref; - const handleResize = useEvent(callback); - const resizeObserver = (0, import_react2.useMemo)( - () => { - if (disabled || typeof window === "undefined" || typeof window.ResizeObserver === "undefined") { - return void 0; - } - const { - ResizeObserver - } = window; - return new ResizeObserver(handleResize); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [disabled] - ); - (0, import_react2.useEffect)(() => { - return () => resizeObserver == null ? void 0 : resizeObserver.disconnect(); - }, [resizeObserver]); - return resizeObserver; -} -function defaultMeasure(element) { - return new Rect(getClientRect(element), element); -} -function useRect(element, measure, fallbackRect) { - if (measure === void 0) { - measure = defaultMeasure; - } - const [rect, setRect] = (0, import_react2.useState)(null); - function measureRect() { - setRect((currentRect) => { - if (!element) { - return null; - } - if (element.isConnected === false) { - var _ref; - return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null; - } - const newRect = measure(element); - if (JSON.stringify(currentRect) === JSON.stringify(newRect)) { - return currentRect; - } - return newRect; - }); - } - const mutationObserver = useMutationObserver({ - callback(records) { - if (!element) { - return; - } - for (const record of records) { - const { - type, - target - } = record; - if (type === "childList" && target instanceof HTMLElement && target.contains(element)) { - measureRect(); - break; - } - } - } - }); - const resizeObserver = useResizeObserver({ - callback: measureRect - }); - useIsomorphicLayoutEffect(() => { - measureRect(); - if (element) { - resizeObserver == null ? void 0 : resizeObserver.observe(element); - mutationObserver == null ? void 0 : mutationObserver.observe(document.body, { - childList: true, - subtree: true - }); - } else { - resizeObserver == null ? void 0 : resizeObserver.disconnect(); - mutationObserver == null ? void 0 : mutationObserver.disconnect(); - } - }, [element]); - return rect; -} -function useRectDelta(rect) { - const initialRect = useInitialValue(rect); - return getRectDelta(rect, initialRect); -} -var defaultValue$1 = []; -function useScrollableAncestors(node) { - const previousNode = (0, import_react2.useRef)(node); - const ancestors = useLazyMemo((previousValue) => { - if (!node) { - return defaultValue$1; - } - if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) { - return previousValue; - } - return getScrollableAncestors(node); - }, [node]); - (0, import_react2.useEffect)(() => { - previousNode.current = node; - }, [node]); - return ancestors; -} -function useScrollOffsets(elements) { - const [scrollCoordinates, setScrollCoordinates] = (0, import_react2.useState)(null); - const prevElements = (0, import_react2.useRef)(elements); - const handleScroll = (0, import_react2.useCallback)((event) => { - const scrollingElement = getScrollableElement(event.target); - if (!scrollingElement) { - return; - } - setScrollCoordinates((scrollCoordinates2) => { - if (!scrollCoordinates2) { - return null; - } - scrollCoordinates2.set(scrollingElement, getScrollCoordinates(scrollingElement)); - return new Map(scrollCoordinates2); - }); - }, []); - (0, import_react2.useEffect)(() => { - const previousElements = prevElements.current; - if (elements !== previousElements) { - cleanup(previousElements); - const entries = elements.map((element) => { - const scrollableElement = getScrollableElement(element); - if (scrollableElement) { - scrollableElement.addEventListener("scroll", handleScroll, { - passive: true - }); - return [scrollableElement, getScrollCoordinates(scrollableElement)]; - } - return null; - }).filter((entry) => entry != null); - setScrollCoordinates(entries.length ? new Map(entries) : null); - prevElements.current = elements; - } - return () => { - cleanup(elements); - cleanup(previousElements); - }; - function cleanup(elements2) { - elements2.forEach((element) => { - const scrollableElement = getScrollableElement(element); - scrollableElement == null ? void 0 : scrollableElement.removeEventListener("scroll", handleScroll); - }); - } - }, [handleScroll, elements]); - return (0, import_react2.useMemo)(() => { - if (elements.length) { - return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements); - } - return defaultCoordinates; - }, [elements, scrollCoordinates]); -} -function useScrollOffsetsDelta(scrollOffsets, dependencies) { - if (dependencies === void 0) { - dependencies = []; - } - const initialScrollOffsets = (0, import_react2.useRef)(null); - (0, import_react2.useEffect)( - () => { - initialScrollOffsets.current = null; - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - dependencies - ); - (0, import_react2.useEffect)(() => { - const hasScrollOffsets = scrollOffsets !== defaultCoordinates; - if (hasScrollOffsets && !initialScrollOffsets.current) { - initialScrollOffsets.current = scrollOffsets; - } - if (!hasScrollOffsets && initialScrollOffsets.current) { - initialScrollOffsets.current = null; - } - }, [scrollOffsets]); - return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates; -} -function useSensorSetup(sensors) { - (0, import_react2.useEffect)( - () => { - if (!canUseDOM) { - return; - } - const teardownFns = sensors.map((_ref) => { - let { - sensor - } = _ref; - return sensor.setup == null ? void 0 : sensor.setup(); - }); - return () => { - for (const teardown of teardownFns) { - teardown == null ? void 0 : teardown(); - } - }; - }, - // TO-DO: Sensors length could theoretically change which would not be a valid dependency - // eslint-disable-next-line react-hooks/exhaustive-deps - sensors.map((_ref2) => { - let { - sensor - } = _ref2; - return sensor; - }) - ); -} -function useSyntheticListeners(listeners, id) { - return (0, import_react2.useMemo)(() => { - return listeners.reduce((acc, _ref) => { - let { - eventName, - handler - } = _ref; - acc[eventName] = (event) => { - handler(event, id); - }; - return acc; - }, {}); - }, [listeners, id]); -} -function useWindowRect(element) { - return (0, import_react2.useMemo)(() => element ? getWindowClientRect(element) : null, [element]); -} -var defaultValue$2 = []; -function useRects(elements, measure) { - if (measure === void 0) { - measure = getClientRect; - } - const [firstElement] = elements; - const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null); - const [rects, setRects] = (0, import_react2.useState)(defaultValue$2); - function measureRects() { - setRects(() => { - if (!elements.length) { - return defaultValue$2; - } - return elements.map((element) => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element)); - }); - } - const resizeObserver = useResizeObserver({ - callback: measureRects - }); - useIsomorphicLayoutEffect(() => { - resizeObserver == null ? void 0 : resizeObserver.disconnect(); - measureRects(); - elements.forEach((element) => resizeObserver == null ? void 0 : resizeObserver.observe(element)); - }, [elements]); - return rects; -} -function getMeasurableNode(node) { - if (!node) { - return null; - } - if (node.children.length > 1) { - return node; - } - const firstChild = node.children[0]; - return isHTMLElement(firstChild) ? firstChild : node; -} -function useDragOverlayMeasuring(_ref) { - let { - measure - } = _ref; - const [rect, setRect] = (0, import_react2.useState)(null); - const handleResize = (0, import_react2.useCallback)((entries) => { - for (const { - target - } of entries) { - if (isHTMLElement(target)) { - setRect((rect2) => { - const newRect = measure(target); - return rect2 ? { - ...rect2, - width: newRect.width, - height: newRect.height - } : newRect; - }); - break; - } - } - }, [measure]); - const resizeObserver = useResizeObserver({ - callback: handleResize - }); - const handleNodeChange = (0, import_react2.useCallback)((element) => { - const node = getMeasurableNode(element); - resizeObserver == null ? void 0 : resizeObserver.disconnect(); - if (node) { - resizeObserver == null ? void 0 : resizeObserver.observe(node); - } - setRect(node ? measure(node) : null); - }, [measure, resizeObserver]); - const [nodeRef, setRef] = useNodeRef(handleNodeChange); - return (0, import_react2.useMemo)(() => ({ - nodeRef, - rect, - setRef - }), [rect, nodeRef, setRef]); -} -var defaultSensors = [{ - sensor: PointerSensor, - options: {} -}, { - sensor: KeyboardSensor, - options: {} -}]; -var defaultData = { - current: {} -}; -var defaultMeasuringConfiguration = { - draggable: { - measure: getTransformAgnosticClientRect - }, - droppable: { - measure: getTransformAgnosticClientRect, - strategy: MeasuringStrategy.WhileDragging, - frequency: MeasuringFrequency.Optimized - }, - dragOverlay: { - measure: getClientRect - } -}; -var DroppableContainersMap = class extends Map { - get(id) { - var _super$get; - return id != null ? (_super$get = super.get(id)) != null ? _super$get : void 0 : void 0; - } - toArray() { - return Array.from(this.values()); - } - getEnabled() { - return this.toArray().filter((_ref) => { - let { - disabled - } = _ref; - return !disabled; - }); - } - getNodeFor(id) { - var _this$get$node$curren, _this$get; - return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : void 0; - } -}; -var defaultPublicContext = { - activatorEvent: null, - active: null, - activeNode: null, - activeNodeRect: null, - collisions: null, - containerNodeRect: null, - draggableNodes: /* @__PURE__ */ new Map(), - droppableRects: /* @__PURE__ */ new Map(), - droppableContainers: new DroppableContainersMap(), - over: null, - dragOverlay: { - nodeRef: { - current: null - }, - rect: null, - setRef: noop - }, - scrollableAncestors: [], - scrollableAncestorRects: [], - measuringConfiguration: defaultMeasuringConfiguration, - measureDroppableContainers: noop, - windowRect: null, - measuringScheduled: false -}; -var defaultInternalContext = { - activatorEvent: null, - activators: [], - active: null, - activeNodeRect: null, - ariaDescribedById: { - draggable: "" - }, - dispatch: noop, - draggableNodes: /* @__PURE__ */ new Map(), - over: null, - measureDroppableContainers: noop -}; -var InternalContext = (0, import_react2.createContext)(defaultInternalContext); -var PublicContext = (0, import_react2.createContext)(defaultPublicContext); -function getInitialState() { - return { - draggable: { - active: null, - initialCoordinates: { - x: 0, - y: 0 - }, - nodes: /* @__PURE__ */ new Map(), - translate: { - x: 0, - y: 0 - } - }, - droppable: { - containers: new DroppableContainersMap() - } - }; -} -function reducer(state, action) { - switch (action.type) { - case Action.DragStart: - return { - ...state, - draggable: { - ...state.draggable, - initialCoordinates: action.initialCoordinates, - active: action.active - } - }; - case Action.DragMove: - if (state.draggable.active == null) { - return state; - } - return { - ...state, - draggable: { - ...state.draggable, - translate: { - x: action.coordinates.x - state.draggable.initialCoordinates.x, - y: action.coordinates.y - state.draggable.initialCoordinates.y - } - } - }; - case Action.DragEnd: - case Action.DragCancel: - return { - ...state, - draggable: { - ...state.draggable, - active: null, - initialCoordinates: { - x: 0, - y: 0 - }, - translate: { - x: 0, - y: 0 - } - } - }; - case Action.RegisterDroppable: { - const { - element - } = action; - const { - id - } = element; - const containers = new DroppableContainersMap(state.droppable.containers); - containers.set(id, element); - return { - ...state, - droppable: { - ...state.droppable, - containers - } - }; - } - case Action.SetDroppableDisabled: { - const { - id, - key: key2, - disabled - } = action; - const element = state.droppable.containers.get(id); - if (!element || key2 !== element.key) { - return state; - } - const containers = new DroppableContainersMap(state.droppable.containers); - containers.set(id, { - ...element, - disabled - }); - return { - ...state, - droppable: { - ...state.droppable, - containers - } - }; - } - case Action.UnregisterDroppable: { - const { - id, - key: key2 - } = action; - const element = state.droppable.containers.get(id); - if (!element || key2 !== element.key) { - return state; - } - const containers = new DroppableContainersMap(state.droppable.containers); - containers.delete(id); - return { - ...state, - droppable: { - ...state.droppable, - containers - } - }; - } - default: { - return state; - } - } -} -function RestoreFocus(_ref) { - let { - disabled - } = _ref; - const { - active, - activatorEvent, - draggableNodes - } = (0, import_react2.useContext)(InternalContext); - const previousActivatorEvent = usePrevious(activatorEvent); - const previousActiveId = usePrevious(active == null ? void 0 : active.id); - (0, import_react2.useEffect)(() => { - if (disabled) { - return; - } - if (!activatorEvent && previousActivatorEvent && previousActiveId != null) { - if (!isKeyboardEvent(previousActivatorEvent)) { - return; - } - if (document.activeElement === previousActivatorEvent.target) { - return; - } - const draggableNode = draggableNodes.get(previousActiveId); - if (!draggableNode) { - return; - } - const { - activatorNode, - node - } = draggableNode; - if (!activatorNode.current && !node.current) { - return; - } - requestAnimationFrame(() => { - for (const element of [activatorNode.current, node.current]) { - if (!element) { - continue; - } - const focusableNode = findFirstFocusableNode(element); - if (focusableNode) { - focusableNode.focus(); - break; - } - } - }); - } - }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]); - return null; -} -function applyModifiers(modifiers, _ref) { - let { - transform, - ...args - } = _ref; - return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => { - return modifier({ - transform: accumulator, - ...args - }); - }, transform) : transform; -} -function useMeasuringConfiguration(config) { - return (0, import_react2.useMemo)( - () => ({ - draggable: { - ...defaultMeasuringConfiguration.draggable, - ...config == null ? void 0 : config.draggable - }, - droppable: { - ...defaultMeasuringConfiguration.droppable, - ...config == null ? void 0 : config.droppable - }, - dragOverlay: { - ...defaultMeasuringConfiguration.dragOverlay, - ...config == null ? void 0 : config.dragOverlay - } - }), - // eslint-disable-next-line react-hooks/exhaustive-deps - [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay] - ); -} -function useLayoutShiftScrollCompensation(_ref) { - let { - activeNode, - measure, - initialRect, - config = true - } = _ref; - const initialized = (0, import_react2.useRef)(false); - const { - x, - y - } = typeof config === "boolean" ? { - x: config, - y: config - } : config; - useIsomorphicLayoutEffect(() => { - const disabled = !x && !y; - if (disabled || !activeNode) { - initialized.current = false; - return; - } - if (initialized.current || !initialRect) { - return; - } - const node = activeNode == null ? void 0 : activeNode.node.current; - if (!node || node.isConnected === false) { - return; - } - const rect = measure(node); - const rectDelta = getRectDelta(rect, initialRect); - if (!x) { - rectDelta.x = 0; - } - if (!y) { - rectDelta.y = 0; - } - initialized.current = true; - if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) { - const firstScrollableAncestor = getFirstScrollableAncestor(node); - if (firstScrollableAncestor) { - firstScrollableAncestor.scrollBy({ - top: rectDelta.y, - left: rectDelta.x - }); - } - } - }, [activeNode, x, y, initialRect, measure]); -} -var ActiveDraggableContext = (0, import_react2.createContext)({ - ...defaultCoordinates, - scaleX: 1, - scaleY: 1 -}); -var Status; -(function(Status2) { - Status2[Status2["Uninitialized"] = 0] = "Uninitialized"; - Status2[Status2["Initializing"] = 1] = "Initializing"; - Status2[Status2["Initialized"] = 2] = "Initialized"; -})(Status || (Status = {})); -var DndContext = (0, import_react2.memo)(function DndContext2(_ref) { - var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect; - let { - id, - accessibility, - autoScroll = true, - children, - sensors = defaultSensors, - collisionDetection = rectIntersection, - measuring, - modifiers, - ...props - } = _ref; - const store = (0, import_react2.useReducer)(reducer, void 0, getInitialState); - const [state, dispatch] = store; - const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider(); - const [status, setStatus] = (0, import_react2.useState)(Status.Uninitialized); - const isInitialized = status === Status.Initialized; - const { - draggable: { - active: activeId, - nodes: draggableNodes, - translate - }, - droppable: { - containers: droppableContainers - } - } = state; - const node = activeId != null ? draggableNodes.get(activeId) : null; - const activeRects = (0, import_react2.useRef)({ - initial: null, - translated: null - }); - const active = (0, import_react2.useMemo)(() => { - var _node$data; - return activeId != null ? { - id: activeId, - // It's possible for the active node to unmount while dragging - data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData, - rect: activeRects - } : null; - }, [activeId, node]); - const activeRef = (0, import_react2.useRef)(null); - const [activeSensor, setActiveSensor] = (0, import_react2.useState)(null); - const [activatorEvent, setActivatorEvent] = (0, import_react2.useState)(null); - const latestProps = useLatestValue(props, Object.values(props)); - const draggableDescribedById = useUniqueId("DndDescribedBy", id); - const enabledDroppableContainers = (0, import_react2.useMemo)(() => droppableContainers.getEnabled(), [droppableContainers]); - const measuringConfiguration = useMeasuringConfiguration(measuring); - const { - droppableRects, - measureDroppableContainers, - measuringScheduled - } = useDroppableMeasuring(enabledDroppableContainers, { - dragging: isInitialized, - dependencies: [translate.x, translate.y], - config: measuringConfiguration.droppable - }); - const activeNode = useCachedNode(draggableNodes, activeId); - const activationCoordinates = (0, import_react2.useMemo)(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]); - const autoScrollOptions = getAutoScrollerOptions(); - const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure); - useLayoutShiftScrollCompensation({ - activeNode: activeId != null ? draggableNodes.get(activeId) : null, - config: autoScrollOptions.layoutShiftCompensation, - initialRect: initialActiveNodeRect, - measure: measuringConfiguration.draggable.measure - }); - const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect); - const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null); - const sensorContext = (0, import_react2.useRef)({ - activatorEvent: null, - active: null, - activeNode, - collisionRect: null, - collisions: null, - droppableRects, - draggableNodes, - draggingNode: null, - draggingNodeRect: null, - droppableContainers, - over: null, - scrollableAncestors: [], - scrollAdjustedTranslate: null - }); - const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id); - const dragOverlay = useDragOverlayMeasuring({ - measure: measuringConfiguration.dragOverlay.measure - }); - const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode; - const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null; - const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); - const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); - const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); - const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null); - const scrollableAncestorRects = useRects(scrollableAncestors); - const modifiedTranslate = applyModifiers(modifiers, { - transform: { - x: translate.x - nodeRectDelta.x, - y: translate.y - nodeRectDelta.y, - scaleX: 1, - scaleY: 1 - }, - activatorEvent, - active, - activeNodeRect, - containerNodeRect, - draggingNodeRect, - over: sensorContext.current.over, - overlayNodeRect: dragOverlay.rect, - scrollableAncestors, - scrollableAncestorRects, - windowRect - }); - const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null; - const scrollOffsets = useScrollOffsets(scrollableAncestors); - const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); - const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]); - const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment); - const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null; - const collisions = active && collisionRect ? collisionDetection({ - active, - collisionRect, - droppableRects, - droppableContainers: enabledDroppableContainers, - pointerCoordinates - }) : null; - const overId = getFirstCollision(collisions, "id"); - const [over, setOver] = (0, import_react2.useState)(null); - const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta); - const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect); - const activeSensorRef = (0, import_react2.useRef)(null); - const instantiateSensor = (0, import_react2.useCallback)( - (event, _ref2) => { - let { - sensor: Sensor, - options - } = _ref2; - if (activeRef.current == null) { - return; - } - const activeNode2 = draggableNodes.get(activeRef.current); - if (!activeNode2) { - return; - } - const activatorEvent2 = event.nativeEvent; - const sensorInstance = new Sensor({ - active: activeRef.current, - activeNode: activeNode2, - event: activatorEvent2, - options, - // Sensors need to be instantiated with refs for arguments that change over time - // otherwise they are frozen in time with the stale arguments - context: sensorContext, - onAbort(id2) { - const draggableNode = draggableNodes.get(id2); - if (!draggableNode) { - return; - } - const { - onDragAbort - } = latestProps.current; - const event2 = { - id: id2 - }; - onDragAbort == null ? void 0 : onDragAbort(event2); - dispatchMonitorEvent({ - type: "onDragAbort", - event: event2 - }); - }, - onPending(id2, constraint, initialCoordinates, offset) { - const draggableNode = draggableNodes.get(id2); - if (!draggableNode) { - return; - } - const { - onDragPending - } = latestProps.current; - const event2 = { - id: id2, - constraint, - initialCoordinates, - offset - }; - onDragPending == null ? void 0 : onDragPending(event2); - dispatchMonitorEvent({ - type: "onDragPending", - event: event2 - }); - }, - onStart(initialCoordinates) { - const id2 = activeRef.current; - if (id2 == null) { - return; - } - const draggableNode = draggableNodes.get(id2); - if (!draggableNode) { - return; - } - const { - onDragStart - } = latestProps.current; - const event2 = { - activatorEvent: activatorEvent2, - active: { - id: id2, - data: draggableNode.data, - rect: activeRects - } - }; - (0, import_react_dom.unstable_batchedUpdates)(() => { - onDragStart == null ? void 0 : onDragStart(event2); - setStatus(Status.Initializing); - dispatch({ - type: Action.DragStart, - initialCoordinates, - active: id2 - }); - dispatchMonitorEvent({ - type: "onDragStart", - event: event2 - }); - setActiveSensor(activeSensorRef.current); - setActivatorEvent(activatorEvent2); - }); - }, - onMove(coordinates) { - dispatch({ - type: Action.DragMove, - coordinates - }); - }, - onEnd: createHandler(Action.DragEnd), - onCancel: createHandler(Action.DragCancel) - }); - activeSensorRef.current = sensorInstance; - function createHandler(type) { - return async function handler() { - const { - active: active2, - collisions: collisions2, - over: over2, - scrollAdjustedTranslate: scrollAdjustedTranslate2 - } = sensorContext.current; - let event2 = null; - if (active2 && scrollAdjustedTranslate2) { - const { - cancelDrop - } = latestProps.current; - event2 = { - activatorEvent: activatorEvent2, - active: active2, - collisions: collisions2, - delta: scrollAdjustedTranslate2, - over: over2 - }; - if (type === Action.DragEnd && typeof cancelDrop === "function") { - const shouldCancel = await Promise.resolve(cancelDrop(event2)); - if (shouldCancel) { - type = Action.DragCancel; - } - } - } - activeRef.current = null; - (0, import_react_dom.unstable_batchedUpdates)(() => { - dispatch({ - type - }); - setStatus(Status.Uninitialized); - setOver(null); - setActiveSensor(null); - setActivatorEvent(null); - activeSensorRef.current = null; - const eventName = type === Action.DragEnd ? "onDragEnd" : "onDragCancel"; - if (event2) { - const handler2 = latestProps.current[eventName]; - handler2 == null ? void 0 : handler2(event2); - dispatchMonitorEvent({ - type: eventName, - event: event2 - }); - } - }); - }; - } - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [draggableNodes] - ); - const bindActivatorToSensorInstantiator = (0, import_react2.useCallback)((handler, sensor) => { - return (event, active2) => { - const nativeEvent = event.nativeEvent; - const activeDraggableNode = draggableNodes.get(active2); - if ( - // Another sensor is already instantiating - activeRef.current !== null || // No active draggable - !activeDraggableNode || // Event has already been captured - nativeEvent.dndKit || nativeEvent.defaultPrevented - ) { - return; - } - const activationContext = { - active: activeDraggableNode - }; - const shouldActivate = handler(event, sensor.options, activationContext); - if (shouldActivate === true) { - nativeEvent.dndKit = { - capturedBy: sensor.sensor - }; - activeRef.current = active2; - instantiateSensor(event, sensor); - } - }; - }, [draggableNodes, instantiateSensor]); - const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator); - useSensorSetup(sensors); - useIsomorphicLayoutEffect(() => { - if (activeNodeRect && status === Status.Initializing) { - setStatus(Status.Initialized); - } - }, [activeNodeRect, status]); - (0, import_react2.useEffect)( - () => { - const { - onDragMove - } = latestProps.current; - const { - active: active2, - activatorEvent: activatorEvent2, - collisions: collisions2, - over: over2 - } = sensorContext.current; - if (!active2 || !activatorEvent2) { - return; - } - const event = { - active: active2, - activatorEvent: activatorEvent2, - collisions: collisions2, - delta: { - x: scrollAdjustedTranslate.x, - y: scrollAdjustedTranslate.y - }, - over: over2 - }; - (0, import_react_dom.unstable_batchedUpdates)(() => { - onDragMove == null ? void 0 : onDragMove(event); - dispatchMonitorEvent({ - type: "onDragMove", - event - }); - }); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y] - ); - (0, import_react2.useEffect)( - () => { - const { - active: active2, - activatorEvent: activatorEvent2, - collisions: collisions2, - droppableContainers: droppableContainers2, - scrollAdjustedTranslate: scrollAdjustedTranslate2 - } = sensorContext.current; - if (!active2 || activeRef.current == null || !activatorEvent2 || !scrollAdjustedTranslate2) { - return; - } - const { - onDragOver - } = latestProps.current; - const overContainer = droppableContainers2.get(overId); - const over2 = overContainer && overContainer.rect.current ? { - id: overContainer.id, - rect: overContainer.rect.current, - data: overContainer.data, - disabled: overContainer.disabled - } : null; - const event = { - active: active2, - activatorEvent: activatorEvent2, - collisions: collisions2, - delta: { - x: scrollAdjustedTranslate2.x, - y: scrollAdjustedTranslate2.y - }, - over: over2 - }; - (0, import_react_dom.unstable_batchedUpdates)(() => { - setOver(over2); - onDragOver == null ? void 0 : onDragOver(event); - dispatchMonitorEvent({ - type: "onDragOver", - event - }); - }); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [overId] - ); - useIsomorphicLayoutEffect(() => { - sensorContext.current = { - activatorEvent, - active, - activeNode, - collisionRect, - collisions, - droppableRects, - draggableNodes, - draggingNode, - draggingNodeRect, - droppableContainers, - over, - scrollableAncestors, - scrollAdjustedTranslate - }; - activeRects.current = { - initial: draggingNodeRect, - translated: collisionRect - }; - }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]); - useAutoScroller({ - ...autoScrollOptions, - delta: translate, - draggingRect: collisionRect, - pointerCoordinates, - scrollableAncestors, - scrollableAncestorRects - }); - const publicContext = (0, import_react2.useMemo)(() => { - const context = { - active, - activeNode, - activeNodeRect, - activatorEvent, - collisions, - containerNodeRect, - dragOverlay, - draggableNodes, - droppableContainers, - droppableRects, - over, - measureDroppableContainers, - scrollableAncestors, - scrollableAncestorRects, - measuringConfiguration, - measuringScheduled, - windowRect - }; - return context; - }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]); - const internalContext = (0, import_react2.useMemo)(() => { - const context = { - activatorEvent, - activators, - active, - activeNodeRect, - ariaDescribedById: { - draggable: draggableDescribedById - }, - dispatch, - draggableNodes, - over, - measureDroppableContainers - }; - return context; - }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]); - return import_react2.default.createElement(DndMonitorContext.Provider, { - value: registerMonitorListener - }, import_react2.default.createElement(InternalContext.Provider, { - value: internalContext - }, import_react2.default.createElement(PublicContext.Provider, { - value: publicContext - }, import_react2.default.createElement(ActiveDraggableContext.Provider, { - value: transform - }, children)), import_react2.default.createElement(RestoreFocus, { - disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false - })), import_react2.default.createElement(Accessibility, { - ...accessibility, - hiddenTextDescribedById: draggableDescribedById - })); - function getAutoScrollerOptions() { - const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false; - const autoScrollGloballyDisabled = typeof autoScroll === "object" ? autoScroll.enabled === false : autoScroll === false; - const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled; - if (typeof autoScroll === "object") { - return { - ...autoScroll, - enabled - }; - } - return { - enabled - }; - } -}); -var NullContext = (0, import_react2.createContext)(null); -var defaultRole = "button"; -var ID_PREFIX = "Draggable"; -function useDraggable(_ref) { - let { - id, - data, - disabled = false, - attributes - } = _ref; - const key2 = useUniqueId(ID_PREFIX); - const { - activators, - activatorEvent, - active, - activeNodeRect, - ariaDescribedById, - draggableNodes, - over - } = (0, import_react2.useContext)(InternalContext); - const { - role = defaultRole, - roleDescription = "draggable", - tabIndex = 0 - } = attributes != null ? attributes : {}; - const isDragging = (active == null ? void 0 : active.id) === id; - const transform = (0, import_react2.useContext)(isDragging ? ActiveDraggableContext : NullContext); - const [node, setNodeRef] = useNodeRef(); - const [activatorNode, setActivatorNodeRef] = useNodeRef(); - const listeners = useSyntheticListeners(activators, id); - const dataRef = useLatestValue(data); - useIsomorphicLayoutEffect( - () => { - draggableNodes.set(id, { - id, - key: key2, - node, - activatorNode, - data: dataRef - }); - return () => { - const node2 = draggableNodes.get(id); - if (node2 && node2.key === key2) { - draggableNodes.delete(id); - } - }; - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [draggableNodes, id] - ); - const memoizedAttributes = (0, import_react2.useMemo)(() => ({ - role, - tabIndex, - "aria-disabled": disabled, - "aria-pressed": isDragging && role === defaultRole ? true : void 0, - "aria-roledescription": roleDescription, - "aria-describedby": ariaDescribedById.draggable - }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]); - return { - active, - activatorEvent, - activeNodeRect, - attributes: memoizedAttributes, - isDragging, - listeners: disabled ? void 0 : listeners, - node, - over, - setNodeRef, - setActivatorNodeRef, - transform - }; -} -function useDndContext() { - return (0, import_react2.useContext)(PublicContext); -} -var ID_PREFIX$1 = "Droppable"; -var defaultResizeObserverConfig = { - timeout: 25 -}; -function useDroppable(_ref) { - let { - data, - disabled = false, - id, - resizeObserverConfig - } = _ref; - const key2 = useUniqueId(ID_PREFIX$1); - const { - active, - dispatch, - over, - measureDroppableContainers - } = (0, import_react2.useContext)(InternalContext); - const previous = (0, import_react2.useRef)({ - disabled - }); - const resizeObserverConnected = (0, import_react2.useRef)(false); - const rect = (0, import_react2.useRef)(null); - const callbackId = (0, import_react2.useRef)(null); - const { - disabled: resizeObserverDisabled, - updateMeasurementsFor, - timeout: resizeObserverTimeout - } = { - ...defaultResizeObserverConfig, - ...resizeObserverConfig - }; - const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id); - const handleResize = (0, import_react2.useCallback)( - () => { - if (!resizeObserverConnected.current) { - resizeObserverConnected.current = true; - return; - } - if (callbackId.current != null) { - clearTimeout(callbackId.current); - } - callbackId.current = setTimeout(() => { - measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]); - callbackId.current = null; - }, resizeObserverTimeout); - }, - //eslint-disable-next-line react-hooks/exhaustive-deps - [resizeObserverTimeout] - ); - const resizeObserver = useResizeObserver({ - callback: handleResize, - disabled: resizeObserverDisabled || !active - }); - const handleNodeChange = (0, import_react2.useCallback)((newElement, previousElement) => { - if (!resizeObserver) { - return; - } - if (previousElement) { - resizeObserver.unobserve(previousElement); - resizeObserverConnected.current = false; - } - if (newElement) { - resizeObserver.observe(newElement); - } - }, [resizeObserver]); - const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange); - const dataRef = useLatestValue(data); - (0, import_react2.useEffect)(() => { - if (!resizeObserver || !nodeRef.current) { - return; - } - resizeObserver.disconnect(); - resizeObserverConnected.current = false; - resizeObserver.observe(nodeRef.current); - }, [nodeRef, resizeObserver]); - (0, import_react2.useEffect)( - () => { - dispatch({ - type: Action.RegisterDroppable, - element: { - id, - key: key2, - disabled, - node: nodeRef, - rect, - data: dataRef - } - }); - return () => dispatch({ - type: Action.UnregisterDroppable, - key: key2, - id - }); - }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [id] - ); - (0, import_react2.useEffect)(() => { - if (disabled !== previous.current.disabled) { - dispatch({ - type: Action.SetDroppableDisabled, - id, - key: key2, - disabled - }); - previous.current.disabled = disabled; - } - }, [id, key2, disabled, dispatch]); - return { - active, - rect, - isOver: (over == null ? void 0 : over.id) === id, - node: nodeRef, - over, - setNodeRef - }; -} -function AnimationManager(_ref) { - let { - animation, - children - } = _ref; - const [clonedChildren, setClonedChildren] = (0, import_react2.useState)(null); - const [element, setElement] = (0, import_react2.useState)(null); - const previousChildren = usePrevious(children); - if (!children && !clonedChildren && previousChildren) { - setClonedChildren(previousChildren); - } - useIsomorphicLayoutEffect(() => { - if (!element) { - return; - } - const key2 = clonedChildren == null ? void 0 : clonedChildren.key; - const id = clonedChildren == null ? void 0 : clonedChildren.props.id; - if (key2 == null || id == null) { - setClonedChildren(null); - return; - } - Promise.resolve(animation(id, element)).then(() => { - setClonedChildren(null); - }); - }, [animation, clonedChildren, element]); - return import_react2.default.createElement(import_react2.default.Fragment, null, children, clonedChildren ? (0, import_react2.cloneElement)(clonedChildren, { - ref: setElement - }) : null); -} -var defaultTransform = { - x: 0, - y: 0, - scaleX: 1, - scaleY: 1 -}; -function NullifiedContextProvider(_ref) { - let { - children - } = _ref; - return import_react2.default.createElement(InternalContext.Provider, { - value: defaultInternalContext - }, import_react2.default.createElement(ActiveDraggableContext.Provider, { - value: defaultTransform - }, children)); -} -var baseStyles = { - position: "fixed", - touchAction: "none" -}; -var defaultTransition = (activatorEvent) => { - const isKeyboardActivator = isKeyboardEvent(activatorEvent); - return isKeyboardActivator ? "transform 250ms ease" : void 0; -}; -var PositionedOverlay = (0, import_react2.forwardRef)((_ref, ref) => { - let { - as, - activatorEvent, - adjustScale: adjustScale2, - children, - className, - rect, - style, - transform, - transition = defaultTransition - } = _ref; - if (!rect) { - return null; - } - const scaleAdjustedTransform = adjustScale2 ? transform : { - ...transform, - scaleX: 1, - scaleY: 1 - }; - const styles = { - ...baseStyles, - width: rect.width, - height: rect.height, - top: rect.top, - left: rect.left, - transform: CSS.Transform.toString(scaleAdjustedTransform), - transformOrigin: adjustScale2 && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : void 0, - transition: typeof transition === "function" ? transition(activatorEvent) : transition, - ...style - }; - return import_react2.default.createElement(as, { - className, - style: styles, - ref - }, children); -}); -var defaultDropAnimationSideEffects = (options) => (_ref) => { - let { - active, - dragOverlay - } = _ref; - const originalStyles = {}; - const { - styles, - className - } = options; - if (styles != null && styles.active) { - for (const [key2, value] of Object.entries(styles.active)) { - if (value === void 0) { - continue; - } - originalStyles[key2] = active.node.style.getPropertyValue(key2); - active.node.style.setProperty(key2, value); - } - } - if (styles != null && styles.dragOverlay) { - for (const [key2, value] of Object.entries(styles.dragOverlay)) { - if (value === void 0) { - continue; - } - dragOverlay.node.style.setProperty(key2, value); - } - } - if (className != null && className.active) { - active.node.classList.add(className.active); - } - if (className != null && className.dragOverlay) { - dragOverlay.node.classList.add(className.dragOverlay); - } - return function cleanup() { - for (const [key2, value] of Object.entries(originalStyles)) { - active.node.style.setProperty(key2, value); - } - if (className != null && className.active) { - active.node.classList.remove(className.active); - } - }; -}; -var defaultKeyframeResolver = (_ref2) => { - let { - transform: { - initial, - final - } - } = _ref2; - return [{ - transform: CSS.Transform.toString(initial) - }, { - transform: CSS.Transform.toString(final) - }]; -}; -var defaultDropAnimationConfiguration = { - duration: 250, - easing: "ease", - keyframes: defaultKeyframeResolver, - sideEffects: defaultDropAnimationSideEffects({ - styles: { - active: { - opacity: "0" - } - } - }) -}; -function useDropAnimation(_ref3) { - let { - config, - draggableNodes, - droppableContainers, - measuringConfiguration - } = _ref3; - return useEvent((id, node) => { - if (config === null) { - return; - } - const activeDraggable = draggableNodes.get(id); - if (!activeDraggable) { - return; - } - const activeNode = activeDraggable.node.current; - if (!activeNode) { - return; - } - const measurableNode = getMeasurableNode(node); - if (!measurableNode) { - return; - } - const { - transform - } = getWindow(node).getComputedStyle(node); - const parsedTransform = parseTransform(transform); - if (!parsedTransform) { - return; - } - const animation = typeof config === "function" ? config : createDefaultDropAnimation(config); - scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure); - return animation({ - active: { - id, - data: activeDraggable.data, - node: activeNode, - rect: measuringConfiguration.draggable.measure(activeNode) - }, - draggableNodes, - dragOverlay: { - node, - rect: measuringConfiguration.dragOverlay.measure(measurableNode) - }, - droppableContainers, - measuringConfiguration, - transform: parsedTransform - }); - }); -} -function createDefaultDropAnimation(options) { - const { - duration, - easing, - sideEffects, - keyframes - } = { - ...defaultDropAnimationConfiguration, - ...options - }; - return (_ref4) => { - let { - active, - dragOverlay, - transform, - ...rest - } = _ref4; - if (!duration) { - return; - } - const delta = { - x: dragOverlay.rect.left - active.rect.left, - y: dragOverlay.rect.top - active.rect.top - }; - const scale = { - scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1, - scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1 - }; - const finalTransform = { - x: transform.x - delta.x, - y: transform.y - delta.y, - ...scale - }; - const animationKeyframes = keyframes({ - ...rest, - active, - dragOverlay, - transform: { - initial: transform, - final: finalTransform - } - }); - const [firstKeyframe] = animationKeyframes; - const lastKeyframe = animationKeyframes[animationKeyframes.length - 1]; - if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) { - return; - } - const cleanup = sideEffects == null ? void 0 : sideEffects({ - active, - dragOverlay, - ...rest - }); - const animation = dragOverlay.node.animate(animationKeyframes, { - duration, - easing, - fill: "forwards" - }); - return new Promise((resolve) => { - animation.onfinish = () => { - cleanup == null ? void 0 : cleanup(); - resolve(); - }; - }); - }; -} -var key = 0; -function useKey(id) { - return (0, import_react2.useMemo)(() => { - if (id == null) { - return; - } - key++; - return key; - }, [id]); -} -var DragOverlay = import_react2.default.memo((_ref) => { - let { - adjustScale: adjustScale2 = false, - children, - dropAnimation: dropAnimationConfig, - style, - transition, - modifiers, - wrapperElement = "div", - className, - zIndex = 999 - } = _ref; - const { - activatorEvent, - active, - activeNodeRect, - containerNodeRect, - draggableNodes, - droppableContainers, - dragOverlay, - over, - measuringConfiguration, - scrollableAncestors, - scrollableAncestorRects, - windowRect - } = useDndContext(); - const transform = (0, import_react2.useContext)(ActiveDraggableContext); - const key2 = useKey(active == null ? void 0 : active.id); - const modifiedTransform = applyModifiers(modifiers, { - activatorEvent, - active, - activeNodeRect, - containerNodeRect, - draggingNodeRect: dragOverlay.rect, - over, - overlayNodeRect: dragOverlay.rect, - scrollableAncestors, - scrollableAncestorRects, - transform, - windowRect - }); - const initialRect = useInitialValue(activeNodeRect); - const dropAnimation = useDropAnimation({ - config: dropAnimationConfig, - draggableNodes, - droppableContainers, - measuringConfiguration - }); - const ref = initialRect ? dragOverlay.setRef : void 0; - return import_react2.default.createElement(NullifiedContextProvider, null, import_react2.default.createElement(AnimationManager, { - animation: dropAnimation - }, active && key2 ? import_react2.default.createElement(PositionedOverlay, { - key: key2, - id: active.id, - ref, - as: wrapperElement, - activatorEvent, - adjustScale: adjustScale2, - className, - transition, - rect: initialRect, - style: { - zIndex, - ...style - }, - transform: modifiedTransform - }, children) : null)); -}); -export { - AutoScrollActivator, - DndContext, - DragOverlay, - KeyboardCode, - KeyboardSensor, - MeasuringFrequency, - MeasuringStrategy, - MouseSensor, - PointerSensor, - TouchSensor, - TraversalOrder, - applyModifiers, - closestCenter, - closestCorners, - defaultAnnouncements, - defaultCoordinates, - defaultDropAnimationConfiguration as defaultDropAnimation, - defaultDropAnimationSideEffects, - defaultKeyboardCoordinateGetter, - defaultScreenReaderInstructions, - getClientRect, - getFirstCollision, - getScrollableAncestors, - pointerWithin, - rectIntersection, - useDndContext, - useDndMonitor, - useDraggable, - useDroppable, - useSensor, - useSensors -}; -//# sourceMappingURL=@dnd-kit_core.js.map diff --git a/app/node_modules/.vite/deps/@dnd-kit_core.js.map b/app/node_modules/.vite/deps/@dnd-kit_core.js.map deleted file mode 100644 index 5211e051..00000000 --- a/app/node_modules/.vite/deps/@dnd-kit_core.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../@dnd-kit/accessibility/src/components/HiddenText/HiddenText.tsx", "../../@dnd-kit/accessibility/src/components/LiveRegion/LiveRegion.tsx", "../../@dnd-kit/accessibility/src/hooks/useAnnouncement.ts", "../../@dnd-kit/core/src/components/DndMonitor/context.ts", "../../@dnd-kit/core/src/components/DndMonitor/useDndMonitor.ts", "../../@dnd-kit/core/src/components/DndMonitor/useDndMonitorProvider.tsx", "../../@dnd-kit/core/src/components/Accessibility/defaults.ts", "../../@dnd-kit/core/src/components/Accessibility/Accessibility.tsx", "../../@dnd-kit/core/src/store/actions.ts", "../../@dnd-kit/core/src/utilities/other/noop.ts", "../../@dnd-kit/core/src/sensors/useSensor.ts", "../../@dnd-kit/core/src/sensors/useSensors.ts", "../../@dnd-kit/core/src/utilities/coordinates/constants.ts", "../../@dnd-kit/core/src/utilities/coordinates/distanceBetweenPoints.ts", "../../@dnd-kit/core/src/utilities/coordinates/getRelativeTransformOrigin.ts", "../../@dnd-kit/core/src/utilities/algorithms/helpers.ts", "../../@dnd-kit/core/src/utilities/algorithms/closestCenter.ts", "../../@dnd-kit/core/src/utilities/algorithms/closestCorners.ts", "../../@dnd-kit/core/src/utilities/algorithms/rectIntersection.ts", "../../@dnd-kit/core/src/utilities/algorithms/pointerWithin.ts", "../../@dnd-kit/core/src/utilities/rect/adjustScale.ts", "../../@dnd-kit/core/src/utilities/rect/getRectDelta.ts", "../../@dnd-kit/core/src/utilities/rect/rectAdjustment.ts", "../../@dnd-kit/core/src/utilities/transform/parseTransform.ts", "../../@dnd-kit/core/src/utilities/transform/inverseTransform.ts", "../../@dnd-kit/core/src/utilities/rect/getRect.ts", "../../@dnd-kit/core/src/utilities/rect/getWindowClientRect.ts", "../../@dnd-kit/core/src/utilities/scroll/isFixed.ts", "../../@dnd-kit/core/src/utilities/scroll/isScrollable.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollableAncestors.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollableElement.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollCoordinates.ts", "../../@dnd-kit/core/src/types/direction.ts", "../../@dnd-kit/core/src/utilities/scroll/documentScrollingElement.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollPosition.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollDirectionAndSpeed.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollElementRect.ts", "../../@dnd-kit/core/src/utilities/scroll/getScrollOffsets.ts", "../../@dnd-kit/core/src/utilities/scroll/scrollIntoViewIfNeeded.ts", "../../@dnd-kit/core/src/utilities/rect/Rect.ts", "../../@dnd-kit/core/src/sensors/utilities/Listeners.ts", "../../@dnd-kit/core/src/sensors/utilities/getEventListenerTarget.ts", "../../@dnd-kit/core/src/sensors/utilities/hasExceededDistance.ts", "../../@dnd-kit/core/src/sensors/events.ts", "../../@dnd-kit/core/src/sensors/keyboard/types.ts", "../../@dnd-kit/core/src/sensors/keyboard/defaults.ts", "../../@dnd-kit/core/src/sensors/keyboard/KeyboardSensor.ts", "../../@dnd-kit/core/src/sensors/pointer/AbstractPointerSensor.ts", "../../@dnd-kit/core/src/sensors/pointer/PointerSensor.ts", "../../@dnd-kit/core/src/sensors/mouse/MouseSensor.ts", "../../@dnd-kit/core/src/sensors/touch/TouchSensor.ts", "../../@dnd-kit/core/src/hooks/utilities/useAutoScroller.ts", "../../@dnd-kit/core/src/hooks/utilities/useCachedNode.ts", "../../@dnd-kit/core/src/hooks/utilities/useCombineActivators.ts", "../../@dnd-kit/core/src/hooks/utilities/useDroppableMeasuring.ts", "../../@dnd-kit/core/src/hooks/utilities/useInitialValue.ts", "../../@dnd-kit/core/src/hooks/utilities/useInitialRect.ts", "../../@dnd-kit/core/src/hooks/utilities/useMutationObserver.ts", "../../@dnd-kit/core/src/hooks/utilities/useResizeObserver.ts", "../../@dnd-kit/core/src/hooks/utilities/useRect.ts", "../../@dnd-kit/core/src/hooks/utilities/useRectDelta.ts", "../../@dnd-kit/core/src/hooks/utilities/useScrollableAncestors.ts", "../../@dnd-kit/core/src/hooks/utilities/useScrollOffsets.ts", "../../@dnd-kit/core/src/hooks/utilities/useScrollOffsetsDelta.ts", "../../@dnd-kit/core/src/hooks/utilities/useSensorSetup.ts", "../../@dnd-kit/core/src/hooks/utilities/useSyntheticListeners.ts", "../../@dnd-kit/core/src/hooks/utilities/useWindowRect.ts", "../../@dnd-kit/core/src/hooks/utilities/useRects.ts", "../../@dnd-kit/core/src/utilities/nodes/getMeasurableNode.ts", "../../@dnd-kit/core/src/hooks/utilities/useDragOverlayMeasuring.ts", "../../@dnd-kit/core/src/components/DndContext/defaults.ts", "../../@dnd-kit/core/src/store/constructors.ts", "../../@dnd-kit/core/src/store/context.ts", "../../@dnd-kit/core/src/store/reducer.ts", "../../@dnd-kit/core/src/components/Accessibility/components/RestoreFocus.tsx", "../../@dnd-kit/core/src/modifiers/applyModifiers.ts", "../../@dnd-kit/core/src/components/DndContext/hooks/useMeasuringConfiguration.ts", "../../@dnd-kit/core/src/components/DndContext/hooks/useLayoutShiftScrollCompensation.ts", "../../@dnd-kit/core/src/components/DndContext/DndContext.tsx", "../../@dnd-kit/core/src/hooks/useDraggable.ts", "../../@dnd-kit/core/src/hooks/useDndContext.ts", "../../@dnd-kit/core/src/hooks/useDroppable.ts", "../../@dnd-kit/core/src/components/DragOverlay/components/AnimationManager/AnimationManager.tsx", "../../@dnd-kit/core/src/components/DragOverlay/components/NullifiedContextProvider/NullifiedContextProvider.tsx", "../../@dnd-kit/core/src/components/DragOverlay/components/PositionedOverlay/PositionedOverlay.tsx", "../../@dnd-kit/core/src/components/DragOverlay/hooks/useDropAnimation.ts", "../../@dnd-kit/core/src/components/DragOverlay/hooks/useKey.ts", "../../@dnd-kit/core/src/components/DragOverlay/DragOverlay.tsx"], - "sourcesContent": ["import React from 'react';\n\ninterface Props {\n id: string;\n value: string;\n}\n\nconst hiddenStyles: React.CSSProperties = {\n display: 'none',\n};\n\nexport function HiddenText({id, value}: Props) {\n return (\n
\n {value}\n
\n );\n}\n", "import React from 'react';\n\nexport interface Props {\n id: string;\n announcement: string;\n ariaLiveType?: \"polite\" | \"assertive\" | \"off\";\n}\n\nexport function LiveRegion({id, announcement, ariaLiveType = \"assertive\"}: Props) {\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden: React.CSSProperties = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap',\n };\n \n return (\n \n {announcement}\n \n );\n}\n", "import {useCallback, useState} from 'react';\n\nexport function useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback((value: string | undefined) => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n\n return {announce, announcement} as const;\n}\n", "import {createContext} from 'react';\n\nimport type {RegisterListener} from './types';\n\nexport const DndMonitorContext = createContext(null);\n", "import {useContext, useEffect} from 'react';\n\nimport {DndMonitorContext} from './context';\nimport type {DndMonitorListener} from './types';\n\nexport function useDndMonitor(listener: DndMonitorListener) {\n const registerListener = useContext(DndMonitorContext);\n\n useEffect(() => {\n if (!registerListener) {\n throw new Error(\n 'useDndMonitor must be used within a children of '\n );\n }\n\n const unsubscribe = registerListener(listener);\n\n return unsubscribe;\n }, [listener, registerListener]);\n}\n", "import {useCallback, useState} from 'react';\n\nimport type {DndMonitorListener, DndMonitorEvent} from './types';\n\nexport function useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n\n const registerListener = useCallback(\n (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n [listeners]\n );\n\n const dispatch = useCallback(\n ({type, event}: DndMonitorEvent) => {\n listeners.forEach((listener) => listener[type]?.(event as any));\n },\n [listeners]\n );\n\n return [dispatch, registerListener] as const;\n}\n", "import type {Announcements, ScreenReaderInstructions} from './types';\n\nexport const defaultScreenReaderInstructions: ScreenReaderInstructions = {\n draggable: `\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n `,\n};\n\nexport const defaultAnnouncements: Announcements = {\n onDragStart({active}) {\n return `Picked up draggable item ${active.id}.`;\n },\n onDragOver({active, over}) {\n if (over) {\n return `Draggable item ${active.id} was moved over droppable area ${over.id}.`;\n }\n\n return `Draggable item ${active.id} is no longer over a droppable area.`;\n },\n onDragEnd({active, over}) {\n if (over) {\n return `Draggable item ${active.id} was dropped over droppable area ${over.id}`;\n }\n\n return `Draggable item ${active.id} was dropped.`;\n },\n onDragCancel({active}) {\n return `Dragging was cancelled. Draggable item ${active.id} was dropped.`;\n },\n};\n", "import React, {useEffect, useMemo, useState} from 'react';\nimport {createPortal} from 'react-dom';\nimport {useUniqueId} from '@dnd-kit/utilities';\nimport {HiddenText, LiveRegion, useAnnouncement} from '@dnd-kit/accessibility';\n\nimport {DndMonitorListener, useDndMonitor} from '../DndMonitor';\n\nimport type {Announcements, ScreenReaderInstructions} from './types';\nimport {\n defaultAnnouncements,\n defaultScreenReaderInstructions,\n} from './defaults';\n\ninterface Props {\n announcements?: Announcements;\n container?: Element;\n screenReaderInstructions?: ScreenReaderInstructions;\n hiddenTextDescribedById: string;\n}\n\nexport function Accessibility({\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions,\n}: Props) {\n const {announce, announcement} = useAnnouncement();\n const liveRegionId = useUniqueId(`DndLiveRegion`);\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n useDndMonitor(\n useMemo(\n () => ({\n onDragStart({active}) {\n announce(announcements.onDragStart({active}));\n },\n onDragMove({active, over}) {\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({active, over}));\n }\n },\n onDragOver({active, over}) {\n announce(announcements.onDragOver({active, over}));\n },\n onDragEnd({active, over}) {\n announce(announcements.onDragEnd({active, over}));\n },\n onDragCancel({active, over}) {\n announce(announcements.onDragCancel({active, over}));\n },\n }),\n [announce, announcements]\n )\n );\n\n if (!mounted) {\n return null;\n }\n\n const markup = (\n <>\n \n \n \n );\n\n return container ? createPortal(markup, container) : markup;\n}\n", "import type {Coordinates, UniqueIdentifier} from '../types';\nimport type {DroppableContainer} from './types';\n\nexport enum Action {\n DragStart = 'dragStart',\n DragMove = 'dragMove',\n DragEnd = 'dragEnd',\n DragCancel = 'dragCancel',\n DragOver = 'dragOver',\n RegisterDroppable = 'registerDroppable',\n SetDroppableDisabled = 'setDroppableDisabled',\n UnregisterDroppable = 'unregisterDroppable',\n}\n\nexport type Actions =\n | {\n type: Action.DragStart;\n active: UniqueIdentifier;\n initialCoordinates: Coordinates;\n }\n | {type: Action.DragMove; coordinates: Coordinates}\n | {type: Action.DragEnd}\n | {type: Action.DragCancel}\n | {\n type: Action.RegisterDroppable;\n element: DroppableContainer;\n }\n | {\n type: Action.SetDroppableDisabled;\n id: UniqueIdentifier;\n key: UniqueIdentifier;\n disabled: boolean;\n }\n | {\n type: Action.UnregisterDroppable;\n id: UniqueIdentifier;\n key: UniqueIdentifier;\n };\n", "export function noop(..._args: any) {}\n", "import {useMemo} from 'react';\n\nimport type {Sensor, SensorDescriptor, SensorOptions} from './types';\n\nexport function useSensor(\n sensor: Sensor,\n options?: T\n): SensorDescriptor {\n return useMemo(\n () => ({\n sensor,\n options: options ?? ({} as T),\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]\n );\n}\n", "import {useMemo} from 'react';\n\nimport type {SensorDescriptor, SensorOptions} from './types';\n\nexport function useSensors(\n ...sensors: (SensorDescriptor | undefined | null)[]\n): SensorDescriptor[] {\n return useMemo(\n () =>\n [...sensors].filter(\n (sensor): sensor is SensorDescriptor => sensor != null\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]\n );\n}\n", "import type {Coordinates} from '../../types';\n\nexport const defaultCoordinates: Coordinates = Object.freeze({\n x: 0,\n y: 0,\n});\n", "import type {Coordinates} from '../../types';\n\n/**\n * Returns the distance between two points\n */\nexport function distanceBetween(p1: Coordinates, p2: Coordinates) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n", "import {getEventCoordinates} from '@dnd-kit/utilities';\nimport type {ClientRect} from '../../types';\n\nexport function getRelativeTransformOrigin(\n event: MouseEvent | TouchEvent | KeyboardEvent,\n rect: ClientRect\n) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: ((eventCoordinates.x - rect.left) / rect.width) * 100,\n y: ((eventCoordinates.y - rect.top) / rect.height) * 100,\n };\n\n return `${transformOrigin.x}% ${transformOrigin.y}%`;\n}\n", "/* eslint-disable no-redeclare */\nimport type {ClientRect} from '../../types';\n\nimport type {Collision, CollisionDescriptor} from './types';\n\n/**\n * Sort collisions from smallest to greatest value\n */\nexport function sortCollisionsAsc(\n {data: {value: a}}: CollisionDescriptor,\n {data: {value: b}}: CollisionDescriptor\n) {\n return a - b;\n}\n\n/**\n * Sort collisions from greatest to smallest value\n */\nexport function sortCollisionsDesc(\n {data: {value: a}}: CollisionDescriptor,\n {data: {value: b}}: CollisionDescriptor\n) {\n return b - a;\n}\n\n/**\n * Returns the coordinates of the corners of a given rectangle:\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\n */\nexport function cornersOfRectangle({left, top, height, width}: ClientRect) {\n return [\n {\n x: left,\n y: top,\n },\n {\n x: left + width,\n y: top,\n },\n {\n x: left,\n y: top + height,\n },\n {\n x: left + width,\n y: top + height,\n },\n ];\n}\n\n/**\n * Returns the first collision, or null if there isn't one.\n * If a property is specified, returns the specified property of the first collision.\n */\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined\n): Collision | null;\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined,\n property: T\n): Collision[T] | null;\nexport function getFirstCollision(\n collisions: Collision[] | null | undefined,\n property?: keyof Collision\n) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n\n return property ? firstCollision[property] : firstCollision;\n}\n", "import {distanceBetween} from '../coordinates';\nimport type {Coordinates, ClientRect} from '../../types';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {sortCollisionsAsc} from './helpers';\n\n/**\n * Returns the coordinates of the center of a given ClientRect\n */\nfunction centerOfRectangle(\n rect: ClientRect,\n left = rect.left,\n top = rect.top\n): Coordinates {\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5,\n };\n}\n\n/**\n * Returns the closest rectangles from an array of rectangles to the center of a given\n * rectangle.\n */\nexport const closestCenter: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const centerRect = centerOfRectangle(\n collisionRect,\n collisionRect.left,\n collisionRect.top\n );\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n\n collisions.push({id, data: {droppableContainer, value: distBetween}});\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n", "import {distanceBetween} from '../coordinates';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {cornersOfRectangle, sortCollisionsAsc} from './helpers';\n\n/**\n * Returns the closest rectangles from an array of rectangles to the corners of\n * another rectangle.\n */\nexport const closestCorners: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const corners = cornersOfRectangle(collisionRect);\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n\n collisions.push({\n id,\n data: {droppableContainer, value: effectiveDistance},\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n", "import type {ClientRect} from '../../types';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {sortCollisionsDesc} from './helpers';\n\n/**\n * Returns the intersecting rectangle area between two rectangles\n */\nexport function getIntersectionRatio(\n entry: ClientRect,\n target: ClientRect\n): number {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio =\n intersectionArea / (targetArea + entryArea - intersectionArea);\n\n return Number(intersectionRatio.toFixed(4));\n }\n\n // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n return 0;\n}\n\n/**\n * Returns the rectangles that has the greatest intersection area with a given\n * rectangle in an array of rectangles.\n */\nexport const rectIntersection: CollisionDetection = ({\n collisionRect,\n droppableRects,\n droppableContainers,\n}) => {\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {droppableContainer, value: intersectionRatio},\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n", "import type {Coordinates, ClientRect} from '../../types';\nimport {distanceBetween} from '../coordinates';\n\nimport type {CollisionDescriptor, CollisionDetection} from './types';\nimport {cornersOfRectangle, sortCollisionsAsc} from './helpers';\n\n/**\n * Check if a given point is contained within a bounding rectangle\n */\nfunction isPointWithinRect(point: Coordinates, rect: ClientRect): boolean {\n const {top, left, bottom, right} = rect;\n\n return (\n top <= point.y && point.y <= bottom && left <= point.x && point.x <= right\n );\n}\n\n/**\n * Returns the rectangles that the pointer is hovering over\n */\nexport const pointerWithin: CollisionDetection = ({\n droppableContainers,\n droppableRects,\n pointerCoordinates,\n}) => {\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions: CollisionDescriptor[] = [];\n\n for (const droppableContainer of droppableContainers) {\n const {id} = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\n * with the pointer coordinates. In order to sort the\n * colliding rectangles, we measure the distance between\n * the pointer and the corners of the intersecting rectangle\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n\n collisions.push({\n id,\n data: {droppableContainer, value: effectiveDistance},\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n", "import type {Transform} from '@dnd-kit/utilities';\nimport type {ClientRect} from '../../types';\n\nexport function adjustScale(\n transform: Transform,\n rect1: ClientRect | null,\n rect2: ClientRect | null\n): Transform {\n return {\n ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1,\n };\n}\n", "import type {Coordinates, ClientRect} from '../../types';\nimport {defaultCoordinates} from '../coordinates';\n\nexport function getRectDelta(\n rect1: ClientRect | null,\n rect2: ClientRect | null\n): Coordinates {\n return rect1 && rect2\n ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top,\n }\n : defaultCoordinates;\n}\n", "import type {Coordinates, ClientRect} from '../../types';\n\nexport function createRectAdjustmentFn(modifier: number) {\n return function adjustClientRect(\n rect: ClientRect,\n ...adjustments: Coordinates[]\n ): ClientRect {\n return adjustments.reduce(\n (acc, adjustment) => ({\n ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x,\n }),\n {...rect}\n );\n };\n}\n\nexport const getAdjustedRect = createRectAdjustmentFn(1);\n", "import type {Transform} from '@dnd-kit/utilities';\n\nexport function parseTransform(transform: string): Transform | null {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5],\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3],\n };\n }\n\n return null;\n}\n", "import type {ClientRect} from '../../types';\n\nimport {parseTransform} from './parseTransform';\n\nexport function inverseTransform(\n rect: ClientRect,\n transform: string,\n transformOrigin: string\n): ClientRect {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {scaleX, scaleY, x: translateX, y: translateY} = parsedTransform;\n\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y =\n rect.top -\n translateY -\n (1 - scaleY) *\n parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x,\n };\n}\n", "import {getWindow} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {inverseTransform} from '../transform';\n\ninterface Options {\n ignoreTransform?: boolean;\n}\n\nconst defaultOptions: Options = {ignoreTransform: false};\n\n/**\n * Returns the bounding client rect of an element relative to the viewport.\n */\nexport function getClientRect(\n element: Element,\n options: Options = defaultOptions\n) {\n let rect: ClientRect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {transform, transformOrigin} =\n getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {top, left, width, height, bottom, right} = rect;\n\n return {\n top,\n left,\n width,\n height,\n bottom,\n right,\n };\n}\n\n/**\n * Returns the bounding client rect of an element relative to the viewport.\n *\n * @remarks\n * The ClientRect returned by this method does not take into account transforms\n * applied to the element it measures.\n *\n */\nexport function getTransformAgnosticClientRect(element: Element): ClientRect {\n return getClientRect(element, {ignoreTransform: true});\n}\n", "import type {ClientRect} from '../../types';\n\nexport function getWindowClientRect(element: typeof window): ClientRect {\n const width = element.innerWidth;\n const height = element.innerHeight;\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n };\n}\n", "import {getWindow} from '@dnd-kit/utilities';\n\nexport function isFixed(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration = getWindow(node).getComputedStyle(node)\n): boolean {\n return computedStyle.position === 'fixed';\n}\n", "import {getWindow} from '@dnd-kit/utilities';\n\nexport function isScrollable(\n element: HTMLElement,\n computedStyle: CSSStyleDeclaration = getWindow(element).getComputedStyle(\n element\n )\n): boolean {\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n\n return properties.some((property) => {\n const value = computedStyle[property as keyof CSSStyleDeclaration];\n\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n", "import {\n getWindow,\n isDocument,\n isHTMLElement,\n isSVGElement,\n} from '@dnd-kit/utilities';\n\nimport {isFixed} from './isFixed';\nimport {isScrollable} from './isScrollable';\n\nexport function getScrollableAncestors(\n element: Node | null,\n limit?: number\n): Element[] {\n const scrollParents: Element[] = [];\n\n function findScrollableAncestors(node: Node | null): Element[] {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (\n isDocument(node) &&\n node.scrollingElement != null &&\n !scrollParents.includes(node.scrollingElement)\n ) {\n scrollParents.push(node.scrollingElement);\n\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\n\nexport function getFirstScrollableAncestor(node: Node | null): Element | null {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n\n return firstScrollableAncestor ?? null;\n}\n", "import {\n canUseDOM,\n isHTMLElement,\n isDocument,\n getOwnerDocument,\n isNode,\n isWindow,\n} from '@dnd-kit/utilities';\n\nexport function getScrollableElement(element: EventTarget | null) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (\n isDocument(element) ||\n element === getOwnerDocument(element).scrollingElement\n ) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n", "import {isWindow} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\n\nexport function getScrollXCoordinate(element: Element | typeof window): number {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\n\nexport function getScrollYCoordinate(element: Element | typeof window): number {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\n\nexport function getScrollCoordinates(\n element: Element | typeof window\n): Coordinates {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element),\n };\n}\n", "export enum Direction {\n Forward = 1,\n Backward = -1,\n}\n", "import {canUseDOM} from '@dnd-kit/utilities';\n\nexport function isDocumentScrollingElement(element: Element | null) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n", "import {isDocumentScrollingElement} from './documentScrollingElement';\n\nexport function getScrollPosition(scrollingContainer: Element) {\n const minScroll = {\n x: 0,\n y: 0,\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer)\n ? {\n height: window.innerHeight,\n width: window.innerWidth,\n }\n : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth,\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height,\n };\n\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll,\n };\n}\n", "import {Direction, ClientRect} from '../../types';\nimport {getScrollPosition} from './getScrollPosition';\n\ninterface PositionalCoordinates\n extends Pick {}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2,\n};\n\nexport function getScrollDirectionAndSpeed(\n scrollContainer: Element,\n scrollContainerRect: ClientRect,\n {top, left, right, bottom}: PositionalCoordinates,\n acceleration = 10,\n thresholdPercentage = defaultThreshold\n) {\n const {isTop, isBottom, isLeft, isRight} = getScrollPosition(scrollContainer);\n\n const direction = {\n x: 0,\n y: 0,\n };\n const speed = {\n x: 0,\n y: 0,\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x,\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.top + threshold.height - top) / threshold.height\n );\n } else if (\n !isBottom &&\n bottom >= scrollContainerRect.bottom - threshold.height\n ) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y =\n acceleration *\n Math.abs(\n (scrollContainerRect.bottom - threshold.height - bottom) /\n threshold.height\n );\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.right - threshold.width - right) / threshold.width\n );\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x =\n acceleration *\n Math.abs(\n (scrollContainerRect.left + threshold.width - left) / threshold.width\n );\n }\n\n return {\n direction,\n speed,\n };\n}\n", "export function getScrollElementRect(element: Element) {\n if (element === document.scrollingElement) {\n const {innerWidth, innerHeight} = window;\n\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight,\n };\n }\n\n const {top, left, right, bottom} = element.getBoundingClientRect();\n\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight,\n };\n}\n", "import {add} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\nimport {\n getScrollCoordinates,\n getScrollXCoordinate,\n getScrollYCoordinate,\n} from './getScrollCoordinates';\nimport {defaultCoordinates} from '../coordinates';\n\nexport function getScrollOffsets(scrollableAncestors: Element[]): Coordinates {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\n\nexport function getScrollXOffset(scrollableAncestors: Element[]): number {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\n\nexport function getScrollYOffset(scrollableAncestors: Element[]): number {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n", "import type {ClientRect} from '../../types';\nimport {getClientRect} from '../rect/getRect';\nimport {getFirstScrollableAncestor} from './getScrollableAncestors';\n\nexport function scrollIntoViewIfNeeded(\n element: HTMLElement | null | undefined,\n measure: (node: HTMLElement) => ClientRect = getClientRect\n) {\n if (!element) {\n return;\n }\n\n const {top, left, bottom, right} = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (\n bottom <= 0 ||\n right <= 0 ||\n top >= window.innerHeight ||\n left >= window.innerWidth\n ) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center',\n });\n }\n}\n", "import type {ClientRect} from '../../types/rect';\nimport {\n getScrollableAncestors,\n getScrollOffsets,\n getScrollXOffset,\n getScrollYOffset,\n} from '../scroll';\n\nconst properties = [\n ['x', ['left', 'right'], getScrollXOffset],\n ['y', ['top', 'bottom'], getScrollYOffset],\n] as const;\n\nexport class Rect {\n constructor(rect: ClientRect, element: Element) {\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n\n this.rect = {...rect};\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true,\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {enumerable: false});\n }\n\n private rect: ClientRect;\n\n public width: number;\n\n public height: number;\n\n // The below properties are set by the `Object.defineProperty` calls in the constructor\n // @ts-ignore\n public top: number;\n // @ts-ignore\n public bottom: number;\n // @ts-ignore\n public right: number;\n // @ts-ignore\n public left: number;\n}\n", "export class Listeners {\n private listeners: [\n string,\n EventListenerOrEventListenerObject,\n AddEventListenerOptions | boolean | undefined\n ][] = [];\n\n constructor(private target: EventTarget | null) {}\n\n public add(\n eventName: string,\n handler: (event: T) => void,\n options?: AddEventListenerOptions | boolean\n ) {\n this.target?.addEventListener(eventName, handler as EventListener, options);\n this.listeners.push([eventName, handler as EventListener, options]);\n }\n\n public removeAll = () => {\n this.listeners.forEach((listener) =>\n this.target?.removeEventListener(...listener)\n );\n };\n}\n", "import {getOwnerDocument, getWindow} from '@dnd-kit/utilities';\n\nexport function getEventListenerTarget(\n target: EventTarget | null\n): EventTarget | Document {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n\n const {EventTarget} = getWindow(target);\n\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n", "import type {Coordinates, DistanceMeasurement} from '../../types';\n\nexport function hasExceededDistance(\n delta: Coordinates,\n measurement: DistanceMeasurement\n): boolean {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n", "export enum EventName {\n Click = 'click',\n DragStart = 'dragstart',\n Keydown = 'keydown',\n ContextMenu = 'contextmenu',\n Resize = 'resize',\n SelectionChange = 'selectionchange',\n VisibilityChange = 'visibilitychange',\n}\n\nexport function preventDefault(event: Event) {\n event.preventDefault();\n}\n\nexport function stopPropagation(event: Event) {\n event.stopPropagation();\n}\n", "import type {Coordinates, UniqueIdentifier} from '../../types';\nimport type {SensorContext} from '../types';\n\nexport enum KeyboardCode {\n Space = 'Space',\n Down = 'ArrowDown',\n Right = 'ArrowRight',\n Left = 'ArrowLeft',\n Up = 'ArrowUp',\n Esc = 'Escape',\n Enter = 'Enter',\n Tab = 'Tab',\n}\n\nexport type KeyboardCodes = {\n start: KeyboardEvent['code'][];\n cancel: KeyboardEvent['code'][];\n end: KeyboardEvent['code'][];\n};\n\nexport type KeyboardCoordinateGetter = (\n event: KeyboardEvent,\n args: {\n active: UniqueIdentifier;\n currentCoordinates: Coordinates;\n context: SensorContext;\n }\n) => Coordinates | void;\n", "import {KeyboardCoordinateGetter, KeyboardCode, KeyboardCodes} from './types';\n\nexport const defaultKeyboardCodes: KeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter, KeyboardCode.Tab],\n};\n\nexport const defaultKeyboardCoordinateGetter: KeyboardCoordinateGetter = (\n event,\n {currentCoordinates}\n) => {\n switch (event.code) {\n case KeyboardCode.Right:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + 25,\n };\n case KeyboardCode.Left:\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - 25,\n };\n case KeyboardCode.Down:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y + 25,\n };\n case KeyboardCode.Up:\n return {\n ...currentCoordinates,\n y: currentCoordinates.y - 25,\n };\n }\n\n return undefined;\n};\n", "import {\n add as getAdjustedCoordinates,\n subtract as getCoordinatesDelta,\n getOwnerDocument,\n getWindow,\n isKeyboardEvent,\n} from '@dnd-kit/utilities';\n\nimport type {Coordinates} from '../../types';\nimport {\n defaultCoordinates,\n getScrollPosition,\n getScrollElementRect,\n} from '../../utilities';\nimport {scrollIntoViewIfNeeded} from '../../utilities/scroll';\nimport {EventName} from '../events';\nimport {Listeners} from '../utilities';\nimport type {\n Activators,\n SensorInstance,\n SensorProps,\n SensorOptions,\n} from '../types';\n\nimport {KeyboardCoordinateGetter, KeyboardCode, KeyboardCodes} from './types';\nimport {\n defaultKeyboardCodes,\n defaultKeyboardCoordinateGetter,\n} from './defaults';\n\nexport interface KeyboardSensorOptions extends SensorOptions {\n keyboardCodes?: KeyboardCodes;\n coordinateGetter?: KeyboardCoordinateGetter;\n scrollBehavior?: ScrollBehavior;\n onActivation?({event}: {event: KeyboardEvent}): void;\n}\n\nexport type KeyboardSensorProps = SensorProps;\n\nexport class KeyboardSensor implements SensorInstance {\n public autoScrollEnabled = false;\n private referenceCoordinates: Coordinates | undefined;\n private listeners: Listeners;\n private windowListeners: Listeners;\n\n constructor(private props: KeyboardSensorProps) {\n const {\n event: {target},\n } = props;\n\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n\n this.attach();\n }\n\n private attach() {\n this.handleStart();\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n private handleStart() {\n const {activeNode, onStart} = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n private handleKeyDown(event: Event) {\n if (isKeyboardEvent(event)) {\n const {active, context, options} = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth',\n } = options;\n const {code} = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {collisionRect} = context.current;\n const currentCoordinates = collisionRect\n ? {x: collisionRect.left, y: collisionRect.top}\n : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates,\n });\n\n if (newCoordinates) {\n const coordinatesDelta = getCoordinatesDelta(\n newCoordinates,\n currentCoordinates\n );\n const scrollDelta = {\n x: 0,\n y: 0,\n };\n const {scrollableAncestors} = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {isTop, isRight, isLeft, isBottom, maxScroll, minScroll} =\n getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n\n const clampedCoordinates = {\n x: Math.min(\n direction === KeyboardCode.Right\n ? scrollElementRect.right - scrollElementRect.width / 2\n : scrollElementRect.right,\n Math.max(\n direction === KeyboardCode.Right\n ? scrollElementRect.left\n : scrollElementRect.left + scrollElementRect.width / 2,\n newCoordinates.x\n )\n ),\n y: Math.min(\n direction === KeyboardCode.Down\n ? scrollElementRect.bottom - scrollElementRect.height / 2\n : scrollElementRect.bottom,\n Math.max(\n direction === KeyboardCode.Down\n ? scrollElementRect.top\n : scrollElementRect.top + scrollElementRect.height / 2,\n newCoordinates.y\n )\n ),\n };\n\n const canScrollX =\n (direction === KeyboardCode.Right && !isRight) ||\n (direction === KeyboardCode.Left && !isLeft);\n const canScrollY =\n (direction === KeyboardCode.Down && !isBottom) ||\n (direction === KeyboardCode.Up && !isTop);\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates =\n scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates =\n (direction === KeyboardCode.Right &&\n newScrollCoordinates <= maxScroll.x) ||\n (direction === KeyboardCode.Left &&\n newScrollCoordinates >= minScroll.x);\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior,\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x =\n direction === KeyboardCode.Right\n ? scrollContainer.scrollLeft - maxScroll.x\n : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior,\n });\n }\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates =\n scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates =\n (direction === KeyboardCode.Down &&\n newScrollCoordinates <= maxScroll.y) ||\n (direction === KeyboardCode.Up &&\n newScrollCoordinates >= minScroll.y);\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior,\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y =\n direction === KeyboardCode.Down\n ? scrollContainer.scrollTop - maxScroll.y\n : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior,\n });\n }\n\n break;\n }\n }\n\n this.handleMove(\n event,\n getAdjustedCoordinates(\n getCoordinatesDelta(newCoordinates, this.referenceCoordinates),\n scrollDelta\n )\n );\n }\n }\n }\n\n private handleMove(event: Event, coordinates: Coordinates) {\n const {onMove} = this.props;\n\n event.preventDefault();\n onMove(coordinates);\n }\n\n private handleEnd(event: Event) {\n const {onEnd} = this.props;\n\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n private handleCancel(event: Event) {\n const {onCancel} = this.props;\n\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n private detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n static activators: Activators = [\n {\n eventName: 'onKeyDown' as const,\n handler: (\n event: React.KeyboardEvent,\n {keyboardCodes = defaultKeyboardCodes, onActivation},\n {active}\n ) => {\n const {code} = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n\n onActivation?.({event: event.nativeEvent});\n\n return true;\n }\n\n return false;\n },\n },\n ];\n}\n", "import {\n subtract as getCoordinatesDelta,\n getEventCoordinates,\n getOwnerDocument,\n getWindow,\n} from '@dnd-kit/utilities';\n\nimport {defaultCoordinates} from '../../utilities';\nimport {\n getEventListenerTarget,\n hasExceededDistance,\n Listeners,\n} from '../utilities';\nimport {EventName, preventDefault, stopPropagation} from '../events';\nimport {KeyboardCode} from '../keyboard';\nimport type {SensorInstance, SensorProps, SensorOptions} from '../types';\nimport type {Coordinates, DistanceMeasurement} from '../../types';\n\ninterface DistanceConstraint {\n distance: DistanceMeasurement;\n tolerance?: DistanceMeasurement;\n}\n\ninterface DelayConstraint {\n delay: number;\n tolerance: DistanceMeasurement;\n}\n\ninterface EventDescriptor {\n name: keyof DocumentEventMap;\n passive?: boolean;\n}\n\nexport interface PointerEventHandlers {\n cancel?: EventDescriptor;\n move: EventDescriptor;\n end: EventDescriptor;\n}\n\nexport type PointerActivationConstraint =\n | DelayConstraint\n | DistanceConstraint\n | (DelayConstraint & DistanceConstraint);\n\nfunction isDistanceConstraint(\n constraint: PointerActivationConstraint\n): constraint is PointerActivationConstraint & DistanceConstraint {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(\n constraint: PointerActivationConstraint\n): constraint is DelayConstraint {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nexport interface AbstractPointerSensorOptions extends SensorOptions {\n activationConstraint?: PointerActivationConstraint;\n bypassActivationConstraint?(\n props: Pick\n ): boolean;\n onActivation?({event}: {event: Event}): void;\n}\n\nexport type AbstractPointerSensorProps =\n SensorProps;\n\nexport class AbstractPointerSensor implements SensorInstance {\n public autoScrollEnabled = true;\n private document: Document;\n private activated: boolean = false;\n private initialCoordinates: Coordinates;\n private timeoutId: NodeJS.Timeout | null = null;\n private listeners: Listeners;\n private documentListeners: Listeners;\n private windowListeners: Listeners;\n\n constructor(\n private props: AbstractPointerSensorProps,\n private events: PointerEventHandlers,\n listenerTarget = getEventListenerTarget(props.event.target)\n ) {\n const {event} = props;\n const {target} = event;\n\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = getEventCoordinates(event) ?? defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n\n this.attach();\n }\n\n private attach() {\n const {\n events,\n props: {\n options: {activationConstraint, bypassActivationConstraint},\n },\n } = this;\n\n this.listeners.add(events.move.name, this.handleMove, {passive: false});\n this.listeners.add(events.end.name, this.handleEnd);\n\n if (events.cancel) {\n this.listeners.add(events.cancel.name, this.handleCancel);\n }\n\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (\n bypassActivationConstraint?.({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options,\n })\n ) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(\n this.handleStart,\n activationConstraint.delay\n );\n this.handlePending(activationConstraint);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n this.handlePending(activationConstraint);\n return;\n }\n }\n\n this.handleStart();\n }\n\n private detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n\n // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n private handlePending(\n constraint: PointerActivationConstraint,\n offset?: Coordinates | undefined\n ): void {\n const {active, onPending} = this.props;\n onPending(active, constraint, this.initialCoordinates, offset);\n }\n\n private handleStart() {\n const {initialCoordinates} = this;\n const {onStart} = this.props;\n\n if (initialCoordinates) {\n this.activated = true;\n\n // Stop propagation of click events once activation constraints are met\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true,\n });\n\n // Remove any text selection from the document\n this.removeTextSelection();\n\n // Prevent further text selection while dragging\n this.documentListeners.add(\n EventName.SelectionChange,\n this.removeTextSelection\n );\n\n onStart(initialCoordinates);\n }\n }\n\n private handleMove(event: Event) {\n const {activated, initialCoordinates, props} = this;\n const {\n onMove,\n options: {activationConstraint},\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = getEventCoordinates(event) ?? defaultCoordinates;\n const delta = getCoordinatesDelta(initialCoordinates, coordinates);\n\n // Constraint validation\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (\n activationConstraint.tolerance != null &&\n hasExceededDistance(delta, activationConstraint.tolerance)\n ) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n this.handlePending(activationConstraint, delta);\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n private handleEnd() {\n const {onAbort, onEnd} = this.props;\n\n this.detach();\n if (!this.activated) {\n onAbort(this.props.active);\n }\n onEnd();\n }\n\n private handleCancel() {\n const {onAbort, onCancel} = this.props;\n\n this.detach();\n if (!this.activated) {\n onAbort(this.props.active);\n }\n onCancel();\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n private removeTextSelection() {\n this.document.getSelection()?.removeAllRanges();\n }\n}\n", "import type {PointerEvent} from 'react';\nimport {getOwnerDocument} from '@dnd-kit/utilities';\n\nimport type {SensorProps} from '../types';\nimport {\n AbstractPointerSensor,\n AbstractPointerSensorOptions,\n PointerEventHandlers,\n} from './AbstractPointerSensor';\n\nconst events: PointerEventHandlers = {\n cancel: {name: 'pointercancel'},\n move: {name: 'pointermove'},\n end: {name: 'pointerup'},\n};\n\nexport interface PointerSensorOptions extends AbstractPointerSensorOptions {}\n\nexport type PointerSensorProps = SensorProps;\n\nexport class PointerSensor extends AbstractPointerSensor {\n constructor(props: PointerSensorProps) {\n const {event} = props;\n // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n const listenerTarget = getOwnerDocument(event.target);\n\n super(props, events, listenerTarget);\n }\n\n static activators = [\n {\n eventName: 'onPointerDown' as const,\n handler: (\n {nativeEvent: event}: PointerEvent,\n {onActivation}: PointerSensorOptions\n ) => {\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n}\n", "import type {MouseEvent} from 'react';\nimport {getOwnerDocument} from '@dnd-kit/utilities';\n\nimport type {SensorProps} from '../types';\nimport {\n AbstractPointerSensor,\n PointerEventHandlers,\n AbstractPointerSensorOptions,\n} from '../pointer';\n\nconst events: PointerEventHandlers = {\n move: {name: 'mousemove'},\n end: {name: 'mouseup'},\n};\n\nenum MouseButton {\n RightClick = 2,\n}\n\nexport interface MouseSensorOptions extends AbstractPointerSensorOptions {}\n\nexport type MouseSensorProps = SensorProps;\n\nexport class MouseSensor extends AbstractPointerSensor {\n constructor(props: MouseSensorProps) {\n super(props, events, getOwnerDocument(props.event.target));\n }\n\n static activators = [\n {\n eventName: 'onMouseDown' as const,\n handler: (\n {nativeEvent: event}: MouseEvent,\n {onActivation}: MouseSensorOptions\n ) => {\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n}\n", "import type {TouchEvent} from 'react';\n\nimport {\n AbstractPointerSensor,\n PointerSensorProps,\n PointerEventHandlers,\n PointerSensorOptions,\n} from '../pointer';\nimport type {SensorProps} from '../types';\n\nconst events: PointerEventHandlers = {\n cancel: {name: 'touchcancel'},\n move: {name: 'touchmove'},\n end: {name: 'touchend'},\n};\n\nexport interface TouchSensorOptions extends PointerSensorOptions {}\n\nexport type TouchSensorProps = SensorProps;\n\nexport class TouchSensor extends AbstractPointerSensor {\n constructor(props: PointerSensorProps) {\n super(props, events);\n }\n\n static activators = [\n {\n eventName: 'onTouchStart' as const,\n handler: (\n {nativeEvent: event}: TouchEvent,\n {onActivation}: TouchSensorOptions\n ) => {\n const {touches} = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation?.({event});\n\n return true;\n },\n },\n ];\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events.move.name, noop, {\n capture: false,\n passive: false,\n });\n\n return function teardown() {\n window.removeEventListener(events.move.name, noop);\n };\n\n // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n function noop() {}\n }\n}\n", "import {useCallback, useEffect, useMemo, useRef} from 'react';\nimport {useInterval, useLazyMemo, usePrevious} from '@dnd-kit/utilities';\n\nimport {getScrollDirectionAndSpeed} from '../../utilities';\nimport {Direction} from '../../types';\nimport type {Coordinates, ClientRect} from '../../types';\n\nexport type ScrollAncestorSortingFn = (ancestors: Element[]) => Element[];\n\nexport enum AutoScrollActivator {\n Pointer,\n DraggableRect,\n}\n\nexport interface Options {\n acceleration?: number;\n activator?: AutoScrollActivator;\n canScroll?: CanScroll;\n enabled?: boolean;\n interval?: number;\n layoutShiftCompensation?:\n | boolean\n | {\n x: boolean;\n y: boolean;\n };\n order?: TraversalOrder;\n threshold?: {\n x: number;\n y: number;\n };\n}\n\ninterface Arguments extends Options {\n draggingRect: ClientRect | null;\n enabled: boolean;\n pointerCoordinates: Coordinates | null;\n scrollableAncestors: Element[];\n scrollableAncestorRects: ClientRect[];\n delta: Coordinates;\n}\n\nexport type CanScroll = (element: Element) => boolean;\n\nexport enum TraversalOrder {\n TreeOrder,\n ReversedTreeOrder,\n}\n\ninterface ScrollDirection {\n x: 0 | Direction;\n y: 0 | Direction;\n}\n\nexport function useAutoScroller({\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold,\n}: Arguments) {\n const scrollIntent = useScrollIntent({delta, disabled: !enabled});\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({x: 0, y: 0});\n const scrollDirection = useRef({x: 0, y: 0});\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates\n ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x,\n }\n : null;\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(\n () =>\n order === TraversalOrder.TreeOrder\n ? [...scrollableAncestors].reverse()\n : scrollableAncestors,\n [order, scrollableAncestors]\n );\n\n useEffect(\n () => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if (canScroll?.(scrollContainer) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {direction, speed} = getScrollDirectionAndSpeed(\n scrollContainer,\n scrollContainerRect,\n rect,\n acceleration,\n threshold\n );\n\n for (const axis of ['x', 'y'] as const) {\n if (!scrollIntent[axis][direction[axis] as Direction]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n\n return;\n }\n }\n\n scrollSpeed.current = {x: 0, y: 0};\n scrollDirection.current = {x: 0, y: 0};\n clearAutoScrollInterval();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n acceleration,\n autoScroll,\n canScroll,\n clearAutoScrollInterval,\n enabled,\n interval,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent),\n setAutoScrollInterval,\n scrollableAncestors,\n sortedScrollableAncestors,\n scrollableAncestorRects,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n ]\n );\n}\n\ninterface ScrollIntent {\n x: Record;\n y: Record;\n}\n\nconst defaultScrollIntent: ScrollIntent = {\n x: {[Direction.Backward]: false, [Direction.Forward]: false},\n y: {[Direction.Backward]: false, [Direction.Forward]: false},\n};\n\nfunction useScrollIntent({\n delta,\n disabled,\n}: {\n delta: Coordinates;\n disabled: boolean;\n}): ScrollIntent {\n const previousDelta = usePrevious(delta);\n\n return useLazyMemo(\n (previousIntent) => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y),\n };\n\n // Keep track of the user intent to scroll in each direction for both axis\n return {\n x: {\n [Direction.Backward]:\n previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]:\n previousIntent.x[Direction.Forward] || direction.x === 1,\n },\n y: {\n [Direction.Backward]:\n previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]:\n previousIntent.y[Direction.Forward] || direction.y === 1,\n },\n };\n },\n [disabled, delta, previousDelta]\n );\n}\n", "import {useLazyMemo} from '@dnd-kit/utilities';\n\nimport type {DraggableNode, DraggableNodes} from '../../store';\nimport type {UniqueIdentifier} from '../../types';\n\nexport function useCachedNode(\n draggableNodes: DraggableNodes,\n id: UniqueIdentifier | null\n): DraggableNode['node']['current'] {\n const draggableNode = id != null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n\n return useLazyMemo(\n (cachedNode) => {\n if (id == null) {\n return null;\n }\n\n // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n return node ?? cachedNode ?? null;\n },\n [node, id]\n );\n}\n", "import {useMemo} from 'react';\n\nimport type {SensorActivatorFunction, SensorDescriptor} from '../../sensors';\nimport type {\n SyntheticListener,\n SyntheticListeners,\n} from './useSyntheticListeners';\n\nexport function useCombineActivators(\n sensors: SensorDescriptor[],\n getSyntheticHandler: (\n handler: SensorActivatorFunction,\n sensor: SensorDescriptor\n ) => SyntheticListener['handler']\n): SyntheticListeners {\n return useMemo(\n () =>\n sensors.reduce((accumulator, sensor) => {\n const {sensor: Sensor} = sensor;\n\n const sensorActivators = Sensor.activators.map((activator) => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor),\n }));\n\n return [...accumulator, ...sensorActivators];\n }, []),\n [sensors, getSyntheticHandler]\n );\n}\n", "import {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLatestValue, useLazyMemo} from '@dnd-kit/utilities';\n\nimport {Rect} from '../../utilities/rect';\nimport type {DroppableContainer, RectMap} from '../../store/types';\nimport type {ClientRect, UniqueIdentifier} from '../../types';\n\ninterface Arguments {\n dragging: boolean;\n dependencies: any[];\n config: DroppableMeasuring;\n}\n\nexport enum MeasuringStrategy {\n Always,\n BeforeDragging,\n WhileDragging,\n}\n\nexport enum MeasuringFrequency {\n Optimized = 'optimized',\n}\n\ntype MeasuringFunction = (element: HTMLElement) => ClientRect;\n\nexport interface DroppableMeasuring {\n measure: MeasuringFunction;\n strategy: MeasuringStrategy;\n frequency: MeasuringFrequency | number;\n}\n\nconst defaultValue: RectMap = new Map();\n\nexport function useDroppableMeasuring(\n containers: DroppableContainer[],\n {dragging, dependencies, config}: Arguments\n) {\n const [queue, setQueue] = useState(null);\n const {frequency, measure, strategy} = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(\n (ids: UniqueIdentifier[] = []) => {\n if (disabledRef.current) {\n return;\n }\n\n setQueue((value) => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter((id) => !value.includes(id)));\n });\n },\n [disabledRef]\n );\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(\n (previousValue) => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (\n !previousValue ||\n previousValue === defaultValue ||\n containersRef.current !== containers ||\n queue != null\n ) {\n const map: RectMap = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (\n queue &&\n queue.length > 0 &&\n !queue.includes(container.id) &&\n container.rect.current\n ) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n },\n [containers, queue, dragging, disabled, measure]\n );\n\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n\n useEffect(\n () => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]\n );\n\n useEffect(\n () => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]\n );\n\n useEffect(\n () => {\n if (\n disabled ||\n typeof frequency !== 'number' ||\n timeoutId.current !== null\n ) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]\n );\n\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null,\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n default:\n return !dragging;\n }\n }\n}\n", "import {useLazyMemo} from '@dnd-kit/utilities';\n\ntype AnyFunction = (...args: any) => any;\n\nexport function useInitialValue<\n T,\n U extends AnyFunction | undefined = undefined\n>(\n value: T | null,\n computeFn?: U\n): U extends AnyFunction ? ReturnType | null : T | null {\n return useLazyMemo(\n (previousValue) => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n },\n [computeFn, value]\n );\n}\n", "import type {ClientRect} from '../../types';\nimport {useInitialValue} from './useInitialValue';\n\nexport function useInitialRect(\n node: HTMLElement | null,\n measure: (node: HTMLElement) => ClientRect\n) {\n return useInitialValue(node, measure);\n}\n", "import {useEffect, useMemo} from 'react';\nimport {useEvent} from '@dnd-kit/utilities';\n\ninterface Arguments {\n callback: MutationCallback;\n disabled?: boolean;\n}\n\n/**\n * Returns a new MutationObserver instance.\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\n */\nexport function useMutationObserver({callback, disabled}: Arguments) {\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (\n disabled ||\n typeof window === 'undefined' ||\n typeof window.MutationObserver === 'undefined'\n ) {\n return undefined;\n }\n\n const {MutationObserver} = window;\n\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n\n useEffect(() => {\n return () => mutationObserver?.disconnect();\n }, [mutationObserver]);\n\n return mutationObserver;\n}\n", "import {useEffect, useMemo} from 'react';\nimport {useEvent} from '@dnd-kit/utilities';\n\ninterface Arguments {\n callback: ResizeObserverCallback;\n disabled?: boolean;\n}\n\n/**\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\n */\nexport function useResizeObserver({callback, disabled}: Arguments) {\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(\n () => {\n if (\n disabled ||\n typeof window === 'undefined' ||\n typeof window.ResizeObserver === 'undefined'\n ) {\n return undefined;\n }\n\n const {ResizeObserver} = window;\n\n return new ResizeObserver(handleResize);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]\n );\n\n useEffect(() => {\n return () => resizeObserver?.disconnect();\n }, [resizeObserver]);\n\n return resizeObserver;\n}\n", "import {useState} from 'react';\nimport {useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {getClientRect, Rect} from '../../utilities';\n\nimport {useMutationObserver} from './useMutationObserver';\nimport {useResizeObserver} from './useResizeObserver';\n\nfunction defaultMeasure(element: HTMLElement) {\n return new Rect(getClientRect(element), element);\n}\n\nexport function useRect(\n element: HTMLElement | null,\n measure: (element: HTMLElement) => ClientRect = defaultMeasure,\n fallbackRect?: ClientRect | null\n) {\n const [rect, setRect] = useState(null);\n\n function measureRect() {\n setRect((currentRect): ClientRect | null => {\n if (!element) {\n return null;\n }\n \n if (element.isConnected === false) {\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return currentRect ?? fallbackRect ?? null;\n }\n \n const newRect = measure(element);\n \n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n \n return newRect;\n });\n }\n \n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {type, target} = record;\n\n if (\n type === 'childList' &&\n target instanceof HTMLElement &&\n target.contains(element)\n ) {\n measureRect();\n break;\n }\n }\n },\n });\n const resizeObserver = useResizeObserver({callback: measureRect});\n\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver?.observe(element);\n mutationObserver?.observe(document.body, {\n childList: true,\n subtree: true,\n });\n } else {\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n }\n }, [element]);\n\n return rect;\n}\n", "import type {ClientRect} from '../../types';\nimport {getRectDelta} from '../../utilities';\n\nimport {useInitialValue} from './useInitialValue';\n\nexport function useRectDelta(rect: ClientRect | null) {\n const initialRect = useInitialValue(rect);\n\n return getRectDelta(rect, initialRect);\n}\n", "import {useEffect, useRef} from 'react';\nimport {useLazyMemo} from '@dnd-kit/utilities';\n\nimport {getScrollableAncestors} from '../../utilities';\n\nconst defaultValue: Element[] = [];\n\nexport function useScrollableAncestors(node: HTMLElement | null) {\n const previousNode = useRef(node);\n\n const ancestors = useLazyMemo(\n (previousValue) => {\n if (!node) {\n return defaultValue;\n }\n\n if (\n previousValue &&\n previousValue !== defaultValue &&\n node &&\n previousNode.current &&\n node.parentNode === previousNode.current.parentNode\n ) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n },\n [node]\n );\n\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n\n return ancestors;\n}\n", "import {useState, useCallback, useMemo, useRef, useEffect} from 'react';\nimport {add} from '@dnd-kit/utilities';\n\nimport {\n defaultCoordinates,\n getScrollableElement,\n getScrollCoordinates,\n getScrollOffsets,\n} from '../../utilities';\nimport type {Coordinates} from '../../types';\n\ntype ScrollCoordinates = Map;\n\nexport function useScrollOffsets(elements: Element[]): Coordinates {\n const [\n scrollCoordinates,\n setScrollCoordinates,\n ] = useState(null);\n const prevElements = useRef(elements);\n\n // To-do: Throttle the handleScroll callback\n const handleScroll = useCallback((event: Event) => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates((scrollCoordinates) => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(\n scrollingElement,\n getScrollCoordinates(scrollingElement)\n );\n\n return new Map(scrollCoordinates);\n });\n }, []);\n\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n\n const entries = elements\n .map((element) => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true,\n });\n\n return [\n scrollableElement,\n getScrollCoordinates(scrollableElement),\n ] as const;\n }\n\n return null;\n })\n .filter(\n (\n entry\n ): entry is [\n HTMLElement | (Window & typeof globalThis),\n Coordinates\n ] => entry != null\n );\n\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements: Element[]) {\n elements.forEach((element) => {\n const scrollableElement = getScrollableElement(element);\n\n scrollableElement?.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates\n ? Array.from(scrollCoordinates.values()).reduce(\n (acc, coordinates) => add(acc, coordinates),\n defaultCoordinates\n )\n : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n", "import {useEffect, useRef} from 'react';\nimport {Coordinates, subtract} from '@dnd-kit/utilities';\n\nimport {defaultCoordinates} from '../../utilities';\n\nexport function useScrollOffsetsDelta(\n scrollOffsets: Coordinates,\n dependencies: any[] = []\n) {\n const initialScrollOffsets = useRef(null);\n\n useEffect(\n () => {\n initialScrollOffsets.current = null;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies\n );\n\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n\n return initialScrollOffsets.current\n ? subtract(scrollOffsets, initialScrollOffsets.current)\n : defaultCoordinates;\n}\n", "import {useEffect} from 'react';\nimport {canUseDOM} from '@dnd-kit/utilities';\n\nimport type {SensorDescriptor} from '../../sensors';\n\nexport function useSensorSetup(sensors: SensorDescriptor[]) {\n useEffect(\n () => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(({sensor}) => sensor.setup?.());\n\n return () => {\n for (const teardown of teardownFns) {\n teardown?.();\n }\n };\n },\n // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(({sensor}) => sensor)\n );\n}\n", "import {useMemo} from 'react';\n\nimport type {SyntheticEventName, UniqueIdentifier} from '../../types';\n\nexport type SyntheticListener = {\n eventName: SyntheticEventName;\n handler: (event: React.SyntheticEvent, id: UniqueIdentifier) => void;\n};\n\nexport type SyntheticListeners = SyntheticListener[];\n\nexport type SyntheticListenerMap = Record;\n\nexport function useSyntheticListeners(\n listeners: SyntheticListeners,\n id: UniqueIdentifier\n): SyntheticListenerMap {\n return useMemo(() => {\n return listeners.reduce(\n (acc, {eventName, handler}) => {\n acc[eventName] = (event: React.SyntheticEvent) => {\n handler(event, id);\n };\n\n return acc;\n },\n {} as SyntheticListenerMap\n );\n }, [listeners, id]);\n}\n", "import {useMemo} from 'react';\n\nimport {getWindowClientRect} from '../../utilities/rect';\n\nexport function useWindowRect(element: typeof window | null) {\n return useMemo(() => (element ? getWindowClientRect(element) : null), [\n element,\n ]);\n}\n", "import {useState} from 'react';\nimport {getWindow, useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport type {ClientRect} from '../../types';\nimport {Rect, getClientRect} from '../../utilities/rect';\nimport {isDocumentScrollingElement} from '../../utilities';\n\nimport {useResizeObserver} from './useResizeObserver';\nimport {useWindowRect} from './useWindowRect';\n\nconst defaultValue: Rect[] = [];\n\nexport function useRects(\n elements: Element[],\n measure: (element: Element) => ClientRect = getClientRect\n): ClientRect[] {\n const [firstElement] = elements;\n const windowRect = useWindowRect(\n firstElement ? getWindow(firstElement) : null\n );\n const [rects, setRects] = useState(defaultValue);\n\n function measureRects() {\n setRects(() => {\n if (!elements.length) {\n return defaultValue;\n }\n\n return elements.map((element) =>\n isDocumentScrollingElement(element)\n ? (windowRect as ClientRect)\n : new Rect(measure(element), element)\n );\n });\n }\n\n const resizeObserver = useResizeObserver({callback: measureRects});\n\n useIsomorphicLayoutEffect(() => {\n resizeObserver?.disconnect();\n measureRects();\n elements.forEach((element) => resizeObserver?.observe(element));\n }, [elements]);\n\n return rects;\n}\n", "import {isHTMLElement} from '@dnd-kit/utilities';\n\nexport function getMeasurableNode(\n node: HTMLElement | undefined | null\n): HTMLElement | null {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n const firstChild = node.children[0];\n\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n", "import {useMemo, useCallback, useState} from 'react';\nimport {isHTMLElement, useNodeRef} from '@dnd-kit/utilities';\n\nimport {useResizeObserver} from './useResizeObserver';\nimport {getMeasurableNode} from '../../utilities/nodes';\nimport type {PublicContextDescriptor} from '../../store';\nimport type {ClientRect} from '../../types';\n\ninterface Arguments {\n measure(element: HTMLElement): ClientRect;\n}\n\nexport function useDragOverlayMeasuring({\n measure,\n}: Arguments): PublicContextDescriptor['dragOverlay'] {\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(\n (entries: ResizeObserverEntry[]) => {\n for (const {target} of entries) {\n if (isHTMLElement(target)) {\n setRect((rect) => {\n const newRect = measure(target);\n\n return rect\n ? {...rect, width: newRect.width, height: newRect.height}\n : newRect;\n });\n break;\n }\n }\n },\n [measure]\n );\n const resizeObserver = useResizeObserver({callback: handleResize});\n const handleNodeChange = useCallback(\n (element) => {\n const node = getMeasurableNode(element);\n\n resizeObserver?.disconnect();\n\n if (node) {\n resizeObserver?.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n },\n [measure, resizeObserver]\n );\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n\n return useMemo(\n () => ({\n nodeRef,\n rect,\n setRef,\n }),\n [rect, nodeRef, setRef]\n );\n}\n", "import type {DeepRequired} from '@dnd-kit/utilities';\n\nimport type {DataRef} from '../../store/types';\nimport {KeyboardSensor, PointerSensor} from '../../sensors';\nimport {MeasuringStrategy, MeasuringFrequency} from '../../hooks/utilities';\nimport {\n getClientRect,\n getTransformAgnosticClientRect,\n} from '../../utilities/rect';\n\nimport type {MeasuringConfiguration} from './types';\n\nexport const defaultSensors = [\n {sensor: PointerSensor, options: {}},\n {sensor: KeyboardSensor, options: {}},\n];\n\nexport const defaultData: DataRef = {current: {}};\n\nexport const defaultMeasuringConfiguration: DeepRequired = {\n draggable: {\n measure: getTransformAgnosticClientRect,\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized,\n },\n dragOverlay: {\n measure: getClientRect,\n },\n};\n", "import type {UniqueIdentifier} from '../types';\nimport type {DroppableContainer} from './types';\n\ntype Identifier = UniqueIdentifier | null | undefined;\n\nexport class DroppableContainersMap extends Map<\n UniqueIdentifier,\n DroppableContainer\n> {\n get(id: Identifier) {\n return id != null ? super.get(id) ?? undefined : undefined;\n }\n\n toArray(): DroppableContainer[] {\n return Array.from(this.values());\n }\n\n getEnabled(): DroppableContainer[] {\n return this.toArray().filter(({disabled}) => !disabled);\n }\n\n getNodeFor(id: Identifier) {\n return this.get(id)?.node.current ?? undefined;\n }\n}\n", "import {createContext} from 'react';\n\nimport {noop} from '../utilities/other';\nimport {defaultMeasuringConfiguration} from '../components/DndContext/defaults';\nimport {DroppableContainersMap} from './constructors';\nimport type {InternalContextDescriptor, PublicContextDescriptor} from './types';\n\nexport const defaultPublicContext: PublicContextDescriptor = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: new Map(),\n droppableRects: new Map(),\n droppableContainers: new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null,\n },\n rect: null,\n setRef: noop,\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false,\n};\n\nexport const defaultInternalContext: InternalContextDescriptor = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: '',\n },\n dispatch: noop,\n draggableNodes: new Map(),\n over: null,\n measureDroppableContainers: noop,\n};\n\nexport const InternalContext = createContext(\n defaultInternalContext\n);\n\nexport const PublicContext = createContext(\n defaultPublicContext\n);\n", "import {Action, Actions} from './actions';\nimport {DroppableContainersMap} from './constructors';\nimport type {State} from './types';\n\nexport function getInitialState(): State {\n return {\n draggable: {\n active: null,\n initialCoordinates: {x: 0, y: 0},\n nodes: new Map(),\n translate: {x: 0, y: 0},\n },\n droppable: {\n containers: new DroppableContainersMap(),\n },\n };\n}\n\nexport function reducer(state: State, action: Actions): State {\n switch (action.type) {\n case Action.DragStart:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active,\n },\n };\n case Action.DragMove:\n if (state.draggable.active == null) {\n return state;\n }\n\n return {\n ...state,\n draggable: {\n ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y,\n },\n },\n };\n case Action.DragEnd:\n case Action.DragCancel:\n return {\n ...state,\n draggable: {\n ...state.draggable,\n active: null,\n initialCoordinates: {x: 0, y: 0},\n translate: {x: 0, y: 0},\n },\n };\n\n case Action.RegisterDroppable: {\n const {element} = action;\n const {id} = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n case Action.SetDroppableDisabled: {\n const {id, key, disabled} = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, {\n ...element,\n disabled,\n });\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n case Action.UnregisterDroppable: {\n const {id, key} = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n\n return {\n ...state,\n droppable: {\n ...state.droppable,\n containers,\n },\n };\n }\n\n default: {\n return state;\n }\n }\n}\n", "import {useContext, useEffect} from 'react';\nimport {\n findFirstFocusableNode,\n isKeyboardEvent,\n usePrevious,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext} from '../../../store';\n\ninterface Props {\n disabled: boolean;\n}\n\nexport function RestoreFocus({disabled}: Props) {\n const {active, activatorEvent, draggableNodes} = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active?.id);\n\n // Restore keyboard focus on the activator node\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {activatorNode, node} = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [\n activatorEvent,\n disabled,\n draggableNodes,\n previousActiveId,\n previousActivatorEvent,\n ]);\n\n return null;\n}\n", "import type {FirstArgument, Transform} from '@dnd-kit/utilities';\n\nimport type {Modifiers, Modifier} from './types';\n\nexport function applyModifiers(\n modifiers: Modifiers | undefined,\n {transform, ...args}: FirstArgument\n): Transform {\n return modifiers?.length\n ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args,\n });\n }, transform)\n : transform;\n}\n", "import {useMemo} from 'react';\nimport type {DeepRequired} from '@dnd-kit/utilities';\n\nimport {defaultMeasuringConfiguration} from '../defaults';\nimport type {MeasuringConfiguration} from '../types';\n\nexport function useMeasuringConfiguration(\n config: MeasuringConfiguration | undefined\n): DeepRequired {\n return useMemo(\n () => ({\n draggable: {\n ...defaultMeasuringConfiguration.draggable,\n ...config?.draggable,\n },\n droppable: {\n ...defaultMeasuringConfiguration.droppable,\n ...config?.droppable,\n },\n dragOverlay: {\n ...defaultMeasuringConfiguration.dragOverlay,\n ...config?.dragOverlay,\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [config?.draggable, config?.droppable, config?.dragOverlay]\n );\n}\n", "import {useRef} from 'react';\nimport {useIsomorphicLayoutEffect} from '@dnd-kit/utilities';\n\nimport {getRectDelta} from '../../../utilities/rect';\nimport {getFirstScrollableAncestor} from '../../../utilities/scroll';\nimport type {ClientRect} from '../../../types';\nimport type {DraggableNode} from '../../../store';\nimport type {MeasuringFunction} from '../types';\n\ninterface Options {\n activeNode: DraggableNode | null | undefined;\n config: boolean | {x: boolean; y: boolean} | undefined;\n initialRect: ClientRect | null;\n measure: MeasuringFunction;\n}\n\nexport function useLayoutShiftScrollCompensation({\n activeNode,\n measure,\n initialRect,\n config = true,\n}: Options) {\n const initialized = useRef(false);\n const {x, y} = typeof config === 'boolean' ? {x: config, y: config} : config;\n\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n }\n\n // Get the most up to date node ref for the active draggable\n const node = activeNode?.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n }\n\n // Only perform layout shift scroll compensation once\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x,\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n", "import React, {\n memo,\n createContext,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react';\nimport {unstable_batchedUpdates} from 'react-dom';\nimport {\n add,\n getEventCoordinates,\n getWindow,\n useLatestValue,\n useIsomorphicLayoutEffect,\n useUniqueId,\n} from '@dnd-kit/utilities';\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {\n Action,\n PublicContext,\n InternalContext,\n PublicContextDescriptor,\n InternalContextDescriptor,\n getInitialState,\n reducer,\n} from '../../store';\nimport {DndMonitorContext, useDndMonitorProvider} from '../DndMonitor';\nimport {\n useAutoScroller,\n useCachedNode,\n useCombineActivators,\n useDragOverlayMeasuring,\n useDroppableMeasuring,\n useInitialRect,\n useRect,\n useRectDelta,\n useRects,\n useScrollableAncestors,\n useScrollOffsets,\n useScrollOffsetsDelta,\n useSensorSetup,\n useWindowRect,\n} from '../../hooks/utilities';\nimport type {AutoScrollOptions, SyntheticListener} from '../../hooks/utilities';\nimport type {\n Sensor,\n SensorContext,\n SensorDescriptor,\n SensorActivatorFunction,\n SensorInstance,\n} from '../../sensors';\nimport {\n adjustScale,\n CollisionDetection,\n defaultCoordinates,\n getAdjustedRect,\n getFirstCollision,\n rectIntersection,\n} from '../../utilities';\nimport {applyModifiers, Modifiers} from '../../modifiers';\nimport type {Active, Over} from '../../store/types';\nimport type {\n DragStartEvent,\n DragCancelEvent,\n DragEndEvent,\n DragMoveEvent,\n DragOverEvent,\n UniqueIdentifier,\n DragPendingEvent,\n DragAbortEvent,\n} from '../../types';\nimport {\n Accessibility,\n Announcements,\n RestoreFocus,\n ScreenReaderInstructions,\n} from '../Accessibility';\n\nimport {defaultData, defaultSensors} from './defaults';\nimport {\n useLayoutShiftScrollCompensation,\n useMeasuringConfiguration,\n} from './hooks';\nimport type {MeasuringConfiguration} from './types';\n\nexport interface Props {\n id?: string;\n accessibility?: {\n announcements?: Announcements;\n container?: Element;\n restoreFocus?: boolean;\n screenReaderInstructions?: ScreenReaderInstructions;\n };\n autoScroll?: boolean | AutoScrollOptions;\n cancelDrop?: CancelDrop;\n children?: React.ReactNode;\n collisionDetection?: CollisionDetection;\n measuring?: MeasuringConfiguration;\n modifiers?: Modifiers;\n sensors?: SensorDescriptor[];\n onDragAbort?(event: DragAbortEvent): void;\n onDragPending?(event: DragPendingEvent): void;\n onDragStart?(event: DragStartEvent): void;\n onDragMove?(event: DragMoveEvent): void;\n onDragOver?(event: DragOverEvent): void;\n onDragEnd?(event: DragEndEvent): void;\n onDragCancel?(event: DragCancelEvent): void;\n}\n\nexport interface CancelDropArguments extends DragEndEvent {}\n\nexport type CancelDrop = (\n args: CancelDropArguments\n) => boolean | Promise;\n\ninterface DndEvent extends Event {\n dndKit?: {\n capturedBy: Sensor;\n };\n}\n\nexport const ActiveDraggableContext = createContext({\n ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1,\n});\n\nenum Status {\n Uninitialized,\n Initializing,\n Initialized,\n}\n\nexport const DndContext = memo(function DndContext({\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n}: Props) {\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] =\n useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {active: activeId, nodes: draggableNodes, translate},\n droppable: {containers: droppableContainers},\n } = state;\n const node = activeId != null ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null,\n });\n const active = useMemo(\n () =>\n activeId != null\n ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: node?.data ?? defaultData,\n rect: activeRects,\n }\n : null,\n [activeId, node]\n );\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(`DndDescribedBy`, id);\n const enabledDroppableContainers = useMemo(\n () => droppableContainers.getEnabled(),\n [droppableContainers]\n );\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {droppableRects, measureDroppableContainers, measuringScheduled} =\n useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable,\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(\n () => (activatorEvent ? getEventCoordinates(activatorEvent) : null),\n [activatorEvent]\n );\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(\n activeNode,\n measuringConfiguration.draggable.measure\n );\n\n useLayoutShiftScrollCompensation({\n activeNode: activeId != null ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure,\n });\n\n const activeNodeRect = useRect(\n activeNode,\n measuringConfiguration.draggable.measure,\n initialActiveNodeRect\n );\n const containerNodeRect = useRect(\n activeNode ? activeNode.parentElement : null\n );\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null,\n });\n const overNode = droppableContainers.getNodeFor(\n sensorContext.current.over?.id\n );\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure,\n });\n\n // Use the rect of the drag overlay if it is mounted\n const draggingNode = dragOverlay.nodeRef.current ?? activeNode;\n const draggingNodeRect = isInitialized\n ? dragOverlay.rect ?? activeNodeRect\n : null;\n const usesDragOverlay = Boolean(\n dragOverlay.nodeRef.current && dragOverlay.rect\n );\n // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect);\n\n // Get the window rect of the dragging node\n const windowRect = useWindowRect(\n draggingNode ? getWindow(draggingNode) : null\n );\n\n // Get scrollable ancestors of the dragging node\n const scrollableAncestors = useScrollableAncestors(\n isInitialized ? overNode ?? activeNode : null\n );\n const scrollableAncestorRects = useRects(scrollableAncestors);\n\n // Apply modifiers\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1,\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect,\n });\n\n const pointerCoordinates = activationCoordinates\n ? add(activationCoordinates, translate)\n : null;\n\n const scrollOffsets = useScrollOffsets(scrollableAncestors);\n // Represents the scroll delta since dragging was initiated\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets);\n // Represents the scroll delta since the last time the active node rect was measured\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [\n activeNodeRect,\n ]);\n\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n\n const collisionRect = draggingNodeRect\n ? getAdjustedRect(draggingNodeRect, modifiedTranslate)\n : null;\n\n const collisions =\n active && collisionRect\n ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates,\n })\n : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null);\n\n // When there is no drag overlay used, we need to account for the\n // window scroll delta\n const appliedTranslate = usesDragOverlay\n ? modifiedTranslate\n : add(modifiedTranslate, activeNodeScrollDelta);\n\n const transform = adjustScale(\n appliedTranslate,\n over?.rect ?? null,\n activeNodeRect\n );\n\n const activeSensorRef = useRef(null);\n const instantiateSensor = useCallback(\n (\n event: React.SyntheticEvent,\n {sensor: Sensor, options}: SensorDescriptor\n ) => {\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n onAbort(id) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {onDragAbort} = latestProps.current;\n const event: DragAbortEvent = {id};\n onDragAbort?.(event);\n dispatchMonitorEvent({type: 'onDragAbort', event});\n },\n onPending(id, constraint, initialCoordinates, offset) {\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {onDragPending} = latestProps.current;\n const event: DragPendingEvent = {\n id,\n constraint,\n initialCoordinates,\n offset,\n };\n\n onDragPending?.(event);\n dispatchMonitorEvent({type: 'onDragPending', event});\n },\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {onDragStart} = latestProps.current;\n const event: DragStartEvent = {\n activatorEvent,\n active: {id, data: draggableNode.data, rect: activeRects},\n };\n\n unstable_batchedUpdates(() => {\n onDragStart?.(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id,\n });\n dispatchMonitorEvent({type: 'onDragStart', event});\n setActiveSensor(activeSensorRef.current);\n setActivatorEvent(activatorEvent);\n });\n },\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates,\n });\n },\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel),\n });\n\n activeSensorRef.current = sensorInstance;\n\n function createHandler(type: Action.DragEnd | Action.DragCancel) {\n return async function handler() {\n const {active, collisions, over, scrollAdjustedTranslate} =\n sensorContext.current;\n let event: DragEndEvent | null = null;\n\n if (active && scrollAdjustedTranslate) {\n const {cancelDrop} = latestProps.current;\n\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over,\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n\n unstable_batchedUpdates(() => {\n dispatch({type});\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n activeSensorRef.current = null;\n\n const eventName =\n type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n\n handler?.(event);\n dispatchMonitorEvent({type: eventName, event});\n }\n });\n };\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]\n );\n\n const bindActivatorToSensorInstantiator = useCallback(\n (\n handler: SensorActivatorFunction,\n sensor: SensorDescriptor\n ): SyntheticListener['handler'] => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent as DndEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if (\n // Another sensor is already instantiating\n activeRef.current !== null ||\n // No active draggable\n !activeDraggableNode ||\n // Event has already been captured\n nativeEvent.dndKit ||\n nativeEvent.defaultPrevented\n ) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode,\n };\n const shouldActivate = handler(\n event,\n sensor.options,\n activationContext\n );\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor,\n };\n\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n },\n [draggableNodes, instantiateSensor]\n );\n\n const activators = useCombineActivators(\n sensors,\n bindActivatorToSensorInstantiator\n );\n\n useSensorSetup(sensors);\n\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n\n useEffect(\n () => {\n const {onDragMove} = latestProps.current;\n const {active, activatorEvent, collisions, over} = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event: DragMoveEvent = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y,\n },\n over,\n };\n\n unstable_batchedUpdates(() => {\n onDragMove?.(event);\n dispatchMonitorEvent({type: 'onDragMove', event});\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]\n );\n\n useEffect(\n () => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate,\n } = sensorContext.current;\n\n if (\n !active ||\n activeRef.current == null ||\n !activatorEvent ||\n !scrollAdjustedTranslate\n ) {\n return;\n }\n\n const {onDragOver} = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over =\n overContainer && overContainer.rect.current\n ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled,\n }\n : null;\n const event: DragOverEvent = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y,\n },\n over,\n };\n\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver?.(event);\n dispatchMonitorEvent({type: 'onDragOver', event});\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]\n );\n\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate,\n };\n\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect,\n };\n }, [\n active,\n activeNode,\n collisions,\n collisionRect,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate,\n ]);\n\n useAutoScroller({\n ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n });\n\n const publicContext = useMemo(() => {\n const context: PublicContextDescriptor = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect,\n };\n\n return context;\n }, [\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect,\n ]);\n\n const internalContext = useMemo(() => {\n const context: InternalContextDescriptor = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById,\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers,\n };\n\n return context;\n }, [\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n dispatch,\n draggableDescribedById,\n draggableNodes,\n over,\n measureDroppableContainers,\n ]);\n\n return (\n \n \n \n \n {children}\n \n \n \n \n \n \n );\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll =\n activeSensor?.autoScrollEnabled === false;\n const autoScrollGloballyDisabled =\n typeof autoScroll === 'object'\n ? autoScroll.enabled === false\n : autoScroll === false;\n const enabled =\n isInitialized &&\n !activeSensorDisablesAutoscroll &&\n !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return {\n ...autoScroll,\n enabled,\n };\n }\n\n return {enabled};\n }\n});\n", "import {createContext, useContext, useMemo} from 'react';\nimport {\n Transform,\n useNodeRef,\n useIsomorphicLayoutEffect,\n useLatestValue,\n useUniqueId,\n} from '@dnd-kit/utilities';\n\nimport {InternalContext, Data} from '../store';\nimport type {UniqueIdentifier} from '../types';\nimport {ActiveDraggableContext} from '../components/DndContext';\nimport {useSyntheticListeners, SyntheticListenerMap} from './utilities';\n\nexport interface UseDraggableArguments {\n id: UniqueIdentifier;\n data?: Data;\n disabled?: boolean;\n attributes?: {\n role?: string;\n roleDescription?: string;\n tabIndex?: number;\n };\n}\n\nexport interface DraggableAttributes {\n role: string;\n tabIndex: number;\n 'aria-disabled': boolean;\n 'aria-pressed': boolean | undefined;\n 'aria-roledescription': string;\n 'aria-describedby': string;\n}\n\nexport type DraggableSyntheticListeners = SyntheticListenerMap | undefined;\n\nconst NullContext = createContext(null);\n\nconst defaultRole = 'button';\n\nconst ID_PREFIX = 'Draggable';\n\nexport function useDraggable({\n id,\n data,\n disabled = false,\n attributes,\n}: UseDraggableArguments) {\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over,\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0,\n } = attributes ?? {};\n const isDragging = active?.id === id;\n const transform: Transform | null = useContext(\n isDragging ? ActiveDraggableContext : NullContext\n );\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n\n useIsomorphicLayoutEffect(\n () => {\n draggableNodes.set(id, {id, key, node, activatorNode, data: dataRef});\n\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]\n );\n\n const memoizedAttributes: DraggableAttributes = useMemo(\n () => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable,\n }),\n [\n disabled,\n role,\n tabIndex,\n isDragging,\n roleDescription,\n ariaDescribedById.draggable,\n ]\n );\n\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n };\n}\n", "import {ContextType, useContext} from 'react';\nimport {PublicContext} from '../store';\n\nexport function useDndContext() {\n return useContext(PublicContext);\n}\n\nexport type UseDndContextReturnValue = ContextType;\n", "import {useCallback, useContext, useEffect, useRef} from 'react';\nimport {useLatestValue, useNodeRef, useUniqueId} from '@dnd-kit/utilities';\n\nimport {InternalContext, Action, Data} from '../store';\nimport type {ClientRect, UniqueIdentifier} from '../types';\n\nimport {useResizeObserver} from './utilities';\n\ninterface ResizeObserverConfig {\n /** Whether the ResizeObserver should be disabled entirely */\n disabled?: boolean;\n /** Resize events may affect the layout and position of other droppable containers.\n * Specify an array of `UniqueIdentifier` of droppable containers that should also be re-measured\n * when this droppable container resizes. Specifying an empty array re-measures all droppable containers.\n */\n updateMeasurementsFor?: UniqueIdentifier[];\n /** Represents the debounce timeout between when resize events are observed and when elements are re-measured */\n timeout?: number;\n}\n\nexport interface UseDroppableArguments {\n id: UniqueIdentifier;\n disabled?: boolean;\n data?: Data;\n resizeObserverConfig?: ResizeObserverConfig;\n}\n\nconst ID_PREFIX = 'Droppable';\n\nconst defaultResizeObserverConfig = {\n timeout: 25,\n};\n\nexport function useDroppable({\n data,\n disabled = false,\n id,\n resizeObserverConfig,\n}: UseDroppableArguments) {\n const key = useUniqueId(ID_PREFIX);\n const {active, dispatch, over, measureDroppableContainers} =\n useContext(InternalContext);\n const previous = useRef({disabled});\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout,\n } = {\n ...defaultResizeObserverConfig,\n ...resizeObserverConfig,\n };\n const ids = useLatestValue(updateMeasurementsFor ?? id);\n const handleResize = useCallback(\n () => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(\n Array.isArray(ids.current) ? ids.current : [ids.current]\n );\n callbackId.current = null;\n }, resizeObserverTimeout);\n },\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]\n );\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active,\n });\n const handleNodeChange = useCallback(\n (newElement: HTMLElement | null, previousElement: HTMLElement | null) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n },\n [resizeObserver]\n );\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n\n useEffect(\n () => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef,\n },\n });\n\n return () =>\n dispatch({\n type: Action.UnregisterDroppable,\n key,\n id,\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]\n );\n\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled,\n });\n\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n\n return {\n active,\n rect,\n isOver: over?.id === id,\n node: nodeRef,\n over,\n setNodeRef,\n };\n}\n", "import React, {cloneElement, useState} from 'react';\nimport {useIsomorphicLayoutEffect, usePrevious} from '@dnd-kit/utilities';\n\nimport type {UniqueIdentifier} from '../../../../types';\n\nexport type Animation = (\n key: UniqueIdentifier,\n node: HTMLElement\n) => Promise | void;\n\nexport interface Props {\n animation: Animation;\n children: React.ReactElement | null;\n}\n\nexport function AnimationManager({animation, children}: Props) {\n const [\n clonedChildren,\n setClonedChildren,\n ] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren?.key;\n const id = clonedChildren?.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n\n return (\n <>\n {children}\n {clonedChildren ? cloneElement(clonedChildren, {ref: setElement}) : null}\n \n );\n}\n", "import React from 'react';\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {InternalContext, defaultInternalContext} from '../../../../store';\nimport {ActiveDraggableContext} from '../../../DndContext';\n\ninterface Props {\n children: React.ReactNode;\n}\n\nconst defaultTransform: Transform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1,\n};\n\nexport function NullifiedContextProvider({children}: Props) {\n return (\n \n \n {children}\n \n \n );\n}\n", "import React, {forwardRef} from 'react';\nimport {CSS, isKeyboardEvent} from '@dnd-kit/utilities';\n\nimport type {Transform} from '@dnd-kit/utilities';\n\nimport {getRelativeTransformOrigin} from '../../../../utilities';\nimport type {ClientRect, UniqueIdentifier} from '../../../../types';\n\ntype TransitionGetter = (\n activatorEvent: Event | null\n) => React.CSSProperties['transition'] | undefined;\n\nexport interface Props {\n as: keyof JSX.IntrinsicElements;\n activatorEvent: Event | null;\n adjustScale?: boolean;\n children?: React.ReactNode;\n className?: string;\n id: UniqueIdentifier;\n rect: ClientRect | null;\n style?: React.CSSProperties;\n transition?: string | TransitionGetter;\n transform: Transform;\n}\n\nconst baseStyles: React.CSSProperties = {\n position: 'fixed',\n touchAction: 'none',\n};\n\nconst defaultTransition: TransitionGetter = (activatorEvent) => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nexport const PositionedOverlay = forwardRef(\n (\n {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition,\n },\n ref\n ) => {\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale\n ? transform\n : {\n ...transform,\n scaleX: 1,\n scaleY: 1,\n };\n const styles: React.CSSProperties | undefined = {\n ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin:\n adjustScale && activatorEvent\n ? getRelativeTransformOrigin(\n activatorEvent as MouseEvent | KeyboardEvent | TouchEvent,\n rect\n )\n : undefined,\n transition:\n typeof transition === 'function'\n ? transition(activatorEvent)\n : transition,\n ...style,\n };\n\n return React.createElement(\n as,\n {\n className,\n style: styles,\n ref,\n },\n children\n );\n }\n);\n", "import {CSS, useEvent, getWindow} from '@dnd-kit/utilities';\nimport type {DeepRequired, Transform} from '@dnd-kit/utilities';\n\nimport type {\n Active,\n DraggableNode,\n DraggableNodes,\n DroppableContainers,\n} from '../../../store';\nimport type {ClientRect, UniqueIdentifier} from '../../../types';\nimport {getMeasurableNode} from '../../../utilities/nodes';\nimport {scrollIntoViewIfNeeded} from '../../../utilities/scroll';\nimport {parseTransform} from '../../../utilities/transform';\nimport type {MeasuringConfiguration} from '../../DndContext';\nimport type {Animation} from '../components';\n\ninterface SharedParameters {\n active: {\n id: UniqueIdentifier;\n data: Active['data'];\n node: HTMLElement;\n rect: ClientRect;\n };\n dragOverlay: {\n node: HTMLElement;\n rect: ClientRect;\n };\n draggableNodes: DraggableNodes;\n droppableContainers: DroppableContainers;\n measuringConfiguration: DeepRequired;\n}\n\nexport interface KeyframeResolverParameters extends SharedParameters {\n transform: {\n initial: Transform;\n final: Transform;\n };\n}\n\nexport type KeyframeResolver = (\n parameters: KeyframeResolverParameters\n) => Keyframe[];\n\nexport interface DropAnimationOptions {\n keyframes?: KeyframeResolver;\n duration?: number;\n easing?: string;\n sideEffects?: DropAnimationSideEffects | null;\n}\n\nexport type DropAnimation = DropAnimationFunction | DropAnimationOptions;\n\ninterface Arguments {\n draggableNodes: DraggableNodes;\n droppableContainers: DroppableContainers;\n measuringConfiguration: DeepRequired;\n config?: DropAnimation | null;\n}\n\nexport interface DropAnimationFunctionArguments extends SharedParameters {\n transform: Transform;\n}\n\nexport type DropAnimationFunction = (\n args: DropAnimationFunctionArguments\n) => Promise | void;\n\ntype CleanupFunction = () => void;\n\nexport interface DropAnimationSideEffectsParameters extends SharedParameters {}\n\nexport type DropAnimationSideEffects = (\n parameters: DropAnimationSideEffectsParameters\n) => CleanupFunction | void;\n\ntype ExtractStringProperties = {\n [K in keyof T]?: T[K] extends string ? string : never;\n};\n\ntype Styles = ExtractStringProperties;\n\ninterface DefaultDropAnimationSideEffectsOptions {\n className?: {\n active?: string;\n dragOverlay?: string;\n };\n styles?: {\n active?: Styles;\n dragOverlay?: Styles;\n };\n}\n\nexport const defaultDropAnimationSideEffects = (\n options: DefaultDropAnimationSideEffectsOptions\n): DropAnimationSideEffects => ({active, dragOverlay}) => {\n const originalStyles: Record = {};\n const {styles, className} = options;\n\n if (styles?.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles?.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className?.active) {\n active.node.classList.add(className.active);\n }\n\n if (className?.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className?.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver: KeyframeResolver = ({\n transform: {initial, final},\n}) => [\n {\n transform: CSS.Transform.toString(initial),\n },\n {\n transform: CSS.Transform.toString(final),\n },\n];\n\nexport const defaultDropAnimationConfiguration: Required = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0',\n },\n },\n }),\n};\n\nexport function useDropAnimation({\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration,\n}: Arguments) {\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable: DraggableNode | undefined = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n const {transform} = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation: DropAnimationFunction =\n typeof config === 'function'\n ? config\n : createDefaultDropAnimation(config);\n\n scrollIntoViewIfNeeded(\n activeNode,\n measuringConfiguration.draggable.measure\n );\n\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode),\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode),\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform,\n });\n });\n}\n\nfunction createDefaultDropAnimation(\n options: DropAnimationOptions | undefined\n): DropAnimationFunction {\n const {duration, easing, sideEffects, keyframes} = {\n ...defaultDropAnimationConfiguration,\n ...options,\n };\n\n return ({active, dragOverlay, transform, ...rest}) => {\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top,\n };\n\n const scale = {\n scaleX:\n transform.scaleX !== 1\n ? (active.rect.width * transform.scaleX) / dragOverlay.rect.width\n : 1,\n scaleY:\n transform.scaleY !== 1\n ? (active.rect.height * transform.scaleY) / dragOverlay.rect.height\n : 1,\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale,\n };\n\n const animationKeyframes = keyframes({\n ...rest,\n active,\n dragOverlay,\n transform: {initial: transform, final: finalTransform},\n });\n\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects?.({active, dragOverlay, ...rest});\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards',\n });\n\n return new Promise((resolve) => {\n animation.onfinish = () => {\n cleanup?.();\n resolve();\n };\n });\n };\n}\n", "import {useMemo} from 'react';\n\nimport type {UniqueIdentifier} from '../../../types';\n\nlet key = 0;\n\nexport function useKey(id: UniqueIdentifier | undefined) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n", "import React, {useContext} from 'react';\n\nimport {applyModifiers, Modifiers} from '../../modifiers';\nimport {ActiveDraggableContext} from '../DndContext';\nimport {useDndContext} from '../../hooks';\nimport {useInitialValue} from '../../hooks/utilities';\n\nimport {\n AnimationManager,\n NullifiedContextProvider,\n PositionedOverlay,\n} from './components';\nimport type {PositionedOverlayProps} from './components';\n\nimport {useDropAnimation, useKey} from './hooks';\nimport type {DropAnimation} from './hooks';\n\nexport interface Props\n extends Pick<\n PositionedOverlayProps,\n 'adjustScale' | 'children' | 'className' | 'style' | 'transition'\n > {\n dropAnimation?: DropAnimation | null | undefined;\n modifiers?: Modifiers;\n wrapperElement?: keyof JSX.IntrinsicElements;\n zIndex?: number;\n}\n\nexport const DragOverlay = React.memo(\n ({\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999,\n }: Props) => {\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect,\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active?.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect,\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration,\n });\n // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n const ref = initialRect ? dragOverlay.setRef : undefined;\n\n return (\n \n \n {active && key ? (\n \n {children}\n \n ) : null}\n \n \n );\n }\n);\n"], - "mappings": "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", - "names": ["hiddenStyles", "display", "HiddenText", "id", "value", "React", "style", "LiveRegion", "announcement", "ariaLiveType", "visuallyHidden", "position", "top", "left", "width", "height", "margin", "border", "padding", "overflow", "clip", "clipPath", "whiteSpace", "role", "useAnnouncement", "setAnnouncement", "useState", "announce", "useCallback", "DndMonitorContext", "createContext", "useDndMonitor", "listener", "registerListener", "useContext", "useEffect", "Error", "unsubscribe", "useDndMonitorProvider", "listeners", "useState", "Set", "useCallback", "add", "delete", "dispatch", "type", "event", "forEach", "defaultScreenReaderInstructions", "draggable", "defaultAnnouncements", "onDragStart", "active", "id", "onDragOver", "over", "onDragEnd", "onDragCancel", "Accessibility", "announcements", "container", "hiddenTextDescribedById", "screenReaderInstructions", "announce", "announcement", "useAnnouncement", "liveRegionId", "useUniqueId", "mounted", "setMounted", "useMemo", "onDragMove", "markup", "React", "HiddenText", "value", "LiveRegion", "createPortal", "Action", "noop", "useSensor", "sensor", "options", "useSensors", "sensors", "filter", "defaultCoordinates", "Object", "freeze", "x", "y", "distanceBetween", "p1", "p2", "Math", "sqrt", "pow", "getRelativeTransformOrigin", "rect", "eventCoordinates", "getEventCoordinates", "transformOrigin", "left", "width", "top", "height", "sortCollisionsAsc", "data", "a", "b", "sortCollisionsDesc", "cornersOfRectangle", "getFirstCollision", "collisions", "property", "length", "firstCollision", "centerOfRectangle", "closestCenter", "collisionRect", "droppableRects", "droppableContainers", "centerRect", "droppableContainer", "get", "distBetween", "push", "sort", "closestCorners", "corners", "rectCorners", "distances", "reduce", "accumulator", "corner", "index", "effectiveDistance", "Number", "toFixed", "getIntersectionRatio", "entry", "target", "max", "right", "min", "bottom", "targetArea", "entryArea", "intersectionArea", "intersectionRatio", "rectIntersection", "isPointWithinRect", "point", "pointerWithin", "pointerCoordinates", "adjustScale", "transform", "rect1", "rect2", "scaleX", "scaleY", "getRectDelta", "createRectAdjustmentFn", "modifier", "adjustClientRect", "adjustments", "acc", "adjustment", "getAdjustedRect", "parseTransform", "startsWith", "transformArray", "slice", "split", "inverseTransform", "parsedTransform", "translateX", "translateY", "parseFloat", "indexOf", "w", "h", "defaultOptions", "ignoreTransform", "getClientRect", "element", "getBoundingClientRect", "getWindow", "getComputedStyle", "getTransformAgnosticClientRect", "getWindowClientRect", "innerWidth", "innerHeight", "isFixed", "node", "computedStyle", "position", "isScrollable", "overflowRegex", "properties", "some", "test", "getScrollableAncestors", "limit", "scrollParents", "findScrollableAncestors", "isDocument", "scrollingElement", "includes", "isHTMLElement", "isSVGElement", "parentNode", "getFirstScrollableAncestor", "firstScrollableAncestor", "getScrollableElement", "canUseDOM", "isWindow", "isNode", "getOwnerDocument", "window", "getScrollXCoordinate", "scrollX", "scrollLeft", "getScrollYCoordinate", "scrollY", "scrollTop", "getScrollCoordinates", "Direction", "isDocumentScrollingElement", "document", "getScrollPosition", "scrollingContainer", "minScroll", "dimensions", "clientHeight", "clientWidth", "maxScroll", "scrollWidth", "scrollHeight", "isTop", "isLeft", "isBottom", "isRight", "defaultThreshold", "getScrollDirectionAndSpeed", "scrollContainer", "scrollContainerRect", "acceleration", "thresholdPercentage", "direction", "speed", "threshold", "Backward", "abs", "Forward", "getScrollElementRect", "getScrollOffsets", "scrollableAncestors", "getScrollXOffset", "getScrollYOffset", "scrollIntoViewIfNeeded", "measure", "scrollIntoView", "block", "inline", "Rect", "constructor", "scrollOffsets", "axis", "keys", "getScrollOffset", "key", "defineProperty", "currentOffsets", "scrollOffsetsDeltla", "enumerable", "Listeners", "removeAll", "removeEventListener", "eventName", "handler", "addEventListener", "getEventListenerTarget", "EventTarget", "hasExceededDistance", "delta", "measurement", "dx", "dy", "EventName", "preventDefault", "stopPropagation", "KeyboardCode", "defaultKeyboardCodes", "start", "Space", "Enter", "cancel", "Esc", "end", "Tab", "defaultKeyboardCoordinateGetter", "currentCoordinates", "code", "Right", "Left", "Down", "Up", "undefined", "KeyboardSensor", "props", "autoScrollEnabled", "referenceCoordinates", "windowListeners", "handleKeyDown", "bind", "handleCancel", "attach", "handleStart", "Resize", "VisibilityChange", "setTimeout", "Keydown", "activeNode", "onStart", "current", "isKeyboardEvent", "context", "keyboardCodes", "coordinateGetter", "scrollBehavior", "handleEnd", "newCoordinates", "coordinatesDelta", "getCoordinatesDelta", "scrollDelta", "scrollElementRect", "clampedCoordinates", "canScrollX", "canScrollY", "newScrollCoordinates", "canScrollToNewCoordinates", "scrollTo", "behavior", "scrollBy", "handleMove", "getAdjustedCoordinates", "coordinates", "onMove", "onEnd", "detach", "onCancel", "activators", "onActivation", "nativeEvent", "activator", "activatorNode", "isDistanceConstraint", "constraint", "Boolean", "isDelayConstraint", "AbstractPointerSensor", "events", "listenerTarget", "activated", "initialCoordinates", "timeoutId", "documentListeners", "handleKeydown", "removeTextSelection", "activationConstraint", "bypassActivationConstraint", "move", "name", "passive", "DragStart", "ContextMenu", "delay", "handlePending", "clearTimeout", "offset", "onPending", "Click", "capture", "SelectionChange", "tolerance", "distance", "cancelable", "onAbort", "getSelection", "removeAllRanges", "PointerSensor", "isPrimary", "button", "MouseButton", "MouseSensor", "RightClick", "TouchSensor", "setup", "teardown", "touches", "AutoScrollActivator", "TraversalOrder", "useAutoScroller", "Pointer", "canScroll", "draggingRect", "enabled", "interval", "order", "TreeOrder", "scrollableAncestorRects", "scrollIntent", "useScrollIntent", "disabled", "setAutoScrollInterval", "clearAutoScrollInterval", "useInterval", "scrollSpeed", "useRef", "scrollDirection", "DraggableRect", "scrollContainerRef", "autoScroll", "sortedScrollableAncestors", "reverse", "JSON", "stringify", "defaultScrollIntent", "previousDelta", "usePrevious", "useLazyMemo", "previousIntent", "sign", "useCachedNode", "draggableNodes", "draggableNode", "cachedNode", "useCombineActivators", "getSyntheticHandler", "Sensor", "sensorActivators", "map", "MeasuringStrategy", "MeasuringFrequency", "defaultValue", "Map", "useDroppableMeasuring", "containers", "dragging", "dependencies", "config", "queue", "setQueue", "frequency", "strategy", "containersRef", "isDisabled", "disabledRef", "useLatestValue", "measureDroppableContainers", "ids", "concat", "previousValue", "set", "measuringScheduled", "Always", "BeforeDragging", "useInitialValue", "computeFn", "useInitialRect", "useMutationObserver", "callback", "handleMutations", "useEvent", "mutationObserver", "MutationObserver", "disconnect", "useResizeObserver", "handleResize", "resizeObserver", "ResizeObserver", "defaultMeasure", "useRect", "fallbackRect", "setRect", "measureRect", "currentRect", "isConnected", "newRect", "records", "record", "HTMLElement", "contains", "useIsomorphicLayoutEffect", "observe", "body", "childList", "subtree", "useRectDelta", "initialRect", "useScrollableAncestors", "previousNode", "ancestors", "useScrollOffsets", "elements", "scrollCoordinates", "setScrollCoordinates", "prevElements", "handleScroll", "previousElements", "cleanup", "entries", "scrollableElement", "Array", "from", "values", "useScrollOffsetsDelta", "initialScrollOffsets", "hasScrollOffsets", "subtract", "useSensorSetup", "teardownFns", "useSyntheticListeners", "useWindowRect", "useRects", "firstElement", "windowRect", "rects", "setRects", "measureRects", "getMeasurableNode", "children", "firstChild", "useDragOverlayMeasuring", "handleNodeChange", "nodeRef", "setRef", "useNodeRef", "defaultSensors", "defaultData", "defaultMeasuringConfiguration", "droppable", "WhileDragging", "Optimized", "dragOverlay", "DroppableContainersMap", "toArray", "getEnabled", "getNodeFor", "defaultPublicContext", "activatorEvent", "activeNodeRect", "containerNodeRect", "measuringConfiguration", "defaultInternalContext", "ariaDescribedById", "InternalContext", "PublicContext", "getInitialState", "nodes", "translate", "reducer", "state", "action", "DragMove", "DragEnd", "DragCancel", "RegisterDroppable", "SetDroppableDisabled", "UnregisterDroppable", "RestoreFocus", "previousActivatorEvent", "previousActiveId", "activeElement", "requestAnimationFrame", "focusableNode", "findFirstFocusableNode", "focus", "applyModifiers", "modifiers", "args", "useMeasuringConfiguration", "useLayoutShiftScrollCompensation", "initialized", "rectDelta", "ActiveDraggableContext", "Status", "DndContext", "memo", "accessibility", "collisionDetection", "measuring", "store", "useReducer", "dispatchMonitorEvent", "registerMonitorListener", "status", "setStatus", "Uninitialized", "isInitialized", "Initialized", "activeId", "activeRects", "initial", "translated", "activeRef", "activeSensor", "setActiveSensor", "setActivatorEvent", "latestProps", "draggableDescribedById", "enabledDroppableContainers", "activationCoordinates", "autoScrollOptions", "getAutoScrollerOptions", "initialActiveNodeRect", "layoutShiftCompensation", "parentElement", "sensorContext", "draggingNode", "draggingNodeRect", "scrollAdjustedTranslate", "overNode", "usesDragOverlay", "nodeRectDelta", "modifiedTranslate", "overlayNodeRect", "scrollAdjustment", "activeNodeScrollDelta", "overId", "setOver", "appliedTranslate", "activeSensorRef", "instantiateSensor", "sensorInstance", "onDragAbort", "onDragPending", "unstable_batchedUpdates", "Initializing", "createHandler", "cancelDrop", "shouldCancel", "Promise", "resolve", "bindActivatorToSensorInstantiator", "activeDraggableNode", "dndKit", "defaultPrevented", "activationContext", "shouldActivate", "capturedBy", "overContainer", "publicContext", "internalContext", "Provider", "restoreFocus", "activeSensorDisablesAutoscroll", "autoScrollGloballyDisabled", "NullContext", "defaultRole", "ID_PREFIX", "useDraggable", "attributes", "role", "roleDescription", "tabIndex", "isDragging", "setNodeRef", "setActivatorNodeRef", "dataRef", "memoizedAttributes", "useDndContext", "defaultResizeObserverConfig", "timeout", "useDroppable", "resizeObserverConfig", "previous", "resizeObserverConnected", "callbackId", "resizeObserverDisabled", "updateMeasurementsFor", "resizeObserverTimeout", "isArray", "newElement", "previousElement", "unobserve", "isOver", "AnimationManager", "animation", "clonedChildren", "setClonedChildren", "setElement", "previousChildren", "then", "cloneElement", "ref", "defaultTransform", "NullifiedContextProvider", "baseStyles", "touchAction", "defaultTransition", "isKeyboardActivator", "PositionedOverlay", "forwardRef", "as", "className", "style", "transition", "scaleAdjustedTransform", "styles", "CSS", "Transform", "toString", "createElement", "defaultDropAnimationSideEffects", "originalStyles", "getPropertyValue", "setProperty", "classList", "remove", "defaultKeyframeResolver", "final", "defaultDropAnimationConfiguration", "duration", "easing", "keyframes", "sideEffects", "opacity", "useDropAnimation", "activeDraggable", "measurableNode", "createDefaultDropAnimation", "rest", "scale", "finalTransform", "animationKeyframes", "firstKeyframe", "lastKeyframe", "animate", "fill", "onfinish", "useKey", "DragOverlay", "dropAnimation", "dropAnimationConfig", "wrapperElement", "zIndex", "modifiedTransform"] -} diff --git a/app/node_modules/.vite/deps/@dnd-kit_utilities.js b/app/node_modules/.vite/deps/@dnd-kit_utilities.js deleted file mode 100644 index 631d5eed..00000000 --- a/app/node_modules/.vite/deps/@dnd-kit_utilities.js +++ /dev/null @@ -1,56 +0,0 @@ -import { - CSS, - add, - canUseDOM, - findFirstFocusableNode, - getEventCoordinates, - getOwnerDocument, - getWindow, - hasViewportRelativeCoordinates, - isDocument, - isHTMLElement, - isKeyboardEvent, - isNode, - isSVGElement, - isTouchEvent, - isWindow, - subtract, - useCombinedRefs, - useEvent, - useInterval, - useIsomorphicLayoutEffect, - useLatestValue, - useLazyMemo, - useNodeRef, - usePrevious, - useUniqueId -} from "./chunk-YJZCGBGU.js"; -import "./chunk-WUR7D6NS.js"; -import "./chunk-G3PMV62Z.js"; -export { - CSS, - add, - canUseDOM, - findFirstFocusableNode, - getEventCoordinates, - getOwnerDocument, - getWindow, - hasViewportRelativeCoordinates, - isDocument, - isHTMLElement, - isKeyboardEvent, - isNode, - isSVGElement, - isTouchEvent, - isWindow, - subtract, - useCombinedRefs, - useEvent, - useInterval, - useIsomorphicLayoutEffect, - useLatestValue, - useLazyMemo, - useNodeRef, - usePrevious, - useUniqueId -}; diff --git a/app/node_modules/.vite/deps/@dnd-kit_utilities.js.map b/app/node_modules/.vite/deps/@dnd-kit_utilities.js.map deleted file mode 100644 index 98652118..00000000 --- a/app/node_modules/.vite/deps/@dnd-kit_utilities.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "sourcesContent": [], - "mappings": "", - "names": [] -} diff --git a/app/node_modules/.vite/deps/@radix-ui_react-avatar.js b/app/node_modules/.vite/deps/@radix-ui_react-avatar.js index adfd767a..b7eaa4bd 100644 --- a/app/node_modules/.vite/deps/@radix-ui_react-avatar.js +++ b/app/node_modules/.vite/deps/@radix-ui_react-avatar.js @@ -1,18 +1,18 @@ "use client"; import { - require_shim -} from "./chunk-TXHHHGR3.js"; + createSlot +} from "./chunk-YWBEB5PG.js"; import { useCallbackRef, useLayoutEffect2 } from "./chunk-23FVUG5N.js"; +import "./chunk-2VUH7NEY.js"; +import { + require_shim +} from "./chunk-TXHHHGR3.js"; import { require_react_dom } from "./chunk-YF4B4G2L.js"; -import { - createSlot -} from "./chunk-YWBEB5PG.js"; -import "./chunk-2VUH7NEY.js"; import { require_jsx_runtime } from "./chunk-2YVA4HRZ.js"; diff --git a/app/node_modules/.vite/deps/@radix-ui_react-dropdown-menu.js b/app/node_modules/.vite/deps/@radix-ui_react-dropdown-menu.js index a9efe5a4..630b6bd3 100644 --- a/app/node_modules/.vite/deps/@radix-ui_react-dropdown-menu.js +++ b/app/node_modules/.vite/deps/@radix-ui_react-dropdown-menu.js @@ -1,38 +1,15 @@ "use client"; import { - Presence -} from "./chunk-SMEXDMMQ.js"; -import { - Anchor, - Arrow, - Combination_default, - Content, - DismissableLayer, - FocusScope, - Portal, - Root2, - createCollection, - createPopperScope, - hideOthers, - useControllableState, - useFocusGuards, - useId -} from "./chunk-M3NXY72O.js"; -import { - Primitive, - composeEventHandlers, - createContextScope, - dispatchDiscreteCustomEvent, - useDirection -} from "./chunk-VPWBNV4W.js"; -import { - useCallbackRef + useCallbackRef, + useLayoutEffect2 } from "./chunk-23FVUG5N.js"; -import "./chunk-YF4B4G2L.js"; import { composeRefs, useComposedRefs } from "./chunk-2VUH7NEY.js"; +import { + require_react_dom +} from "./chunk-YF4B4G2L.js"; import { require_jsx_runtime } from "./chunk-2YVA4HRZ.js"; @@ -44,244 +21,179 @@ import { } from "./chunk-G3PMV62Z.js"; // node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs -var React4 = __toESM(require_react(), 1); +var React35 = __toESM(require_react(), 1); -// node_modules/@radix-ui/react-menu/dist/index.mjs -var React3 = __toESM(require_react(), 1); +// node_modules/@radix-ui/primitive/dist/index.mjs +var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); +function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) { + return function handleEvent(event) { + originalEventHandler?.(event); + if (checkForDefaultPrevented === false || !event.defaultPrevented) { + return ourEventHandler?.(event); + } + }; +} -// node_modules/@radix-ui/react-roving-focus/dist/index.mjs +// node_modules/@radix-ui/react-context/dist/index.mjs var React = __toESM(require_react(), 1); var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); -var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus"; -var EVENT_OPTIONS = { bubbles: false, cancelable: true }; -var GROUP_NAME = "RovingFocusGroup"; -var [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME); -var [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope( - GROUP_NAME, - [createCollectionScope] -); -var [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME); -var RovingFocusGroup = React.forwardRef( - (props, forwardedRef) => { - return (0, import_jsx_runtime.jsx)(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: (0, import_jsx_runtime.jsx)(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: (0, import_jsx_runtime.jsx)(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) }); - } -); -RovingFocusGroup.displayName = GROUP_NAME; -var RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => { - const { - __scopeRovingFocusGroup, - orientation, - loop = false, - dir, - currentTabStopId: currentTabStopIdProp, - defaultCurrentTabStopId, - onCurrentTabStopIdChange, - onEntryFocus, - preventScrollOnEntryFocus = false, - ...groupProps - } = props; - const ref = React.useRef(null); - const composedRefs = useComposedRefs(forwardedRef, ref); - const direction = useDirection(dir); - const [currentTabStopId, setCurrentTabStopId] = useControllableState({ - prop: currentTabStopIdProp, - defaultProp: defaultCurrentTabStopId ?? null, - onChange: onCurrentTabStopIdChange, - caller: GROUP_NAME - }); - const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false); - const handleEntryFocus = useCallbackRef(onEntryFocus); - const getItems = useCollection(__scopeRovingFocusGroup); - const isClickFocusRef = React.useRef(false); - const [focusableItemsCount, setFocusableItemsCount] = React.useState(0); - React.useEffect(() => { - const node = ref.current; - if (node) { - node.addEventListener(ENTRY_FOCUS, handleEntryFocus); - return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus); +function createContextScope(scopeName, createContextScopeDeps = []) { + let defaultContexts = []; + function createContext32(rootComponentName, defaultContext) { + const BaseContext = React.createContext(defaultContext); + const index2 = defaultContexts.length; + defaultContexts = [...defaultContexts, defaultContext]; + const Provider = (props) => { + const { scope, children, ...context } = props; + const Context = scope?.[scopeName]?.[index2] || BaseContext; + const value = React.useMemo(() => context, Object.values(context)); + return (0, import_jsx_runtime.jsx)(Context.Provider, { value, children }); + }; + Provider.displayName = rootComponentName + "Provider"; + function useContext22(consumerName, scope) { + const Context = scope?.[scopeName]?.[index2] || BaseContext; + const context = React.useContext(Context); + if (context) return context; + if (defaultContext !== void 0) return defaultContext; + throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``); } - }, [handleEntryFocus]); - return (0, import_jsx_runtime.jsx)( - RovingFocusProvider, - { - scope: __scopeRovingFocusGroup, - orientation, - dir: direction, - loop, - currentTabStopId, - onItemFocus: React.useCallback( - (tabStopId) => setCurrentTabStopId(tabStopId), - [setCurrentTabStopId] - ), - onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []), - onFocusableItemAdd: React.useCallback( - () => setFocusableItemsCount((prevCount) => prevCount + 1), - [] - ), - onFocusableItemRemove: React.useCallback( - () => setFocusableItemsCount((prevCount) => prevCount - 1), - [] - ), - children: (0, import_jsx_runtime.jsx)( - Primitive.div, - { - tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0, - "data-orientation": orientation, - ...groupProps, - ref: composedRefs, - style: { outline: "none", ...props.style }, - onMouseDown: composeEventHandlers(props.onMouseDown, () => { - isClickFocusRef.current = true; - }), - onFocus: composeEventHandlers(props.onFocus, (event) => { - const isKeyboardFocus = !isClickFocusRef.current; - if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) { - const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS); - event.currentTarget.dispatchEvent(entryFocusEvent); - if (!entryFocusEvent.defaultPrevented) { - const items = getItems().filter((item) => item.focusable); - const activeItem = items.find((item) => item.active); - const currentItem = items.find((item) => item.id === currentTabStopId); - const candidateItems = [activeItem, currentItem, ...items].filter( - Boolean - ); - const candidateNodes = candidateItems.map((item) => item.ref.current); - focusFirst(candidateNodes, preventScrollOnEntryFocus); - } - } - isClickFocusRef.current = false; - }), - onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false)) - } - ) - } - ); -}); -var ITEM_NAME = "RovingFocusGroupItem"; -var RovingFocusGroupItem = React.forwardRef( - (props, forwardedRef) => { - const { - __scopeRovingFocusGroup, - focusable = true, - active = false, - tabStopId, - children, - ...itemProps - } = props; - const autoId = useId(); - const id = tabStopId || autoId; - const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup); - const isCurrentTabStop = context.currentTabStopId === id; - const getItems = useCollection(__scopeRovingFocusGroup); - const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context; - React.useEffect(() => { - if (focusable) { - onFocusableItemAdd(); - return () => onFocusableItemRemove(); - } - }, [focusable, onFocusableItemAdd, onFocusableItemRemove]); - return (0, import_jsx_runtime.jsx)( - Collection.ItemSlot, - { - scope: __scopeRovingFocusGroup, - id, - focusable, - active, - children: (0, import_jsx_runtime.jsx)( - Primitive.span, - { - tabIndex: isCurrentTabStop ? 0 : -1, - "data-orientation": context.orientation, - ...itemProps, - ref: forwardedRef, - onMouseDown: composeEventHandlers(props.onMouseDown, (event) => { - if (!focusable) event.preventDefault(); - else context.onItemFocus(id); - }), - onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)), - onKeyDown: composeEventHandlers(props.onKeyDown, (event) => { - if (event.key === "Tab" && event.shiftKey) { - context.onItemShiftTab(); - return; - } - if (event.target !== event.currentTarget) return; - const focusIntent = getFocusIntent(event, context.orientation, context.dir); - if (focusIntent !== void 0) { - if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return; - event.preventDefault(); - const items = getItems().filter((item) => item.focusable); - let candidateNodes = items.map((item) => item.ref.current); - if (focusIntent === "last") candidateNodes.reverse(); - else if (focusIntent === "prev" || focusIntent === "next") { - if (focusIntent === "prev") candidateNodes.reverse(); - const currentIndex = candidateNodes.indexOf(event.currentTarget); - candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1); - } - setTimeout(() => focusFirst(candidateNodes)); - } - }), - children: typeof children === "function" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children - } - ) - } - ); + return [Provider, useContext22]; } -); -RovingFocusGroupItem.displayName = ITEM_NAME; -var MAP_KEY_TO_FOCUS_INTENT = { - ArrowLeft: "prev", - ArrowUp: "prev", - ArrowRight: "next", - ArrowDown: "next", - PageUp: "first", - Home: "first", - PageDown: "last", - End: "last" -}; -function getDirectionAwareKey(key, dir) { - if (dir !== "rtl") return key; - return key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key; + const createScope = () => { + const scopeContexts = defaultContexts.map((defaultContext) => { + return React.createContext(defaultContext); + }); + return function useScope(scope) { + const contexts = scope?.[scopeName] || scopeContexts; + return React.useMemo( + () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }), + [scope, contexts] + ); + }; + }; + createScope.scopeName = scopeName; + return [createContext32, composeContextScopes(createScope, ...createContextScopeDeps)]; } -function getFocusIntent(event, orientation, dir) { - const key = getDirectionAwareKey(event.key, dir); - if (orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) return void 0; - if (orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key)) return void 0; - return MAP_KEY_TO_FOCUS_INTENT[key]; +function composeContextScopes(...scopes) { + const baseScope = scopes[0]; + if (scopes.length === 1) return baseScope; + const createScope = () => { + const scopeHooks = scopes.map((createScope2) => ({ + useScope: createScope2(), + scopeName: createScope2.scopeName + })); + return function useComposedScopes(overrideScopes) { + const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => { + const scopeProps = useScope(overrideScopes); + const currentScope = scopeProps[`__scope${scopeName}`]; + return { ...nextScopes2, ...currentScope }; + }, {}); + return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]); + }; + }; + createScope.scopeName = baseScope.scopeName; + return createScope; } -function focusFirst(candidates, preventScroll = false) { - const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement; - for (const candidate of candidates) { - if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return; - candidate.focus({ preventScroll }); - if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return; - } -} -function wrapArray(array, startIndex) { - return array.map((_, index) => array[(startIndex + index) % array.length]); -} -var Root = RovingFocusGroup; -var Item = RovingFocusGroupItem; -// node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot/dist/index.mjs +// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +var React3 = __toESM(require_react(), 1); +var React22 = __toESM(require_react(), 1); + +// node_modules/@radix-ui/react-use-effect-event/dist/index.mjs var React2 = __toESM(require_react(), 1); +var useReactEffectEvent = React2[" useEffectEvent ".trim().toString()]; +var useReactInsertionEffect = React2[" useInsertionEffect ".trim().toString()]; + +// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +var useInsertionEffect = React3[" useInsertionEffect ".trim().toString()] || useLayoutEffect2; +function useControllableState({ + prop, + defaultProp, + onChange = () => { + }, + caller +}) { + const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({ + defaultProp, + onChange + }); + const isControlled = prop !== void 0; + const value = isControlled ? prop : uncontrolledProp; + if (true) { + const isControlledRef = React3.useRef(prop !== void 0); + React3.useEffect(() => { + const wasControlled = isControlledRef.current; + if (wasControlled !== isControlled) { + const from = wasControlled ? "controlled" : "uncontrolled"; + const to = isControlled ? "controlled" : "uncontrolled"; + console.warn( + `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.` + ); + } + isControlledRef.current = isControlled; + }, [isControlled, caller]); + } + const setValue = React3.useCallback( + (nextValue) => { + if (isControlled) { + const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue; + if (value2 !== prop) { + onChangeRef.current?.(value2); + } + } else { + setUncontrolledProp(nextValue); + } + }, + [isControlled, prop, setUncontrolledProp, onChangeRef] + ); + return [value, setValue]; +} +function useUncontrolledState({ + defaultProp, + onChange +}) { + const [value, setValue] = React3.useState(defaultProp); + const prevValueRef = React3.useRef(value); + const onChangeRef = React3.useRef(onChange); + useInsertionEffect(() => { + onChangeRef.current = onChange; + }, [onChange]); + React3.useEffect(() => { + if (prevValueRef.current !== value) { + onChangeRef.current?.(value); + prevValueRef.current = value; + } + }, [value, prevValueRef]); + return [value, setValue, onChangeRef]; +} +function isFunction(value) { + return typeof value === "function"; +} + +// node_modules/@radix-ui/react-primitive/dist/index.mjs +var React5 = __toESM(require_react(), 1); +var ReactDOM = __toESM(require_react_dom(), 1); + +// node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs +var React4 = __toESM(require_react(), 1); var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); function createSlot(ownerName) { const SlotClone = createSlotClone(ownerName); - const Slot22 = React2.forwardRef((props, forwardedRef) => { + const Slot22 = React4.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; - const childrenArray = React2.Children.toArray(children); + const childrenArray = React4.Children.toArray(children); const slottable = childrenArray.find(isSlottable); if (slottable) { const newElement = slottable.props.children; const newChildren = childrenArray.map((child) => { if (child === slottable) { - if (React2.Children.count(newElement) > 1) return React2.Children.only(null); - return React2.isValidElement(newElement) ? newElement.props.children : null; + if (React4.Children.count(newElement) > 1) return React4.Children.only(null); + return React4.isValidElement(newElement) ? newElement.props.children : null; } else { return child; } }); - return (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React2.isValidElement(newElement) ? React2.cloneElement(newElement, void 0, newChildren) : null }); + return (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React4.isValidElement(newElement) ? React4.cloneElement(newElement, void 0, newChildren) : null }); } return (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); }); @@ -290,33 +202,33 @@ function createSlot(ownerName) { } var Slot = createSlot("Slot"); function createSlotClone(ownerName) { - const SlotClone = React2.forwardRef((props, forwardedRef) => { + const SlotClone = React4.forwardRef((props, forwardedRef) => { const { children, ...slotProps } = props; - if (React2.isValidElement(children)) { + if (React4.isValidElement(children)) { const childrenRef = getElementRef(children); const props2 = mergeProps(slotProps, children.props); - if (children.type !== React2.Fragment) { + if (children.type !== React4.Fragment) { props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef; } - return React2.cloneElement(children, props2); + return React4.cloneElement(children, props2); } - return React2.Children.count(children) > 1 ? React2.Children.only(null) : null; + return React4.Children.count(children) > 1 ? React4.Children.only(null) : null; }); SlotClone.displayName = `${ownerName}.SlotClone`; return SlotClone; } var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable"); function createSlottable(ownerName) { - const Slottable2 = ({ children }) => { + const Slottable22 = ({ children }) => { return (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children }); }; - Slottable2.displayName = `${ownerName}.Slottable`; - Slottable2.__radixId = SLOTTABLE_IDENTIFIER; - return Slottable2; + Slottable22.displayName = `${ownerName}.Slottable`; + Slottable22.__radixId = SLOTTABLE_IDENTIFIER; + return Slottable22; } var Slottable = createSlottable("Slottable"); function isSlottable(child) { - return React2.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER; + return React4.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER; } function mergeProps(slotProps, childProps) { const overrideProps = { ...childProps }; @@ -356,8 +268,4213 @@ function getElementRef(element) { return element.props.ref || element.ref; } -// node_modules/@radix-ui/react-menu/dist/index.mjs +// node_modules/@radix-ui/react-primitive/dist/index.mjs var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); +var NODES = [ + "a", + "button", + "div", + "form", + "h2", + "h3", + "img", + "input", + "label", + "li", + "nav", + "ol", + "p", + "select", + "span", + "svg", + "ul" +]; +var Primitive = NODES.reduce((primitive, node) => { + const Slot5 = createSlot(`Primitive.${node}`); + const Node2 = React5.forwardRef((props, forwardedRef) => { + const { asChild, ...primitiveProps } = props; + const Comp = asChild ? Slot5 : node; + if (typeof window !== "undefined") { + window[/* @__PURE__ */ Symbol.for("radix-ui")] = true; + } + return (0, import_jsx_runtime3.jsx)(Comp, { ...primitiveProps, ref: forwardedRef }); + }); + Node2.displayName = `Primitive.${node}`; + return { ...primitive, [node]: Node2 }; +}, {}); +function dispatchDiscreteCustomEvent(target, event) { + if (target) ReactDOM.flushSync(() => target.dispatchEvent(event)); +} + +// node_modules/@radix-ui/react-menu/dist/index.mjs +var React34 = __toESM(require_react(), 1); + +// node_modules/@radix-ui/react-collection/dist/index.mjs +var import_react = __toESM(require_react(), 1); + +// node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs +var React6 = __toESM(require_react(), 1); +var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); +function createSlot2(ownerName) { + const SlotClone = createSlotClone2(ownerName); + const Slot22 = React6.forwardRef((props, forwardedRef) => { + const { children, ...slotProps } = props; + const childrenArray = React6.Children.toArray(children); + const slottable = childrenArray.find(isSlottable2); + if (slottable) { + const newElement = slottable.props.children; + const newChildren = childrenArray.map((child) => { + if (child === slottable) { + if (React6.Children.count(newElement) > 1) return React6.Children.only(null); + return React6.isValidElement(newElement) ? newElement.props.children : null; + } else { + return child; + } + }); + return (0, import_jsx_runtime4.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React6.isValidElement(newElement) ? React6.cloneElement(newElement, void 0, newChildren) : null }); + } + return (0, import_jsx_runtime4.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children }); + }); + Slot22.displayName = `${ownerName}.Slot`; + return Slot22; +} +var Slot2 = createSlot2("Slot"); +function createSlotClone2(ownerName) { + const SlotClone = React6.forwardRef((props, forwardedRef) => { + const { children, ...slotProps } = props; + if (React6.isValidElement(children)) { + const childrenRef = getElementRef2(children); + const props2 = mergeProps2(slotProps, children.props); + if (children.type !== React6.Fragment) { + props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef; + } + return React6.cloneElement(children, props2); + } + return React6.Children.count(children) > 1 ? React6.Children.only(null) : null; + }); + SlotClone.displayName = `${ownerName}.SlotClone`; + return SlotClone; +} +var SLOTTABLE_IDENTIFIER2 = /* @__PURE__ */ Symbol("radix.slottable"); +function createSlottable2(ownerName) { + const Slottable22 = ({ children }) => { + return (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children }); + }; + Slottable22.displayName = `${ownerName}.Slottable`; + Slottable22.__radixId = SLOTTABLE_IDENTIFIER2; + return Slottable22; +} +var Slottable2 = createSlottable2("Slottable"); +function isSlottable2(child) { + return React6.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER2; +} +function mergeProps2(slotProps, childProps) { + const overrideProps = { ...childProps }; + for (const propName in childProps) { + const slotPropValue = slotProps[propName]; + const childPropValue = childProps[propName]; + const isHandler = /^on[A-Z]/.test(propName); + if (isHandler) { + if (slotPropValue && childPropValue) { + overrideProps[propName] = (...args) => { + const result = childPropValue(...args); + slotPropValue(...args); + return result; + }; + } else if (slotPropValue) { + overrideProps[propName] = slotPropValue; + } + } else if (propName === "style") { + overrideProps[propName] = { ...slotPropValue, ...childPropValue }; + } else if (propName === "className") { + overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" "); + } + } + return { ...slotProps, ...overrideProps }; +} +function getElementRef2(element) { + let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get; + let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.ref; + } + getter = Object.getOwnPropertyDescriptor(element, "ref")?.get; + mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning; + if (mayWarn) { + return element.props.ref; + } + return element.props.ref || element.ref; +} + +// node_modules/@radix-ui/react-collection/dist/index.mjs +var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); +var import_react2 = __toESM(require_react(), 1); +var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); +function createCollection(name) { + const PROVIDER_NAME = name + "CollectionProvider"; + const [createCollectionContext, createCollectionScope3] = createContextScope(PROVIDER_NAME); + const [CollectionProviderImpl, useCollectionContext] = createCollectionContext( + PROVIDER_NAME, + { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() } + ); + const CollectionProvider = (props) => { + const { scope, children } = props; + const ref = import_react.default.useRef(null); + const itemMap = import_react.default.useRef(/* @__PURE__ */ new Map()).current; + return (0, import_jsx_runtime5.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children }); + }; + CollectionProvider.displayName = PROVIDER_NAME; + const COLLECTION_SLOT_NAME = name + "CollectionSlot"; + const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME); + const CollectionSlot = import_react.default.forwardRef( + (props, forwardedRef) => { + const { scope, children } = props; + const context = useCollectionContext(COLLECTION_SLOT_NAME, scope); + const composedRefs = useComposedRefs(forwardedRef, context.collectionRef); + return (0, import_jsx_runtime5.jsx)(CollectionSlotImpl, { ref: composedRefs, children }); + } + ); + CollectionSlot.displayName = COLLECTION_SLOT_NAME; + const ITEM_SLOT_NAME = name + "CollectionItemSlot"; + const ITEM_DATA_ATTR = "data-radix-collection-item"; + const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME); + const CollectionItemSlot = import_react.default.forwardRef( + (props, forwardedRef) => { + const { scope, children, ...itemData } = props; + const ref = import_react.default.useRef(null); + const composedRefs = useComposedRefs(forwardedRef, ref); + const context = useCollectionContext(ITEM_SLOT_NAME, scope); + import_react.default.useEffect(() => { + context.itemMap.set(ref, { ref, ...itemData }); + return () => void context.itemMap.delete(ref); + }); + return (0, import_jsx_runtime5.jsx)(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children }); + } + ); + CollectionItemSlot.displayName = ITEM_SLOT_NAME; + function useCollection3(scope) { + const context = useCollectionContext(name + "CollectionConsumer", scope); + const getItems = import_react.default.useCallback(() => { + const collectionNode = context.collectionRef.current; + if (!collectionNode) return []; + const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`)); + const items = Array.from(context.itemMap.values()); + const orderedItems = items.sort( + (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current) + ); + return orderedItems; + }, [context.collectionRef, context.itemMap]); + return getItems; + } + return [ + { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot }, + useCollection3, + createCollectionScope3 + ]; +} + +// node_modules/@radix-ui/react-direction/dist/index.mjs +var React8 = __toESM(require_react(), 1); +var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); +var DirectionContext = React8.createContext(void 0); +function useDirection(localDir) { + const globalDir = React8.useContext(DirectionContext); + return localDir || globalDir || "ltr"; +} + +// node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +var React10 = __toESM(require_react(), 1); + +// node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +var React9 = __toESM(require_react(), 1); +function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) { + const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp); + React9.useEffect(() => { + const handleKeyDown = (event) => { + if (event.key === "Escape") { + onEscapeKeyDown(event); + } + }; + ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true }); + return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true }); + }, [onEscapeKeyDown, ownerDocument]); +} + +// node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); +var DISMISSABLE_LAYER_NAME = "DismissableLayer"; +var CONTEXT_UPDATE = "dismissableLayer.update"; +var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside"; +var FOCUS_OUTSIDE = "dismissableLayer.focusOutside"; +var originalBodyPointerEvents; +var DismissableLayerContext = React10.createContext({ + layers: /* @__PURE__ */ new Set(), + layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(), + branches: /* @__PURE__ */ new Set() +}); +var DismissableLayer = React10.forwardRef( + (props, forwardedRef) => { + const { + disableOutsidePointerEvents = false, + onEscapeKeyDown, + onPointerDownOutside, + onFocusOutside, + onInteractOutside, + onDismiss, + ...layerProps + } = props; + const context = React10.useContext(DismissableLayerContext); + const [node, setNode] = React10.useState(null); + const ownerDocument = node?.ownerDocument ?? globalThis?.document; + const [, force] = React10.useState({}); + const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)); + const layers = Array.from(context.layers); + const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); + const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); + const index2 = node ? layers.indexOf(node) : -1; + const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0; + const isPointerEventsEnabled = index2 >= highestLayerWithOutsidePointerEventsDisabledIndex; + const pointerDownOutside = usePointerDownOutside((event) => { + const target = event.target; + const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target)); + if (!isPointerEventsEnabled || isPointerDownOnBranch) return; + onPointerDownOutside?.(event); + onInteractOutside?.(event); + if (!event.defaultPrevented) onDismiss?.(); + }, ownerDocument); + const focusOutside = useFocusOutside((event) => { + const target = event.target; + const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target)); + if (isFocusInBranch) return; + onFocusOutside?.(event); + onInteractOutside?.(event); + if (!event.defaultPrevented) onDismiss?.(); + }, ownerDocument); + useEscapeKeydown((event) => { + const isHighestLayer = index2 === context.layers.size - 1; + if (!isHighestLayer) return; + onEscapeKeyDown?.(event); + if (!event.defaultPrevented && onDismiss) { + event.preventDefault(); + onDismiss(); + } + }, ownerDocument); + React10.useEffect(() => { + if (!node) return; + if (disableOutsidePointerEvents) { + if (context.layersWithOutsidePointerEventsDisabled.size === 0) { + originalBodyPointerEvents = ownerDocument.body.style.pointerEvents; + ownerDocument.body.style.pointerEvents = "none"; + } + context.layersWithOutsidePointerEventsDisabled.add(node); + } + context.layers.add(node); + dispatchUpdate(); + return () => { + if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) { + ownerDocument.body.style.pointerEvents = originalBodyPointerEvents; + } + }; + }, [node, ownerDocument, disableOutsidePointerEvents, context]); + React10.useEffect(() => { + return () => { + if (!node) return; + context.layers.delete(node); + context.layersWithOutsidePointerEventsDisabled.delete(node); + dispatchUpdate(); + }; + }, [node, context]); + React10.useEffect(() => { + const handleUpdate = () => force({}); + document.addEventListener(CONTEXT_UPDATE, handleUpdate); + return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate); + }, []); + return (0, import_jsx_runtime8.jsx)( + Primitive.div, + { + ...layerProps, + ref: composedRefs, + style: { + pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0, + ...props.style + }, + onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture), + onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture), + onPointerDownCapture: composeEventHandlers( + props.onPointerDownCapture, + pointerDownOutside.onPointerDownCapture + ) + } + ); + } +); +DismissableLayer.displayName = DISMISSABLE_LAYER_NAME; +var BRANCH_NAME = "DismissableLayerBranch"; +var DismissableLayerBranch = React10.forwardRef((props, forwardedRef) => { + const context = React10.useContext(DismissableLayerContext); + const ref = React10.useRef(null); + const composedRefs = useComposedRefs(forwardedRef, ref); + React10.useEffect(() => { + const node = ref.current; + if (node) { + context.branches.add(node); + return () => { + context.branches.delete(node); + }; + } + }, [context.branches]); + return (0, import_jsx_runtime8.jsx)(Primitive.div, { ...props, ref: composedRefs }); +}); +DismissableLayerBranch.displayName = BRANCH_NAME; +function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) { + const handlePointerDownOutside = useCallbackRef(onPointerDownOutside); + const isPointerInsideReactTreeRef = React10.useRef(false); + const handleClickRef = React10.useRef(() => { + }); + React10.useEffect(() => { + const handlePointerDown = (event) => { + if (event.target && !isPointerInsideReactTreeRef.current) { + let handleAndDispatchPointerDownOutsideEvent2 = function() { + handleAndDispatchCustomEvent( + POINTER_DOWN_OUTSIDE, + handlePointerDownOutside, + eventDetail, + { discrete: true } + ); + }; + var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2; + const eventDetail = { originalEvent: event }; + if (event.pointerType === "touch") { + ownerDocument.removeEventListener("click", handleClickRef.current); + handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2; + ownerDocument.addEventListener("click", handleClickRef.current, { once: true }); + } else { + handleAndDispatchPointerDownOutsideEvent2(); + } + } else { + ownerDocument.removeEventListener("click", handleClickRef.current); + } + isPointerInsideReactTreeRef.current = false; + }; + const timerId = window.setTimeout(() => { + ownerDocument.addEventListener("pointerdown", handlePointerDown); + }, 0); + return () => { + window.clearTimeout(timerId); + ownerDocument.removeEventListener("pointerdown", handlePointerDown); + ownerDocument.removeEventListener("click", handleClickRef.current); + }; + }, [ownerDocument, handlePointerDownOutside]); + return { + // ensures we check React component tree (not just DOM tree) + onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true + }; +} +function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) { + const handleFocusOutside = useCallbackRef(onFocusOutside); + const isFocusInsideReactTreeRef = React10.useRef(false); + React10.useEffect(() => { + const handleFocus = (event) => { + if (event.target && !isFocusInsideReactTreeRef.current) { + const eventDetail = { originalEvent: event }; + handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, { + discrete: false + }); + } + }; + ownerDocument.addEventListener("focusin", handleFocus); + return () => ownerDocument.removeEventListener("focusin", handleFocus); + }, [ownerDocument, handleFocusOutside]); + return { + onFocusCapture: () => isFocusInsideReactTreeRef.current = true, + onBlurCapture: () => isFocusInsideReactTreeRef.current = false + }; +} +function dispatchUpdate() { + const event = new CustomEvent(CONTEXT_UPDATE); + document.dispatchEvent(event); +} +function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) { + const target = detail.originalEvent.target; + const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail }); + if (handler) target.addEventListener(name, handler, { once: true }); + if (discrete) { + dispatchDiscreteCustomEvent(target, event); + } else { + target.dispatchEvent(event); + } +} + +// node_modules/@radix-ui/react-focus-guards/dist/index.mjs +var React11 = __toESM(require_react(), 1); +var count = 0; +function useFocusGuards() { + React11.useEffect(() => { + const edgeGuards = document.querySelectorAll("[data-radix-focus-guard]"); + document.body.insertAdjacentElement("afterbegin", edgeGuards[0] ?? createFocusGuard()); + document.body.insertAdjacentElement("beforeend", edgeGuards[1] ?? createFocusGuard()); + count++; + return () => { + if (count === 1) { + document.querySelectorAll("[data-radix-focus-guard]").forEach((node) => node.remove()); + } + count--; + }; + }, []); +} +function createFocusGuard() { + const element = document.createElement("span"); + element.setAttribute("data-radix-focus-guard", ""); + element.tabIndex = 0; + element.style.outline = "none"; + element.style.opacity = "0"; + element.style.position = "fixed"; + element.style.pointerEvents = "none"; + return element; +} + +// node_modules/@radix-ui/react-focus-scope/dist/index.mjs +var React12 = __toESM(require_react(), 1); +var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); +var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount"; +var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount"; +var EVENT_OPTIONS = { bubbles: false, cancelable: true }; +var FOCUS_SCOPE_NAME = "FocusScope"; +var FocusScope = React12.forwardRef((props, forwardedRef) => { + const { + loop = false, + trapped = false, + onMountAutoFocus: onMountAutoFocusProp, + onUnmountAutoFocus: onUnmountAutoFocusProp, + ...scopeProps + } = props; + const [container, setContainer] = React12.useState(null); + const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp); + const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp); + const lastFocusedElementRef = React12.useRef(null); + const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node)); + const focusScope = React12.useRef({ + paused: false, + pause() { + this.paused = true; + }, + resume() { + this.paused = false; + } + }).current; + React12.useEffect(() => { + if (trapped) { + let handleFocusIn2 = function(event) { + if (focusScope.paused || !container) return; + const target = event.target; + if (container.contains(target)) { + lastFocusedElementRef.current = target; + } else { + focus(lastFocusedElementRef.current, { select: true }); + } + }, handleFocusOut2 = function(event) { + if (focusScope.paused || !container) return; + const relatedTarget = event.relatedTarget; + if (relatedTarget === null) return; + if (!container.contains(relatedTarget)) { + focus(lastFocusedElementRef.current, { select: true }); + } + }, handleMutations2 = function(mutations) { + const focusedElement = document.activeElement; + if (focusedElement !== document.body) return; + for (const mutation of mutations) { + if (mutation.removedNodes.length > 0) focus(container); + } + }; + var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2; + document.addEventListener("focusin", handleFocusIn2); + document.addEventListener("focusout", handleFocusOut2); + const mutationObserver = new MutationObserver(handleMutations2); + if (container) mutationObserver.observe(container, { childList: true, subtree: true }); + return () => { + document.removeEventListener("focusin", handleFocusIn2); + document.removeEventListener("focusout", handleFocusOut2); + mutationObserver.disconnect(); + }; + } + }, [trapped, container, focusScope.paused]); + React12.useEffect(() => { + if (container) { + focusScopesStack.add(focusScope); + const previouslyFocusedElement = document.activeElement; + const hasFocusedCandidate = container.contains(previouslyFocusedElement); + if (!hasFocusedCandidate) { + const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS); + container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); + container.dispatchEvent(mountEvent); + if (!mountEvent.defaultPrevented) { + focusFirst(removeLinks(getTabbableCandidates(container)), { select: true }); + if (document.activeElement === previouslyFocusedElement) { + focus(container); + } + } + } + return () => { + container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus); + setTimeout(() => { + const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS); + container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); + container.dispatchEvent(unmountEvent); + if (!unmountEvent.defaultPrevented) { + focus(previouslyFocusedElement ?? document.body, { select: true }); + } + container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus); + focusScopesStack.remove(focusScope); + }, 0); + }; + } + }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]); + const handleKeyDown = React12.useCallback( + (event) => { + if (!loop && !trapped) return; + if (focusScope.paused) return; + const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey; + const focusedElement = document.activeElement; + if (isTabKey && focusedElement) { + const container2 = event.currentTarget; + const [first, last] = getTabbableEdges(container2); + const hasTabbableElementsInside = first && last; + if (!hasTabbableElementsInside) { + if (focusedElement === container2) event.preventDefault(); + } else { + if (!event.shiftKey && focusedElement === last) { + event.preventDefault(); + if (loop) focus(first, { select: true }); + } else if (event.shiftKey && focusedElement === first) { + event.preventDefault(); + if (loop) focus(last, { select: true }); + } + } + } + }, + [loop, trapped, focusScope.paused] + ); + return (0, import_jsx_runtime9.jsx)(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown }); +}); +FocusScope.displayName = FOCUS_SCOPE_NAME; +function focusFirst(candidates, { select = false } = {}) { + const previouslyFocusedElement = document.activeElement; + for (const candidate of candidates) { + focus(candidate, { select }); + if (document.activeElement !== previouslyFocusedElement) return; + } +} +function getTabbableEdges(container) { + const candidates = getTabbableCandidates(container); + const first = findVisible(candidates, container); + const last = findVisible(candidates.reverse(), container); + return [first, last]; +} +function getTabbableCandidates(container) { + const nodes = []; + const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, { + acceptNode: (node) => { + const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; + if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; + return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; + } + }); + while (walker.nextNode()) nodes.push(walker.currentNode); + return nodes; +} +function findVisible(elements, container) { + for (const element of elements) { + if (!isHidden(element, { upTo: container })) return element; + } +} +function isHidden(node, { upTo }) { + if (getComputedStyle(node).visibility === "hidden") return true; + while (node) { + if (upTo !== void 0 && node === upTo) return false; + if (getComputedStyle(node).display === "none") return true; + node = node.parentElement; + } + return false; +} +function isSelectableInput(element) { + return element instanceof HTMLInputElement && "select" in element; +} +function focus(element, { select = false } = {}) { + if (element && element.focus) { + const previouslyFocusedElement = document.activeElement; + element.focus({ preventScroll: true }); + if (element !== previouslyFocusedElement && isSelectableInput(element) && select) + element.select(); + } +} +var focusScopesStack = createFocusScopesStack(); +function createFocusScopesStack() { + let stack = []; + return { + add(focusScope) { + const activeFocusScope = stack[0]; + if (focusScope !== activeFocusScope) { + activeFocusScope?.pause(); + } + stack = arrayRemove(stack, focusScope); + stack.unshift(focusScope); + }, + remove(focusScope) { + stack = arrayRemove(stack, focusScope); + stack[0]?.resume(); + } + }; +} +function arrayRemove(array, item) { + const updatedArray = [...array]; + const index2 = updatedArray.indexOf(item); + if (index2 !== -1) { + updatedArray.splice(index2, 1); + } + return updatedArray; +} +function removeLinks(items) { + return items.filter((item) => item.tagName !== "A"); +} + +// node_modules/@radix-ui/react-id/dist/index.mjs +var React13 = __toESM(require_react(), 1); +var useReactId = React13[" useId ".trim().toString()] || (() => void 0); +var count2 = 0; +function useId(deterministicId) { + const [id, setId] = React13.useState(useReactId()); + useLayoutEffect2(() => { + if (!deterministicId) setId((reactId) => reactId ?? String(count2++)); + }, [deterministicId]); + return deterministicId || (id ? `radix-${id}` : ""); +} + +// node_modules/@radix-ui/react-popper/dist/index.mjs +var React17 = __toESM(require_react(), 1); + +// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +var sides = ["top", "right", "bottom", "left"]; +var alignments = ["start", "end"]; +var placements = sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []); +var min = Math.min; +var max = Math.max; +var round = Math.round; +var floor = Math.floor; +var createCoords = (v) => ({ + x: v, + y: v +}); +var oppositeSideMap = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" +}; +var oppositeAlignmentMap = { + start: "end", + end: "start" +}; +function clamp(start, value, end) { + return max(start, min(value, end)); +} +function evaluate(value, param) { + return typeof value === "function" ? value(param) : value; +} +function getSide(placement) { + return placement.split("-")[0]; +} +function getAlignment(placement) { + return placement.split("-")[1]; +} +function getOppositeAxis(axis) { + return axis === "x" ? "y" : "x"; +} +function getAxisLength(axis) { + return axis === "y" ? "height" : "width"; +} +var yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]); +function getSideAxis(placement) { + return yAxisSides.has(getSide(placement)) ? "y" : "x"; +} +function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); +} +function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) { + rtl = false; + } + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top"; + if (rects.reference[length] > rects.floating[length]) { + mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + } + return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)]; +} +function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)]; +} +function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]); +} +var lrPlacement = ["left", "right"]; +var rlPlacement = ["right", "left"]; +var tbPlacement = ["top", "bottom"]; +var btPlacement = ["bottom", "top"]; +function getSideList(side, isStart, rtl) { + switch (side) { + case "top": + case "bottom": + if (rtl) return isStart ? rlPlacement : lrPlacement; + return isStart ? lrPlacement : rlPlacement; + case "left": + case "right": + return isStart ? tbPlacement : btPlacement; + default: + return []; + } +} +function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === "start", rtl); + if (alignment) { + list = list.map((side) => side + "-" + alignment); + if (flipAlignment) { + list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + } + return list; +} +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]); +} +function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; +} +function getPaddingObject(padding) { + return typeof padding !== "number" ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; +} +function rectToClientRect(rect) { + const { + x, + y, + width, + height + } = rect; + return { + width, + height, + top: y, + left: x, + right: x + width, + bottom: y + height, + x, + y + }; +} + +// node_modules/@floating-ui/core/dist/floating-ui.core.mjs +function computeCoordsFromPlacement(_ref, placement, rtl) { + let { + reference, + floating + } = _ref; + const sideAxis = getSideAxis(placement); + const alignmentAxis = getAlignmentAxis(placement); + const alignLength = getAxisLength(alignmentAxis); + const side = getSide(placement); + const isVertical = sideAxis === "y"; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch (side) { + case "top": + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case "bottom": + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case "right": + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case "left": + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: + coords = { + x: reference.x, + y: reference.y + }; + } + switch (getAlignment(placement)) { + case "start": + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case "end": + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; +} +var computePosition = async (reference, floating, config) => { + const { + placement = "bottom", + strategy = "absolute", + middleware = [], + platform: platform2 + } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating)); + let rects = await platform2.getElementRects({ + reference, + floating, + strategy + }); + let { + x, + y + } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for (let i = 0; i < validMiddleware.length; i++) { + const { + name, + fn + } = validMiddleware[i]; + const { + x: nextX, + y: nextY, + data, + reset + } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform: platform2, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === "object") { + if (reset.placement) { + statefulPlacement = reset.placement; + } + if (reset.rects) { + rects = reset.rects === true ? await platform2.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + } + ({ + x, + y + } = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; +}; +async function detectOverflow(state, options) { + var _await$platform$isEle; + if (options === void 0) { + options = {}; + } + const { + x, + y, + platform: platform2, + rects, + elements, + strategy + } = state; + const { + boundary = "clippingAncestors", + rootBoundary = "viewport", + elementContext = "floating", + altBoundary = false, + padding = 0 + } = evaluate(options, state); + const paddingObject = getPaddingObject(padding); + const altContext = elementContext === "floating" ? "reference" : "floating"; + const element = elements[altBoundary ? altContext : elementContext]; + const clippingClientRect = rectToClientRect(await platform2.getClippingRect({ + element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === "floating" ? { + x, + y, + width: rects.floating.width, + height: rects.floating.height + } : rects.reference; + const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating)); + const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({ + elements, + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; +} +var arrow = (options) => ({ + name: "arrow", + options, + async fn(state) { + const { + x, + y, + placement, + rects, + platform: platform2, + elements, + middlewareData + } = state; + const { + element, + padding = 0 + } = evaluate(options, state) || {}; + if (element == null) { + return {}; + } + const paddingObject = getPaddingObject(padding); + const coords = { + x, + y + }; + const axis = getAlignmentAxis(placement); + const length = getAxisLength(axis); + const arrowDimensions = await platform2.getDimensions(element); + const isYAxis = axis === "y"; + const minProp = isYAxis ? "top" : "left"; + const maxProp = isYAxis ? "bottom" : "right"; + const clientProp = isYAxis ? "clientHeight" : "clientWidth"; + const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length]; + const startDiff = coords[axis] - rects.reference[axis]; + const arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element)); + let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; + if (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) { + clientSize = elements.floating[clientProp] || rects.floating[length]; + } + const centerToReference = endDiff / 2 - startDiff / 2; + const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1; + const minPadding = min(paddingObject[minProp], largestPossiblePadding); + const maxPadding = min(paddingObject[maxProp], largestPossiblePadding); + const min$1 = minPadding; + const max2 = clientSize - arrowDimensions[length] - maxPadding; + const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference; + const offset4 = clamp(min$1, center, max2); + const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset4 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0; + const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0; + return { + [axis]: coords[axis] + alignmentOffset, + data: { + [axis]: offset4, + centerOffset: center - offset4 - alignmentOffset, + ...shouldAddOffset && { + alignmentOffset + } + }, + reset: shouldAddOffset + }; + } +}); +var flip = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "flip", + options, + async fn(state) { + var _middlewareData$arrow, _middlewareData$flip; + const { + placement, + middlewareData, + rects, + initialPlacement, + platform: platform2, + elements + } = state; + const { + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = true, + fallbackPlacements: specifiedFallbackPlacements, + fallbackStrategy = "bestFit", + fallbackAxisSideDirection = "none", + flipAlignment = true, + ...detectOverflowOptions + } = evaluate(options, state); + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + const side = getSide(placement); + const initialSideAxis = getSideAxis(initialPlacement); + const isBasePlacement = getSide(initialPlacement) === initialPlacement; + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement)); + const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none"; + if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) { + fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + } + const placements2 = [initialPlacement, ...fallbackPlacements]; + const overflow = await detectOverflow(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) { + overflows.push(overflow[side]); + } + if (checkCrossAxis) { + const sides2 = getAlignmentSides(placement, rects, rtl); + overflows.push(overflow[sides2[0]], overflow[sides2[1]]); + } + overflowsData = [...overflowsData, { + placement, + overflows + }]; + if (!overflows.every((side2) => side2 <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements2[nextIndex]; + if (nextPlacement) { + const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false; + if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis + // overflows the main axis. + overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) { + return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { + placement: nextPlacement + } + }; + } + } + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + if (!resetPlacement) { + switch (fallbackStrategy) { + case "bestFit": { + var _overflowsData$filter2; + const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => { + if (hasFallbackAxisSideDirection) { + const currentSideAxis = getSideAxis(d.placement); + return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal + // reading directions favoring greater width. + currentSideAxis === "y"; + } + return true; + }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0]; + if (placement2) { + resetPlacement = placement2; + } + break; + } + case "initialPlacement": + resetPlacement = initialPlacement; + break; + } + } + if (placement !== resetPlacement) { + return { + reset: { + placement: resetPlacement + } + }; + } + } + return {}; + } + }; +}; +function getSideOffsets(overflow, rect) { + return { + top: overflow.top - rect.height, + right: overflow.right - rect.width, + bottom: overflow.bottom - rect.height, + left: overflow.left - rect.width + }; +} +function isAnySideFullyClipped(overflow) { + return sides.some((side) => overflow[side] >= 0); +} +var hide = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "hide", + options, + async fn(state) { + const { + rects + } = state; + const { + strategy = "referenceHidden", + ...detectOverflowOptions + } = evaluate(options, state); + switch (strategy) { + case "referenceHidden": { + const overflow = await detectOverflow(state, { + ...detectOverflowOptions, + elementContext: "reference" + }); + const offsets = getSideOffsets(overflow, rects.reference); + return { + data: { + referenceHiddenOffsets: offsets, + referenceHidden: isAnySideFullyClipped(offsets) + } + }; + } + case "escaped": { + const overflow = await detectOverflow(state, { + ...detectOverflowOptions, + altBoundary: true + }); + const offsets = getSideOffsets(overflow, rects.floating); + return { + data: { + escapedOffsets: offsets, + escaped: isAnySideFullyClipped(offsets) + } + }; + } + default: { + return {}; + } + } + } + }; +}; +var originSides = /* @__PURE__ */ new Set(["left", "top"]); +async function convertValueToCoords(state, options) { + const { + placement, + platform: platform2, + elements + } = state; + const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)); + const side = getSide(placement); + const alignment = getAlignment(placement); + const isVertical = getSideAxis(placement) === "y"; + const mainAxisMulti = originSides.has(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = evaluate(options, state); + let { + mainAxis, + crossAxis, + alignmentAxis + } = typeof rawValue === "number" ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: rawValue.mainAxis || 0, + crossAxis: rawValue.crossAxis || 0, + alignmentAxis: rawValue.alignmentAxis + }; + if (alignment && typeof alignmentAxis === "number") { + crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis; + } + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; +} +var offset = function(options) { + if (options === void 0) { + options = 0; + } + return { + name: "offset", + options, + async fn(state) { + var _middlewareData$offse, _middlewareData$arrow; + const { + x, + y, + placement, + middlewareData + } = state; + const diffCoords = await convertValueToCoords(state, options); + if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) { + return {}; + } + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: { + ...diffCoords, + placement + } + }; + } + }; +}; +var shift = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "shift", + options, + async fn(state) { + const { + x, + y, + placement + } = state; + const { + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = false, + limiter = { + fn: (_ref) => { + let { + x: x2, + y: y2 + } = _ref; + return { + x: x2, + y: y2 + }; + } + }, + ...detectOverflowOptions + } = evaluate(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow(state, detectOverflowOptions); + const crossAxis = getSideAxis(getSide(placement)); + const mainAxis = getOppositeAxis(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === "y" ? "top" : "left"; + const maxSide = mainAxis === "y" ? "bottom" : "right"; + const min2 = mainAxisCoord + overflow[minSide]; + const max2 = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = clamp(min2, mainAxisCoord, max2); + } + if (checkCrossAxis) { + const minSide = crossAxis === "y" ? "top" : "left"; + const maxSide = crossAxis === "y" ? "bottom" : "right"; + const min2 = crossAxisCoord + overflow[minSide]; + const max2 = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = clamp(min2, crossAxisCoord, max2); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y, + enabled: { + [mainAxis]: checkMainAxis, + [crossAxis]: checkCrossAxis + } + } + }; + } + }; +}; +var limitShift = function(options) { + if (options === void 0) { + options = {}; + } + return { + options, + fn(state) { + const { + x, + y, + placement, + rects, + middlewareData + } = state; + const { + offset: offset4 = 0, + mainAxis: checkMainAxis = true, + crossAxis: checkCrossAxis = true + } = evaluate(options, state); + const coords = { + x, + y + }; + const crossAxis = getSideAxis(placement); + const mainAxis = getOppositeAxis(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + const rawOffset = evaluate(offset4, state); + const computedOffset = typeof rawOffset === "number" ? { + mainAxis: rawOffset, + crossAxis: 0 + } : { + mainAxis: 0, + crossAxis: 0, + ...rawOffset + }; + if (checkMainAxis) { + const len = mainAxis === "y" ? "height" : "width"; + const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis; + const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis; + if (mainAxisCoord < limitMin) { + mainAxisCoord = limitMin; + } else if (mainAxisCoord > limitMax) { + mainAxisCoord = limitMax; + } + } + if (checkCrossAxis) { + var _middlewareData$offse, _middlewareData$offse2; + const len = mainAxis === "y" ? "width" : "height"; + const isOriginSide = originSides.has(getSide(placement)); + const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis); + const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0); + if (crossAxisCoord < limitMin) { + crossAxisCoord = limitMin; + } else if (crossAxisCoord > limitMax) { + crossAxisCoord = limitMax; + } + } + return { + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }; + } + }; +}; +var size = function(options) { + if (options === void 0) { + options = {}; + } + return { + name: "size", + options, + async fn(state) { + var _state$middlewareData, _state$middlewareData2; + const { + placement, + rects, + platform: platform2, + elements + } = state; + const { + apply = () => { + }, + ...detectOverflowOptions + } = evaluate(options, state); + const overflow = await detectOverflow(state, detectOverflowOptions); + const side = getSide(placement); + const alignment = getAlignment(placement); + const isYAxis = getSideAxis(placement) === "y"; + const { + width, + height + } = rects.floating; + let heightSide; + let widthSide; + if (side === "top" || side === "bottom") { + heightSide = side; + widthSide = alignment === (await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right"; + } else { + widthSide = side; + heightSide = alignment === "end" ? "top" : "bottom"; + } + const maximumClippingHeight = height - overflow.top - overflow.bottom; + const maximumClippingWidth = width - overflow.left - overflow.right; + const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight); + const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth); + const noShift = !state.middlewareData.shift; + let availableHeight = overflowAvailableHeight; + let availableWidth = overflowAvailableWidth; + if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) { + availableWidth = maximumClippingWidth; + } + if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) { + availableHeight = maximumClippingHeight; + } + if (noShift && !alignment) { + const xMin = max(overflow.left, 0); + const xMax = max(overflow.right, 0); + const yMin = max(overflow.top, 0); + const yMax = max(overflow.bottom, 0); + if (isYAxis) { + availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)); + } else { + availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)); + } + } + await apply({ + ...state, + availableWidth, + availableHeight + }); + const nextDimensions = await platform2.getDimensions(elements.floating); + if (width !== nextDimensions.width || height !== nextDimensions.height) { + return { + reset: { + rects: true + } + }; + } + return {}; + } + }; +}; + +// node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +function hasWindow() { + return typeof window !== "undefined"; +} +function getNodeName(node) { + if (isNode(node)) { + return (node.nodeName || "").toLowerCase(); + } + return "#document"; +} +function getWindow(node) { + var _node$ownerDocument; + return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; +} +function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; +} +function isNode(value) { + if (!hasWindow()) { + return false; + } + return value instanceof Node || value instanceof getWindow(value).Node; +} +function isElement(value) { + if (!hasWindow()) { + return false; + } + return value instanceof Element || value instanceof getWindow(value).Element; +} +function isHTMLElement(value) { + if (!hasWindow()) { + return false; + } + return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement; +} +function isShadowRoot(value) { + if (!hasWindow() || typeof ShadowRoot === "undefined") { + return false; + } + return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot; +} +var invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]); +function isOverflowElement(element) { + const { + overflow, + overflowX, + overflowY, + display + } = getComputedStyle2(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display); +} +var tableElements = /* @__PURE__ */ new Set(["table", "td", "th"]); +function isTableElement(element) { + return tableElements.has(getNodeName(element)); +} +var topLayerSelectors = [":popover-open", ":modal"]; +function isTopLayer(element) { + return topLayerSelectors.some((selector) => { + try { + return element.matches(selector); + } catch (_e) { + return false; + } + }); +} +var transformProperties = ["transform", "translate", "scale", "rotate", "perspective"]; +var willChangeValues = ["transform", "translate", "scale", "rotate", "perspective", "filter"]; +var containValues = ["paint", "layout", "strict", "content"]; +function isContainingBlock(elementOrCss) { + const webkit = isWebKit(); + const css = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss; + return transformProperties.some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || willChangeValues.some((value) => (css.willChange || "").includes(value)) || containValues.some((value) => (css.contain || "").includes(value)); +} +function getContainingBlock(element) { + let currentNode = getParentNode(element); + while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) { + if (isContainingBlock(currentNode)) { + return currentNode; + } else if (isTopLayer(currentNode)) { + return null; + } + currentNode = getParentNode(currentNode); + } + return null; +} +function isWebKit() { + if (typeof CSS === "undefined" || !CSS.supports) return false; + return CSS.supports("-webkit-backdrop-filter", "none"); +} +var lastTraversableNodeNames = /* @__PURE__ */ new Set(["html", "body", "#document"]); +function isLastTraversableNode(node) { + return lastTraversableNodeNames.has(getNodeName(node)); +} +function getComputedStyle2(element) { + return getWindow(element).getComputedStyle(element); +} +function getNodeScroll(element) { + if (isElement(element)) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + return { + scrollLeft: element.scrollX, + scrollTop: element.scrollY + }; +} +function getParentNode(node) { + if (getNodeName(node) === "html") { + return node; + } + const result = ( + // Step into the shadow DOM of the parent of a slotted node. + node.assignedSlot || // DOM Element detected. + node.parentNode || // ShadowRoot detected. + isShadowRoot(node) && node.host || // Fallback. + getDocumentElement(node) + ); + return isShadowRoot(result) ? result.host : result; +} +function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) { + return node.ownerDocument ? node.ownerDocument.body : node.body; + } + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) { + return parentNode; + } + return getNearestOverflowAncestor(parentNode); +} +function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) { + list = []; + } + if (traverseIframes === void 0) { + traverseIframes = true; + } + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + const frameElement = getFrameElement(win); + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); +} +function getFrameElement(win) { + return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null; +} + +// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +function getCssDimensions(element) { + const css = getComputedStyle2(element); + let width = parseFloat(css.width) || 0; + let height = parseFloat(css.height) || 0; + const hasOffset = isHTMLElement(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; +} +function unwrapElement(element) { + return !isElement(element) ? element.contextElement : element; +} +function getScale(element) { + const domElement = unwrapElement(element); + if (!isHTMLElement(domElement)) { + return createCoords(1); + } + const rect = domElement.getBoundingClientRect(); + const { + width, + height, + $ + } = getCssDimensions(domElement); + let x = ($ ? round(rect.width) : rect.width) / width; + let y = ($ ? round(rect.height) : rect.height) / height; + if (!x || !Number.isFinite(x)) { + x = 1; + } + if (!y || !Number.isFinite(y)) { + y = 1; + } + return { + x, + y + }; +} +var noOffsets = createCoords(0); +function getVisualOffsets(element) { + const win = getWindow(element); + if (!isWebKit() || !win.visualViewport) { + return noOffsets; + } + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; +} +function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) { + isFixed = false; + } + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) { + return false; + } + return isFixed; +} +function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = createCoords(1); + if (includeScale) { + if (offsetParent) { + if (isElement(offsetParent)) { + scale = getScale(offsetParent); + } + } else { + scale = getScale(element); + } + } + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = getWindow(domElement); + const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent; + let currentWin = win; + let currentIFrame = getFrameElement(currentWin); + while (currentIFrame && offsetParent && offsetWin !== currentWin) { + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css = getComputedStyle2(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentWin = getWindow(currentIFrame); + currentIFrame = getFrameElement(currentWin); + } + } + return rectToClientRect({ + width, + height, + x, + y + }); +} +function getWindowScrollBarX(element, rect) { + const leftScroll = getNodeScroll(element).scrollLeft; + if (!rect) { + return getBoundingClientRect(getDocumentElement(element)).left + leftScroll; + } + return rect.left + leftScroll; +} +function getHTMLOffset(documentElement, scroll) { + const htmlRect = documentElement.getBoundingClientRect(); + const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect); + const y = htmlRect.top + scroll.scrollTop; + return { + x, + y + }; +} +function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { + elements, + rect, + offsetParent, + strategy + } = _ref; + const isFixed = strategy === "fixed"; + const documentElement = getDocumentElement(offsetParent); + const topLayer = elements ? isTopLayer(elements.floating) : false; + if (offsetParent === documentElement || topLayer && isFixed) { + return rect; + } + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = createCoords(1); + const offsets = createCoords(0); + const isOffsetParentAnElement = isHTMLElement(offsetParent); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isHTMLElement(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0); + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y + }; +} +function getClientRects(element) { + return Array.from(element.getClientRects()); +} +function getDocumentRect(element) { + const html = getDocumentElement(element); + const scroll = getNodeScroll(element); + const body = element.ownerDocument.body; + const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if (getComputedStyle2(body).direction === "rtl") { + x += max(html.clientWidth, body.clientWidth) - width; + } + return { + width, + height, + x, + y + }; +} +var SCROLLBAR_MAX = 25; +function getViewportRect(element, strategy) { + const win = getWindow(element); + const html = getDocumentElement(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = isWebKit(); + if (!visualViewportBased || visualViewportBased && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + const windowScrollbarX = getWindowScrollBarX(html); + if (windowScrollbarX <= 0) { + const doc = html.ownerDocument; + const body = doc.body; + const bodyStyles = getComputedStyle(body); + const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0; + const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline); + if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) { + width -= clippingStableScrollbarWidth; + } + } else if (windowScrollbarX <= SCROLLBAR_MAX) { + width += windowScrollbarX; + } + return { + width, + height, + x, + y + }; +} +var absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]); +function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === "fixed"); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = isHTMLElement(element) ? getScale(element) : createCoords(1); + const width = element.clientWidth * scale.x; + const height = element.clientHeight * scale.y; + const x = left * scale.x; + const y = top * scale.y; + return { + width, + height, + x, + y + }; +} +function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === "viewport") { + rect = getViewportRect(element, strategy); + } else if (clippingAncestor === "document") { + rect = getDocumentRect(getDocumentElement(element)); + } else if (isElement(clippingAncestor)) { + rect = getInnerBoundingClientRect(clippingAncestor, strategy); + } else { + const visualOffsets = getVisualOffsets(element); + rect = { + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y, + width: clippingAncestor.width, + height: clippingAncestor.height + }; + } + return rectToClientRect(rect); +} +function hasFixedPositionAncestor(element, stopNode) { + const parentNode = getParentNode(element); + if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) { + return false; + } + return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode); +} +function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) { + return cachedResult; + } + let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body"); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = getComputedStyle2(element).position === "fixed"; + let currentNode = elementIsFixed ? getParentNode(element) : element; + while (isElement(currentNode) && !isLastTraversableNode(currentNode)) { + const computedStyle = getComputedStyle2(currentNode); + const currentNodeIsContaining = isContainingBlock(currentNode); + if (!currentNodeIsContaining && computedStyle.position === "fixed") { + currentContainingBlockComputedStyle = null; + } + const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode); + if (shouldDropCurrentNode) { + result = result.filter((ancestor) => ancestor !== currentNode); + } else { + currentContainingBlockComputedStyle = computedStyle; + } + currentNode = getParentNode(currentNode); + } + cache.set(element, result); + return result; +} +function getClippingRect(_ref) { + let { + element, + boundary, + rootBoundary, + strategy + } = _ref; + const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary); + const clippingAncestors = [...elementClippingAncestors, rootBoundary]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => { + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; +} +function getDimensions(element) { + const { + width, + height + } = getCssDimensions(element); + return { + width, + height + }; +} +function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + const isFixed = strategy === "fixed"; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = createCoords(0); + function setLeftRTLScrollbarOffset() { + offsets.x = getWindowScrollBarX(documentElement); + } + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) { + setLeftRTLScrollbarOffset(); + } + } + if (isFixed && !isOffsetParentAnElement && documentElement) { + setLeftRTLScrollbarOffset(); + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0); + const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x; + const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y; + return { + x, + y, + width: rect.width, + height: rect.height + }; +} +function isStaticPositioned(element) { + return getComputedStyle2(element).position === "static"; +} +function getTrueOffsetParent(element, polyfill) { + if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") { + return null; + } + if (polyfill) { + return polyfill(element); + } + let rawOffsetParent = element.offsetParent; + if (getDocumentElement(element) === rawOffsetParent) { + rawOffsetParent = rawOffsetParent.ownerDocument.body; + } + return rawOffsetParent; +} +function getOffsetParent(element, polyfill) { + const win = getWindow(element); + if (isTopLayer(element)) { + return win; + } + if (!isHTMLElement(element)) { + let svgOffsetParent = getParentNode(element); + while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) { + if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) { + return svgOffsetParent; + } + svgOffsetParent = getParentNode(svgOffsetParent); + } + return win; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) { + offsetParent = getTrueOffsetParent(offsetParent, polyfill); + } + if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) { + return win; + } + return offsetParent || getContainingBlock(element) || win; +} +var getElementRects = async function(data) { + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + const floatingDimensions = await getDimensionsFn(data.floating); + return { + reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy), + floating: { + x: 0, + y: 0, + width: floatingDimensions.width, + height: floatingDimensions.height + } + }; +}; +function isRTL(element) { + return getComputedStyle2(element).direction === "rtl"; +} +var platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement, + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement, + isRTL +}; +function rectsAreEqual(a, b) { + return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height; +} +function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = getDocumentElement(element); + function cleanup() { + var _io; + clearTimeout(timeoutId); + (_io = io) == null || _io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) { + skip = false; + } + if (threshold === void 0) { + threshold = 1; + } + cleanup(); + const elementRectForRootMargin = element.getBoundingClientRect(); + const { + left, + top, + width, + height + } = elementRectForRootMargin; + if (!skip) { + onMove(); + } + if (!width || !height) { + return; + } + const insetTop = floor(top); + const insetRight = floor(root.clientWidth - (left + width)); + const insetBottom = floor(root.clientHeight - (top + height)); + const insetLeft = floor(left); + const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px"; + const options = { + rootMargin, + threshold: max(0, min(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) { + return refresh(); + } + if (!ratio) { + timeoutId = setTimeout(() => { + refresh(false, 1e-7); + }, 1e3); + } else { + refresh(false, ratio); + } + } + if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) { + refresh(); + } + isFirstUpdate = false; + } + try { + io = new IntersectionObserver(handleObserve, { + ...options, + // Handle