From 55e62ccaf1e677038836935f38d1a9c961505a42 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 16 Aug 2026 11:38:40 +0000 Subject: [PATCH] Upgrade React and react-dom to 19 together with matching types Dependabot #36 bumped only react-dom and @types/react-dom, which cannot install: react-dom 19 requires react 19, and @types/react-dom 19 requires @types/react 19. @xyflow/react 12 already accepts React >=17. Rebuild the served static bundle for the new runtime. Co-authored-by: zord.lack.net --- ...HVYd3pFj.js => LayeredGraph3D-kVQDQ1-J.js} | 2 +- src/loadpath/static/assets/index-DhJte9z9.js | 15 ++++ src/loadpath/static/assets/index-DyJR4VJX.js | 14 ---- src/loadpath/static/index.html | 2 +- ui/package-lock.json | 79 ++++++------------- ui/package.json | 8 +- 6 files changed, 44 insertions(+), 76 deletions(-) rename src/loadpath/static/assets/{LayeredGraph3D-HVYd3pFj.js => LayeredGraph3D-kVQDQ1-J.js} (99%) create mode 100644 src/loadpath/static/assets/index-DhJte9z9.js delete mode 100644 src/loadpath/static/assets/index-DyJR4VJX.js diff --git a/src/loadpath/static/assets/LayeredGraph3D-HVYd3pFj.js b/src/loadpath/static/assets/LayeredGraph3D-kVQDQ1-J.js similarity index 99% rename from src/loadpath/static/assets/LayeredGraph3D-HVYd3pFj.js rename to src/loadpath/static/assets/LayeredGraph3D-kVQDQ1-J.js index 67ab2a1..08695a5 100644 --- a/src/loadpath/static/assets/LayeredGraph3D-HVYd3pFj.js +++ b/src/loadpath/static/assets/LayeredGraph3D-kVQDQ1-J.js @@ -1,4 +1,4 @@ -import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./index-DyJR4VJX.js";var l=r(t(),1),u={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},d={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},f=1e3,p=1001,m=1002,h=1003,g=1004,_=1005,v=1006,y=1007,b=1008,x=1009,S=1010,C=1011,w=1012,T=1013,E=1014,D=1015,O=1016,k=1017,A=1018,ee=1020,j=35902,M=35899,te=1021,N=1022,ne=1023,re=1026,ie=1027,ae=1028,oe=1029,se=1030,ce=1031,le=1033,P=33776,F=33777,ue=33778,de=33779,fe=35840,pe=35841,me=35842,he=35843,ge=36196,_e=37492,ve=37496,ye=37488,be=37489,xe=37490,Se=37491,Ce=37808,we=37809,Te=37810,Ee=37811,De=37812,Oe=37813,ke=37814,Ae=37815,je=37816,Me=37817,I=37818,Ne=37819,L=37820,Pe=37821,R=36492,Fe=36494,z=36495,B=36283,Ie=36284,Le=36285,Re=36286,ze=2300,Be=2301,Ve=2302,He=2303,Ue=2400,We=2401,Ge=2402,Ke=3200,qe=`srgb`,Je=`srgb-linear`,Ye=`linear`,Xe=`srgb`,Ze=7680,Qe=35044,$e=2e3;function et(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}function tt(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function V(e){return document.createElementNS(`http://www.w3.org/1999/xhtml`,e)}function nt(){let e=V(`canvas`);return e.style.display=`block`,e}var rt={};function it(...e){let t=`THREE.`+e.shift();console.log(t,...e)}function at(e){let t=e[0];if(typeof t==`string`&&t.startsWith(`TSL:`)){let t=e[1];t&&t.isStackTrace?e[0]+=` `+t.getLocation():e[1]=`Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.`}return e}function H(...e){e=at(e);let t=`THREE.`+e.shift();{let n=e[0];n&&n.isStackTrace?console.warn(n.getError(t)):console.warn(t,...e)}}function U(...e){e=at(e);let t=`THREE.`+e.shift();{let n=e[0];n&&n.isStackTrace?console.error(n.getError(t)):console.error(t,...e)}}function ot(...e){let t=e.join(` `);t in rt||(rt[t]=!0,H(...e))}function st(e,t,n){return new Promise(function(r,i){function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:i();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:r()}}setTimeout(a,n)})}var ct={0:1,2:6,4:7,3:5,1:0,6:2,7:4,5:3},lt=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return n!==void 0&&n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){let n=this._listeners;if(n===void 0)return;let r=n[e];if(r!==void 0){let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let n=t[e.type];if(n!==void 0){e.target=this;let t=n.slice(0);for(let n=0,r=t.length;n>8&255]+ut[e>>16&255]+ut[e>>24&255]+`-`+ut[t&255]+ut[t>>8&255]+`-`+ut[t>>16&15|64]+ut[t>>24&255]+`-`+ut[n&63|128]+ut[n>>8&255]+`-`+ut[n>>16&255]+ut[n>>24&255]+ut[r&255]+ut[r>>8&255]+ut[r>>16&255]+ut[r>>24&255]).toLowerCase()}function W(e,t,n){return Math.max(t,Math.min(n,e))}function ht(e,t){return(e%t+t)%t}function gt(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)}function _t(e,t,n){return e===t?0:(n-e)/(t-e)}function vt(e,t,n){return(1-n)*e+n*t}function yt(e,t,n,r){return vt(e,t,1-Math.exp(-n*r))}function bt(e,t=1){return t-Math.abs(ht(e,t*2)-t)}function xt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*(3-2*e))}function St(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*e*(e*(e*6-15)+10))}function Ct(e,t){return e+Math.floor(Math.random()*(t-e+1))}function wt(e,t){return e+Math.random()*(t-e)}function Tt(e){return e*(.5-Math.random())}function Et(e){e!==void 0&&(dt=e);let t=dt+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function Dt(e){return e*ft}function Ot(e){return e*pt}function kt(e){return!(e&e-1)&&e!==0}function At(e){return 2**Math.ceil(Math.log(e)/Math.LN2)}function jt(e){return 2**Math.floor(Math.log(e)/Math.LN2)}function Mt(e,t,n,r,i){let a=Math.cos,o=Math.sin,s=a(n/2),c=o(n/2),l=a((t+r)/2),u=o((t+r)/2),d=a((t-r)/2),f=o((t-r)/2),p=a((r-t)/2),m=o((r-t)/2);switch(i){case`XYX`:e.set(s*u,c*d,c*f,s*l);break;case`YZY`:e.set(c*f,s*u,c*d,s*l);break;case`ZXZ`:e.set(c*d,c*f,s*u,s*l);break;case`XZX`:e.set(s*u,c*m,c*p,s*l);break;case`YXY`:e.set(c*p,s*u,c*m,s*l);break;case`ZYZ`:e.set(c*m,c*p,s*u,s*l);break;default:H(`MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: `+i)}}function Nt(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw Error(`THREE.MathUtils: Invalid component type.`)}}function G(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(e*4294967295);case Uint16Array:return Math.round(e*65535);case Uint8Array:return Math.round(e*255);case Int32Array:return Math.round(e*2147483647);case Int16Array:return Math.round(e*32767);case Int8Array:return Math.round(e*127);default:throw Error(`THREE.MathUtils: Invalid component type.`)}}var Pt={DEG2RAD:ft,RAD2DEG:pt,generateUUID:mt,clamp:W,euclideanModulo:ht,mapLinear:gt,inverseLerp:_t,lerp:vt,damp:yt,pingpong:bt,smoothstep:xt,smootherstep:St,randInt:Ct,randFloat:wt,randFloatSpread:Tt,seededRandom:Et,degToRad:Dt,radToDeg:Ot,isPowerOfTwo:kt,ceilPowerOfTwo:At,floorPowerOfTwo:jt,setQuaternionFromProperEuler:Mt,normalize:G,denormalize:Nt},K=class e{static{e.prototype.isVector2=!0}constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error(`THREE.Vector2: index is out of range: `+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error(`THREE.Vector2: 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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.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){let t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[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,t){return this.x=W(this.x,e.x,t.x),this.y=W(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=W(this.x,e,t),this.y=W(this.y,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(W(n,e,t))}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){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(W(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),r=Math.sin(t),i=this.x-e.x,a=this.y-e.y;return this.x=i*n-a*r+e.x,this.y=i*r+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ft=class{constructor(e=0,t=0,n=0,r=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=n,this._w=r}static slerpFlat(e,t,n,r,i,a,o){let s=n[r+0],c=n[r+1],l=n[r+2],u=n[r+3],d=i[a+0],f=i[a+1],p=i[a+2],m=i[a+3];if(u!==m||s!==d||c!==f||l!==p){let e=s*d+c*f+l*p+u*m;e<0&&(d=-d,f=-f,p=-p,m=-m,e=-e);let t=1-o;if(e<.9995){let n=Math.acos(e),r=Math.sin(n);t=Math.sin(t*n)/r,o=Math.sin(o*n)/r,s=s*t+d*o,c=c*t+f*o,l=l*t+p*o,u=u*t+m*o}else{s=s*t+d*o,c=c*t+f*o,l=l*t+p*o,u=u*t+m*o;let e=1/Math.sqrt(s*s+c*c+l*l+u*u);s*=e,c*=e,l*=e,u*=e}}e[t]=s,e[t+1]=c,e[t+2]=l,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,r,i,a){let o=n[r],s=n[r+1],c=n[r+2],l=n[r+3],u=i[a],d=i[a+1],f=i[a+2],p=i[a+3];return e[t]=o*p+l*u+s*f-c*d,e[t+1]=s*p+l*d+c*u-o*f,e[t+2]=c*p+l*f+o*d-s*u,e[t+3]=l*p-o*u-s*d-c*f,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,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,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,t=!0){let n=e._x,r=e._y,i=e._z,a=e._order,o=Math.cos,s=Math.sin,c=o(n/2),l=o(r/2),u=o(i/2),d=s(n/2),f=s(r/2),p=s(i/2);switch(a){case`XYZ`:this._x=d*l*u+c*f*p,this._y=c*f*u-d*l*p,this._z=c*l*p+d*f*u,this._w=c*l*u-d*f*p;break;case`YXZ`:this._x=d*l*u+c*f*p,this._y=c*f*u-d*l*p,this._z=c*l*p-d*f*u,this._w=c*l*u+d*f*p;break;case`ZXY`:this._x=d*l*u-c*f*p,this._y=c*f*u+d*l*p,this._z=c*l*p+d*f*u,this._w=c*l*u-d*f*p;break;case`ZYX`:this._x=d*l*u-c*f*p,this._y=c*f*u+d*l*p,this._z=c*l*p-d*f*u,this._w=c*l*u+d*f*p;break;case`YZX`:this._x=d*l*u+c*f*p,this._y=c*f*u+d*l*p,this._z=c*l*p-d*f*u,this._w=c*l*u-d*f*p;break;case`XZY`:this._x=d*l*u-c*f*p,this._y=c*f*u-d*l*p,this._z=c*l*p+d*f*u,this._w=c*l*u+d*f*p;break;default:H(`Quaternion: .setFromEuler() encountered an unknown order: `+a)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],r=t[4],i=t[8],a=t[1],o=t[5],s=t[9],c=t[2],l=t[6],u=t[10],d=n+o+u;if(d>0){let e=.5/Math.sqrt(d+1);this._w=.25/e,this._x=(l-s)*e,this._y=(i-c)*e,this._z=(a-r)*e}else if(n>o&&n>u){let e=2*Math.sqrt(1+n-o-u);this._w=(l-s)/e,this._x=.25*e,this._y=(r+a)/e,this._z=(i+c)/e}else if(o>u){let e=2*Math.sqrt(1+o-n-u);this._w=(i-c)/e,this._x=(r+a)/e,this._y=.25*e,this._z=(s+l)/e}else{let e=2*Math.sqrt(1+u-n-o);this._w=(a-r)/e,this._x=(i+c)/e,this._y=(s+l)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<1e-8?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(W(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let r=Math.min(1,t/n);return this.slerp(e,r),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*=e,this._y*=e,this._z*=e,this._w*=e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,r=e._y,i=e._z,a=e._w,o=t._x,s=t._y,c=t._z,l=t._w;return this._x=n*l+a*o+r*c-i*s,this._y=r*l+a*s+i*o-n*c,this._z=i*l+a*c+n*s-r*o,this._w=a*l-n*o-r*s-i*c,this._onChangeCallback(),this}slerp(e,t){let n=e._x,r=e._y,i=e._z,a=e._w,o=this.dot(e);o<0&&(n=-n,r=-r,i=-i,a=-a,o=-o);let s=1-t;if(o<.9995){let e=Math.acos(o),c=Math.sin(e);s=Math.sin(s*e)/c,t=Math.sin(t*e)/c,this._x=this._x*s+n*t,this._y=this._y*s+r*t,this._z=this._z*s+i*t,this._w=this._w*s+a*t,this._onChangeCallback()}else this._x=this._x*s+n*t,this._y=this._y*s+r*t,this._z=this._z*s+i*t,this._w=this._w*s+a*t,this.normalize();return this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),r=Math.sqrt(1-n),i=Math.sqrt(n);return this.set(r*Math.sin(e),r*Math.cos(e),i*Math.sin(t),i*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),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}},q=class e{static{e.prototype.isVector3=!0}constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error(`THREE.Vector3: 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 Error(`THREE.Vector3: 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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.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,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Lt.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Lt.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6]*r,this.y=i[1]*t+i[4]*n+i[7]*r,this.z=i[2]*t+i[5]*n+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,r=this.z,i=e.elements,a=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*a,this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*a,this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,r=this.z,i=e.x,a=e.y,o=e.z,s=e.w,c=2*(a*r-o*n),l=2*(o*t-i*r),u=2*(i*n-a*t);return this.x=t+s*c+a*u-o*l,this.y=n+s*l+o*c-i*u,this.z=r+s*u+i*l-a*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[4]*n+i[8]*r,this.y=i[1]*t+i[5]*n+i[9]*r,this.z=i[2]*t+i[6]*n+i[10]*r,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,t){return this.x=W(this.x,e.x,t.x),this.y=W(this.y,e.y,t.y),this.z=W(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=W(this.x,e,t),this.y=W(this.y,e,t),this.z=W(this.z,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(W(n,e,t))}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,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,r=e.y,i=e.z,a=t.x,o=t.y,s=t.z;return this.x=r*s-i*o,this.y=i*a-n*s,this.z=n*o-r*a,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return It.copy(this).projectOnVector(e),this.sub(It)}reflect(e){return this.sub(It.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(W(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}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,t,n){let r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*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,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},It=new q,Lt=new Ft,J=class e{static{e.prototype.isMatrix3=!0}constructor(e,t,n,r,i,a,o,s,c){this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,n,r,i,a,o,s,c)}set(e,t,n,r,i,a,o,s,c){let l=this.elements;return l[0]=e,l[1]=r,l[2]=o,l[3]=t,l[4]=i,l[5]=s,l[6]=n,l[7]=a,l[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,r=t.elements,i=this.elements,a=n[0],o=n[3],s=n[6],c=n[1],l=n[4],u=n[7],d=n[2],f=n[5],p=n[8],m=r[0],h=r[3],g=r[6],_=r[1],v=r[4],y=r[7],b=r[2],x=r[5],S=r[8];return i[0]=a*m+o*_+s*b,i[3]=a*h+o*v+s*x,i[6]=a*g+o*y+s*S,i[1]=c*m+l*_+u*b,i[4]=c*h+l*v+u*x,i[7]=c*g+l*y+u*S,i[2]=d*m+f*_+p*b,i[5]=d*h+f*v+p*x,i[8]=d*g+f*y+p*S,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],s=e[6],c=e[7],l=e[8];return t*a*l-t*o*c-n*i*l+n*o*s+r*i*c-r*a*s}invert(){let e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],s=e[6],c=e[7],l=e[8],u=l*a-o*c,d=o*s-l*i,f=c*i-a*s,p=t*u+n*d+r*f;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);let m=1/p;return e[0]=u*m,e[1]=(r*c-l*n)*m,e[2]=(o*n-r*a)*m,e[3]=d*m,e[4]=(l*t-r*s)*m,e[5]=(r*i-o*t)*m,e[6]=f*m,e[7]=(n*s-c*t)*m,e[8]=(a*t-n*i)*m,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,r,i,a,o){let s=Math.cos(i),c=Math.sin(i);return this.set(n*s,n*c,-n*(s*a+c*o)+a+e,-r*c,r*s,-r*(-c*a+s*o)+o+t,0,0,1),this}scale(e,t){return ot(`Matrix3: .scale() is deprecated. Use .makeScale() instead.`),this.premultiply(Rt.makeScale(e,t)),this}rotate(e){return ot(`Matrix3: .rotate() is deprecated. Use .makeRotation() instead.`),this.premultiply(Rt.makeRotation(-e)),this}translate(e,t){return ot(`Matrix3: .translate() is deprecated. Use .makeTranslation() instead.`),this.premultiply(Rt.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}},Rt=new J,zt=new J().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Bt=new J().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Vt(){let e={enabled:!0,workingColorSpace:Je,spaces:{},convert:function(e,t,n){return this.enabled===!1||t===n||!t||!n?e:(this.spaces[t].transfer===`srgb`&&(e.r=Ht(e.r),e.g=Ht(e.g),e.b=Ht(e.b)),this.spaces[t].primaries!==this.spaces[n].primaries&&(e.applyMatrix3(this.spaces[t].toXYZ),e.applyMatrix3(this.spaces[n].fromXYZ)),this.spaces[n].transfer===`srgb`&&(e.r=Ut(e.r),e.g=Ut(e.g),e.b=Ut(e.b)),e)},workingToColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},colorSpaceToWorking:function(e,t){return this.convert(e,t,this.workingColorSpace)},getPrimaries:function(e){return this.spaces[e].primaries},getTransfer:function(e){return e===``?Ye:this.spaces[e].transfer},getToneMappingMode:function(e){return this.spaces[e].outputColorSpaceConfig.toneMappingMode||`standard`},getLuminanceCoefficients:function(e,t=this.workingColorSpace){return e.fromArray(this.spaces[t].luminanceCoefficients)},define:function(e){Object.assign(this.spaces,e)},_getMatrix:function(e,t,n){return e.copy(this.spaces[t].toXYZ).multiply(this.spaces[n].fromXYZ)},_getDrawingBufferColorSpace:function(e){return this.spaces[e].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(e=this.workingColorSpace){return this.spaces[e].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(t,n){return ot(`ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().`),e.workingToColorSpace(t,n)},toWorkingColorSpace:function(t,n){return ot(`ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().`),e.colorSpaceToWorking(t,n)}},t=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],r=[.3127,.329];return e.define({[Je]:{primaries:t,whitePoint:r,transfer:Ye,toXYZ:zt,fromXYZ:Bt,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:qe},outputColorSpaceConfig:{drawingBufferColorSpace:qe}},[qe]:{primaries:t,whitePoint:r,transfer:Xe,toXYZ:zt,fromXYZ:Bt,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:qe}}}),e}var Y=Vt();function Ht(e){return e<.04045?e*.0773993808:(e*.9478672986+.0521327014)**2.4}function Ut(e){return e<.0031308?e*12.92:1.055*e**.41666-.055}var Wt,Gt=class{static getDataURL(e,t=`image/png`){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>`u`)return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{Wt===void 0&&(Wt=V(`canvas`)),Wt.width=e.width,Wt.height=e.height;let t=Wt.getContext(`2d`);e instanceof ImageData?t.putImageData(e,0,0):t.drawImage(e,0,0,e.width,e.height),n=Wt}return n.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<`u`&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<`u`&&e instanceof HTMLCanvasElement||typeof ImageBitmap<`u`&&e instanceof ImageBitmap){let t=V(`canvas`);t.width=e.width,t.height=e.height;let n=t.getContext(`2d`);n.drawImage(e,0,0,e.width,e.height);let r=n.getImageData(0,0,e.width,e.height),i=r.data;for(let e=0;e1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(Xt).x}get height(){return this.source.getSize(Xt).y}get depth(){return this.source.getSize(Xt).z}get image(){return this.source.data}set image(e){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,t){this.updateRanges.push({start:e,count:t})}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.normalized=e.normalized,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(let t in e){let n=e[t];if(n===void 0){H(`Texture.setValues(): parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){H(`Texture.setValues(): property '${t}' does not exist.`);continue}r&&n&&r.isVector2&&n.isVector2||r&&n&&r.isVector3&&n.isVector3||r&&n&&r.isMatrix3&&n.isMatrix3?r.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e==`string`;if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let n={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,normalized:this.normalized,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&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:`dispose`})}transformUv(e){if(this.mapping!==300)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case f:e.x-=Math.floor(e.x);break;case p:e.x=e.x<0?0:1;break;case m:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x-=Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case f:e.y-=Math.floor(e.y);break;case p:e.y=e.y<0?0:1;break;case m:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y-=Math.floor(e.y)}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++}};Zt.DEFAULT_IMAGE=null,Zt.DEFAULT_MAPPING=300,Zt.DEFAULT_ANISOTROPY=1;var Qt=class e{static{e.prototype.isVector4=!0}constructor(e=0,t=0,n=0,r=1){this.x=e,this.y=t,this.z=n,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error(`THREE.Vector4: 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 Error(`THREE.Vector4: 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?1:e.w,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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.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){let t=this.x,n=this.y,r=this.z,i=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*r+a[12]*i,this.y=a[1]*t+a[5]*n+a[9]*r+a[13]*i,this.z=a[2]*t+a[6]*n+a[10]*r+a[14]*i,this.w=a[3]*t+a[7]*n+a[11]*r+a[15]*i,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);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,r,i,a=.01,o=.1,s=e.elements,c=s[0],l=s[4],u=s[8],d=s[1],f=s[5],p=s[9],m=s[2],h=s[6],g=s[10];if(Math.abs(l-d)s&&e>_?e_?s1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}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 t=0,n=e.textures.length;t>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.pivot!==null&&(r.pivot=this.pivot.toArray()),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.morphTargetDictionary!==void 0&&(r.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(r.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(r.type=`InstancedMesh`,r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type=`BatchedMesh`,r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.geometryInfo=this._geometryInfo.map(e=>({...e,boundingBox:e.boundingBox?e.boundingBox.toJSON():void 0,boundingSphere:e.boundingSphere?e.boundingSphere.toJSON():void 0})),r.instanceInfo=this._instanceInfo.map(e=>({...e})),r.availableInstanceIds=this._availableInstanceIds.slice(),r.availableGeometryIds=this._availableGeometryIds.slice(),r.nextIndexStart=this._nextIndexStart,r.nextVertexStart=this._nextVertexStart,r.geometryCount=this._geometryCount,r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.matricesTexture=this._matricesTexture.toJSON(e),r.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(r.boundingBox=this.boundingBox.toJSON()));function i(t,n){return t[n.uuid]===void 0&&(t[n.uuid]=n.toJSON(e)),n.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);let t=this.geometry.parameters;if(t!==void 0&&t.shapes!==void 0){let n=t.shapes;if(Array.isArray(n))for(let t=0,r=n.length;t0){r.children=[];for(let t=0;t0){r.animations=[];for(let t=0;t0&&(n.geometries=t),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),o.length>0&&(n.images=o),s.length>0&&(n.shapes=s),c.length>0&&(n.skeletons=c),l.length>0&&(n.animations=l),u.length>0&&(n.nodes=u)}return n.object=r,n;function a(e){let t=[];for(let n in e){let r=e[n];delete r.metadata,t.push(r)}return t}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!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.pivot=e.pivot===null?null:e.pivot.clone(),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.static=e.static,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let t=0;t.025?(c.inputState.pinching=!1,this.dispatchEvent({type:`pinchend`,handedness:e.handedness,target:this})):!c.inputState.pinching&&o<=.015&&(c.inputState.pinching=!0,this.dispatchEvent({type:`pinchstart`,handedness:e.handedness,target:this}))}else s!==null&&e.gripSpace&&(i=t.getPose(e.gripSpace,n),i!==null&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,s.eventsEnabled&&s.dispatchEvent({type:`gripUpdated`,data:e,target:this})));o!==null&&(r=t.getPose(e.targetRaySpace,n),r===null&&i!==null&&(r=i),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(Nn)))}return o!==null&&(o.visible=r!==null),s!==null&&(s.visible=i!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let n=new Mn;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},Fn={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},In={h:0,s:0,l:0},Ln={h:0,s:0,l:0};function Rn(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*6*(2/3-n):e}var X=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){let t=e;t&&t.isColor?this.copy(t):typeof t==`number`?this.setHex(t):typeof t==`string`&&this.setStyle(t)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=qe){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Y.colorSpaceToWorking(this,t),this}setRGB(e,t,n,r=Y.workingColorSpace){return this.r=e,this.g=t,this.b=n,Y.colorSpaceToWorking(this,r),this}setHSL(e,t,n,r=Y.workingColorSpace){if(e=ht(e,1),t=W(t,0,1),n=W(n,0,1),t===0)this.r=this.g=this.b=n;else{let r=n<=.5?n*(1+t):n+t-n*t,i=2*n-r;this.r=Rn(i,r,e+1/3),this.g=Rn(i,r,e),this.b=Rn(i,r,e-1/3)}return Y.colorSpaceToWorking(this,r),this}setStyle(e,t=qe){function n(t){t!==void 0&&parseFloat(t)<1&&H(`Color: Alpha component of `+e+` will be ignored.`)}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let i,a=r[1],o=r[2];switch(a){case`rgb`:case`rgba`:if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,t);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,t);break;case`hsl`:case`hsla`:if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,t);break;default:H(`Color: Unknown color model `+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){let n=r[1],i=n.length;if(i===3)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,t);if(i===6)return this.setHex(parseInt(n,16),t);H(`Color: Invalid hex color `+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=qe){let n=Fn[e.toLowerCase()];return n===void 0?H(`Color: Unknown color `+e):this.setHex(n,t),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=Ht(e.r),this.g=Ht(e.g),this.b=Ht(e.b),this}copyLinearToSRGB(e){return this.r=Ut(e.r),this.g=Ut(e.g),this.b=Ut(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=qe){return Y.workingToColorSpace(zn.copy(this),e),Math.round(W(zn.r*255,0,255))*65536+Math.round(W(zn.g*255,0,255))*256+Math.round(W(zn.b*255,0,255))}getHexString(e=qe){return(`000000`+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Y.workingColorSpace){Y.workingToColorSpace(zn.copy(this),t);let n=zn.r,r=zn.g,i=zn.b,a=Math.max(n,r,i),o=Math.min(n,r,i),s,c,l=(o+a)/2;if(o===a)s=0,c=0;else{let e=a-o;switch(c=l<=.5?e/(a+o):e/(2-a-o),a){case n:s=(r-i)/e+(r0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}},Hn=new q,Un=new q,Wn=new q,Gn=new q,Kn=new q,qn=new q,Jn=new q,Yn=new q,Xn=new q,Zn=new q,Qn=new Qt,$n=new Qt,er=new Qt,tr=class e{constructor(e=new q,t=new q,n=new q){this.a=e,this.b=t,this.c=n}static getNormal(e,t,n,r){r.subVectors(n,t),Hn.subVectors(e,t),r.cross(Hn);let i=r.lengthSq();return i>0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,t,n,r,i){Hn.subVectors(r,t),Un.subVectors(n,t),Wn.subVectors(e,t);let a=Hn.dot(Hn),o=Hn.dot(Un),s=Hn.dot(Wn),c=Un.dot(Un),l=Un.dot(Wn),u=a*c-o*o;if(u===0)return i.set(0,0,0),null;let d=1/u,f=(c*s-o*l)*d,p=(a*l-o*s)*d;return i.set(1-f-p,p,f)}static containsPoint(e,t,n,r){return this.getBarycoord(e,t,n,r,Gn)!==null&&Gn.x>=0&&Gn.y>=0&&Gn.x+Gn.y<=1}static getInterpolation(e,t,n,r,i,a,o,s){return this.getBarycoord(e,t,n,r,Gn)===null?(s.x=0,s.y=0,`z`in s&&(s.z=0),`w`in s&&(s.w=0),null):(s.setScalar(0),s.addScaledVector(i,Gn.x),s.addScaledVector(a,Gn.y),s.addScaledVector(o,Gn.z),s)}static getInterpolatedAttribute(e,t,n,r,i,a){return Qn.setScalar(0),$n.setScalar(0),er.setScalar(0),Qn.fromBufferAttribute(e,t),$n.fromBufferAttribute(e,n),er.fromBufferAttribute(e,r),a.setScalar(0),a.addScaledVector(Qn,i.x),a.addScaledVector($n,i.y),a.addScaledVector(er,i.z),a}static isFrontFacing(e,t,n,r){return Hn.subVectors(n,t),Un.subVectors(e,t),Hn.cross(Un).dot(r)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,n,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,r),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 Hn.subVectors(this.c,this.b),Un.subVectors(this.a,this.b),Hn.cross(Un).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return e.getNormal(this.a,this.b,this.c,t)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,n){return e.getBarycoord(t,this.a,this.b,this.c,n)}getInterpolation(t,n,r,i,a){return e.getInterpolation(t,this.a,this.b,this.c,n,r,i,a)}containsPoint(t){return e.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return e.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n=this.a,r=this.b,i=this.c,a,o;Kn.subVectors(r,n),qn.subVectors(i,n),Yn.subVectors(e,n);let s=Kn.dot(Yn),c=qn.dot(Yn);if(s<=0&&c<=0)return t.copy(n);Xn.subVectors(e,r);let l=Kn.dot(Xn),u=qn.dot(Xn);if(l>=0&&u<=l)return t.copy(r);let d=s*u-l*c;if(d<=0&&s>=0&&l<=0)return a=s/(s-l),t.copy(n).addScaledVector(Kn,a);Zn.subVectors(e,i);let f=Kn.dot(Zn),p=qn.dot(Zn);if(p>=0&&f<=p)return t.copy(i);let m=f*c-s*p;if(m<=0&&c>=0&&p<=0)return o=c/(c-p),t.copy(n).addScaledVector(qn,o);let h=l*p-f*u;if(h<=0&&u-l>=0&&f-p>=0)return Jn.subVectors(i,r),o=(u-l)/(u-l+(f-p)),t.copy(r).addScaledVector(Jn,o);let g=1/(h+m+d);return a=m*g,o=d*g,t.copy(n).addScaledVector(Kn,a).addScaledVector(qn,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},nr=class{constructor(e=new q(1/0,1/0,1/0),t=new q(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=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,t){return t.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,ir),ir.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(fr),pr.subVectors(this.max,fr),or.subVectors(e.a,fr),sr.subVectors(e.b,fr),cr.subVectors(e.c,fr),lr.subVectors(sr,or),ur.subVectors(cr,sr),dr.subVectors(or,cr);let t=[0,-lr.z,lr.y,0,-ur.z,ur.y,0,-dr.z,dr.y,lr.z,0,-lr.x,ur.z,0,-ur.x,dr.z,0,-dr.x,-lr.y,lr.x,0,-ur.y,ur.x,0,-dr.y,dr.x,0];return!gr(t,or,sr,cr,pr)||(t=[1,0,0,0,1,0,0,0,1],!gr(t,or,sr,cr,pr))?!1:(mr.crossVectors(lr,ur),t=[mr.x,mr.y,mr.z],gr(t,or,sr,cr,pr))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,ir).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(ir).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:(rr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),rr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),rr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),rr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),rr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),rr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),rr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),rr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(rr),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}},rr=[new q,new q,new q,new q,new q,new q,new q,new q],ir=new q,ar=new nr,or=new q,sr=new q,cr=new q,lr=new q,ur=new q,dr=new q,fr=new q,pr=new q,mr=new q,hr=new q;function gr(e,t,n,r,i){for(let a=0,o=e.length-3;a<=o;a+=3){hr.fromArray(e,a);let o=i.x*Math.abs(hr.x)+i.y*Math.abs(hr.y)+i.z*Math.abs(hr.z),s=t.dot(hr),c=n.dot(hr),l=r.dot(hr);if(Math.max(-Math.max(s,c,l),Math.min(s,c,l))>o)return!1}return!0}var _r=new q,vr=new K,yr=0,br=class extends lt{constructor(e,t,n=!1){if(super(),Array.isArray(e))throw TypeError(`THREE.BufferAttribute: array should be a Typed Array.`);this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:yr++}),this.name=``,this.array=e,this.itemSize=t,this.count=e===void 0?0:e.length/t,this.normalized=n,this.usage=Qe,this.updateRanges=[],this.gpuType=D,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}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,t,n){e*=this.itemSize,n*=t.itemSize;for(let r=0,i=this.itemSize;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}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*=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;Tr.subVectors(e,this.center);let t=Tr.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),n=(e-this.radius)*.5;this.center.addScaledVector(Tr,n/e),this.radius+=n}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):(Er.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Tr.copy(e.center).add(Er)),this.expandByPoint(Tr.copy(e.center).sub(Er))),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}},Or=0,kr=new rn,Ar=new jn,jr=new q,Mr=new nr,Nr=new nr,Pr=new q,Fr=class e extends lt{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:Or++}),this.uuid=mt(),this.name=``,this.type=`BufferGeometry`,this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={},this._transformed=!1}getIndex(){return this.index}setIndex(e){return this.index=Array.isArray(e)?new(et(e)?Sr:xr)(e,1):e,this}setIndirect(e,t=0){return this.indirect=e,this.indirectOffset=t,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let n=this.attributes.normal;if(n!==void 0){let t=new J().getNormalMatrix(e);n.applyNormalMatrix(t),n.needsUpdate=!0}let r=this.attributes.tangent;return r!==void 0&&(r.transformDirection(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(e){return kr.makeRotationFromQuaternion(e),this.applyMatrix4(kr),this}rotateX(e){return kr.makeRotationX(e),this.applyMatrix4(kr),this}rotateY(e){return kr.makeRotationY(e),this.applyMatrix4(kr),this}rotateZ(e){return kr.makeRotationZ(e),this.applyMatrix4(kr),this}translate(e,t,n){return kr.makeTranslation(e,t,n),this.applyMatrix4(kr),this}scale(e,t,n){return kr.makeScale(e,t,n),this.applyMatrix4(kr),this}lookAt(e){return Ar.lookAt(e),Ar.updateMatrix(),this.applyMatrix4(Ar.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(jr).negate(),this.translate(jr.x,jr.y,jr.z),this}setFromPoints(e){let t=this.getAttribute(`position`);if(t===void 0){let t=[];for(let n=0,r=e.length;nt.count&&H(`BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.`),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new nr);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){U(`BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.`,this),this.boundingBox.set(new q(-1/0,-1/0,-1/0),new q(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let e=0,n=t.length;e0&&(e.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){let t=this.parameters;for(let n in t)t[n]!==void 0&&(e[n]=t[n]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let t in n){let r=n[t];e.data.attributes[t]=r.toJSON(e.data)}let r={},i=!1;for(let t in this.morphAttributes){let n=this.morphAttributes[t],a=[];for(let t=0,r=n.length;t0&&(r[t]=a,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let 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;let t={};this.name=e.name;let n=e.index;n!==null&&this.setIndex(n.clone());let r=e.attributes;for(let e in r){let n=r[e];this.setAttribute(e,n.clone(t))}let i=e.morphAttributes;for(let e in i){let n=[],r=i[e];for(let e=0,i=r.length;e0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let n=e[t];if(n===void 0){H(`Material: parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){H(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(n):r&&r.isVector2&&n&&n.isVector2||r&&r.isEuler&&n&&n.isEuler||r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e==`string`;t&&(e={textures:{},images:{}});let n={metadata:{version:4.7,type:`Material`,generator:`Material.toJSON`}};n.uuid=this.uuid,n.type=this.type,this.name!==``&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(n.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(n.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.side!==0&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==204&&(n.blendSrc=this.blendSrc),this.blendDst!==205&&(n.blendDst=this.blendDst),this.blendEquation!==100&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==3&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==519&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==7680&&(n.stencilFail=this.stencilFail),this.stencilZFail!==7680&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==7680&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.allowOverride===!1&&(n.allowOverride=!1),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!==`round`&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!==`round`&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function r(e){let t=[];for(let n in e){let r=e[n];delete r.metadata,t.push(r)}return t}if(t){let t=r(e.textures),i=r(e.images);t.length>0&&(n.textures=t),i.length>0&&(n.images=i)}return n}fromJSON(e,t){if(e.uuid!==void 0&&(this.uuid=e.uuid),e.name!==void 0&&(this.name=e.name),e.color!==void 0&&this.color!==void 0&&this.color.setHex(e.color),e.roughness!==void 0&&(this.roughness=e.roughness),e.metalness!==void 0&&(this.metalness=e.metalness),e.sheen!==void 0&&(this.sheen=e.sheen),e.sheenColor!==void 0&&(this.sheenColor=new X().setHex(e.sheenColor)),e.sheenRoughness!==void 0&&(this.sheenRoughness=e.sheenRoughness),e.emissive!==void 0&&this.emissive!==void 0&&this.emissive.setHex(e.emissive),e.specular!==void 0&&this.specular!==void 0&&this.specular.setHex(e.specular),e.specularIntensity!==void 0&&(this.specularIntensity=e.specularIntensity),e.specularColor!==void 0&&this.specularColor!==void 0&&this.specularColor.setHex(e.specularColor),e.shininess!==void 0&&(this.shininess=e.shininess),e.clearcoat!==void 0&&(this.clearcoat=e.clearcoat),e.clearcoatRoughness!==void 0&&(this.clearcoatRoughness=e.clearcoatRoughness),e.dispersion!==void 0&&(this.dispersion=e.dispersion),e.iridescence!==void 0&&(this.iridescence=e.iridescence),e.iridescenceIOR!==void 0&&(this.iridescenceIOR=e.iridescenceIOR),e.iridescenceThicknessRange!==void 0&&(this.iridescenceThicknessRange=e.iridescenceThicknessRange),e.transmission!==void 0&&(this.transmission=e.transmission),e.thickness!==void 0&&(this.thickness=e.thickness),e.attenuationDistance!==void 0&&(this.attenuationDistance=e.attenuationDistance),e.attenuationColor!==void 0&&this.attenuationColor!==void 0&&this.attenuationColor.setHex(e.attenuationColor),e.anisotropy!==void 0&&(this.anisotropy=e.anisotropy),e.anisotropyRotation!==void 0&&(this.anisotropyRotation=e.anisotropyRotation),e.fog!==void 0&&(this.fog=e.fog),e.flatShading!==void 0&&(this.flatShading=e.flatShading),e.blending!==void 0&&(this.blending=e.blending),e.combine!==void 0&&(this.combine=e.combine),e.side!==void 0&&(this.side=e.side),e.shadowSide!==void 0&&(this.shadowSide=e.shadowSide),e.opacity!==void 0&&(this.opacity=e.opacity),e.transparent!==void 0&&(this.transparent=e.transparent),e.alphaTest!==void 0&&(this.alphaTest=e.alphaTest),e.alphaHash!==void 0&&(this.alphaHash=e.alphaHash),e.depthFunc!==void 0&&(this.depthFunc=e.depthFunc),e.depthTest!==void 0&&(this.depthTest=e.depthTest),e.depthWrite!==void 0&&(this.depthWrite=e.depthWrite),e.colorWrite!==void 0&&(this.colorWrite=e.colorWrite),e.blendSrc!==void 0&&(this.blendSrc=e.blendSrc),e.blendDst!==void 0&&(this.blendDst=e.blendDst),e.blendEquation!==void 0&&(this.blendEquation=e.blendEquation),e.blendSrcAlpha!==void 0&&(this.blendSrcAlpha=e.blendSrcAlpha),e.blendDstAlpha!==void 0&&(this.blendDstAlpha=e.blendDstAlpha),e.blendEquationAlpha!==void 0&&(this.blendEquationAlpha=e.blendEquationAlpha),e.blendColor!==void 0&&this.blendColor!==void 0&&this.blendColor.setHex(e.blendColor),e.blendAlpha!==void 0&&(this.blendAlpha=e.blendAlpha),e.stencilWriteMask!==void 0&&(this.stencilWriteMask=e.stencilWriteMask),e.stencilFunc!==void 0&&(this.stencilFunc=e.stencilFunc),e.stencilRef!==void 0&&(this.stencilRef=e.stencilRef),e.stencilFuncMask!==void 0&&(this.stencilFuncMask=e.stencilFuncMask),e.stencilFail!==void 0&&(this.stencilFail=e.stencilFail),e.stencilZFail!==void 0&&(this.stencilZFail=e.stencilZFail),e.stencilZPass!==void 0&&(this.stencilZPass=e.stencilZPass),e.stencilWrite!==void 0&&(this.stencilWrite=e.stencilWrite),e.wireframe!==void 0&&(this.wireframe=e.wireframe),e.wireframeLinewidth!==void 0&&(this.wireframeLinewidth=e.wireframeLinewidth),e.wireframeLinecap!==void 0&&(this.wireframeLinecap=e.wireframeLinecap),e.wireframeLinejoin!==void 0&&(this.wireframeLinejoin=e.wireframeLinejoin),e.rotation!==void 0&&(this.rotation=e.rotation),e.linewidth!==void 0&&(this.linewidth=e.linewidth),e.dashSize!==void 0&&(this.dashSize=e.dashSize),e.gapSize!==void 0&&(this.gapSize=e.gapSize),e.scale!==void 0&&(this.scale=e.scale),e.polygonOffset!==void 0&&(this.polygonOffset=e.polygonOffset),e.polygonOffsetFactor!==void 0&&(this.polygonOffsetFactor=e.polygonOffsetFactor),e.polygonOffsetUnits!==void 0&&(this.polygonOffsetUnits=e.polygonOffsetUnits),e.dithering!==void 0&&(this.dithering=e.dithering),e.alphaToCoverage!==void 0&&(this.alphaToCoverage=e.alphaToCoverage),e.premultipliedAlpha!==void 0&&(this.premultipliedAlpha=e.premultipliedAlpha),e.forceSinglePass!==void 0&&(this.forceSinglePass=e.forceSinglePass),e.allowOverride!==void 0&&(this.allowOverride=e.allowOverride),e.visible!==void 0&&(this.visible=e.visible),e.toneMapped!==void 0&&(this.toneMapped=e.toneMapped),e.userData!==void 0&&(this.userData=e.userData),e.vertexColors!==void 0&&(this.vertexColors=typeof e.vertexColors==`number`?e.vertexColors>0:e.vertexColors),e.size!==void 0&&(this.size=e.size),e.sizeAttenuation!==void 0&&(this.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(this.map=t[e.map]||null),e.matcap!==void 0&&(this.matcap=t[e.matcap]||null),e.alphaMap!==void 0&&(this.alphaMap=t[e.alphaMap]||null),e.bumpMap!==void 0&&(this.bumpMap=t[e.bumpMap]||null),e.bumpScale!==void 0&&(this.bumpScale=e.bumpScale),e.normalMap!==void 0&&(this.normalMap=t[e.normalMap]||null),e.normalMapType!==void 0&&(this.normalMapType=e.normalMapType),e.normalScale!==void 0){let t=e.normalScale;Array.isArray(t)===!1&&(t=[t,t]),this.normalScale=new K().fromArray(t)}return e.displacementMap!==void 0&&(this.displacementMap=t[e.displacementMap]||null),e.displacementScale!==void 0&&(this.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(this.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(this.roughnessMap=t[e.roughnessMap]||null),e.metalnessMap!==void 0&&(this.metalnessMap=t[e.metalnessMap]||null),e.emissiveMap!==void 0&&(this.emissiveMap=t[e.emissiveMap]||null),e.emissiveIntensity!==void 0&&(this.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(this.specularMap=t[e.specularMap]||null),e.specularIntensityMap!==void 0&&(this.specularIntensityMap=t[e.specularIntensityMap]||null),e.specularColorMap!==void 0&&(this.specularColorMap=t[e.specularColorMap]||null),e.envMap!==void 0&&(this.envMap=t[e.envMap]||null),e.envMapRotation!==void 0&&this.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(this.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(this.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(this.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(this.lightMap=t[e.lightMap]||null),e.lightMapIntensity!==void 0&&(this.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(this.aoMap=t[e.aoMap]||null),e.aoMapIntensity!==void 0&&(this.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(this.gradientMap=t[e.gradientMap]||null),e.clearcoatMap!==void 0&&(this.clearcoatMap=t[e.clearcoatMap]||null),e.clearcoatRoughnessMap!==void 0&&(this.clearcoatRoughnessMap=t[e.clearcoatRoughnessMap]||null),e.clearcoatNormalMap!==void 0&&(this.clearcoatNormalMap=t[e.clearcoatNormalMap]||null),e.clearcoatNormalScale!==void 0&&(this.clearcoatNormalScale=new K().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(this.iridescenceMap=t[e.iridescenceMap]||null),e.iridescenceThicknessMap!==void 0&&(this.iridescenceThicknessMap=t[e.iridescenceThicknessMap]||null),e.transmissionMap!==void 0&&(this.transmissionMap=t[e.transmissionMap]||null),e.thicknessMap!==void 0&&(this.thicknessMap=t[e.thicknessMap]||null),e.anisotropyMap!==void 0&&(this.anisotropyMap=t[e.anisotropyMap]||null),e.sheenColorMap!==void 0&&(this.sheenColorMap=t[e.sheenColorMap]||null),e.sheenRoughnessMap!==void 0&&(this.sheenRoughnessMap=t[e.sheenRoughnessMap]||null),this}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;let t=e.clippingPlanes,n=null;if(t!==null){let e=t.length;n=Array(e);for(let r=0;r!==e;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,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++}},Vr=class extends Br{constructor(e){super(),this.isSpriteMaterial=!0,this.type=`SpriteMaterial`,this.color=new X(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},Hr,Ur=new q,Wr=new q,Gr=new q,Kr=new K,qr=new K,Jr=new rn,Yr=new q,Xr=new q,Zr=new q,Qr=new K,$r=new K,ei=new K,ti=class extends jn{constructor(e=new Vr){if(super(),this.isSprite=!0,this.type=`Sprite`,Hr===void 0){Hr=new Fr;let e=new Ir(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);Hr.setIndex([0,1,2,0,2,3]),Hr.setAttribute(`position`,new Rr(e,3,0,!1)),Hr.setAttribute(`uv`,new Rr(e,2,3,!1))}this.geometry=Hr,this.material=e,this.center=new K(.5,.5),this.count=1}raycast(e,t){e.camera===null&&U(`Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.`),Wr.setFromMatrixScale(this.matrixWorld),Jr.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Gr.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&Wr.multiplyScalar(-Gr.z);let n=this.material.rotation,r,i;n!==0&&(i=Math.cos(n),r=Math.sin(n));let a=this.center;ni(Yr.set(-.5,-.5,0),Gr,a,Wr,r,i),ni(Xr.set(.5,-.5,0),Gr,a,Wr,r,i),ni(Zr.set(.5,.5,0),Gr,a,Wr,r,i),Qr.set(0,0),$r.set(1,0),ei.set(1,1);let o=e.ray.intersectTriangle(Yr,Xr,Zr,!1,Ur);if(o===null&&(ni(Xr.set(-.5,.5,0),Gr,a,Wr,r,i),$r.set(0,1),o=e.ray.intersectTriangle(Yr,Zr,Xr,!1,Ur),o===null))return;let s=e.ray.origin.distanceTo(Ur);se.far||t.push({distance:s,point:Ur.clone(),uv:tr.getInterpolation(Ur,Yr,Xr,Zr,Qr,$r,ei,new K),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};function ni(e,t,n,r,i,a){Kr.subVectors(e,n).addScalar(.5).multiply(r),i===void 0?qr.copy(Kr):(qr.x=a*Kr.x-i*Kr.y,qr.y=i*Kr.x+a*Kr.y),e.copy(t),e.x+=qr.x,e.y+=qr.y,e.applyMatrix4(Jr)}var ri=new q,ii=new q,ai=new q,oi=new q,si=new q,ci=new q,li=new q,ui=class{constructor(e=new q,t=new q(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.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,ri)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=ri.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(ri.copy(this.origin).addScaledVector(this.direction,t),ri.distanceToSquared(e))}distanceSqToSegment(e,t,n,r){ii.copy(e).add(t).multiplyScalar(.5),ai.copy(t).sub(e).normalize(),oi.copy(this.origin).sub(ii);let i=e.distanceTo(t)*.5,a=-this.direction.dot(ai),o=oi.dot(this.direction),s=-oi.dot(ai),c=oi.lengthSq(),l=Math.abs(1-a*a),u,d,f,p;if(l>0){if(u=a*s-o,d=a*o-s,p=i*l,u>=0){if(d>=-p){if(d<=p){let e=1/l;u*=e,d*=e,f=u*(u+a*d+2*o)+d*(a*u+d+2*s)+c}else d=i,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*s)+c}else d=-i,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*s)+c}else d<=-p?(u=Math.max(0,-(-a*i+o)),d=u>0?-i:Math.min(Math.max(-i,-s),i),f=-u*u+d*(d+2*s)+c):d<=p?(u=0,d=Math.min(Math.max(-i,-s),i),f=d*(d+2*s)+c):(u=Math.max(0,-(a*i+o)),d=u>0?i:Math.min(Math.max(-i,-s),i),f=-u*u+d*(d+2*s)+c)}else d=a>0?-i:i,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*s)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),r&&r.copy(ii).addScaledVector(ai,d),f}intersectSphere(e,t){ri.subVectors(e.center,this.origin);let n=ri.dot(this.direction),r=ri.dot(ri)-n*n,i=e.radius*e.radius;if(r>i)return null;let a=Math.sqrt(i-r),o=n-a,s=n+a;return s<0?null:o<0?this.at(s,t):this.at(o,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,r,i,a,o,s,c=1/this.direction.x,l=1/this.direction.y,u=1/this.direction.z,d=this.origin;return c>=0?(n=(e.min.x-d.x)*c,r=(e.max.x-d.x)*c):(n=(e.max.x-d.x)*c,r=(e.min.x-d.x)*c),l>=0?(i=(e.min.y-d.y)*l,a=(e.max.y-d.y)*l):(i=(e.max.y-d.y)*l,a=(e.min.y-d.y)*l),n>a||i>r||((i>n||isNaN(n))&&(n=i),(a=0?(o=(e.min.z-d.z)*u,s=(e.max.z-d.z)*u):(o=(e.max.z-d.z)*u,s=(e.min.z-d.z)*u),n>s||o>r)||((o>n||n!==n)&&(n=o),(s=0?n:r,t)}intersectsBox(e){return this.intersectBox(e,ri)!==null}intersectTriangle(e,t,n,r,i){si.subVectors(t,e),ci.subVectors(n,e),li.crossVectors(si,ci);let a=this.direction.dot(li),o;if(a>0){if(r)return null;o=1}else if(a<0)o=-1,a=-a;else return null;oi.subVectors(this.origin,e);let s=o*this.direction.dot(ci.crossVectors(oi,ci));if(s<0)return null;let c=o*this.direction.dot(si.cross(oi));if(c<0||s+c>a)return null;let l=-o*oi.dot(li);return l<0?null:this.at(l/a,i)}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)}},di=class extends Br{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type=`MeshBasicMaterial`,this.color=new X(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 mn,this.combine=0,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}},fi=new rn,pi=new ui,mi=new Dr,hi=new q,gi=new q,_i=new q,vi=new q,yi=new q,bi=new q,xi=new q,Si=new q,Ci=class extends jn{constructor(e=new Fr,t=new di){super(),this.isMesh=!0,this.type=`Mesh`,this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){let e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){let n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2))&&(fi.copy(i).invert(),pi.copy(e.ray).applyMatrix4(fi),(n.boundingBox===null||pi.intersectsBox(n.boundingBox)!==!1)&&this._computeIntersections(e,t,pi)))}_computeIntersections(e,t,n){let r,i=this.geometry,a=this.material,o=i.index,s=i.attributes.position,c=i.attributes.uv,l=i.attributes.uv1,u=i.attributes.normal,d=i.groups,f=i.drawRange;if(o!==null){if(Array.isArray(a))for(let i=0,s=d.length;in.far?null:{distance:l,point:Si.clone(),object:e}}function Ti(e,t,n,r,i,a,o,s,c,l){e.getVertexPosition(s,gi),e.getVertexPosition(c,_i),e.getVertexPosition(l,vi);let u=wi(e,t,n,r,gi,_i,vi,xi);if(u){let e=new q;tr.getBarycoord(xi,gi,_i,vi,e),i&&(u.uv=tr.getInterpolatedAttribute(i,s,c,l,e,new K)),a&&(u.uv1=tr.getInterpolatedAttribute(a,s,c,l,e,new K)),o&&(u.normal=tr.getInterpolatedAttribute(o,s,c,l,e,new q),u.normal.dot(r.direction)>0&&u.normal.multiplyScalar(-1));let t={a:s,b:c,c:l,normal:new q,materialIndex:0};tr.getNormal(gi,_i,vi,t.normal),u.face=t,u.barycoord=e}return u}var Ei=class extends Zt{constructor(e=null,t=1,n=1,r,i,a,o,s,c=h,l=h,u,d){super(null,a,o,s,c,l,r,i,u,d),this.isDataTexture=!0,this.image={data:e,width:t,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},Di=new q,Oi=new q,ki=new J,Ai=class{constructor(e=new q(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){let r=Di.subVectors(n,t).cross(Oi.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t,n=!0){let r=e.delta(Di),i=this.normal.dot(r);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let a=-(e.start.dot(this.normal)+this.constant)/i;return n===!0&&(a<0||a>1)?null:t.copy(e.start).addScaledVector(r,a)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>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,t){let n=t||ki.getNormalMatrix(e),r=this.coplanarPoint(Di).applyMatrix4(e),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),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)}},ji=new Dr,Mi=new K(.5,.5),Ni=new q,Pi=class{constructor(e=new Ai,t=new Ai,n=new Ai,r=new Ai,i=new Ai,a=new Ai){this.planes=[e,t,n,r,i,a]}set(e,t,n,r,i,a){let o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(r),o[4].copy(i),o[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=$e,n=!1){let r=this.planes,i=e.elements,a=i[0],o=i[1],s=i[2],c=i[3],l=i[4],u=i[5],d=i[6],f=i[7],p=i[8],m=i[9],h=i[10],g=i[11],_=i[12],v=i[13],y=i[14],b=i[15];if(r[0].setComponents(c-a,f-l,g-p,b-_).normalize(),r[1].setComponents(c+a,f+l,g+p,b+_).normalize(),r[2].setComponents(c+o,f+u,g+m,b+v).normalize(),r[3].setComponents(c-o,f-u,g-m,b-v).normalize(),n)r[4].setComponents(s,d,h,y).normalize(),r[5].setComponents(c-s,f-d,g-h,b-y).normalize();else if(r[4].setComponents(c-s,f-d,g-h,b-y).normalize(),t===2e3)r[5].setComponents(c+s,f+d,g+h,b+y).normalize();else if(t===2001)r[5].setComponents(s,d,h,y).normalize();else throw Error(`THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: `+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),ji.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),ji.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(ji)}intersectsSprite(e){return ji.center.set(0,0,0),ji.radius=.7071067811865476+Mi.distanceTo(e.center),ji.applyMatrix4(e.matrixWorld),this.intersectsSphere(ji)}intersectsSphere(e){let t=this.planes,n=e.center,r=-e.radius;for(let e=0;e<6;e++)if(t[e].distanceToPoint(n)0?e.max.x:e.min.x,Ni.y=r.normal.y>0?e.max.y:e.min.y,Ni.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Ni)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},Fi=class extends Br{constructor(e){super(),this.isLineBasicMaterial=!0,this.type=`LineBasicMaterial`,this.color=new X(16777215),this.map=null,this.linewidth=1,this.linecap=`round`,this.linejoin=`round`,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},Ii=new q,Li=new q,Ri=new rn,zi=new ui,Bi=new Dr,Vi=new q,Hi=new q,Ui=class extends jn{constructor(e=new Fr,t=new Fi){super(),this.isLine=!0,this.type=`Line`,this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,n=[0];for(let e=1,r=t.count;e0){let n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;er)return;Vi.applyMatrix4(e.matrixWorld);let c=t.ray.origin.distanceTo(Vi);if(!(ct.far))return{distance:c,point:Hi.clone().applyMatrix4(e.matrixWorld),index:o,face:null,faceIndex:null,barycoord:null,object:e}}var Gi=new q,Ki=new q,qi=class extends Ui{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type=`LineSegments`}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,n=[];for(let e=0,r=t.count;e0?1:-1,l.push(D.x,D.y,D.z),u.push(s/h),u.push(1-a/g),T+=1}for(let e=0;e0&&v(!0),t>0&&v(!1)),this.setIndex(l),this.setAttribute(`position`,new Cr(u,3)),this.setAttribute(`normal`,new Cr(d,3)),this.setAttribute(`uv`,new Cr(f,2));function _(){let a=new q,_=new q,v=0,y=(t-e)/n;for(let c=0;c<=i;c++){let l=[],g=c/i,v=g*(t-e)+e;for(let e=0;e<=r;e++){let t=e/r,i=t*s+o,c=Math.sin(i),m=Math.cos(i);_.x=v*c,_.y=-g*n+h,_.z=v*m,u.push(_.x,_.y,_.z),a.set(c,y,m).normalize(),d.push(a.x,a.y,a.z),f.push(t,1-g),l.push(p++)}m.push(l)}for(let n=0;n0||r!==0)&&(l.push(a,o,c),v+=3),(t>0||r!==i-1)&&(l.push(o,s,c),v+=3)}c.addGroup(g,v,0),g+=v}function v(n){let i=p,a=new K,m=new q,_=0,v=n===!0?e:t,y=n===!0?1:-1;for(let e=1;e<=r;e++)u.push(0,h*y,0),d.push(0,y,0),f.push(.5,.5),p++;let b=p;for(let e=0;e<=r;e++){let t=e/r*s+o,n=Math.cos(t),i=Math.sin(t);m.x=v*i,m.y=h*y,m.z=v*n,u.push(m.x,m.y,m.z),d.push(0,y,0),a.x=n*.5+.5,a.y=i*.5*y+.5,f.push(a.x,a.y),p++}for(let e=0;e0)&&f.push(t,i,c),(e!==n-1||s=0;--t)if(e[t]>=65535)return!0;return!1}function tt(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function V(e){return document.createElementNS(`http://www.w3.org/1999/xhtml`,e)}function nt(){let e=V(`canvas`);return e.style.display=`block`,e}var rt={};function it(...e){let t=`THREE.`+e.shift();console.log(t,...e)}function at(e){let t=e[0];if(typeof t==`string`&&t.startsWith(`TSL:`)){let t=e[1];t&&t.isStackTrace?e[0]+=` `+t.getLocation():e[1]=`Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.`}return e}function H(...e){e=at(e);let t=`THREE.`+e.shift();{let n=e[0];n&&n.isStackTrace?console.warn(n.getError(t)):console.warn(t,...e)}}function U(...e){e=at(e);let t=`THREE.`+e.shift();{let n=e[0];n&&n.isStackTrace?console.error(n.getError(t)):console.error(t,...e)}}function ot(...e){let t=e.join(` `);t in rt||(rt[t]=!0,H(...e))}function st(e,t,n){return new Promise(function(r,i){function a(){switch(e.clientWaitSync(t,e.SYNC_FLUSH_COMMANDS_BIT,0)){case e.WAIT_FAILED:i();break;case e.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:r()}}setTimeout(a,n)})}var ct={0:1,2:6,4:7,3:5,1:0,6:2,7:4,5:3},lt=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){let n=this._listeners;return n!==void 0&&n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){let n=this._listeners;if(n===void 0)return;let r=n[e];if(r!==void 0){let e=r.indexOf(t);e!==-1&&r.splice(e,1)}}dispatchEvent(e){let t=this._listeners;if(t===void 0)return;let n=t[e.type];if(n!==void 0){e.target=this;let t=n.slice(0);for(let n=0,r=t.length;n>8&255]+ut[e>>16&255]+ut[e>>24&255]+`-`+ut[t&255]+ut[t>>8&255]+`-`+ut[t>>16&15|64]+ut[t>>24&255]+`-`+ut[n&63|128]+ut[n>>8&255]+`-`+ut[n>>16&255]+ut[n>>24&255]+ut[r&255]+ut[r>>8&255]+ut[r>>16&255]+ut[r>>24&255]).toLowerCase()}function W(e,t,n){return Math.max(t,Math.min(n,e))}function ht(e,t){return(e%t+t)%t}function gt(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)}function _t(e,t,n){return e===t?0:(n-e)/(t-e)}function vt(e,t,n){return(1-n)*e+n*t}function yt(e,t,n,r){return vt(e,t,1-Math.exp(-n*r))}function bt(e,t=1){return t-Math.abs(ht(e,t*2)-t)}function xt(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*(3-2*e))}function St(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t),e*e*e*(e*(e*6-15)+10))}function Ct(e,t){return e+Math.floor(Math.random()*(t-e+1))}function wt(e,t){return e+Math.random()*(t-e)}function Tt(e){return e*(.5-Math.random())}function Et(e){e!==void 0&&(dt=e);let t=dt+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function Dt(e){return e*ft}function Ot(e){return e*pt}function kt(e){return!(e&e-1)&&e!==0}function At(e){return 2**Math.ceil(Math.log(e)/Math.LN2)}function jt(e){return 2**Math.floor(Math.log(e)/Math.LN2)}function Mt(e,t,n,r,i){let a=Math.cos,o=Math.sin,s=a(n/2),c=o(n/2),l=a((t+r)/2),u=o((t+r)/2),d=a((t-r)/2),f=o((t-r)/2),p=a((r-t)/2),m=o((r-t)/2);switch(i){case`XYX`:e.set(s*u,c*d,c*f,s*l);break;case`YZY`:e.set(c*f,s*u,c*d,s*l);break;case`ZXZ`:e.set(c*d,c*f,s*u,s*l);break;case`XZX`:e.set(s*u,c*m,c*p,s*l);break;case`YXY`:e.set(c*p,s*u,c*m,s*l);break;case`ZYZ`:e.set(c*m,c*p,s*u,s*l);break;default:H(`MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: `+i)}}function Nt(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return e/4294967295;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int32Array:return Math.max(e/2147483647,-1);case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw Error(`THREE.MathUtils: Invalid component type.`)}}function G(e,t){switch(t.constructor){case Float32Array:return e;case Uint32Array:return Math.round(e*4294967295);case Uint16Array:return Math.round(e*65535);case Uint8Array:return Math.round(e*255);case Int32Array:return Math.round(e*2147483647);case Int16Array:return Math.round(e*32767);case Int8Array:return Math.round(e*127);default:throw Error(`THREE.MathUtils: Invalid component type.`)}}var Pt={DEG2RAD:ft,RAD2DEG:pt,generateUUID:mt,clamp:W,euclideanModulo:ht,mapLinear:gt,inverseLerp:_t,lerp:vt,damp:yt,pingpong:bt,smoothstep:xt,smootherstep:St,randInt:Ct,randFloat:wt,randFloatSpread:Tt,seededRandom:Et,degToRad:Dt,radToDeg:Ot,isPowerOfTwo:kt,ceilPowerOfTwo:At,floorPowerOfTwo:jt,setQuaternionFromProperEuler:Mt,normalize:G,denormalize:Nt},K=class e{static{e.prototype.isVector2=!0}constructor(e=0,t=0){this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw Error(`THREE.Vector2: index is out of range: `+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw Error(`THREE.Vector2: 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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.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){let t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[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,t){return this.x=W(this.x,e.x,t.x),this.y=W(this.y,e.y,t.y),this}clampScalar(e,t){return this.x=W(this.x,e,t),this.y=W(this.y,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(W(n,e,t))}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){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(W(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),r=Math.sin(t),i=this.x-e.x,a=this.y-e.y;return this.x=i*n-a*r+e.x,this.y=i*r+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ft=class{constructor(e=0,t=0,n=0,r=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=n,this._w=r}static slerpFlat(e,t,n,r,i,a,o){let s=n[r+0],c=n[r+1],l=n[r+2],u=n[r+3],d=i[a+0],f=i[a+1],p=i[a+2],m=i[a+3];if(u!==m||s!==d||c!==f||l!==p){let e=s*d+c*f+l*p+u*m;e<0&&(d=-d,f=-f,p=-p,m=-m,e=-e);let t=1-o;if(e<.9995){let n=Math.acos(e),r=Math.sin(n);t=Math.sin(t*n)/r,o=Math.sin(o*n)/r,s=s*t+d*o,c=c*t+f*o,l=l*t+p*o,u=u*t+m*o}else{s=s*t+d*o,c=c*t+f*o,l=l*t+p*o,u=u*t+m*o;let e=1/Math.sqrt(s*s+c*c+l*l+u*u);s*=e,c*=e,l*=e,u*=e}}e[t]=s,e[t+1]=c,e[t+2]=l,e[t+3]=u}static multiplyQuaternionsFlat(e,t,n,r,i,a){let o=n[r],s=n[r+1],c=n[r+2],l=n[r+3],u=i[a],d=i[a+1],f=i[a+2],p=i[a+3];return e[t]=o*p+l*u+s*f-c*d,e[t+1]=s*p+l*d+c*u-o*f,e[t+2]=c*p+l*f+o*d-s*u,e[t+3]=l*p-o*u-s*d-c*f,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,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,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,t=!0){let n=e._x,r=e._y,i=e._z,a=e._order,o=Math.cos,s=Math.sin,c=o(n/2),l=o(r/2),u=o(i/2),d=s(n/2),f=s(r/2),p=s(i/2);switch(a){case`XYZ`:this._x=d*l*u+c*f*p,this._y=c*f*u-d*l*p,this._z=c*l*p+d*f*u,this._w=c*l*u-d*f*p;break;case`YXZ`:this._x=d*l*u+c*f*p,this._y=c*f*u-d*l*p,this._z=c*l*p-d*f*u,this._w=c*l*u+d*f*p;break;case`ZXY`:this._x=d*l*u-c*f*p,this._y=c*f*u+d*l*p,this._z=c*l*p+d*f*u,this._w=c*l*u-d*f*p;break;case`ZYX`:this._x=d*l*u-c*f*p,this._y=c*f*u+d*l*p,this._z=c*l*p-d*f*u,this._w=c*l*u+d*f*p;break;case`YZX`:this._x=d*l*u+c*f*p,this._y=c*f*u+d*l*p,this._z=c*l*p-d*f*u,this._w=c*l*u-d*f*p;break;case`XZY`:this._x=d*l*u-c*f*p,this._y=c*f*u-d*l*p,this._z=c*l*p+d*f*u,this._w=c*l*u+d*f*p;break;default:H(`Quaternion: .setFromEuler() encountered an unknown order: `+a)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],r=t[4],i=t[8],a=t[1],o=t[5],s=t[9],c=t[2],l=t[6],u=t[10],d=n+o+u;if(d>0){let e=.5/Math.sqrt(d+1);this._w=.25/e,this._x=(l-s)*e,this._y=(i-c)*e,this._z=(a-r)*e}else if(n>o&&n>u){let e=2*Math.sqrt(1+n-o-u);this._w=(l-s)/e,this._x=.25*e,this._y=(r+a)/e,this._z=(i+c)/e}else if(o>u){let e=2*Math.sqrt(1+o-n-u);this._w=(i-c)/e,this._x=(r+a)/e,this._y=.25*e,this._z=(s+l)/e}else{let e=2*Math.sqrt(1+u-n-o);this._w=(a-r)/e,this._x=(i+c)/e,this._y=(s+l)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return n<1e-8?(n=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(W(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let r=Math.min(1,t/n);return this.slerp(e,r),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*=e,this._y*=e,this._z*=e,this._w*=e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,r=e._y,i=e._z,a=e._w,o=t._x,s=t._y,c=t._z,l=t._w;return this._x=n*l+a*o+r*c-i*s,this._y=r*l+a*s+i*o-n*c,this._z=i*l+a*c+n*s-r*o,this._w=a*l-n*o-r*s-i*c,this._onChangeCallback(),this}slerp(e,t){let n=e._x,r=e._y,i=e._z,a=e._w,o=this.dot(e);o<0&&(n=-n,r=-r,i=-i,a=-a,o=-o);let s=1-t;if(o<.9995){let e=Math.acos(o),c=Math.sin(e);s=Math.sin(s*e)/c,t=Math.sin(t*e)/c,this._x=this._x*s+n*t,this._y=this._y*s+r*t,this._z=this._z*s+i*t,this._w=this._w*s+a*t,this._onChangeCallback()}else this._x=this._x*s+n*t,this._y=this._y*s+r*t,this._z=this._z*s+i*t,this._w=this._w*s+a*t,this.normalize();return this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),r=Math.sqrt(1-n),i=Math.sqrt(n);return this.set(r*Math.sin(e),r*Math.cos(e),i*Math.sin(t),i*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),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}},q=class e{static{e.prototype.isVector3=!0}constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw Error(`THREE.Vector3: 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 Error(`THREE.Vector3: 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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.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,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Lt.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Lt.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6]*r,this.y=i[1]*t+i[4]*n+i[7]*r,this.z=i[2]*t+i[5]*n+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,r=this.z,i=e.elements,a=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*a,this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*a,this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*a,this}applyQuaternion(e){let t=this.x,n=this.y,r=this.z,i=e.x,a=e.y,o=e.z,s=e.w,c=2*(a*r-o*n),l=2*(o*t-i*r),u=2*(i*n-a*t);return this.x=t+s*c+a*u-o*l,this.y=n+s*l+o*c-i*u,this.z=r+s*u+i*l-a*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[4]*n+i[8]*r,this.y=i[1]*t+i[5]*n+i[9]*r,this.z=i[2]*t+i[6]*n+i[10]*r,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,t){return this.x=W(this.x,e.x,t.x),this.y=W(this.y,e.y,t.y),this.z=W(this.z,e.z,t.z),this}clampScalar(e,t){return this.x=W(this.x,e,t),this.y=W(this.y,e,t),this.z=W(this.z,e,t),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(W(n,e,t))}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,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,r=e.y,i=e.z,a=t.x,o=t.y,s=t.z;return this.x=r*s-i*o,this.y=i*a-n*s,this.z=n*o-r*a,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return It.copy(this).projectOnVector(e),this.sub(It)}reflect(e){return this.sub(It.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(W(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}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,t,n){let r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*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,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},It=new q,Lt=new Ft,J=class e{static{e.prototype.isMatrix3=!0}constructor(e,t,n,r,i,a,o,s,c){this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,n,r,i,a,o,s,c)}set(e,t,n,r,i,a,o,s,c){let l=this.elements;return l[0]=e,l[1]=r,l[2]=o,l[3]=t,l[4]=i,l[5]=s,l[6]=n,l[7]=a,l[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,r=t.elements,i=this.elements,a=n[0],o=n[3],s=n[6],c=n[1],l=n[4],u=n[7],d=n[2],f=n[5],p=n[8],m=r[0],h=r[3],g=r[6],_=r[1],v=r[4],y=r[7],b=r[2],x=r[5],S=r[8];return i[0]=a*m+o*_+s*b,i[3]=a*h+o*v+s*x,i[6]=a*g+o*y+s*S,i[1]=c*m+l*_+u*b,i[4]=c*h+l*v+u*x,i[7]=c*g+l*y+u*S,i[2]=d*m+f*_+p*b,i[5]=d*h+f*v+p*x,i[8]=d*g+f*y+p*S,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],s=e[6],c=e[7],l=e[8];return t*a*l-t*o*c-n*i*l+n*o*s+r*i*c-r*a*s}invert(){let e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],s=e[6],c=e[7],l=e[8],u=l*a-o*c,d=o*s-l*i,f=c*i-a*s,p=t*u+n*d+r*f;if(p===0)return this.set(0,0,0,0,0,0,0,0,0);let m=1/p;return e[0]=u*m,e[1]=(r*c-l*n)*m,e[2]=(o*n-r*a)*m,e[3]=d*m,e[4]=(l*t-r*s)*m,e[5]=(r*i-o*t)*m,e[6]=f*m,e[7]=(n*s-c*t)*m,e[8]=(a*t-n*i)*m,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,r,i,a,o){let s=Math.cos(i),c=Math.sin(i);return this.set(n*s,n*c,-n*(s*a+c*o)+a+e,-r*c,r*s,-r*(-c*a+s*o)+o+t,0,0,1),this}scale(e,t){return ot(`Matrix3: .scale() is deprecated. Use .makeScale() instead.`),this.premultiply(Rt.makeScale(e,t)),this}rotate(e){return ot(`Matrix3: .rotate() is deprecated. Use .makeRotation() instead.`),this.premultiply(Rt.makeRotation(-e)),this}translate(e,t){return ot(`Matrix3: .translate() is deprecated. Use .makeTranslation() instead.`),this.premultiply(Rt.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}},Rt=new J,zt=new J().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),Bt=new J().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Vt(){let e={enabled:!0,workingColorSpace:Je,spaces:{},convert:function(e,t,n){return this.enabled===!1||t===n||!t||!n?e:(this.spaces[t].transfer===`srgb`&&(e.r=Ht(e.r),e.g=Ht(e.g),e.b=Ht(e.b)),this.spaces[t].primaries!==this.spaces[n].primaries&&(e.applyMatrix3(this.spaces[t].toXYZ),e.applyMatrix3(this.spaces[n].fromXYZ)),this.spaces[n].transfer===`srgb`&&(e.r=Ut(e.r),e.g=Ut(e.g),e.b=Ut(e.b)),e)},workingToColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},colorSpaceToWorking:function(e,t){return this.convert(e,t,this.workingColorSpace)},getPrimaries:function(e){return this.spaces[e].primaries},getTransfer:function(e){return e===``?Ye:this.spaces[e].transfer},getToneMappingMode:function(e){return this.spaces[e].outputColorSpaceConfig.toneMappingMode||`standard`},getLuminanceCoefficients:function(e,t=this.workingColorSpace){return e.fromArray(this.spaces[t].luminanceCoefficients)},define:function(e){Object.assign(this.spaces,e)},_getMatrix:function(e,t,n){return e.copy(this.spaces[t].toXYZ).multiply(this.spaces[n].fromXYZ)},_getDrawingBufferColorSpace:function(e){return this.spaces[e].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(e=this.workingColorSpace){return this.spaces[e].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(t,n){return ot(`ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().`),e.workingToColorSpace(t,n)},toWorkingColorSpace:function(t,n){return ot(`ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().`),e.colorSpaceToWorking(t,n)}},t=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],r=[.3127,.329];return e.define({[Je]:{primaries:t,whitePoint:r,transfer:Ye,toXYZ:zt,fromXYZ:Bt,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:qe},outputColorSpaceConfig:{drawingBufferColorSpace:qe}},[qe]:{primaries:t,whitePoint:r,transfer:Xe,toXYZ:zt,fromXYZ:Bt,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:qe}}}),e}var Y=Vt();function Ht(e){return e<.04045?e*.0773993808:(e*.9478672986+.0521327014)**2.4}function Ut(e){return e<.0031308?e*12.92:1.055*e**.41666-.055}var Wt,Gt=class{static getDataURL(e,t=`image/png`){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>`u`)return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{Wt===void 0&&(Wt=V(`canvas`)),Wt.width=e.width,Wt.height=e.height;let t=Wt.getContext(`2d`);e instanceof ImageData?t.putImageData(e,0,0):t.drawImage(e,0,0,e.width,e.height),n=Wt}return n.toDataURL(t)}static sRGBToLinear(e){if(typeof HTMLImageElement<`u`&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<`u`&&e instanceof HTMLCanvasElement||typeof ImageBitmap<`u`&&e instanceof ImageBitmap){let t=V(`canvas`);t.width=e.width,t.height=e.height;let n=t.getContext(`2d`);n.drawImage(e,0,0,e.width,e.height);let r=n.getImageData(0,0,e.width,e.height),i=r.data;for(let e=0;e1),this.pmremVersion=0,this.normalized=!1}get width(){return this.source.getSize(Xt).x}get height(){return this.source.getSize(Xt).y}get depth(){return this.source.getSize(Xt).z}get image(){return this.source.data}set image(e){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,t){this.updateRanges.push({start:e,count:t})}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.normalized=e.normalized,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(let t in e){let n=e[t];if(n===void 0){H(`Texture.setValues(): parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){H(`Texture.setValues(): property '${t}' does not exist.`);continue}r&&n&&r.isVector2&&n.isVector2||r&&n&&r.isVector3&&n.isVector3||r&&n&&r.isMatrix3&&n.isMatrix3?r.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e==`string`;if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let n={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,normalized:this.normalized,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&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:`dispose`})}transformUv(e){if(this.mapping!==300)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case f:e.x-=Math.floor(e.x);break;case p:e.x=e.x<0?0:1;break;case m:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x-=Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case f:e.y-=Math.floor(e.y);break;case p:e.y=e.y<0?0:1;break;case m:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y-=Math.floor(e.y)}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++}};Zt.DEFAULT_IMAGE=null,Zt.DEFAULT_MAPPING=300,Zt.DEFAULT_ANISOTROPY=1;var Qt=class e{static{e.prototype.isVector4=!0}constructor(e=0,t=0,n=0,r=1){this.x=e,this.y=t,this.z=n,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw Error(`THREE.Vector4: 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 Error(`THREE.Vector4: 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?1:e.w,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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.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){let t=this.x,n=this.y,r=this.z,i=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*r+a[12]*i,this.y=a[1]*t+a[5]*n+a[9]*r+a[13]*i,this.z=a[2]*t+a[6]*n+a[10]*r+a[14]*i,this.w=a[3]*t+a[7]*n+a[11]*r+a[15]*i,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);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,r,i,a=.01,o=.1,s=e.elements,c=s[0],l=s[4],u=s[8],d=s[1],f=s[5],p=s[9],m=s[2],h=s[6],g=s[10];if(Math.abs(l-d)s&&e>_?e_?s1);this.dispose()}this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}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 t=0,n=e.textures.length;t>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.pivot!==null&&(r.pivot=this.pivot.toArray()),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.morphTargetDictionary!==void 0&&(r.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(r.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(r.type=`InstancedMesh`,r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type=`BatchedMesh`,r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.geometryInfo=this._geometryInfo.map(e=>({...e,boundingBox:e.boundingBox?e.boundingBox.toJSON():void 0,boundingSphere:e.boundingSphere?e.boundingSphere.toJSON():void 0})),r.instanceInfo=this._instanceInfo.map(e=>({...e})),r.availableInstanceIds=this._availableInstanceIds.slice(),r.availableGeometryIds=this._availableGeometryIds.slice(),r.nextIndexStart=this._nextIndexStart,r.nextVertexStart=this._nextVertexStart,r.geometryCount=this._geometryCount,r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.matricesTexture=this._matricesTexture.toJSON(e),r.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(r.boundingBox=this.boundingBox.toJSON()));function i(t,n){return t[n.uuid]===void 0&&(t[n.uuid]=n.toJSON(e)),n.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);let t=this.geometry.parameters;if(t!==void 0&&t.shapes!==void 0){let n=t.shapes;if(Array.isArray(n))for(let t=0,r=n.length;t0){r.children=[];for(let t=0;t0){r.animations=[];for(let t=0;t0&&(n.geometries=t),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),o.length>0&&(n.images=o),s.length>0&&(n.shapes=s),c.length>0&&(n.skeletons=c),l.length>0&&(n.animations=l),u.length>0&&(n.nodes=u)}return n.object=r,n;function a(e){let t=[];for(let n in e){let r=e[n];delete r.metadata,t.push(r)}return t}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!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.pivot=e.pivot===null?null:e.pivot.clone(),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.static=e.static,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let t=0;t.025?(c.inputState.pinching=!1,this.dispatchEvent({type:`pinchend`,handedness:e.handedness,target:this})):!c.inputState.pinching&&o<=.015&&(c.inputState.pinching=!0,this.dispatchEvent({type:`pinchstart`,handedness:e.handedness,target:this}))}else s!==null&&e.gripSpace&&(i=t.getPose(e.gripSpace,n),i!==null&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),s.matrixWorldNeedsUpdate=!0,i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,s.eventsEnabled&&s.dispatchEvent({type:`gripUpdated`,data:e,target:this})));o!==null&&(r=t.getPose(e.targetRaySpace,n),r===null&&i!==null&&(r=i),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(Nn)))}return o!==null&&(o.visible=r!==null),s!==null&&(s.visible=i!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let n=new Mn;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},Fn={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},In={h:0,s:0,l:0},Ln={h:0,s:0,l:0};function Rn(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*6*(2/3-n):e}var X=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){let t=e;t&&t.isColor?this.copy(t):typeof t==`number`?this.setHex(t):typeof t==`string`&&this.setStyle(t)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=qe){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Y.colorSpaceToWorking(this,t),this}setRGB(e,t,n,r=Y.workingColorSpace){return this.r=e,this.g=t,this.b=n,Y.colorSpaceToWorking(this,r),this}setHSL(e,t,n,r=Y.workingColorSpace){if(e=ht(e,1),t=W(t,0,1),n=W(n,0,1),t===0)this.r=this.g=this.b=n;else{let r=n<=.5?n*(1+t):n+t-n*t,i=2*n-r;this.r=Rn(i,r,e+1/3),this.g=Rn(i,r,e),this.b=Rn(i,r,e-1/3)}return Y.colorSpaceToWorking(this,r),this}setStyle(e,t=qe){function n(t){t!==void 0&&parseFloat(t)<1&&H(`Color: Alpha component of `+e+` will be ignored.`)}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let i,a=r[1],o=r[2];switch(a){case`rgb`:case`rgba`:if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,t);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,t);break;case`hsl`:case`hsla`:if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,t);break;default:H(`Color: Unknown color model `+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){let n=r[1],i=n.length;if(i===3)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,t);if(i===6)return this.setHex(parseInt(n,16),t);H(`Color: Invalid hex color `+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=qe){let n=Fn[e.toLowerCase()];return n===void 0?H(`Color: Unknown color `+e):this.setHex(n,t),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=Ht(e.r),this.g=Ht(e.g),this.b=Ht(e.b),this}copyLinearToSRGB(e){return this.r=Ut(e.r),this.g=Ut(e.g),this.b=Ut(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=qe){return Y.workingToColorSpace(zn.copy(this),e),Math.round(W(zn.r*255,0,255))*65536+Math.round(W(zn.g*255,0,255))*256+Math.round(W(zn.b*255,0,255))}getHexString(e=qe){return(`000000`+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Y.workingColorSpace){Y.workingToColorSpace(zn.copy(this),t);let n=zn.r,r=zn.g,i=zn.b,a=Math.max(n,r,i),o=Math.min(n,r,i),s,c,l=(o+a)/2;if(o===a)s=0,c=0;else{let e=a-o;switch(c=l<=.5?e/(a+o):e/(2-a-o),a){case n:s=(r-i)/e+(r0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}},Hn=new q,Un=new q,Wn=new q,Gn=new q,Kn=new q,qn=new q,Jn=new q,Yn=new q,Xn=new q,Zn=new q,Qn=new Qt,$n=new Qt,er=new Qt,tr=class e{constructor(e=new q,t=new q,n=new q){this.a=e,this.b=t,this.c=n}static getNormal(e,t,n,r){r.subVectors(n,t),Hn.subVectors(e,t),r.cross(Hn);let i=r.lengthSq();return i>0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,t,n,r,i){Hn.subVectors(r,t),Un.subVectors(n,t),Wn.subVectors(e,t);let a=Hn.dot(Hn),o=Hn.dot(Un),s=Hn.dot(Wn),c=Un.dot(Un),l=Un.dot(Wn),u=a*c-o*o;if(u===0)return i.set(0,0,0),null;let d=1/u,f=(c*s-o*l)*d,p=(a*l-o*s)*d;return i.set(1-f-p,p,f)}static containsPoint(e,t,n,r){return this.getBarycoord(e,t,n,r,Gn)!==null&&Gn.x>=0&&Gn.y>=0&&Gn.x+Gn.y<=1}static getInterpolation(e,t,n,r,i,a,o,s){return this.getBarycoord(e,t,n,r,Gn)===null?(s.x=0,s.y=0,`z`in s&&(s.z=0),`w`in s&&(s.w=0),null):(s.setScalar(0),s.addScaledVector(i,Gn.x),s.addScaledVector(a,Gn.y),s.addScaledVector(o,Gn.z),s)}static getInterpolatedAttribute(e,t,n,r,i,a){return Qn.setScalar(0),$n.setScalar(0),er.setScalar(0),Qn.fromBufferAttribute(e,t),$n.fromBufferAttribute(e,n),er.fromBufferAttribute(e,r),a.setScalar(0),a.addScaledVector(Qn,i.x),a.addScaledVector($n,i.y),a.addScaledVector(er,i.z),a}static isFrontFacing(e,t,n,r){return Hn.subVectors(n,t),Un.subVectors(e,t),Hn.cross(Un).dot(r)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,n,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,r),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 Hn.subVectors(this.c,this.b),Un.subVectors(this.a,this.b),Hn.cross(Un).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return e.getNormal(this.a,this.b,this.c,t)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,n){return e.getBarycoord(t,this.a,this.b,this.c,n)}getInterpolation(t,n,r,i,a){return e.getInterpolation(t,this.a,this.b,this.c,n,r,i,a)}containsPoint(t){return e.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return e.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n=this.a,r=this.b,i=this.c,a,o;Kn.subVectors(r,n),qn.subVectors(i,n),Yn.subVectors(e,n);let s=Kn.dot(Yn),c=qn.dot(Yn);if(s<=0&&c<=0)return t.copy(n);Xn.subVectors(e,r);let l=Kn.dot(Xn),u=qn.dot(Xn);if(l>=0&&u<=l)return t.copy(r);let d=s*u-l*c;if(d<=0&&s>=0&&l<=0)return a=s/(s-l),t.copy(n).addScaledVector(Kn,a);Zn.subVectors(e,i);let f=Kn.dot(Zn),p=qn.dot(Zn);if(p>=0&&f<=p)return t.copy(i);let m=f*c-s*p;if(m<=0&&c>=0&&p<=0)return o=c/(c-p),t.copy(n).addScaledVector(qn,o);let h=l*p-f*u;if(h<=0&&u-l>=0&&f-p>=0)return Jn.subVectors(i,r),o=(u-l)/(u-l+(f-p)),t.copy(r).addScaledVector(Jn,o);let g=1/(h+m+d);return a=m*g,o=d*g,t.copy(n).addScaledVector(Kn,a).addScaledVector(qn,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},nr=class{constructor(e=new q(1/0,1/0,1/0),t=new q(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;t=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,t){return t.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,ir),ir.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(fr),pr.subVectors(this.max,fr),or.subVectors(e.a,fr),sr.subVectors(e.b,fr),cr.subVectors(e.c,fr),lr.subVectors(sr,or),ur.subVectors(cr,sr),dr.subVectors(or,cr);let t=[0,-lr.z,lr.y,0,-ur.z,ur.y,0,-dr.z,dr.y,lr.z,0,-lr.x,ur.z,0,-ur.x,dr.z,0,-dr.x,-lr.y,lr.x,0,-ur.y,ur.x,0,-dr.y,dr.x,0];return!gr(t,or,sr,cr,pr)||(t=[1,0,0,0,1,0,0,0,1],!gr(t,or,sr,cr,pr))?!1:(mr.crossVectors(lr,ur),t=[mr.x,mr.y,mr.z],gr(t,or,sr,cr,pr))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,ir).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(ir).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:(rr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),rr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),rr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),rr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),rr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),rr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),rr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),rr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(rr),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}},rr=[new q,new q,new q,new q,new q,new q,new q,new q],ir=new q,ar=new nr,or=new q,sr=new q,cr=new q,lr=new q,ur=new q,dr=new q,fr=new q,pr=new q,mr=new q,hr=new q;function gr(e,t,n,r,i){for(let a=0,o=e.length-3;a<=o;a+=3){hr.fromArray(e,a);let o=i.x*Math.abs(hr.x)+i.y*Math.abs(hr.y)+i.z*Math.abs(hr.z),s=t.dot(hr),c=n.dot(hr),l=r.dot(hr);if(Math.max(-Math.max(s,c,l),Math.min(s,c,l))>o)return!1}return!0}var _r=new q,vr=new K,yr=0,br=class extends lt{constructor(e,t,n=!1){if(super(),Array.isArray(e))throw TypeError(`THREE.BufferAttribute: array should be a Typed Array.`);this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:yr++}),this.name=``,this.array=e,this.itemSize=t,this.count=e===void 0?0:e.length/t,this.normalized=n,this.usage=Qe,this.updateRanges=[],this.gpuType=D,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}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,t,n){e*=this.itemSize,n*=t.itemSize;for(let r=0,i=this.itemSize;rthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}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*=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;Tr.subVectors(e,this.center);let t=Tr.lengthSq();if(t>this.radius*this.radius){let e=Math.sqrt(t),n=(e-this.radius)*.5;this.center.addScaledVector(Tr,n/e),this.radius+=n}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):(Er.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Tr.copy(e.center).add(Er)),this.expandByPoint(Tr.copy(e.center).sub(Er))),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}},Or=0,kr=new rn,Ar=new jn,jr=new q,Mr=new nr,Nr=new nr,Pr=new q,Fr=class e extends lt{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:Or++}),this.uuid=mt(),this.name=``,this.type=`BufferGeometry`,this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={},this._transformed=!1}getIndex(){return this.index}setIndex(e){return this.index=Array.isArray(e)?new(et(e)?Sr:xr)(e,1):e,this}setIndirect(e,t=0){return this.indirect=e,this.indirectOffset=t,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let n=this.attributes.normal;if(n!==void 0){let t=new J().getNormalMatrix(e);n.applyNormalMatrix(t),n.needsUpdate=!0}let r=this.attributes.tangent;return r!==void 0&&(r.transformDirection(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this._transformed=!0,this}applyQuaternion(e){return kr.makeRotationFromQuaternion(e),this.applyMatrix4(kr),this}rotateX(e){return kr.makeRotationX(e),this.applyMatrix4(kr),this}rotateY(e){return kr.makeRotationY(e),this.applyMatrix4(kr),this}rotateZ(e){return kr.makeRotationZ(e),this.applyMatrix4(kr),this}translate(e,t,n){return kr.makeTranslation(e,t,n),this.applyMatrix4(kr),this}scale(e,t,n){return kr.makeScale(e,t,n),this.applyMatrix4(kr),this}lookAt(e){return Ar.lookAt(e),Ar.updateMatrix(),this.applyMatrix4(Ar.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(jr).negate(),this.translate(jr.x,jr.y,jr.z),this}setFromPoints(e){let t=this.getAttribute(`position`);if(t===void 0){let t=[];for(let n=0,r=e.length;nt.count&&H(`BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.`),t.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new nr);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){U(`BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.`,this),this.boundingBox.set(new q(-1/0,-1/0,-1/0),new q(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let e=0,n=t.length;e0&&(e.userData=this.userData),this.parameters!==void 0&&this._transformed!==!0){let t=this.parameters;for(let n in t)t[n]!==void 0&&(e[n]=t[n]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let t in n){let r=n[t];e.data.attributes[t]=r.toJSON(e.data)}let r={},i=!1;for(let t in this.morphAttributes){let n=this.morphAttributes[t],a=[];for(let t=0,r=n.length;t0&&(r[t]=a,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);let a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));let 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;let t={};this.name=e.name;let n=e.index;n!==null&&this.setIndex(n.clone());let r=e.attributes;for(let e in r){let n=r[e];this.setAttribute(e,n.clone(t))}let i=e.morphAttributes;for(let e in i){let n=[],r=i[e];for(let e=0,i=r.length;e0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let n=e[t];if(n===void 0){H(`Material: parameter '${t}' has value of undefined.`);continue}let r=this[t];if(r===void 0){H(`Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(n):r&&r.isVector2&&n&&n.isVector2||r&&r.isEuler&&n&&n.isEuler||r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e==`string`;t&&(e={textures:{},images:{}});let n={metadata:{version:4.7,type:`Material`,generator:`Material.toJSON`}};n.uuid=this.uuid,n.type=this.type,this.name!==``&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(n.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(n.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==1&&(n.blending=this.blending),this.side!==0&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==204&&(n.blendSrc=this.blendSrc),this.blendDst!==205&&(n.blendDst=this.blendDst),this.blendEquation!==100&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==3&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==519&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==7680&&(n.stencilFail=this.stencilFail),this.stencilZFail!==7680&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==7680&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.allowOverride===!1&&(n.allowOverride=!1),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!==`round`&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!==`round`&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function r(e){let t=[];for(let n in e){let r=e[n];delete r.metadata,t.push(r)}return t}if(t){let t=r(e.textures),i=r(e.images);t.length>0&&(n.textures=t),i.length>0&&(n.images=i)}return n}fromJSON(e,t){if(e.uuid!==void 0&&(this.uuid=e.uuid),e.name!==void 0&&(this.name=e.name),e.color!==void 0&&this.color!==void 0&&this.color.setHex(e.color),e.roughness!==void 0&&(this.roughness=e.roughness),e.metalness!==void 0&&(this.metalness=e.metalness),e.sheen!==void 0&&(this.sheen=e.sheen),e.sheenColor!==void 0&&(this.sheenColor=new X().setHex(e.sheenColor)),e.sheenRoughness!==void 0&&(this.sheenRoughness=e.sheenRoughness),e.emissive!==void 0&&this.emissive!==void 0&&this.emissive.setHex(e.emissive),e.specular!==void 0&&this.specular!==void 0&&this.specular.setHex(e.specular),e.specularIntensity!==void 0&&(this.specularIntensity=e.specularIntensity),e.specularColor!==void 0&&this.specularColor!==void 0&&this.specularColor.setHex(e.specularColor),e.shininess!==void 0&&(this.shininess=e.shininess),e.clearcoat!==void 0&&(this.clearcoat=e.clearcoat),e.clearcoatRoughness!==void 0&&(this.clearcoatRoughness=e.clearcoatRoughness),e.dispersion!==void 0&&(this.dispersion=e.dispersion),e.iridescence!==void 0&&(this.iridescence=e.iridescence),e.iridescenceIOR!==void 0&&(this.iridescenceIOR=e.iridescenceIOR),e.iridescenceThicknessRange!==void 0&&(this.iridescenceThicknessRange=e.iridescenceThicknessRange),e.transmission!==void 0&&(this.transmission=e.transmission),e.thickness!==void 0&&(this.thickness=e.thickness),e.attenuationDistance!==void 0&&(this.attenuationDistance=e.attenuationDistance),e.attenuationColor!==void 0&&this.attenuationColor!==void 0&&this.attenuationColor.setHex(e.attenuationColor),e.anisotropy!==void 0&&(this.anisotropy=e.anisotropy),e.anisotropyRotation!==void 0&&(this.anisotropyRotation=e.anisotropyRotation),e.fog!==void 0&&(this.fog=e.fog),e.flatShading!==void 0&&(this.flatShading=e.flatShading),e.blending!==void 0&&(this.blending=e.blending),e.combine!==void 0&&(this.combine=e.combine),e.side!==void 0&&(this.side=e.side),e.shadowSide!==void 0&&(this.shadowSide=e.shadowSide),e.opacity!==void 0&&(this.opacity=e.opacity),e.transparent!==void 0&&(this.transparent=e.transparent),e.alphaTest!==void 0&&(this.alphaTest=e.alphaTest),e.alphaHash!==void 0&&(this.alphaHash=e.alphaHash),e.depthFunc!==void 0&&(this.depthFunc=e.depthFunc),e.depthTest!==void 0&&(this.depthTest=e.depthTest),e.depthWrite!==void 0&&(this.depthWrite=e.depthWrite),e.colorWrite!==void 0&&(this.colorWrite=e.colorWrite),e.blendSrc!==void 0&&(this.blendSrc=e.blendSrc),e.blendDst!==void 0&&(this.blendDst=e.blendDst),e.blendEquation!==void 0&&(this.blendEquation=e.blendEquation),e.blendSrcAlpha!==void 0&&(this.blendSrcAlpha=e.blendSrcAlpha),e.blendDstAlpha!==void 0&&(this.blendDstAlpha=e.blendDstAlpha),e.blendEquationAlpha!==void 0&&(this.blendEquationAlpha=e.blendEquationAlpha),e.blendColor!==void 0&&this.blendColor!==void 0&&this.blendColor.setHex(e.blendColor),e.blendAlpha!==void 0&&(this.blendAlpha=e.blendAlpha),e.stencilWriteMask!==void 0&&(this.stencilWriteMask=e.stencilWriteMask),e.stencilFunc!==void 0&&(this.stencilFunc=e.stencilFunc),e.stencilRef!==void 0&&(this.stencilRef=e.stencilRef),e.stencilFuncMask!==void 0&&(this.stencilFuncMask=e.stencilFuncMask),e.stencilFail!==void 0&&(this.stencilFail=e.stencilFail),e.stencilZFail!==void 0&&(this.stencilZFail=e.stencilZFail),e.stencilZPass!==void 0&&(this.stencilZPass=e.stencilZPass),e.stencilWrite!==void 0&&(this.stencilWrite=e.stencilWrite),e.wireframe!==void 0&&(this.wireframe=e.wireframe),e.wireframeLinewidth!==void 0&&(this.wireframeLinewidth=e.wireframeLinewidth),e.wireframeLinecap!==void 0&&(this.wireframeLinecap=e.wireframeLinecap),e.wireframeLinejoin!==void 0&&(this.wireframeLinejoin=e.wireframeLinejoin),e.rotation!==void 0&&(this.rotation=e.rotation),e.linewidth!==void 0&&(this.linewidth=e.linewidth),e.dashSize!==void 0&&(this.dashSize=e.dashSize),e.gapSize!==void 0&&(this.gapSize=e.gapSize),e.scale!==void 0&&(this.scale=e.scale),e.polygonOffset!==void 0&&(this.polygonOffset=e.polygonOffset),e.polygonOffsetFactor!==void 0&&(this.polygonOffsetFactor=e.polygonOffsetFactor),e.polygonOffsetUnits!==void 0&&(this.polygonOffsetUnits=e.polygonOffsetUnits),e.dithering!==void 0&&(this.dithering=e.dithering),e.alphaToCoverage!==void 0&&(this.alphaToCoverage=e.alphaToCoverage),e.premultipliedAlpha!==void 0&&(this.premultipliedAlpha=e.premultipliedAlpha),e.forceSinglePass!==void 0&&(this.forceSinglePass=e.forceSinglePass),e.allowOverride!==void 0&&(this.allowOverride=e.allowOverride),e.visible!==void 0&&(this.visible=e.visible),e.toneMapped!==void 0&&(this.toneMapped=e.toneMapped),e.userData!==void 0&&(this.userData=e.userData),e.vertexColors!==void 0&&(this.vertexColors=typeof e.vertexColors==`number`?e.vertexColors>0:e.vertexColors),e.size!==void 0&&(this.size=e.size),e.sizeAttenuation!==void 0&&(this.sizeAttenuation=e.sizeAttenuation),e.map!==void 0&&(this.map=t[e.map]||null),e.matcap!==void 0&&(this.matcap=t[e.matcap]||null),e.alphaMap!==void 0&&(this.alphaMap=t[e.alphaMap]||null),e.bumpMap!==void 0&&(this.bumpMap=t[e.bumpMap]||null),e.bumpScale!==void 0&&(this.bumpScale=e.bumpScale),e.normalMap!==void 0&&(this.normalMap=t[e.normalMap]||null),e.normalMapType!==void 0&&(this.normalMapType=e.normalMapType),e.normalScale!==void 0){let t=e.normalScale;Array.isArray(t)===!1&&(t=[t,t]),this.normalScale=new K().fromArray(t)}return e.displacementMap!==void 0&&(this.displacementMap=t[e.displacementMap]||null),e.displacementScale!==void 0&&(this.displacementScale=e.displacementScale),e.displacementBias!==void 0&&(this.displacementBias=e.displacementBias),e.roughnessMap!==void 0&&(this.roughnessMap=t[e.roughnessMap]||null),e.metalnessMap!==void 0&&(this.metalnessMap=t[e.metalnessMap]||null),e.emissiveMap!==void 0&&(this.emissiveMap=t[e.emissiveMap]||null),e.emissiveIntensity!==void 0&&(this.emissiveIntensity=e.emissiveIntensity),e.specularMap!==void 0&&(this.specularMap=t[e.specularMap]||null),e.specularIntensityMap!==void 0&&(this.specularIntensityMap=t[e.specularIntensityMap]||null),e.specularColorMap!==void 0&&(this.specularColorMap=t[e.specularColorMap]||null),e.envMap!==void 0&&(this.envMap=t[e.envMap]||null),e.envMapRotation!==void 0&&this.envMapRotation.fromArray(e.envMapRotation),e.envMapIntensity!==void 0&&(this.envMapIntensity=e.envMapIntensity),e.reflectivity!==void 0&&(this.reflectivity=e.reflectivity),e.refractionRatio!==void 0&&(this.refractionRatio=e.refractionRatio),e.lightMap!==void 0&&(this.lightMap=t[e.lightMap]||null),e.lightMapIntensity!==void 0&&(this.lightMapIntensity=e.lightMapIntensity),e.aoMap!==void 0&&(this.aoMap=t[e.aoMap]||null),e.aoMapIntensity!==void 0&&(this.aoMapIntensity=e.aoMapIntensity),e.gradientMap!==void 0&&(this.gradientMap=t[e.gradientMap]||null),e.clearcoatMap!==void 0&&(this.clearcoatMap=t[e.clearcoatMap]||null),e.clearcoatRoughnessMap!==void 0&&(this.clearcoatRoughnessMap=t[e.clearcoatRoughnessMap]||null),e.clearcoatNormalMap!==void 0&&(this.clearcoatNormalMap=t[e.clearcoatNormalMap]||null),e.clearcoatNormalScale!==void 0&&(this.clearcoatNormalScale=new K().fromArray(e.clearcoatNormalScale)),e.iridescenceMap!==void 0&&(this.iridescenceMap=t[e.iridescenceMap]||null),e.iridescenceThicknessMap!==void 0&&(this.iridescenceThicknessMap=t[e.iridescenceThicknessMap]||null),e.transmissionMap!==void 0&&(this.transmissionMap=t[e.transmissionMap]||null),e.thicknessMap!==void 0&&(this.thicknessMap=t[e.thicknessMap]||null),e.anisotropyMap!==void 0&&(this.anisotropyMap=t[e.anisotropyMap]||null),e.sheenColorMap!==void 0&&(this.sheenColorMap=t[e.sheenColorMap]||null),e.sheenRoughnessMap!==void 0&&(this.sheenRoughnessMap=t[e.sheenRoughnessMap]||null),this}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;let t=e.clippingPlanes,n=null;if(t!==null){let e=t.length;n=Array(e);for(let r=0;r!==e;++r)n[r]=t[r].clone()}return this.clippingPlanes=n,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++}},Vr=class extends Br{constructor(e){super(),this.isSpriteMaterial=!0,this.type=`SpriteMaterial`,this.color=new X(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},Hr,Ur=new q,Wr=new q,Gr=new q,Kr=new K,qr=new K,Jr=new rn,Yr=new q,Xr=new q,Zr=new q,Qr=new K,$r=new K,ei=new K,ti=class extends jn{constructor(e=new Vr){if(super(),this.isSprite=!0,this.type=`Sprite`,Hr===void 0){Hr=new Fr;let e=new Ir(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);Hr.setIndex([0,1,2,0,2,3]),Hr.setAttribute(`position`,new Rr(e,3,0,!1)),Hr.setAttribute(`uv`,new Rr(e,2,3,!1))}this.geometry=Hr,this.material=e,this.center=new K(.5,.5),this.count=1}raycast(e,t){e.camera===null&&U(`Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.`),Wr.setFromMatrixScale(this.matrixWorld),Jr.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Gr.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1&&Wr.multiplyScalar(-Gr.z);let n=this.material.rotation,r,i;n!==0&&(i=Math.cos(n),r=Math.sin(n));let a=this.center;ni(Yr.set(-.5,-.5,0),Gr,a,Wr,r,i),ni(Xr.set(.5,-.5,0),Gr,a,Wr,r,i),ni(Zr.set(.5,.5,0),Gr,a,Wr,r,i),Qr.set(0,0),$r.set(1,0),ei.set(1,1);let o=e.ray.intersectTriangle(Yr,Xr,Zr,!1,Ur);if(o===null&&(ni(Xr.set(-.5,.5,0),Gr,a,Wr,r,i),$r.set(0,1),o=e.ray.intersectTriangle(Yr,Zr,Xr,!1,Ur),o===null))return;let s=e.ray.origin.distanceTo(Ur);se.far||t.push({distance:s,point:Ur.clone(),uv:tr.getInterpolation(Ur,Yr,Xr,Zr,Qr,$r,ei,new K),face:null,object:this})}copy(e,t){return super.copy(e,t),e.center!==void 0&&this.center.copy(e.center),this.material=e.material,this}};function ni(e,t,n,r,i,a){Kr.subVectors(e,n).addScalar(.5).multiply(r),i===void 0?qr.copy(Kr):(qr.x=a*Kr.x-i*Kr.y,qr.y=i*Kr.x+a*Kr.y),e.copy(t),e.x+=qr.x,e.y+=qr.y,e.applyMatrix4(Jr)}var ri=new q,ii=new q,ai=new q,oi=new q,si=new q,ci=new q,li=new q,ui=class{constructor(e=new q,t=new q(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.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,ri)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=ri.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(ri.copy(this.origin).addScaledVector(this.direction,t),ri.distanceToSquared(e))}distanceSqToSegment(e,t,n,r){ii.copy(e).add(t).multiplyScalar(.5),ai.copy(t).sub(e).normalize(),oi.copy(this.origin).sub(ii);let i=e.distanceTo(t)*.5,a=-this.direction.dot(ai),o=oi.dot(this.direction),s=-oi.dot(ai),c=oi.lengthSq(),l=Math.abs(1-a*a),u,d,f,p;if(l>0){if(u=a*s-o,d=a*o-s,p=i*l,u>=0){if(d>=-p){if(d<=p){let e=1/l;u*=e,d*=e,f=u*(u+a*d+2*o)+d*(a*u+d+2*s)+c}else d=i,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*s)+c}else d=-i,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*s)+c}else d<=-p?(u=Math.max(0,-(-a*i+o)),d=u>0?-i:Math.min(Math.max(-i,-s),i),f=-u*u+d*(d+2*s)+c):d<=p?(u=0,d=Math.min(Math.max(-i,-s),i),f=d*(d+2*s)+c):(u=Math.max(0,-(a*i+o)),d=u>0?i:Math.min(Math.max(-i,-s),i),f=-u*u+d*(d+2*s)+c)}else d=a>0?-i:i,u=Math.max(0,-(a*d+o)),f=-u*u+d*(d+2*s)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,u),r&&r.copy(ii).addScaledVector(ai,d),f}intersectSphere(e,t){ri.subVectors(e.center,this.origin);let n=ri.dot(this.direction),r=ri.dot(ri)-n*n,i=e.radius*e.radius;if(r>i)return null;let a=Math.sqrt(i-r),o=n-a,s=n+a;return s<0?null:o<0?this.at(s,t):this.at(o,t)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,r,i,a,o,s,c=1/this.direction.x,l=1/this.direction.y,u=1/this.direction.z,d=this.origin;return c>=0?(n=(e.min.x-d.x)*c,r=(e.max.x-d.x)*c):(n=(e.max.x-d.x)*c,r=(e.min.x-d.x)*c),l>=0?(i=(e.min.y-d.y)*l,a=(e.max.y-d.y)*l):(i=(e.max.y-d.y)*l,a=(e.min.y-d.y)*l),n>a||i>r||((i>n||isNaN(n))&&(n=i),(a=0?(o=(e.min.z-d.z)*u,s=(e.max.z-d.z)*u):(o=(e.max.z-d.z)*u,s=(e.min.z-d.z)*u),n>s||o>r)||((o>n||n!==n)&&(n=o),(s=0?n:r,t)}intersectsBox(e){return this.intersectBox(e,ri)!==null}intersectTriangle(e,t,n,r,i){si.subVectors(t,e),ci.subVectors(n,e),li.crossVectors(si,ci);let a=this.direction.dot(li),o;if(a>0){if(r)return null;o=1}else if(a<0)o=-1,a=-a;else return null;oi.subVectors(this.origin,e);let s=o*this.direction.dot(ci.crossVectors(oi,ci));if(s<0)return null;let c=o*this.direction.dot(si.cross(oi));if(c<0||s+c>a)return null;let l=-o*oi.dot(li);return l<0?null:this.at(l/a,i)}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)}},di=class extends Br{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type=`MeshBasicMaterial`,this.color=new X(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 mn,this.combine=0,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}},fi=new rn,pi=new ui,mi=new Dr,hi=new q,gi=new q,_i=new q,vi=new q,yi=new q,bi=new q,xi=new q,Si=new q,Ci=class extends jn{constructor(e=new Fr,t=new di){super(),this.isMesh=!0,this.type=`Mesh`,this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){let e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){let n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2))&&(fi.copy(i).invert(),pi.copy(e.ray).applyMatrix4(fi),(n.boundingBox===null||pi.intersectsBox(n.boundingBox)!==!1)&&this._computeIntersections(e,t,pi)))}_computeIntersections(e,t,n){let r,i=this.geometry,a=this.material,o=i.index,s=i.attributes.position,c=i.attributes.uv,l=i.attributes.uv1,u=i.attributes.normal,d=i.groups,f=i.drawRange;if(o!==null){if(Array.isArray(a))for(let i=0,s=d.length;in.far?null:{distance:l,point:Si.clone(),object:e}}function Ti(e,t,n,r,i,a,o,s,c,l){e.getVertexPosition(s,gi),e.getVertexPosition(c,_i),e.getVertexPosition(l,vi);let u=wi(e,t,n,r,gi,_i,vi,xi);if(u){let e=new q;tr.getBarycoord(xi,gi,_i,vi,e),i&&(u.uv=tr.getInterpolatedAttribute(i,s,c,l,e,new K)),a&&(u.uv1=tr.getInterpolatedAttribute(a,s,c,l,e,new K)),o&&(u.normal=tr.getInterpolatedAttribute(o,s,c,l,e,new q),u.normal.dot(r.direction)>0&&u.normal.multiplyScalar(-1));let t={a:s,b:c,c:l,normal:new q,materialIndex:0};tr.getNormal(gi,_i,vi,t.normal),u.face=t,u.barycoord=e}return u}var Ei=class extends Zt{constructor(e=null,t=1,n=1,r,i,a,o,s,c=h,l=h,u,d){super(null,a,o,s,c,l,r,i,u,d),this.isDataTexture=!0,this.image={data:e,width:t,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},Di=new q,Oi=new q,ki=new J,Ai=class{constructor(e=new q(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){let r=Di.subVectors(n,t).cross(Oi.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t,n=!0){let r=e.delta(Di),i=this.normal.dot(r);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let a=-(e.start.dot(this.normal)+this.constant)/i;return n===!0&&(a<0||a>1)?null:t.copy(e.start).addScaledVector(r,a)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>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,t){let n=t||ki.getNormalMatrix(e),r=this.coplanarPoint(Di).applyMatrix4(e),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),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)}},ji=new Dr,Mi=new K(.5,.5),Ni=new q,Pi=class{constructor(e=new Ai,t=new Ai,n=new Ai,r=new Ai,i=new Ai,a=new Ai){this.planes=[e,t,n,r,i,a]}set(e,t,n,r,i,a){let o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(r),o[4].copy(i),o[5].copy(a),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=$e,n=!1){let r=this.planes,i=e.elements,a=i[0],o=i[1],s=i[2],c=i[3],l=i[4],u=i[5],d=i[6],f=i[7],p=i[8],m=i[9],h=i[10],g=i[11],_=i[12],v=i[13],y=i[14],b=i[15];if(r[0].setComponents(c-a,f-l,g-p,b-_).normalize(),r[1].setComponents(c+a,f+l,g+p,b+_).normalize(),r[2].setComponents(c+o,f+u,g+m,b+v).normalize(),r[3].setComponents(c-o,f-u,g-m,b-v).normalize(),n)r[4].setComponents(s,d,h,y).normalize(),r[5].setComponents(c-s,f-d,g-h,b-y).normalize();else if(r[4].setComponents(c-s,f-d,g-h,b-y).normalize(),t===2e3)r[5].setComponents(c+s,f+d,g+h,b+y).normalize();else if(t===2001)r[5].setComponents(s,d,h,y).normalize();else throw Error(`THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: `+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),ji.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),ji.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(ji)}intersectsSprite(e){return ji.center.set(0,0,0),ji.radius=.7071067811865476+Mi.distanceTo(e.center),ji.applyMatrix4(e.matrixWorld),this.intersectsSphere(ji)}intersectsSphere(e){let t=this.planes,n=e.center,r=-e.radius;for(let e=0;e<6;e++)if(t[e].distanceToPoint(n)0?e.max.x:e.min.x,Ni.y=r.normal.y>0?e.max.y:e.min.y,Ni.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Ni)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},Fi=class extends Br{constructor(e){super(),this.isLineBasicMaterial=!0,this.type=`LineBasicMaterial`,this.color=new X(16777215),this.map=null,this.linewidth=1,this.linecap=`round`,this.linejoin=`round`,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},Ii=new q,Li=new q,Ri=new rn,zi=new ui,Bi=new Dr,Vi=new q,Hi=new q,Ui=class extends jn{constructor(e=new Fr,t=new Fi){super(),this.isLine=!0,this.type=`Line`,this.geometry=e,this.material=t,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,n=[0];for(let e=1,r=t.count;e0){let n=e[t[0]];if(n!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;er)return;Vi.applyMatrix4(e.matrixWorld);let c=t.ray.origin.distanceTo(Vi);if(!(ct.far))return{distance:c,point:Hi.clone().applyMatrix4(e.matrixWorld),index:o,face:null,faceIndex:null,barycoord:null,object:e}}var Gi=new q,Ki=new q,qi=class extends Ui{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type=`LineSegments`}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,n=[];for(let e=0,r=t.count;e0?1:-1,l.push(D.x,D.y,D.z),u.push(s/h),u.push(1-a/g),T+=1}for(let e=0;e0&&v(!0),t>0&&v(!1)),this.setIndex(l),this.setAttribute(`position`,new Cr(u,3)),this.setAttribute(`normal`,new Cr(d,3)),this.setAttribute(`uv`,new Cr(f,2));function _(){let a=new q,_=new q,v=0,y=(t-e)/n;for(let c=0;c<=i;c++){let l=[],g=c/i,v=g*(t-e)+e;for(let e=0;e<=r;e++){let t=e/r,i=t*s+o,c=Math.sin(i),m=Math.cos(i);_.x=v*c,_.y=-g*n+h,_.z=v*m,u.push(_.x,_.y,_.z),a.set(c,y,m).normalize(),d.push(a.x,a.y,a.z),f.push(t,1-g),l.push(p++)}m.push(l)}for(let n=0;n0||r!==0)&&(l.push(a,o,c),v+=3),(t>0||r!==i-1)&&(l.push(o,s,c),v+=3)}c.addGroup(g,v,0),g+=v}function v(n){let i=p,a=new K,m=new q,_=0,v=n===!0?e:t,y=n===!0?1:-1;for(let e=1;e<=r;e++)u.push(0,h*y,0),d.push(0,y,0),f.push(.5,.5),p++;let b=p;for(let e=0;e<=r;e++){let t=e/r*s+o,n=Math.cos(t),i=Math.sin(t);m.x=v*i,m.y=h*y,m.z=v*n,u.push(m.x,m.y,m.z),d.push(0,y,0),a.x=n*.5+.5,a.y=i*.5*y+.5,f.push(a.x,a.y),p++}for(let e=0;e0)&&f.push(t,i,c),(e!==n-1||s()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=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,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ee(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ee(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),ee(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1L||(e.current=ne[L],ne[L]=null,L--)}function z(e,t){L++,ne[L]=e.current,e.current=t}var B=re(null),V=re(null),ie=re(null),ae=re(null);function oe(e,t){switch(z(ie,t),z(V,e),z(B,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}R(B),z(B,e)}function se(){R(B),R(V),R(ie)}function ce(e){e.memoizedState!==null&&z(ae,e);var t=B.current,n=Hd(t,e.type);t!==n&&(z(V,e),z(B,n))}function le(e){V.current===e&&(R(B),R(V)),ae.current===e&&(R(ae),Qf._currentValue=te)}var ue,de;function fe(e){if(ue===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ue=t&&t[1]||``,de=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{pe=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?fe(n):``}function he(e,t){switch(e.tag){case 26:case 27:case 5:return fe(e.type);case 16:return fe(`Lazy`);case 13:return e.child!==t&&t!==null?fe(`Suspense Fallback`):fe(`Suspense`);case 19:return fe(`SuspenseList`);case 0:case 15:return me(e.type,!1);case 11:return me(e.type.render,!1);case 1:return me(e.type,!0);case 31:return fe(`Activity`);default:return``}}function ge(e){try{var t=``,n=null;do t+=he(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var _e=Object.prototype.hasOwnProperty,ve=t.unstable_scheduleCallback,ye=t.unstable_cancelCallback,be=t.unstable_shouldYield,xe=t.unstable_requestPaint,Se=t.unstable_now,Ce=t.unstable_getCurrentPriorityLevel,we=t.unstable_ImmediatePriority,Te=t.unstable_UserBlockingPriority,Ee=t.unstable_NormalPriority,De=t.unstable_LowPriority,Oe=t.unstable_IdlePriority,ke=t.log,Ae=t.unstable_setDisableYieldValue,je=null,Me=null;function Ne(e){if(typeof ke==`function`&&Ae(e),Me&&typeof Me.setStrictMode==`function`)try{Me.setStrictMode(je,e)}catch{}}var Pe=Math.clz32?Math.clz32:Le,Fe=Math.log,Ie=Math.LN2;function Le(e){return e>>>=0,e===0?32:31-(Fe(e)/Ie|0)|0}var Re=256,ze=262144,Be=4194304;function Ve(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64: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 e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function He(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ve(n))):i=Ve(o):i=Ve(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ve(n))):i=Ve(o)):i=Ve(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ue(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function We(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 Ge(){var e=Be;return Be<<=1,!(Be&62914560)&&(Be=4194304),e}function Ke(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function qe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Je(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),on=!1;if(an)try{var sn={};Object.defineProperty(sn,"passive",{get:function(){on=!0}}),window.addEventListener(`test`,sn,sn),window.removeEventListener(`test`,sn,sn)}catch{on=!1}var cn=null,ln=null,un=null;function dn(){if(un)return un;var e,t=ln,n=t.length,r,i=`value`in cn?cn.value:cn.textContent,a=i.length;for(e=0;e=Un),Kn=` `,qn=!1;function Jn(e,t){switch(e){case`keyup`:return Vn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Yn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Xn=!1;function Zn(e,t){switch(e){case`compositionend`:return Yn(t);case`keypress`:return t.which===32?(qn=!0,Kn):null;case`textInput`:return e=t.data,e===Kn&&qn?null:e;default:return null}}function Qn(e,t){if(Xn)return e===`compositionend`||!Hn&&Jn(e,t)?(e=dn(),un=ln=cn=null,Xn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=br(n)}}function Sr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Sr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Cr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Mt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mt(e.document)}return t}function wr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Tr=an&&`documentMode`in document&&11>=document.documentMode,Er=null,Dr=null,Or=null,kr=!1;function Ar(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;kr||Er==null||Er!==Mt(r)||(r=Er,`selectionStart`in r&&wr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Or&&yr(Or,r)||(Or=r,r=Td(Dr,`onSelect`),0>=o,i-=o,Si=1<<32-Pe(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),U&&wi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),U&&wi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return U&&wi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),U&&wi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&wa(l)===r.type){n(e,r.sibling),c=a(r,o.props),ja(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=li(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ci(o.type,o.key,o.props,null,e.mode,c),ja(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=fi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=wa(o),b(e,r,o,c)}if(P(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Aa(o),c);if(o.$$typeof===C)return b(e,r,Qi(e,o),c);Ma(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=ui(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ka=0;var i=b(e,t,n,r);return Oa=null,i}catch(t){if(t===va||t===ba)throw t;var a=ii(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Pa=Na(!0),Fa=Na(!1),Ia=!1;function La(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ra(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ba(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,J&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ti(e),ei(e,null,n),t}return Zr(e,r,t,n),ti(e)}function Va(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}function Ha(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ua=!1;function Wa(){if(Ua){var e=la;if(e!==null)throw e}}function Ga(e,t,n,r){Ua=!1;var i=e.updateQueue;Ia=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(X&f)===f:(r&f)===f){f!==0&&f===ca&&(Ua=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Ia=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Ka(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function W(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=F.T,s={};F.T=s,js(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?As(e,t,fa(c,r),fu(e)):As(e,t,r,fu(e))}catch(n){As(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function bs(){}function xs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ss(e).queue;ys(e,a,t,te,n===null?bs:function(){return Cs(e),n(r)})}function Ss(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Cs(e){var t=Ss(e);t.next===null&&(t=e.alternate.memoizedState),As(e,t.next.queue,{},fu())}function ws(){return Zi(Qf)}function Ts(){return Do().memoizedState}function Es(){return Do().memoizedState}function Ds(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=za(n);var r=Ba(t,e,n);r!==null&&(mu(r,t,n),Va(r,t,n)),t={cache:ia()},e.payload=t;return}t=t.return}}function Os(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ms(e)?Ns(t,n):(n=Qr(e,t,n,r),n!==null&&(mu(n,e,r),Ps(n,t,r)))}function ks(e,t,n){As(e,t,n,fu())}function As(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ms(e))Ns(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,vr(s,o))return Zr(e,t,i,0),Ll===null&&Xr(),!1}catch{}if(n=Qr(e,t,i,r),n!==null)return mu(n,e,r),Ps(n,t,r),!0}return!1}function js(e,t,n,r){if(r={lane:2,revertLane:ud(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ms(e)){if(t)throw Error(i(479))}else t=Qr(e,n,r,2),t!==null&&mu(t,e,2)}function Ms(e){var t=e.alternate;return e===G||t!==null&&t===G}function Ns(e,t){uo=lo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ps(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}var Fs={readContext:Zi,use:Ao,useCallback:_o,useContext:_o,useEffect:_o,useImperativeHandle:_o,useLayoutEffect:_o,useInsertionEffect:_o,useMemo:_o,useReducer:_o,useRef:_o,useState:_o,useDebugValue:_o,useDeferredValue:_o,useTransition:_o,useSyncExternalStore:_o,useId:_o,useHostTransitionStatus:_o,useFormState:_o,useActionState:_o,useOptimistic:_o,useMemoCache:_o,useCacheRefresh:_o};Fs.useEffectEvent=_o;var Is={readContext:Zi,use:Ao,useCallback:function(e,t){return Eo().memoizedState=[e,t===void 0?null:t],e},useContext:Zi,useEffect:os,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),is(4194308,4,fs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return is(4194308,4,e,t)},useInsertionEffect:function(e,t){is(4,2,e,t)},useMemo:function(e,t){var n=Eo();t=t===void 0?null:t;var r=e();if(fo){Ne(!0);try{e()}finally{Ne(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Eo();if(n!==void 0){var i=n(t);if(fo){Ne(!0);try{n(t)}finally{Ne(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Os.bind(null,G,e),[r.memoizedState,e]},useRef:function(e){var t=Eo();return e={current:e},t.memoizedState=e},useState:function(e){e=Ho(e);var t=e.queue,n=ks.bind(null,G,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ms,useDeferredValue:function(e,t){return _s(Eo(),e,t)},useTransition:function(){var e=Ho(!1);return e=ys.bind(null,G,e.queue,!0,!1),Eo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=G,a=Eo();if(U){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Ll===null)throw Error(i(349));X&127||Lo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,os(zo.bind(null,r,o,e),[e]),r.flags|=2048,ns(9,{destroy:void 0},Ro.bind(null,r,o,n,t),null),n},useId:function(){var e=Eo(),t=Ll.identifierPrefix;if(U){var n=Ci,r=Si;n=(r&~(1<<32-Pe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=po++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[nt]=t,o[rt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ac(t)}}return Fc(t),jc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ie.current,Li(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ki,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[nt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||jd(e.nodeValue,n)),e||Pi(t,!0)}else e=Bd(e).createTextNode(r),e[nt]=t,t.stateNode=e}return Fc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Li(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[nt]=t}else Ri(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Fc(t),e=!1}else n=zi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(io(t),t):(io(t),null);if(t.flags&128)throw Error(i(558))}return Fc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Li(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[nt]=t}else Ri(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Fc(t),a=!1}else a=zi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(io(t),t):(io(t),null)}return io(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Nc(t,t.updateQueue),Fc(t),null);case 4:return se(),e===null&&xd(t.stateNode.containerInfo),Fc(t),null;case 10:return Gi(t.type),Fc(t),null;case 19:if(R(ao),r=t.memoizedState,r===null)return Fc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Pc(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=oo(e),o!==null){for(t.flags|=128,Pc(r,!1),e=o.updateQueue,t.updateQueue=e,Nc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)si(n,e),n=n.sibling;return z(ao,ao.current&1|2),U&&wi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Se()>eu&&(t.flags|=128,a=!0,Pc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=oo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Nc(t,e),Pc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!U)return Fc(t),null}else 2*Se()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,a=!0,Pc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Fc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Se(),e.sibling=null,n=ao.current,z(ao,a?n&1|2:n&1),U&&wi(t,r.treeForkCount),e);case 22:case 23:return io(t),Za(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Fc(t),t.subtreeFlags&6&&(t.flags|=8192)):Fc(t),n=t.updateQueue,n!==null&&Nc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&R(ma),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Gi(ra),Fc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Lc(e,t){switch(Di(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Gi(ra),se(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return le(t),null;case 31:if(t.memoizedState!==null){if(io(t),t.alternate===null)throw Error(i(340));Ri()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(io(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Ri()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return R(ao),null;case 4:return se(),null;case 10:return Gi(t.type),null;case 22:case 23:return io(t),Za(),e!==null&&R(ma),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Gi(ra),null;case 25:return null;default:return null}}function q(e,t){switch(Di(t),t.tag){case 3:Gi(ra),se();break;case 26:case 27:case 5:le(t);break;case 4:se();break;case 31:t.memoizedState!==null&&io(t);break;case 13:io(t);break;case 19:R(ao);break;case 10:Gi(t.type);break;case 22:case 23:io(t),Za(),e!==null&&R(ma);break;case 24:Gi(ra)}}function Rc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Q(t,t.return,e)}}function zc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Q(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Q(t,t.return,e)}}function Bc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{W(t,n)}catch(t){Q(e,e.return,t)}}}function Vc(e,t,n){n.props=Us(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Q(e,t,n)}}function Hc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Q(e,t,n)}}function Uc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Q(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Q(e,t,n)}else n.current=null}}function Wc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Q(e,e.return,t)}}function Gc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[rt]=t}catch(t){Q(e,e.return,t)}}function Kc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function qc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Kc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Jc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Yt));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Jc(e,t,n),e=e.sibling;e!==null;)Jc(e,t,n),e=e.sibling}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[nt]=e,t[rt]=n}catch(t){Q(e,e.return,t)}}var Zc=!1,Qc=!1,$c=!1,el=typeof WeakSet==`function`?WeakSet:Set,tl=null;function nl(e,t){if(e=e.containerInfo,Rd=sp,e=Cr(e),wr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,tl=t;tl!==null;)if(t=tl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,tl=e;else for(;tl!==null;){switch(t=tl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Pd(o,r,n),o[nt]=e,ht(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=xr(s,h),v=xr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,F.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,J&6)throw Error(i(331));var c=J;if(J|=4,Ml(o.current),wl(o,o.current,s,n),J=c,rd(0,!1),Me&&typeof Me.onPostCommitFiberRoot==`function`)try{Me.onPostCommitFiberRoot(je,o)}catch{}return!0}finally{I.p=a,F.T=r,Bu(e,t)}}function Uu(e,t,n){t=mi(n,t),t=Ys(e.stateNode,t,2),e=Ba(e,t,2),e!==null&&(qe(e,2),nd(e))}function Q(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=mi(n,e),n=Xs(2),r=Ba(t,n,2),r!==null&&(Zs(n,r,t,e),qe(r,2),nd(r));break}}t=t.return}}function Wu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Il;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Gu.bind(null,e,t,n),t.then(e,e))}function Gu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ll===e&&(X&n)===n&&(Ul===4||Ul===3&&(X&62914560)===X&&300>Se()-Ql?!(J&2)&&xu(e,0):Kl|=n,Jl===X&&(Jl=0)),nd(e)}function Ku(e,t){t===0&&(t=Ge()),e=$r(e,t),e!==null&&(qe(e,t),nd(e))}function qu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ku(e,n)}function Ju(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Ku(e,n)}function Yu(e,t){return ve(e,t)}var Xu=null,Zu=null,Qu=!1,$u=!1,ed=!1,td=0;function nd(e){e!==Zu&&e.next===null&&(Zu===null?Xu=Zu=e:Zu=Zu.next=e),$u=!0,Qu||(Qu=!0,ld())}function rd(e,t){if(!ed&&$u){ed=!0;do for(var n=!1,r=Xu;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Pe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,cd(r,a))}else a=X,a=He(r,r===Ll?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ue(r,a)||(n=!0,cd(r,a))}r=r.next}while(n);ed=!1}}function id(){ad()}function ad(){$u=Qu=!1;var e=0;td!==0&&Gd()&&(e=td);for(var t=Se(),n=null,r=Xu;r!==null;){var i=r.next,a=od(r,t);a===0?(r.next=null,n===null?Xu=i:n.next=i,i===null&&(Zu=n)):(n=r,(e!==0||a&3)&&($u=!0)),r=i}ru!==0&&ru!==5||rd(e,!1),td!==0&&(td=0)}function od(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Pt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),ht(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Pt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Pt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Pt(n.imageSizes)+`"]`)):i+=`[href="`+Pt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),ht(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Pt(r)+`"][href="`+Pt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),ht(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=mt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);ht(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=mt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),ht(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=mt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),ht(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var a=(a=ie.current)?gf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=mt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=mt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=mt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Af(e){return`href="`+Pt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),ht(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Pt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Pt(n.href)+`"]`);if(r)return t.instance=r,ht(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),ht(r),Pd(r,`style`,a),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Af(n.href);var o=e.querySelector(jf(a));if(o)return t.state.loading|=4,t.instance=o,ht(o),o;r=Mf(n),(a=mf.get(a))&&Rf(r,a),o=(e.ownerDocument||e).createElement(`link`),ht(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(a=e.querySelector(Ff(o)))?(t.instance=a,ht(a),a):(r=n,(a=mf.get(o))&&(r=h({},n),zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),ht(a),Pd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,ht(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),ht(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=c(u(),1),v=g();function y(e,t=`Request failed`){let n=(e||``).trim();if(!n)return t;try{let e=JSON.parse(n).detail;if(typeof e==`string`&&e.trim())return e;if(Array.isArray(e)){let t=e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`msg`in e?String(e.msg):``).filter(Boolean);if(t.length)return t.join(`; `)}}catch{}return n}async function b(e,t){let n=await fetch(e,{...t,headers:{"Content-Type":`application/json`,...t?.headers||{}}});if(!n.ok){let e=await n.text();throw Error(y(e,n.statusText||`Request failed`))}return n.json()}var x=[`github_token`,`gitlab_token`,`gitlab_oauth_client_secret`,`bitbucket_token`,`bitbucket_oauth_client_secret`,`ai_api_key`,`ai_model`,`ai_base_url`],S={health:()=>b(`/api/health`),settings:()=>b(`/api/settings`),saveSettings:e=>{let t={...e};for(let e of x)t[e]===``&&delete t[e];return b(`/api/settings`,{method:`PUT`,body:JSON.stringify(t)})},repos:()=>b(`/api/repos`),browse:e=>b(`/api/fs${e?`?path=${encodeURIComponent(e)}`:``}`),gitRefs:(e,t=50)=>b(`/api/git/refs?repo_path=${encodeURIComponent(e)}&limit=${t}`),index:(e,t=!0)=>b(`/api/index`,{method:`POST`,body:JSON.stringify({repo_path:e,incremental:t})}),indexStatus:e=>b(`/api/index?repo_path=${encodeURIComponent(e)}`),indexProgress:e=>b(`/api/index/progress?repo_path=${encodeURIComponent(e)}`),architecture:(e,t=!0)=>b(`/api/architecture?repo_path=${encodeURIComponent(e)}&graph=${t?`1`:`0`}`),architectureGraph:e=>b(`/api/architecture/graph?repo_path=${encodeURIComponent(e)}`),review:(e,t,n,r=!0,i=!1)=>b(`/api/review`,{method:`POST`,body:JSON.stringify({repo_path:e,base:t,head:n||null,reindex:r,incremental:!0,three_dot:!0,dirty:i})}),whatIf:(e,t)=>b(`/api/whatif`,{method:`POST`,body:JSON.stringify({repo_path:e,node_id:t})}),reviewPr:(e,t,n,r)=>b(`/api/prs/review`,{method:`POST`,body:JSON.stringify({provider:e,repo:t,number:n,repo_path:r||null})}),init:(e,t=!1)=>b(`/api/init`,{method:`POST`,body:JSON.stringify({repo_path:e,overwrite:t})}),postComment:(e,t,n,r)=>b(`/api/prs/comment`,{method:`POST`,body:JSON.stringify({provider:e,repo:t,number:n,markdown:r})}),graph:(e,t=`full`)=>b(`/api/graph?repo_path=${encodeURIComponent(e)}&scope=${t}`),prs:(e,t,n=`open`,r)=>b(`/api/prs`,{method:`POST`,body:JSON.stringify({provider:e,repo:t,state:n,repo_path:r||null})}),scmRepos:e=>b(`/api/scm/repos?provider=${encodeURIComponent(e)}`),oauthStatus:()=>b(`/api/oauth/status`),githubOAuthStart:()=>b(`/api/oauth/github/start`,{method:`POST`,body:`{}`}),githubOAuthPoll:e=>b(`/api/oauth/github/poll`,{method:`POST`,body:JSON.stringify({flow_id:e})}),bitbucketOAuthStart:()=>b(`/api/oauth/bitbucket/start`),gitlabOAuthStart:()=>b(`/api/oauth/gitlab/start`),oauthDisconnect:e=>b(`/api/oauth/disconnect`,{method:`POST`,body:JSON.stringify({provider:e})}),residual:e=>b(`/api/ai/residual`,{method:`POST`,body:JSON.stringify({review:e})}),reviews:e=>b(`/api/reviews?repo_path=${encodeURIComponent(e)}`),getReview:(e,t)=>b(`/api/reviews/${encodeURIComponent(t)}?repo_path=${encodeURIComponent(e)}`),reviewDiff:(e,t,n)=>b(`/api/reviews/${encodeURIComponent(t)}/diff?repo_path=${encodeURIComponent(e)}&other=${encodeURIComponent(n)}`),config:e=>b(`/api/config?repo_path=${encodeURIComponent(e)}`),saveConfig:(e,t)=>b(`/api/config`,{method:`PUT`,body:JSON.stringify({repo_path:e,...t})}),addWaiver:(e,t,n,r)=>b(`/api/config/waiver`,{method:`POST`,body:JSON.stringify({repo_path:e,rule:t,node:n||null,reason:r||``})}),marks:(e,t)=>b(`/api/marks?repo_path=${encodeURIComponent(e)}${t?`&review_id=${encodeURIComponent(t)}`:``}`),architectureHealth:e=>b(`/api/architecture/health?repo_path=${encodeURIComponent(e)}`),workspaceStatus:e=>b(`/api/workspace/status?repo_path=${encodeURIComponent(e)}`),openEditor:(e,t,n,r)=>b(`/api/open`,{method:`POST`,body:JSON.stringify({repo_path:e,path:t,line:n||null,editor:r||null})}),exportHtml:e=>fetch(`/api/export/html`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({review:e})}).then(async e=>{if(!e.ok){let t=await e.text();throw Error(y(t,e.statusText||`Request failed`))}return e.blob()}),isolate:(e,t,n,r)=>b(`/api/graph/isolate`,{method:`POST`,body:JSON.stringify({nodes:e,edges:t,source_id:n,target_id:r||null})})},C=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),w=o(((e,t)=>{t.exports=C()})),T=w();function E(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)||(e.hint||``).toLowerCase().includes(n)||(e.group||``).toLowerCase().includes(n)):e}function D({open:e,actions:t,onClose:n}){let[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(0),s=(0,_.useRef)(null),c=(0,_.useMemo)(()=>E(t,r),[t,r]);if((0,_.useEffect)(()=>{if(!e)return;i(``),o(0);let t=window.setTimeout(()=>s.current?.focus(),0);return()=>window.clearTimeout(t)},[e]),(0,_.useEffect)(()=>{o(0)},[r]),!e)return null;let l=c.slice(0,40),u=l[Math.min(a,Math.max(l.length-1,0))],d=e=>{e&&(n(),e.run())};return(0,T.jsx)(`div`,{className:`palette-scrim`,"data-testid":`command-palette`,onClick:e=>{e.target===e.currentTarget&&n()},children:(0,T.jsxs)(`div`,{className:`palette`,role:`dialog`,"aria-label":`Command palette`,children:[(0,T.jsx)(`input`,{ref:s,"data-testid":`command-palette-input`,placeholder:`Jump to a node, run a review, toggle overlays…`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),n()):e.key===`ArrowDown`?(e.preventDefault(),o(e=>Math.min(Math.max(l.length-1,0),e+1))):e.key===`ArrowUp`?(e.preventDefault(),o(e=>Math.max(0,e-1))):e.key===`Enter`&&(e.preventDefault(),d(u))}}),(0,T.jsxs)(`ul`,{children:[l.length===0?(0,T.jsx)(`li`,{className:`muted`,children:`No matches`}):null,l.map((e,t)=>(0,T.jsx)(`li`,{children:(0,T.jsxs)(`button`,{type:`button`,className:t===a?`active`:``,onMouseEnter:()=>o(t),onClick:()=>d(e),children:[(0,T.jsx)(`span`,{children:e.label}),e.hint?(0,T.jsx)(`span`,{className:`muted`,children:e.hint}):null]})},e.id))]}),(0,T.jsxs)(`div`,{className:`palette-foot muted`,children:[(0,T.jsx)(`kbd`,{children:`↑`}),(0,T.jsx)(`kbd`,{children:`↓`}),` move · `,(0,T.jsx)(`kbd`,{children:`Enter`}),` run · `,(0,T.jsx)(`kbd`,{children:`Esc`}),` close`]})]})})}function O({config:e,busy:t,onSave:n,onWaiver:r}){let[i,a]=(0,_.useState)(e),[o,s]=(0,_.useState)(e.available_rules[0]||``),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)(``);(0,_.useEffect)(()=>{a(e)},[e]);let f=Object.entries(i.contexts||{}),p=(e,t,n)=>{let r=i.contexts[e];if(!r)return;let o=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);a({...i,contexts:{...i.contexts,[e]:{...r,[t]:t===`name`?n:o(n)}}})},m=(e,t)=>{let n=t.trim();if(!n||n===e)return;let{[e]:r,...o}=i.contexts;r&&a({...i,contexts:{...o,[n]:{...r,name:n}}})},h=()=>{let e=1;for(;i.contexts[`context-${e}`];)e+=1;let t=`context-${e}`;a({...i,contexts:{...i.contexts,[t]:{name:t,django_apps:[],react:[],public_api:[],owners:[]}}})},g=e=>{let{[e]:t,...n}=i.contexts;a({...i,contexts:n})},v=e=>{let t=i.rules.includes(e);a({...i,rules:t?i.rules.filter(t=>t!==e):[...i.rules,e]})};return(0,T.jsxs)(`div`,{className:`config-editor`,"data-testid":`config-editor`,children:[(0,T.jsx)(`p`,{className:`muted`,children:i.exists?i.path:`No loadpath.yml yet — saving writes one at the repo root.`}),f.map(([e,t])=>(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Context `,(0,T.jsx)(`span`,{className:`count`,children:e})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Name`}),(0,T.jsx)(`input`,{defaultValue:e,"data-testid":`config-context-name-${e}`,onBlur:t=>m(e,t.target.value)})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Django apps`}),(0,T.jsx)(`input`,{value:(t.django_apps||[]).join(`, `),onChange:t=>p(e,`django_apps`,t.target.value)})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`React folders`}),(0,T.jsx)(`input`,{value:(t.react||[]).join(`, `),onChange:t=>p(e,`react`,t.target.value)})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Public API`}),(0,T.jsx)(`input`,{value:(t.public_api||[]).join(`, `),onChange:t=>p(e,`public_api`,t.target.value)})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Owners`}),(0,T.jsx)(`input`,{value:(t.owners||[]).join(`, `),onChange:t=>p(e,`owners`,t.target.value)})]}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>g(e),children:`Remove context`})]},e)),(0,T.jsx)(`div`,{className:`btn-row`,children:(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`config-add-context`,onClick:h,children:`Add context`})}),(0,T.jsxs)(`details`,{className:`section`,children:[(0,T.jsxs)(`summary`,{children:[`Rules `,(0,T.jsx)(`span`,{className:`count`,children:i.rules.length})]}),(i.available_rules.length?i.available_rules:i.rules).map(e=>(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:i.rules.includes(e),onChange:()=>v(e)}),e]},e))]}),(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Waivers `,(0,T.jsx)(`span`,{className:`count`,children:(i.waivers||[]).length})]}),(i.waivers||[]).map((e,t)=>(0,T.jsxs)(`div`,{className:`muted`,children:[(0,T.jsx)(`strong`,{children:e.rule}),e.node?` · ${e.node}`:``,e.reason?` — ${e.reason}`:``]},`${e.rule}:${e.node}:${t}`)),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Rule`}),(0,T.jsx)(`select`,{value:o,onChange:e=>s(e.target.value),children:(i.available_rules.length?i.available_rules:i.rules).map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Node id (optional)`}),(0,T.jsx)(`input`,{value:c,onChange:e=>l(e.target.value),placeholder:`django.view:…`})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Reason`}),(0,T.jsx)(`input`,{value:u,onChange:e=>d(e.target.value)})]}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`config-add-waiver`,disabled:t||!o,onClick:()=>r?.(o,c,u),children:`Add waiver`})]}),(0,T.jsx)(`div`,{className:`btn-row`,children:(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`config-save`,disabled:t,onClick:()=>n(i),children:`Save loadpath.yml`})})]})}function k(e){return e.replaceAll(`_`,` `)}function A(e){return e.replaceAll(`_`,` `)}function j(e){return e.split(`.`).pop()||e}function M(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function ee(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}function N(e){return e.replace(/([/\\._:@-])/g,`$1​`)}function P({className:e,children:t}){return(0,T.jsx)(`svg`,{className:e,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:t})}function F({className:e}){return(0,T.jsxs)(P,{className:e,children:[(0,T.jsx)(`path`,{d:`M3 3.5h6.5L13 7v5.5H3z`}),(0,T.jsx)(`path`,{d:`M9.5 3.5V7H13`}),(0,T.jsx)(`path`,{d:`M5.5 9.5h5M5.5 11.5h3.5`})]})}function I({className:e}){return(0,T.jsxs)(P,{className:e,children:[(0,T.jsx)(`rect`,{x:`2.5`,y:`2.5`,width:`4.5`,height:`4.5`,rx:`0.8`}),(0,T.jsx)(`rect`,{x:`9`,y:`2.5`,width:`4.5`,height:`4.5`,rx:`0.8`}),(0,T.jsx)(`rect`,{x:`2.5`,y:`9`,width:`4.5`,height:`4.5`,rx:`0.8`}),(0,T.jsx)(`rect`,{x:`9`,y:`9`,width:`4.5`,height:`4.5`,rx:`0.8`})]})}function te({className:e}){return(0,T.jsxs)(P,{className:e,children:[(0,T.jsx)(`circle`,{cx:`4`,cy:`8`,r:`1.6`}),(0,T.jsx)(`circle`,{cx:`12`,cy:`4`,r:`1.6`}),(0,T.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,T.jsx)(`path`,{d:`M5.5 7.2 10.4 4.8M5.5 8.8 10.4 11.2`})]})}function ne({className:e}){return(0,T.jsxs)(P,{className:e,children:[(0,T.jsx)(`circle`,{cx:`4.5`,cy:`4`,r:`1.4`}),(0,T.jsx)(`circle`,{cx:`4.5`,cy:`12`,r:`1.4`}),(0,T.jsx)(`circle`,{cx:`11.5`,cy:`12`,r:`1.4`}),(0,T.jsx)(`path`,{d:`M4.5 5.5v5M4.5 8h4.2a3 3 0 0 1 3 3`})]})}function L({className:e}){return(0,T.jsxs)(P,{className:e,children:[(0,T.jsx)(`circle`,{cx:`8`,cy:`8`,r:`2.1`}),(0,T.jsx)(`path`,{d:`M8 2.5v1.6M8 11.9v1.6M2.5 8h1.6M11.9 8h1.6M4.1 4.1l1.1 1.1M10.8 10.8l1.1 1.1M11.9 4.1l-1.1 1.1M5.2 10.8l-1.1 1.1`})]})}function re({className:e}){return(0,T.jsx)(P,{className:e,children:(0,T.jsx)(`path`,{d:`M2.5 4.5h4L8 6h5.5v6.5h-11z`})})}function R({className:e}){return(0,T.jsx)(P,{className:e,children:(0,T.jsx)(`path`,{d:`M4 6.5 8 10.5 12 6.5`})})}function z(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function V(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}ie.prototype=V.prototype={constructor:ie,on:function(e,t){var n=this._,r=ae(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ce.hasOwnProperty(t)?{space:ce[t],local:e}:e}function ue(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function de(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function fe(e){var t=le(e);return(t.local?de:ue)(t)}function pe(){}function me(e){return e==null?pe:function(){return this.querySelector(e)}}function he(e){typeof e!=`function`&&(e=me(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Ge(e){e||=Ke;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function qe(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Je(){return Array.from(this)}function Ye(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?ot:typeof t==`function`?ct:st)(e,t,n??``)):ut(this.node(),e)}function ut(e,t){return e.style.getPropertyValue(t)||at(e).getComputedStyle(e,null).getPropertyValue(t)}function dt(e){return function(){delete this[e]}}function ft(e,t){return function(){this[e]=t}}function pt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function mt(e,t){return arguments.length>1?this.each((t==null?dt:typeof t==`function`?pt:ft)(e,t)):this.node()[e]}function ht(e){return e.trim().split(/^|\s+/)}function gt(e){return e.classList||new _t(e)}function _t(e){this._node=e,this._names=ht(e.getAttribute(`class`)||``)}_t.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function vt(e,t){for(var n=gt(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function qt(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function gn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}gn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function _n(e){return!e.ctrlKey&&!e.button}function vn(){return this.parentNode}function yn(e,t){return t??{x:e.x,y:e.y}}function bn(){return navigator.maxTouchPoints||`ontouchstart`in this}function xn(){var e=_n,t=vn,n=yn,r=bn,i={},a=V(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,ln).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(on(n.view).on(`mousemove.drag`,m,un).on(`mouseup.drag`,h,un),pn(n.view),dn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(fn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){on(e.view).on(`mousemove.drag mouseup.drag`,null),mn(e.view,l),fn(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Wn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Wn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=jn.exec(e))?new qn(t[1],t[2],t[3],1):(t=Mn.exec(e))?new qn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Nn.exec(e))?Wn(t[1],t[2],t[3],t[4]):(t=Pn.exec(e))?Wn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Fn.exec(e))?er(t[1],t[2]/100,t[3]/100,1):(t=In.exec(e))?er(t[1],t[2]/100,t[3]/100,t[4]):Ln.hasOwnProperty(e)?Un(Ln[e]):e===`transparent`?new qn(NaN,NaN,NaN,0):null}function Un(e){return new qn(e>>16&255,e>>8&255,e&255,1)}function Wn(e,t,n,r){return r<=0&&(e=t=n=NaN),new qn(e,t,n,r)}function Gn(e){return e instanceof wn||(e=Hn(e)),e?(e=e.rgb(),new qn(e.r,e.g,e.b,e.opacity)):new qn}function Kn(e,t,n,r){return arguments.length===1?Gn(e):new qn(e,t,n,r??1)}function qn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Sn(qn,Kn,Cn(wn,{brighter(e){return e=e==null?En:En**+e,new qn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Tn:Tn**+e,new qn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new qn(Qn(this.r),Qn(this.g),Qn(this.b),Zn(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:Jn,formatHex:Jn,formatHex8:Yn,formatRgb:Xn,toString:Xn}));function Jn(){return`#${$n(this.r)}${$n(this.g)}${$n(this.b)}`}function Yn(){return`#${$n(this.r)}${$n(this.g)}${$n(this.b)}${$n((isNaN(this.opacity)?1:this.opacity)*255)}`}function Xn(){let e=Zn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Qn(this.r)}, ${Qn(this.g)}, ${Qn(this.b)}${e===1?`)`:`, ${e})`}`}function Zn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Qn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function $n(e){return e=Qn(e),(e<16?`0`:``)+e.toString(16)}function er(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new rr(e,t,n,r)}function tr(e){if(e instanceof rr)return new rr(e.h,e.s,e.l,e.opacity);if(e instanceof wn||(e=Hn(e)),!e)return new rr;if(e instanceof rr)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new rr(o,s,c,e.opacity)}function nr(e,t,n,r){return arguments.length===1?tr(e):new rr(e,t,n,r??1)}function rr(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Sn(rr,nr,Cn(wn,{brighter(e){return e=e==null?En:En**+e,new rr(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Tn:Tn**+e,new rr(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new qn(or(e>=240?e-240:e+120,i,r),or(e,i,r),or(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new rr(ir(this.h),ar(this.s),ar(this.l),Zn(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(){let e=Zn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${ir(this.h)}, ${ar(this.s)*100}%, ${ar(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function ir(e){return e=(e||0)%360,e<0?e+360:e}function ar(e){return Math.max(0,Math.min(1,e||0))}function or(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var sr=e=>()=>e;function cr(e,t){return function(n){return e+n*t}}function lr(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function ur(e){return(e=+e)==1?dr:function(t,n){return n-t?lr(t,n,e):sr(isNaN(t)?n:t)}}function dr(e,t){var n=t-e;return n?cr(e,n):sr(isNaN(e)?t:e)}var fr=(function e(t){var n=ur(t);function r(e,t){var r=n((e=Kn(e)).r,(t=Kn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=dr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function pr(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:_r(r,i)})),n=br.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:_r(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:_r(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:_r(e,n)},{i:s-2,x:_r(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--zr}function ti(){Kr=(Gr=Jr.now())+qr,zr=Br=0;try{ei()}finally{zr=0,ri(),Kr=0}}function ni(){var e=Jr.now(),t=e-Gr;t>Hr&&(qr-=t,Gr=e)}function ri(){for(var e,t=Ur,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ur=n);Wr=e,ii(r)}function ii(e){zr||(Br&&=clearTimeout(Br),e-Kr>24?(e<1/0&&(Br=setTimeout(ti,e-Jr.now()-qr)),Vr&&=clearInterval(Vr)):(Vr||=(Gr=Jr.now(),setInterval(ni,Hr)),zr=1,Yr(ti)))}function ai(e,t,n){var r=new Qr;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var oi=V(`start`,`end`,`cancel`,`interrupt`),si=[];function ci(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;fi(e,n,{name:t,index:r,group:i,on:oi,tween:si,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function li(e,t){var n=di(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function ui(e,t){var n=di(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function di(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function fi(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=$r(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return ai(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function mi(e){return this.each(function(){pi(this,e)})}function hi(e,t){var n,r;return function(){var i=ui(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function Wi(e,t,n){var r,i,a=Ui(t)?li:ui;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Gi(e,t){var n=this._id;return arguments.length<2?di(this.node(),n).on.on(e):this.each(Wi(n,e,t))}function Ki(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function qi(){return this.on(`end.remove`,Ki(this._id))}function Ji(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=me(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function wa(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Ta(e,t,n){this.k=e,this.x=t,this.y=n}Ta.prototype={constructor:Ta,scale:function(e){return e===1?this:new Ta(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ta(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Ea=new Ta(1,0,0);Da.prototype=Ta.prototype;function Da(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ea;return e.__zoom}function Oa(e){e.stopImmediatePropagation()}function ka(e){e.preventDefault(),e.stopImmediatePropagation()}function Aa(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function ja(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Ma(){return this.__zoom||Ea}function Na(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Pa(){return navigator.maxTouchPoints||`ontouchstart`in this}function Fa(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Ia(){var e=Aa,t=ja,n=Fa,r=Na,i=Pa,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Rr,l=V(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Ma).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Ma),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Ea.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new Ta(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new Ta(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new Ta(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=on(this.that).datum();l.call(e,this.that,new wa(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=cn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],pi(this),s.start();ka(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=on(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=cn(t,i),l=t.clientX,u=t.clientY;pn(t.view),Oa(t),a.mouse=[c,this.__zoom.invert(c)],pi(this),a.start();function d(e){if(ka(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=cn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),mn(e.view,a.moved),ka(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=cn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);ka(r),s>0?on(this).transition().duration(s).call(x,d,c,r):on(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(Oa(t),s=0;s`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Ra=[[-1/0,-1/0],[1/0,1/0]],za=[`Enter`,` `,`Escape`],Ba={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Va;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Va||={});var Ha;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Ha||={});var Ua;(function(e){e.Partial=`partial`,e.Full=`full`})(Ua||={});var Wa={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Ga;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Ga||={});var Ka;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Ka||={});var W;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(W||={});var qa={[W.Left]:W.Right,[W.Right]:W.Left,[W.Top]:W.Bottom,[W.Bottom]:W.Top};function Ja(e){return e===null?null:e?`valid`:`invalid`}var Ya=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Xa=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Za=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Qa=(e,t=[0,0])=>{let{width:n,height:r}=jo(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},$a=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):Za(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,uo(e,ho(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?po(r):{x:0,y:0,width:0,height:0}},eo=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=uo(n,ho(e)),r=!0)}),r?po(n):{x:0,y:0,width:0,height:0}},to=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=_o(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},no=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function ro(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=jo(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function io({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Oo(eo(ro(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function ao({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,La.error005());else{let{width:e,height:t}=jo(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&Ao(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=Ao(d)?G(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,La.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function oo({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=no(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var so=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),G=(e={x:0,y:0},t,n)=>({x:so(e.x,t[0][0],t[1][0]-(n?.width??0)),y:so(e.y,t[0][1],t[1][1]-(n?.height??0))});function K(e,t,n){let{width:r,height:i}=jo(n),{x:a,y:o}=n.internals.positionAbsolute;return G(e,[[a,o],[a+r,o+i]],t)}var co=(e,t,n)=>en?-so(Math.abs(e-n),1,t)/t:0,lo=(e,t,n=15,r=40)=>[co(e.x,r,t.width-r)*n,co(e.y,r,t.height-r)*n],uo=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),fo=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),po=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),mo=(e,t=[0,0])=>{let{x:n,y:r}=Za(e)?e.internals.positionAbsolute:Qa(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},ho=(e,t=[0,0])=>{let{x:n,y:r}=Za(e)?e.internals.positionAbsolute:Qa(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},go=(e,t)=>po(uo(fo(e),fo(t))),_o=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},vo=(e,t)=>_o(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),yo=e=>bo(e.width)&&bo(e.height)&&bo(e.x)&&bo(e.y),bo=e=>!isNaN(e)&&isFinite(e),xo=(e,t)=>(e,t)=>{},So=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Co=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?So(s,o):s},wo=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function To(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Eo(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=To(e,n),i=To(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=To(e.top??e.y??0,n),i=To(e.bottom??e.y??0,n),a=To(e.left??e.x??0,t),o=To(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Do(e,t,n,r,i,a){let{x:o,y:s}=wo(e,[t,n,r]),{x:c,y:l}=wo({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Oo=(e,t,n,r,i,a)=>{let o=Eo(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=so(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=Do(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},ko=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function Ao(e){return e!=null&&e!==`parent`}function jo(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Mo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function No(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function Po(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Fo(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Io(e){return{...Ba,...e||{}}}function Lo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Uo(e),s=Co({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?So(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var Ro=e=>({width:e.offsetWidth,height:e.offsetHeight}),zo=e=>e?.getRootNode?.()||window?.document,Bo=[`INPUT`,`SELECT`,`TEXTAREA`];function Vo(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Bo.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Ho=e=>`clientX`in e,Uo=(e,t)=>{let n=Ho(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Wo=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Ro(t)}})};function Go({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Ko(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function qo({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case W.Left:return[t-Ko(t-r,a),n];case W.Right:return[t+Ko(r-t,a),n];case W.Top:return[t,n-Ko(n-i,a)];case W.Bottom:return[t,n+Ko(i-n,a)]}}function Jo({sourceX:e,sourceY:t,sourcePosition:n=W.Bottom,targetX:r,targetY:i,targetPosition:a=W.Top,curvature:o=.25}){let[s,c]=qo({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=qo({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Go({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Yo({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var Qo=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,$o=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),es=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,La.error006()),t;let r=n.getEdgeId||Qo,i;return i=Ya(e)?{...e}:{...e,id:r(e)},$o(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function ts({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Yo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var ns={[W.Left]:{x:-1,y:0},[W.Right]:{x:1,y:0},[W.Top]:{x:0,y:-1},[W.Bottom]:{x:0,y:1}},rs=({source:e,sourcePosition:t=W.Bottom,target:n})=>t===W.Left||t===W.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function as({source:e,sourcePosition:t=W.Bottom,target:n,targetPosition:r=W.Top,center:i,offset:a,stepPosition:o}){let s=ns[t],c=ns[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=rs({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Yo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function os(e,t,n,r){let i=Math.min(is(e,t)/2,is(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function ps(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function ms(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=ps(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var hs=1e3,gs=10,_s={nodeOrigin:[0,0],nodeExtent:Ra,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},vs={..._s,checkEquality:!0};function ys(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function bs(e,t,n){let r=ys(_s,n);for(let n of e.values())if(n.parentId)Ts(n,e,t,r);else{let e=G(Qa(n,r.nodeOrigin),Ao(n.extent)?n.extent:r.nodeExtent,jo(n));n.internals.positionAbsolute=e}}function xs(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Ss(e){return e===`manual`}function Cs(e,t,n,r={}){let i=ys(vs,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Ss(i.zIndexMode)?hs:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=G(Qa(u,i.nodeOrigin),Ao(u.extent)?u.extent:i.nodeExtent,jo(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:xs(u,e),z:Es(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Ts(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function ws(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Ts(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=ys(_s,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ws(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*gs),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Ds(e,u,o,s,a&&!Ss(c)?hs:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function Es(e,t,n){let r=bo(e.zIndex)?e.zIndex:0;return Ss(n)?r:r+(e.selected?t:0)}function Ds(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=jo(e),l=Qa(e,n),u=Ao(e.extent)?G(l,e.extent,c):l,d=G({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=K(d,c,t));let f=Es(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Os(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=go(a.get(n.parentId)?.expandedRect??mo(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=jo(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=Os(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function As({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function js(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Ms(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;js(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),js(`target`,s,c,e,i,o),t.set(r.id,r)}}function Ns(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Ns(n,t):!1}function Ps(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Fs(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Ns(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Is({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Ls({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=So(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Rs({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=on(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?fo(eo(s)):null,x=v&&l?Ls({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:So(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=ao({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Is({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=lo(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=Lo(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Fs(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Is({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=xn().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=Lo(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Uo(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Lo(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Uo(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Uo(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Is({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!Ps(t,`.${g}`,v))&&(!_||Ps(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function zs(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())vo(i,mo(e))>0&&r.push(e);return r}var Bs=250;function Vs(e,t,n,r){let i=[],a=1/0,o=zs(e,n,t+Bs);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=ds(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Hs(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...ds(o,c,c.position,!0)}:c}function Us(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Ws(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Gs=()=>!0;function Ks(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Gs,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=zo(e.target),E=0,D,{x:O,y:k}=Uo(e),A=Us(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let ee=Hs(i,A,r,c,t);if(!ee)return;let N=Uo(e,j),P=!1,F=null,I=!1,te=null;function ne(){if(!u||!j)return;let[e,t]=lo(N,j,S);f({x:e,y:t}),E=requestAnimationFrame(ne)}let L={...ee,nodeId:i,type:A,position:ee.position},re=c.get(i),R={inProgress:!0,isValid:null,from:ds(re,L,W.Left,!0),fromHandle:L,fromPosition:L.position,fromNode:re,to:N,toHandle:null,toPosition:qa[L.position],toNode:null,pointer:N};function z(){M=!0,y(R),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&z();function B(e){if(!M){let{x:t,y:n}=Uo(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;z()}if(!x()||!L){V(e);return}let a=b();N=Uo(e,j),D=Vs(Co(N,a,!1,[1,1]),n,c,L),P||=(ne(),!0);let s=qs(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});te=s.handleDomNode,F=s.connection,I=Ws(!!D,s.isValid);let u=c.get(i),f=u?ds(u,L,W.Left,!0):R.from,p={...R,from:f,isValid:I,to:s.toHandle&&I?wo({x:s.toHandle.x,y:s.toHandle.y},a):N,toHandle:s.toHandle,toPosition:I&&s.toHandle?s.toHandle.position:qa[L.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:N};y(p),R=p}function V(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||te)&&F&&I&&h?.(F);let{inProgress:t,...n}=R,r={...n,toPosition:R.toHandle?R.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),P=!1,I=!1,F=null,te=null,T.removeEventListener(`mousemove`,B),T.removeEventListener(`mouseup`,V),T.removeEventListener(`touchmove`,B),T.removeEventListener(`touchend`,V)}}T.addEventListener(`mousemove`,B),T.addEventListener(`mouseup`,V),T.addEventListener(`touchmove`,B),T.addEventListener(`touchend`,V)}function qs(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Gs,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Uo(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Us(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Va.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Hs(t,e,a,u,n,!0)}return _}var Js={onPointerDown:Ks,isValid:qs};function Ys({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=on(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&ko()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Ia().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:cn}}var Xs=e=>({x:e.x,y:e.y,zoom:e.k}),Zs=({x:e,y:t,zoom:n})=>Ea.translate(e,t).scale(n),Qs=(e,t)=>e.target.closest(`.${t}`),$s=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ec=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,tc=(e,t=0,n=ec,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},nc=e=>{let t=e.ctrlKey&&ko()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function rc({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Qs(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=cn(u),t=d*2**nc(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Ha.Vertical?0:u.deltaX*f,m=i===Ha.Horizontal?0:u.deltaY*f;!ko()&&u.shiftKey&&i!==Ha.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Xs(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function ic({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Qs(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function ac({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Xs(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function oc({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&$s(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Xs(a.transform))}}function sc({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&$s(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Xs(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function cc({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(Qs(f,`${u}-flow__node`)||Qs(f,`${u}-flow__edge`)||Qs(f,`${u}-flow__selection`)||Qs(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||Qs(f,c)&&h||Qs(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function lc({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=Ia().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=on(e).call(f);y({x:i.x,y:i.y,zoom:so(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(nc);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?wr:Rr).transform(tc(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!bo(D)||D<0?0:D);let A=k?rc({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ic({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=ac({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=oc({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let ee=sc({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,ee);let N=cc({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(N),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Zs(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Zs(e);return await g(n,t),n}function x(e){if(p){let t=Zs(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?Da(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?wr:Rr).scaleTo(tc(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?wr:Rr).scaleBy(tc(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!bo(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var uc;(function(e){e.Line=`line`,e.Handle=`handle`})(uc||={});function dc({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function fc(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function pc(e,t){return Math.max(0,t-e)}function mc(e,t){return Math.max(0,e-t)}function hc(e,t,n){return Math.max(0,t-e,e-n)}function gc(e,t){return e?!t:t}function _c(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=hc(E,h,g),j=hc(D,_,v);if(o){let e=0,t=0;c&&w<0?e=pc(y+w+O,o[0][0]):!c&&w>0&&(e=mc(y+E+O,o[1][0])),l&&T<0?t=pc(b+T+k,o[0][1]):!l&&T>0&&(t=mc(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=mc(y+w,s[0][0]):!c&&w<0&&(e=pc(y+E,s[1][0])),l&&T>0?t=mc(b+T,s[0][1]):!l&&T<0&&(t=pc(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=hc(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?mc(b+k+E/C,o[1][1])*C:pc(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?pc(b+E/C,s[1][1])*C:mc(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=hc(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?mc(y+D*C+O,o[1][0])/C:pc(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?pc(y+D*C,s[1][0])/C:mc(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(gc(c,l)?-w:w)/C:w=(gc(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,ee=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+ee}}var vc={width:0,height:0,x:0,y:0},yc={...vc,pointerX:0,pointerY:0,aspectRatio:1};function bc(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function xc({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=on(e),o={controlDirection:fc(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...vc},h={...yc};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:fc(e)};let g,_=null,v=[],y,b,x,S=!1,C=xn().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Lo(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=Ao(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=bc(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=Lo(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=_c(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,ee=k!==u&&j,N=A!==f&&M;if(!ee&&!N&&!j&&!M)return;if((ee||N||E[0]===1||E[1]===1)&&(T.x=ee?k:m.x,T.y=N?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Sc=o((e=>{var t=u();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Cc=o(((e,t)=>{t.exports=Sc()})),wc=o((e=>{var t=u(),n=Cc();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),Tc=c(o(((e,t)=>{t.exports=wc()}))(),1),Ec=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Dc=e=>e?Ec(e):Ec,{useDebugValue:Oc}=_.default,{useSyncExternalStoreWithSelector:kc}=Tc.default,Ac=e=>e;function jc(e,t=Ac,n){let r=kc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Oc(r),r}var Mc=(e,t)=>{let n=Dc(e),r=(e,r=t)=>jc(n,e,r);return Object.assign(r,n),r},Nc=(e,t)=>e?Mc(e,t):Mc;function Pc(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}m();var Fc=(0,_.createContext)(null),Ic=Fc.Provider,Lc=La.error001(`react`);function q(e,t){let n=(0,_.useContext)(Fc);if(n===null)throw Error(Lc);return jc(n,e,t)}function Rc(){let e=(0,_.useContext)(Fc);if(e===null)throw Error(Lc);return(0,_.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var zc={display:`none`},Bc={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Vc=`react-flow__node-desc`,Hc=`react-flow__edge-desc`,Uc=`react-flow__aria-live`,Wc=e=>e.ariaLiveMessage,Gc=e=>e.ariaLabelConfig;function Kc({rfId:e}){let t=q(Wc);return(0,T.jsx)(`div`,{id:`${Uc}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Bc,children:t})}function qc({rfId:e,disableKeyboardA11y:t}){let n=q(Gc);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{id:`${Vc}-${e}`,style:zc,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,T.jsx)(`div`,{id:`${Hc}-${e}`,style:zc,children:n[`edge.a11yDescription.default`]}),!t&&(0,T.jsx)(Kc,{rfId:e})]})}var Jc=(0,_.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,T.jsx)(`div`,{className:z([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Jc.displayName=`Panel`;var Yc=`https://reactflow.dev?utm_source=attribution`;function Xc({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,T.jsx)(Jc,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Yc}`,children:(0,T.jsx)(`a`,{href:Yc,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Zc=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Qc=e=>e.id;function $c(e,t){return Pc(e.selectedNodes.map(Qc),t.selectedNodes.map(Qc))&&Pc(e.selectedEdges.map(Qc),t.selectedEdges.map(Qc))}function el({onSelectionChange:e}){let t=Rc(),{selectedNodes:n,selectedEdges:r}=q(Zc,$c);return(0,_.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var tl=e=>!!e.onSelectionChangeHandlers;function nl({onSelectionChange:e}){let t=q(tl);return e||t?(0,T.jsx)(el,{onSelectionChange:e}):null}var rl=[0,0],il={x:0,y:0,zoom:1},al=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],ol=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),sl={translateExtent:Ra,nodeOrigin:rl,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function cl(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=q(ol,Pc),l=Rc();(0,_.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=sl,s()}),[]);let u=(0,_.useRef)(sl);return(0,_.useEffect)(()=>{for(let s of al){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:Io(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},al.map(t=>e[t])),null}function ll(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function ul(e){let[t,n]=(0,_.useState)(e===`system`?null:e);return(0,_.useEffect)(()=>{if(e!==`system`){n(e);return}let t=ll(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?ll()?.matches?`dark`:`light`:t}var dl=typeof document<`u`?document:null;function fl(e=null,t={target:dl,actInsideInputWithModifier:!0}){let[n,r]=(0,_.useState)(!1),i=(0,_.useRef)(!1),a=(0,_.useRef)(new Set([])),[o,s]=(0,_.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,` +`).replace(` + +`,` ++`).split(` +`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,_.useEffect)(()=>{let n=t?.target??dl,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Vo(e))return!1;let n=ml(e.code,s);if(a.current.add(e[n]),pl(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=ml(e.code,s);pl(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function pl(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function ml(e,t){return t.includes(e)?`code`:`key`}var hl=()=>{let e=Rc();return(0,_.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=Oo(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return Co(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=wo(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function gl(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)_l(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function _l(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function vl(e,t){return gl(e,t)}function yl(e,t){return gl(e,t)}function bl(e,t){return{id:e,type:`select`,selected:t}}function xl(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(bl(a.id,e)))}return r}function Sl({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Cl(e){return{id:e.id,type:`remove`}}var wl=xo(`React Flow`,`https://reactflow.dev/`);function Tl(e,t,n={}){return es(e,t,{...n,onError:n.onError??wl})}var El=e=>Xa(e),Dl=e=>Ya(e);function Ol(e){return(0,_.forwardRef)(e)}var kl=typeof window<`u`?_.useLayoutEffect:_.useEffect;function Al(e){let[t,n]=(0,_.useState)(BigInt(0)),[r]=(0,_.useState)(()=>jl(()=>n(e=>e+BigInt(1))));return kl(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function jl(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Ml=(0,_.createContext)(null);function Nl({children:e}){let t=Rc(),n=Al((0,_.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=Sl({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Al((0,_.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(Sl({items:s,lookup:o}))},[])),i=(0,_.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,T.jsx)(Ml.Provider,{value:i,children:e})}function Pl(){let e=(0,_.useContext)(Ml);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Fl=e=>!!e.panZoom;function Il(){let e=hl(),t=Rc(),n=Pl(),r=q(Fl),i=(0,_.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=El(e)?e:n.get(e.id),a=i.parentId?No(i.position,i.measured,i.parentId,n,r):i.position;return mo({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&El(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Dl(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await oo({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Cl);o?.(f),c(e)}if(m){let e=d.map(Cl);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=yo(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=mo(s?r:a),l=vo(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=yo(e)?e:a(e);if(!r)return!1;let i=vo(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return $a(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Fo();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,_.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var J=e=>e.selected,Ll=typeof window<`u`?window:void 0;function Y({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Rc(),{deleteElements:r}=Il(),i=fl(e,{actInsideInputWithModifier:!1}),a=fl(t,{target:Ll});(0,_.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(J),edges:e.filter(J)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,_.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function X(e){let t=Rc();(0,_.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=Ro(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,La.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Z={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Rl=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function zl({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=Ha.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:v,onViewportChange:y,isControlledViewport:b,paneClickDistance:x,selectionOnDrag:S}){let C=Rc(),w=(0,_.useRef)(null),{userSelectionActive:E,lib:D,connectionInProgress:O}=q(Rl,Pc),k=fl(p),A=(0,_.useRef)();X(w);let j=(0,_.useCallback)(e=>{y?.({x:e[0],y:e[1],zoom:e[2]}),b||C.setState({transform:e})},[y,b]);return(0,_.useEffect)(()=>{if(w.current){A.current=lc({domNode:w.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=A.current.getViewport();return C.setState({panZoom:A.current,transform:[e,t,n],domNode:w.current.closest(`.react-flow`)}),()=>{A.current?.destroy()}}},[]),(0,_.useEffect)(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:k,preventScrolling:m,noPanClassName:v,userSelectionActive:E,noWheelClassName:g,lib:D,onTransformChange:j,connectionInProgress:O,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,c,k,m,v,E,g,D,j,O,S,x]),(0,T.jsx)(`div`,{className:`react-flow__renderer`,ref:w,style:Z,children:h})}var Bl=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Vl(){let{userSelectionActive:e,userSelectionRect:t}=q(Bl,Pc);return e&&t?(0,T.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Hl=(e,t)=>n=>{n.target===t.current&&e?.(n)},Ul=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Wl({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ua.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,_.useRef)(0),v=Rc(),{userSelectionActive:y,elementsSelectable:b,dragging:x,panBy:S,autoPanSpeed:C}=q(Ul,Pc),w=b&&(e||y),E=(0,_.useRef)(null),D=(0,_.useRef)(),O=(0,_.useRef)(new Set),k=(0,_.useRef)(new Set),A=(0,_.useRef)(!1),j=(0,_.useRef)(!1),M=(0,_.useRef)({x:0,y:0}),ee=(0,_.useRef)(!1),N=e=>{if(j.current||A.current||v.getState().connection.inProgress){j.current=!1,A.current=!1;return}l?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},F=d?e=>d(e):void 0,I=e=>{j.current&&=(e.stopPropagation(),!1)},te=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=v.getState();if(D.current=i?.getBoundingClientRect(),!D.current)return;let s=n.target===E.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),j.current=!1;let{x:c,y:l}=Uo(n.nativeEvent,D.current),u=Co({x:c,y:l},a);v.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function ne(e,t){let{userSelectionRect:r}=v.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=v.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=wo(d,i),m={startX:d.x,startY:d.y,x:ee.id)),k.current=new Set;let _=u?.selectable??!0;for(let e of O.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??_)&&k.current.add(e)}}Po(h,O.current)||c(xl(a,O.current,!0)),Po(g,k.current)||l(xl(o,k.current)),v.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!i||!D.current)return;let[e,t]=lo(M.current,D.current,C);S({x:e,y:t}).then(e=>{if(!j.current||!e){g.current=requestAnimationFrame(L);return}let{x:t,y:n}=M.current;ne(t,n),g.current=requestAnimationFrame(L)})}let re=()=>{cancelAnimationFrame(g.current),g.current=0,ee.current=!1};(0,_.useEffect)(()=>()=>re(),[]);let R=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=v.getState();if(!D.current||!n)return;let{x:o,y:c}=Uo(e.nativeEvent,D.current);M.current={x:o,y:c};let l=wo({x:n.startX,y:n.startY},r);if(!j.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}j.current=!0,ee.current||=(L(),!0),ne(o,c)},B=e=>{if(!w){e.target===E.current&&v.getState().connection.inProgress&&(A.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===E.current&&v.getState().userSelectionRect&&N?.(e),v.setState({userSelectionActive:!1,userSelectionRect:null}),j.current&&(c?.(e),v.setState({nodesSelectionActive:O.current.size>0})),re())},V=e=>{e.target?.releasePointerCapture?.(e.pointerId),re()},ie=r===!0||Array.isArray(r)&&r.includes(0);return(0,T.jsxs)(`div`,{className:z([`react-flow__pane`,{draggable:ie,dragging:x,selection:e}]),onClick:w?void 0:Hl(N,E),onContextMenu:Hl(P,E),onWheel:Hl(F,E),onPointerEnter:w?void 0:f,onPointerMove:w?R:p,onPointerUp:B,onPointerCancel:w?V:void 0,onPointerDownCapture:w?te:void 0,onClickCapture:w?I:void 0,onPointerLeave:m,ref:E,style:Z,children:[h,(0,T.jsx)(Vl,{})]})}function Gl({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,La.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Kl({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Rc(),[c,l]=(0,_.useState)(!1),u=(0,_.useRef)();return(0,_.useEffect)(()=>{if(!t)return u.current=Rs({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Gl({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,_.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var ql=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Jl(){let e=Rc();return(0,_.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=ql(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=So(t,i));let{position:a,positionAbsolute:s}=ao({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Yl=(0,_.createContext)(null),Xl=Yl.Provider;Yl.Consumer;var Zl=()=>(0,_.useContext)(Yl),Ql=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),$l=(0,_.createContext)(null);function eu({children:e}){let t=q(Ql,Pc);return(0,T.jsx)($l.Provider,{value:t,children:e})}function tu(){let e=(0,_.useContext)($l);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var nu={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},ru=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return nu;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Va.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function iu({type:e=`source`,position:t=W.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Rc(),_=Zl(),{connectOnClick:v,noPanClassName:y,rfId:b}=tu(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:E,clickConnectionInProcess:D,valid:O}=q(ru(_,m,e),Pc);_||g.getState().onError?.(`010`,La.error010());let k=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(Tl(i,e,{onError:n}))}n?.(i),s?.(i)},A=e=>{if(!_)return;let t=Ho(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Js.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:k,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,T.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:z([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:O,connectionindicator:r&&(!E||w)&&(E||D?a:i)}]),onMouseDown:A,onTouchStart:A,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=zo(t.target),h=n||c,{connection:v,isValid:y}=Js.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&k(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var au=(0,_.memo)(Ol(iu));function ou({data:e,isConnectable:t,sourcePosition:n=W.Bottom}){return(0,T.jsxs)(T.Fragment,{children:[e?.label,(0,T.jsx)(au,{type:`source`,position:n,isConnectable:t})]})}function su({data:e,isConnectable:t,targetPosition:n=W.Top,sourcePosition:r=W.Bottom}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(au,{type:`target`,position:n,isConnectable:t}),e?.label,(0,T.jsx)(au,{type:`source`,position:r,isConnectable:t})]})}function cu(){return null}function lu({data:e,isConnectable:t,targetPosition:n=W.Top}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(au,{type:`target`,position:n,isConnectable:t}),e?.label]})}var uu={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},du={input:ou,default:su,output:lu,group:cu};function fu(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var pu=e=>{let{width:t,height:n,x:r,y:i}=eo(e.nodeLookup,{filter:e=>!!e.selected});return{width:bo(t)?t:null,height:bo(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function mu({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Rc(),{width:i,height:a,transformString:o,userSelectionActive:s}=q(pu,Pc),c=Jl(),l=(0,_.useRef)(null);(0,_.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Kl({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,T.jsx)(`div`,{className:z([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,T.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(uu,e.key)&&(e.preventDefault(),c({direction:uu[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var hu=typeof window<`u`?window:void 0,gu=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function _u({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:ee,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:te,userSelectionActive:ne}=q(gu,Pc),L=fl(l,{target:hu}),re=fl(h,{target:hu}),R=re||w,z=re||b,B=u&&R!==!0,V=L||ne||B;return Y({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,T.jsx)(zl,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:z,panActivationKeyPressed:re,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!L&&R,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:ee,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:B,children:(0,T.jsxs)(Wl,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:R,autoPanOnSelection:E,isSelecting:!!V,selectionMode:d,selectionKeyPressed:L,paneClickDistance:s,selectionOnDrag:B,children:[e,te&&(0,T.jsx)(mu,{onSelectionContextMenu:M,noPanClassName:N,disableKeyboardA11y:P})]})})}_u.displayName=`FlowRenderer`;var vu=(0,_.memo)(_u),yu=e=>t=>e?to(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function bu(e){return q((0,_.useCallback)(yu(e),[e]),Pc)}var xu=e=>e.updateNodeInternals;function Su(){let e=q(xu),[t]=(0,_.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,_.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function Cu({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Rc(),a=(0,_.useRef)(null),o=(0,_.useRef)(null),s=(0,_.useRef)(e.sourcePosition),c=(0,_.useRef)(e.targetPosition),l=(0,_.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,_.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,_.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,_.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function wu({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=q(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Pc),S=y.type||`default`,C=g?.[S]||du[S];C===void 0&&(v?.(`003`,La.error003(S)),S=`default`,C=g?.default||du.default);let w=!!(y.draggable||s&&y.draggable===void 0),E=!!(y.selectable||c&&y.selectable===void 0),D=!!(y.connectable||l&&y.connectable===void 0),O=!!(y.focusable||u&&y.focusable===void 0),k=Rc(),A=Mo(y),j=Cu({node:y,nodeType:S,hasDimensions:A,resizeObserver:d}),M=Kl({nodeRef:j,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:E,nodeClickDistance:_}),ee=Jl();if(y.hidden)return null;let N=jo(y),P=fu(y),F=E||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,te=r?e=>r(e,{...b.userNode}):void 0,ne=i?e=>i(e,{...b.userNode}):void 0,L=a?e=>a(e,{...b.userNode}):void 0,re=o?e=>o(e,{...b.userNode}):void 0,R=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=k.getState();E&&(!r||!w||i>0)&&Gl({id:e,store:k,nodeRef:j}),t&&t(n,{...b.userNode})},B=t=>{if(!(Vo(t.nativeEvent)||m)){if(za.includes(t.key)&&E){let n=t.key===`Escape`;Gl({id:e,store:k,unselect:n,nodeRef:j})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(uu,t.key)){t.preventDefault();let{ariaLabelConfig:e}=k.getState();k.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),ee({direction:uu[t.key],factor:t.shiftKey?4:1})}}},V=()=>{if(m||!j.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=k.getState();i&&(to(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,T.jsx)(`div`,{className:z([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:E,parent:x,draggable:w,dragging:M}]),ref:j,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:A?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:te,onMouseLeave:ne,onContextMenu:L,onClick:R,onDoubleClick:re,onKeyDown:O?B:void 0,tabIndex:O?0:void 0,onFocus:O?V:void 0,role:y.ariaRole??(O?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Vc}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,T.jsx)(Xl,{value:e,children:(0,T.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:E,draggable:w,deletable:y.deletable??!0,isConnectable:D,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:M,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var Tu=(0,_.memo)(wu),Eu=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Du(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=q(Eu,Pc),a=bu(e.onlyRenderVisibleElements),o=Su();return(0,T.jsx)(`div`,{className:`react-flow__nodes`,style:Z,children:a.map(a=>(0,T.jsx)(Tu,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Du.displayName=`NodeRenderer`;var Ou=(0,_.memo)(Du);function ku(e){return q((0,_.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Zo({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Pc)}var Au=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,T.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},ju=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,T.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},Mu={[Ka.Arrow]:Au,[Ka.ArrowClosed]:ju};function Nu(e){let t=Rc();return(0,_.useMemo)(()=>Object.prototype.hasOwnProperty.call(Mu,e)?Mu[e]:(t.getState().onError?.(`009`,La.error009(e)),null),[e])}var Pu=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Nu(t);return c?(0,T.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,T.jsx)(c,{color:n,strokeWidth:o})}):null},Fu=({defaultColor:e,rfId:t})=>{let n=q(e=>e.edges),r=q(e=>e.defaultEdgeOptions),i=(0,_.useMemo)(()=>ms(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,T.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,T.jsx)(`defs`,{children:i.map(e=>(0,T.jsx)(Pu,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Fu.displayName=`MarkerDefinitions`;var Iu=(0,_.memo)(Fu);function Lu({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,_.useState)({x:1,y:0,width:0,height:0}),p=z([`react-flow__edge-textwrapper`,l]),m=(0,_.useRef)(null);return(0,_.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,T.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,T.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,T.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Lu.displayName=`EdgeText`;var Ru=(0,_.memo)(Lu);function zu({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`path`,{...u,d:e,fill:`none`,className:z([`react-flow__edge-path`,u.className])}),l?(0,T.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&bo(t)&&bo(n)?(0,T.jsx)(Ru,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Bu({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===W.Left||e===W.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Vu({sourceX:e,sourceY:t,sourcePosition:n=W.Bottom,targetX:r,targetY:i,targetPosition:a=W.Top}){let[o,s]=Bu({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Bu({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Go({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Hu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Vu({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,T.jsx)(zu,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Uu=Hu({isInternal:!1}),Q=Hu({isInternal:!0});Uu.displayName=`SimpleBezierEdge`,Q.displayName=`SimpleBezierEdgeInternal`;function Wu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=W.Bottom,targetPosition:m=W.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=ss({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,T.jsx)(zu,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Gu=Wu({isInternal:!1}),Ku=Wu({isInternal:!0});Gu.displayName=`SmoothStepEdge`,Ku.displayName=`SmoothStepEdgeInternal`;function qu(e){return(0,_.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,T.jsx)(Gu,{...n,id:r,pathOptions:(0,_.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Ju=qu({isInternal:!1}),Yu=qu({isInternal:!0});Ju.displayName=`StepEdge`,Yu.displayName=`StepEdgeInternal`;function Xu(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=ts({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,T.jsx)(zu,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Zu=Xu({isInternal:!1}),Qu=Xu({isInternal:!0});Zu.displayName=`StraightEdge`,Qu.displayName=`StraightEdgeInternal`;function $u(e){return(0,_.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=W.Bottom,targetPosition:s=W.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Jo({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,T.jsx)(zu,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var ed=$u({isInternal:!1}),td=$u({isInternal:!0});ed.displayName=`BezierEdge`,td.displayName=`BezierEdgeInternal`;var nd={default:td,straight:Qu,step:Yu,smoothstep:Ku,simplebezier:Q},rd={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},id=(e,t,n)=>n===W.Left?e-t:n===W.Right?e+t:e,ad=(e,t,n)=>n===W.Top?e-t:n===W.Bottom?e+t:e,od=`react-flow__edgeupdater`;function sd({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,T.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:z([od,`${od}-${s}`]),cx:id(t,r,e),cy:ad(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function cd({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Rc(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Js.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,T.jsxs)(T.Fragment,{children:[(e===!0||e===`source`)&&(0,T.jsx)(sd,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,T.jsx)(sd,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function ld({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:v,disableKeyboardA11y:y}){let b=q(t=>t.edgeLookup.get(e)),x=q(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=h?.[S]||nd[S];C===void 0&&(v?.(`011`,La.error011(S)),S=`default`,C=h?.default||nd.default);let w=!!(b.focusable||t&&b.focusable===void 0),E=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),D=!!(b.selectable||r&&b.selectable===void 0),O=(0,_.useRef)(null),[k,A]=(0,_.useState)(!1),[j,M]=(0,_.useState)(!1),ee=Rc(),{zIndex:N=b.zIndex,sourceX:P,sourceY:F,targetX:I,targetY:te,sourcePosition:ne,targetPosition:L}=q((0,_.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return rd;let i=ls({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:v}),a=Xo({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||rd,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,v]),Pc),re=(0,_.useMemo)(()=>b.markerStart?`url('#${ps(b.markerStart,m)}')`:void 0,[b.markerStart,m]),R=(0,_.useMemo)(()=>b.markerEnd?`url('#${ps(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||P===null||F===null||I===null||te===null)return null;let B=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=ee.getState();D&&(ee.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),O.current?.blur()):n([e])),i&&i(t,b)},V=a?e=>{a(e,{...b})}:void 0,ie=o?e=>{o(e,{...b})}:void 0,ae=s?e=>{s(e,{...b})}:void 0,oe=c?e=>{c(e,{...b})}:void 0,se=l?e=>{l(e,{...b})}:void 0;return(0,T.jsx)(`svg`,{style:{zIndex:N},children:(0,T.jsxs)(`g`,{className:z([`react-flow__edge`,`react-flow__edge-${S}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!D&&!i,updating:k,selectable:D}]),onClick:B,onDoubleClick:V,onContextMenu:ie,onMouseEnter:ae,onMouseMove:oe,onMouseLeave:se,onKeyDown:w?t=>{if(!y&&za.includes(t.key)&&D){let{unselectNodesAndEdges:n,addSelectedEdges:r}=ee.getState();t.key===`Escape`?(O.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:w?0:void 0,role:b.ariaRole??(w?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":w?`${Hc}-${m}`:void 0,ref:O,...b.domAttributes,children:[!j&&(0,T.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:D,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:I,targetY:te,sourcePosition:ne,targetPosition:L,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:re,markerEnd:R,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),E&&(0,T.jsx)(cd,{edge:b,isReconnectable:E,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:P,sourceY:F,targetX:I,targetY:te,sourcePosition:ne,targetPosition:L,setUpdateHover:A,setReconnecting:M})]})})}var ud=(0,_.memo)(ld),dd=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function fd({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=q(dd,Pc),b=ku(t);return(0,T.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,T.jsx)(Iu,{defaultColor:e,rfId:n}),b.map(e=>(0,T.jsx)(ud,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}fd.displayName=`EdgeRenderer`;var pd=(0,_.memo)(fd),md=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function hd({children:e}){let t=Rc(),n=(0,_.useRef)(null),[r]=(0,_.useState)(()=>t.getState().transform);return kl(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=md(r)))};return r(),t.subscribe(r)},[t]),(0,T.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:md(r)},children:e})}function gd(e){let t=Il(),n=(0,_.useRef)(!1);(0,_.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var _d=e=>e.panZoom?.syncViewport;function vd(e){let t=q(_d),n=Rc();return(0,_.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function $(e){return e.connection.inProgress?{...e.connection,to:Co(e.connection.to,e.transform)}:{...e.connection}}function yd(e){return e?t=>e($(t)):$}function bd(e){return q(yd(e),Pc)}var xd=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Sd({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=q(xd,Pc);return a&&i&&c?(0,T.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,T.jsx)(`g`,{className:z([`react-flow__connection`,Ja(s)]),children:(0,T.jsx)(Cd,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var Cd=({style:e,type:t=Ga.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=bd();if(!i)return;if(n)return(0,T.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Ja(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Ga.Bezier:[m]=Jo(h);break;case Ga.SimpleBezier:[m]=Vu(h);break;case Ga.Step:[m]=ss({...h,borderRadius:0});break;case Ga.SmoothStep:[m]=ss(h);break;default:[m]=ts(h)}return(0,T.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};Cd.displayName=`ConnectionLine`;var wd={};function Td(e=wd){(0,_.useRef)(e),Rc(),(0,_.useEffect)(()=>{},[e])}function Ed(){Rc(),(0,_.useRef)(!1),(0,_.useEffect)(()=>{},[])}function Dd({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:ee,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:te,zoomOnDoubleClick:ne,panOnDrag:L,autoPanOnSelection:re,onPaneClick:R,onPaneMouseEnter:z,onPaneMouseMove:B,onPaneMouseLeave:V,onPaneScroll:ie,onPaneContextMenu:ae,paneClickDistance:oe,nodeClickDistance:se,onEdgeContextMenu:ce,onEdgeMouseEnter:le,onEdgeMouseMove:ue,onEdgeMouseLeave:de,reconnectRadius:fe,onReconnect:pe,onReconnectStart:me,onReconnectEnd:he,noDragClassName:ge,noWheelClassName:_e,noPanClassName:ve,disableKeyboardA11y:ye,nodeExtent:be,rfId:xe,viewport:Se,onViewportChange:Ce,nodesDraggable:we}){return Td(e),Td(t),Ed(),gd(n),vd(Se),(0,T.jsx)(vu,{onPaneClick:R,onPaneMouseEnter:z,onPaneMouseMove:B,onPaneMouseLeave:V,onPaneContextMenu:ae,onPaneScroll:ie,paneClickDistance:oe,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:D,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:ne,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:te,panOnDrag:L,autoPanOnSelection:re,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:ge,noWheelClassName:_e,noPanClassName:ve,disableKeyboardA11y:ye,onViewportChange:Ce,isControlledViewport:!!Se,children:(0,T.jsxs)(hd,{children:[(0,T.jsx)(pd,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:pe,onReconnectStart:me,onReconnectEnd:he,onlyRenderVisibleElements:E,onEdgeContextMenu:ce,onEdgeMouseEnter:le,onEdgeMouseMove:ue,onEdgeMouseLeave:de,reconnectRadius:fe,defaultMarkerColor:ee,noPanClassName:ve,disableKeyboardA11y:ye,rfId:xe}),(0,T.jsx)(Sd,{style:h,type:m,component:g,containerStyle:_}),(0,T.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,T.jsx)(Ou,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:se,onlyRenderVisibleElements:E,noPanClassName:ve,noDragClassName:ge,disableKeyboardA11y:ye,nodeExtent:be,rfId:xe,nodesDraggable:we}),(0,T.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}Dd.displayName=`GraphView`;var Od=(0,_.memo)(Dd),kd=xo(`React Flow`,`https://reactflow.dev/`),Ad=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Ra;Ms(h,g,_);let{nodesInitialized:x}=Cs(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=Oo(eo(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Ra,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Va.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Wa},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:kd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Ba,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},jd=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>Nc((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await io({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...Ad({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=Cs(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Ms(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=ks(e,n,r,i,a,o,l);d&&(bs(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=ds(e,o.fromHandle,W.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Os(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(vl(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(yl(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>bl(e,!0)));return}i(xl(r,new Set([...e]),!0)),a(xl(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>bl(e,!0)));return}a(xl(n,new Set([...e]))),i(xl(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(bl(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(bl(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,bl(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,bl(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(Cs(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return As({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Wa}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...Ad()})}},Object.is);function Md({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,_.useState)(()=>jd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,T.jsx)(Ic,{value:m,children:(0,T.jsx)(Nl,{children:(0,T.jsx)(eu,{children:p})})})}function Nd({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,_.useContext)(Fc)?(0,T.jsx)(T.Fragment,{children:e}):(0,T.jsx)(Md,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Pd={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function Fd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:v,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:w,onNodeDrag:E,onNodeDragStop:D,onNodesDelete:O,onEdgesDelete:k,onDelete:A,onSelectionChange:j,onSelectionDragStart:M,onSelectionDrag:ee,onSelectionDragStop:N,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onBeforeDelete:te,connectionMode:ne,connectionLineType:L=Ga.Bezier,connectionLineStyle:re,connectionLineComponent:R,connectionLineContainerStyle:B,deleteKeyCode:V=`Backspace`,selectionKeyCode:ie=`Shift`,selectionOnDrag:ae=!1,selectionMode:oe=Ua.Full,panActivationKeyCode:se=`Space`,multiSelectionKeyCode:ce=ko()?`Meta`:`Control`,zoomActivationKeyCode:le=ko()?`Meta`:`Control`,snapToGrid:ue,snapGrid:de,onlyRenderVisibleElements:fe=!1,selectNodesOnDrag:pe,nodesDraggable:me,autoPanOnNodeFocus:he,nodesConnectable:ge,nodesFocusable:_e,nodeOrigin:ve=rl,edgesFocusable:ye,edgesReconnectable:be,elementsSelectable:xe=!0,defaultViewport:Se=il,minZoom:Ce=.5,maxZoom:we=2,translateExtent:Te=Ra,preventScrolling:Ee=!0,nodeExtent:De,defaultMarkerColor:Oe=`#b1b1b7`,zoomOnScroll:ke=!0,zoomOnPinch:Ae=!0,panOnScroll:je=!1,panOnScrollSpeed:Me=.5,panOnScrollMode:Ne=Ha.Free,zoomOnDoubleClick:Pe=!0,panOnDrag:Fe=!0,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:ze,onPaneScroll:Be,onPaneContextMenu:Ve,paneClickDistance:He=1,nodeClickDistance:Ue=0,children:We,onReconnect:Ge,onReconnectStart:Ke,onReconnectEnd:qe,onEdgeContextMenu:Je,onEdgeDoubleClick:Ye,onEdgeMouseEnter:Xe,onEdgeMouseMove:Ze,onEdgeMouseLeave:Qe,reconnectRadius:$e=10,onNodesChange:et,onEdgesChange:tt,noDragClassName:H=`nodrag`,noWheelClassName:nt=`nowheel`,noPanClassName:rt=`nopan`,fitView:it,fitViewOptions:at,connectOnClick:ot,attributionPosition:st,proOptions:ct,defaultEdgeOptions:lt,elevateNodesOnSelect:ut=!0,elevateEdgesOnSelect:dt=!1,disableKeyboardA11y:ft=!1,autoPanOnConnect:pt,autoPanOnNodeDrag:mt,autoPanOnSelection:ht=!0,autoPanSpeed:gt,connectionRadius:_t,isValidConnection:vt,onError:yt,style:bt,id:xt,nodeDragThreshold:St,connectionDragThreshold:Ct,viewport:wt,onViewportChange:Tt,width:Et,height:Dt,colorMode:Ot=`light`,debug:kt,onScroll:At,ariaLabelConfig:jt,zIndexMode:Mt=`basic`,...Nt},Pt){let Ft=xt||`1`,It=ul(Ot),Lt=(0,_.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),At?.(e)},[At]);return(0,T.jsx)(`div`,{"data-testid":`rf__wrapper`,...Nt,onScroll:Lt,style:{...bt,...Pd},ref:Pt,className:z([`react-flow`,i,It]),id:xt,role:`application`,children:(0,T.jsxs)(Nd,{nodes:e,edges:t,width:Et,height:Dt,fitView:it,fitViewOptions:at,minZoom:Ce,maxZoom:we,nodeOrigin:ve,nodeExtent:De,zIndexMode:Mt,children:[(0,T.jsx)(cl,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:v,nodesDraggable:me,autoPanOnNodeFocus:he,nodesConnectable:ge,nodesFocusable:_e,edgesFocusable:ye,edgesReconnectable:be,elementsSelectable:xe,elevateNodesOnSelect:ut,elevateEdgesOnSelect:dt,minZoom:Ce,maxZoom:we,nodeExtent:De,onNodesChange:et,onEdgesChange:tt,snapToGrid:ue,snapGrid:de,connectionMode:ne,translateExtent:Te,connectOnClick:ot,defaultEdgeOptions:lt,fitView:it,fitViewOptions:at,onNodesDelete:O,onEdgesDelete:k,onDelete:A,onNodeDragStart:w,onNodeDrag:E,onNodeDragStop:D,onSelectionDrag:ee,onSelectionDragStart:M,onSelectionDragStop:N,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:rt,nodeOrigin:ve,rfId:Ft,autoPanOnConnect:pt,autoPanOnNodeDrag:mt,autoPanSpeed:gt,onError:yt,connectionRadius:_t,isValidConnection:vt,selectNodesOnDrag:pe,nodeDragThreshold:St,connectionDragThreshold:Ct,onBeforeDelete:te,debug:kt,ariaLabelConfig:jt,zIndexMode:Mt}),(0,T.jsx)(Od,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:L,connectionLineStyle:re,connectionLineComponent:R,connectionLineContainerStyle:B,selectionKeyCode:ie,selectionOnDrag:ae,selectionMode:oe,deleteKeyCode:V,multiSelectionKeyCode:ce,panActivationKeyCode:se,zoomActivationKeyCode:le,onlyRenderVisibleElements:fe,defaultViewport:Se,translateExtent:Te,minZoom:Ce,maxZoom:we,preventScrolling:Ee,zoomOnScroll:ke,zoomOnPinch:Ae,zoomOnDoubleClick:Pe,panOnScroll:je,panOnScrollSpeed:Me,panOnScrollMode:Ne,panOnDrag:Fe,autoPanOnSelection:ht,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:ze,onPaneScroll:Be,onPaneContextMenu:Ve,paneClickDistance:He,nodeClickDistance:Ue,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onReconnect:Ge,onReconnectStart:Ke,onReconnectEnd:qe,onEdgeContextMenu:Je,onEdgeDoubleClick:Ye,onEdgeMouseEnter:Xe,onEdgeMouseMove:Ze,onEdgeMouseLeave:Qe,reconnectRadius:$e,defaultMarkerColor:Oe,noDragClassName:H,noWheelClassName:nt,noPanClassName:rt,rfId:Ft,disableKeyboardA11y:ft,nodeExtent:De,viewport:wt,onViewportChange:Tt,nodesDraggable:me}),(0,T.jsx)(nl,{onSelectionChange:j}),We,(0,T.jsx)(Xc,{proOptions:ct,position:st}),(0,T.jsx)(qc,{rfId:Ft,disableKeyboardA11y:ft})]})})}var Id=Ol(Fd);La.error014();function Ld({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,T.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:z([`react-flow__background-pattern`,n,r])})}function Rd({radius:e,className:t}){return(0,T.jsx)(`circle`,{cx:e,cy:e,r:e,className:z([`react-flow__background-pattern`,`dots`,t])})}var zd;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(zd||={});var Bd={[zd.Dots]:1,[zd.Lines]:1,[zd.Cross]:6},Vd=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Hd({id:e,variant:t=zd.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,_.useRef)(null),{transform:f,patternId:p}=q(Vd,Pc),m=r||Bd[t],h=t===zd.Dots,g=t===zd.Cross,v=Array.isArray(n)?n:[n,n],y=[v[0]*f[2]||1,v[1]*f[2]||1],b=m*f[2],x=Array.isArray(a)?a:[a,a],S=g?[b,b]:y,C=[x[0]*f[2]+S[0]/2,x[1]*f[2]+S[1]/2],w=`${p}${e||``}`;return(0,T.jsxs)(`svg`,{className:z([`react-flow__background`,l]),style:{...c,...Z,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,T.jsx)(`pattern`,{id:w,x:f[0]%y[0],y:f[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:h?(0,T.jsx)(Rd,{radius:b/2,className:u}):(0,T.jsx)(Ld,{dimensions:S,lineWidth:i,variant:t,className:u})}),(0,T.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${w})`})]})}Hd.displayName=`Background`;var Ud=(0,_.memo)(Hd);function Wd(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,T.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Gd(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,T.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Kd(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,T.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function qd(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,T.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function Jd(){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,T.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Yd({children:e,className:t,...n}){return(0,T.jsx)(`button`,{type:`button`,className:z([`react-flow__controls-button`,t]),...n,children:e})}var Xd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Zd({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Rc(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=q(Xd,Pc),{zoomIn:y,zoomOut:b,fitView:x}=Il();return(0,T.jsxs)(Jc,{className:z([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(Yd,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,T.jsx)(Wd,{})}),(0,T.jsx)(Yd,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,T.jsx)(Gd,{})})]}),n&&(0,T.jsx)(Yd,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,T.jsx)(Kd,{})}),r&&(0,T.jsx)(Yd,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,T.jsx)(Jd,{}):(0,T.jsx)(qd,{})}),u]})}Zd.displayName=`Controls`;var Qd=(0,_.memo)(Zd);function $d({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,T.jsx)(`rect`,{className:z([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var ef=(0,_.memo)($d),tf=e=>e.nodes.map(e=>e.id),nf=e=>e instanceof Function?e:()=>e;function rf({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=ef,onClick:o}){let s=q(tf,Pc),c=nf(t),l=nf(e),u=nf(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,T.jsx)(T.Fragment,{children:s.map(e=>(0,T.jsx)(of,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function af({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=q(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=jo(r);return{node:r,x:i,y:a,width:o,height:s}},Pc);return!l||l.hidden||!Mo(l)?null:(0,T.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var of=(0,_.memo)(af),sf=(0,_.memo)(rf),cf=200,lf=150,uf=e=>!e.hidden,df=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?go(eo(e.nodeLookup,{filter:uf}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},ff=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,pf=(e,t)=>ff(e.viewBB,t.viewBB)&&ff(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,mf=`react-flow__minimap-desc`;function hf({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:v,inversePan:y,zoomStep:b=1,offsetScale:x=5}){let S=Rc(),C=(0,_.useRef)(null),{boundingRect:w,viewBB:E,rfId:D,panZoom:O,translateExtent:k,flowWidth:A,flowHeight:j,ariaLabelConfig:M}=q(df,pf),ee=e?.width??cf,N=e?.height??lf,P=w.width/ee,F=w.height/N,I=Math.max(P,F),te=I*ee,ne=I*N,L=x*I,re=w.x-(te-w.width)/2-L,R=w.y-(ne-w.height)/2-L,B=te+L*2,V=ne+L*2,ie=`${mf}-${D}`,ae=(0,_.useRef)(0),oe=(0,_.useRef)();ae.current=I,(0,_.useEffect)(()=>{if(C.current&&O)return oe.current=Ys({domNode:C.current,panZoom:O,getTransform:()=>S.getState().transform,getViewScale:()=>ae.current}),()=>{oe.current?.destroy()}},[O]),(0,_.useEffect)(()=>{oe.current?.update({translateExtent:k,width:A,height:j,inversePan:y,pannable:h,zoomStep:b,zoomable:g})},[h,g,y,b,k,A,j]);let se=p?e=>{let[t,n]=oe.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ce=m?(0,_.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,le=v??M[`minimap.ariaLabel`];return(0,T.jsx)(Jc,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*I:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:z([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,T.jsxs)(`svg`,{width:ee,height:N,viewBox:`${re} ${R} ${B} ${V}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ie,ref:C,onClick:se,children:[le&&(0,T.jsx)(`title`,{id:ie,children:le}),(0,T.jsx)(sf,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,T.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${re-L},${R-L}h${B+L*2}v${V+L*2}h${-B-L*2}z + M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}hf.displayName=`MiniMap`;var gf=(0,_.memo)(hf),_f=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,vf={[uc.Line]:`right`,[uc.Handle]:`bottom-right`};function yf({nodeId:e,position:t,variant:n=uc.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:v}){let y=Zl(),b=typeof e==`string`?e:y,x=Rc(),S=(0,_.useRef)(null),C=n===uc.Handle,w=q((0,_.useCallback)(_f(C&&p),[C,p]),Pc),E=(0,_.useRef)(null),D=t??vf[n];(0,_.useEffect)(()=>{if(!(!S.current||!b))return E.current||=xc({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Os([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...No({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),E.current.update({controlPosition:D,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:v,shouldResize:m}),()=>{E.current?.destroy()}},[D,s,c,l,u,d,h,g,v,m]);let O=D.split(`-`);return(0,T.jsx)(`div`,{className:z([`react-flow__resize-control`,`nodrag`,...O,n,r]),ref:S,style:{...i,scale:w,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,_.memo)(yf);var bf={"arch.context":0,"django.app":0,"django.route":1,"django.websocket_route":1,"fastapi.route":1,"django.url_name":2,"django.view":3,"django.viewset_action":3,"django.permission":3,"django.throttle":3,"django.serializer":4,"django.form":4,"graphql.type":4,"fastapi.model":4,"django.serializer_field":5,"django.service":5,"graphql.field":5,"django.model":6,"django.field":7,"django.relation":7,"django.task":8,"django.receiver":8,"django.signal":8,"django.test":8,"django.migration_op":8,"django.admin":8,"django.management_command":8,"django.consumer":8,"django.cache_key":8,"django.feature_flag":8,"django.side_effect":8,"openapi.path":9,"graphql.operation":9,"react.api_client":10,"django.htmx":10,"react.query_key":11,"react.hook":11,"react.feature":11,"react.route":12,"react.page":12,"react.server_action":12,"django.template":12,"react.component":13,"react.context":13,"react.form_schema":14,"react.test":14};function xf(e){return bf[e]??8}var Sf=8;function Cf(e){if(!e.length)return NaN;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2}function wf(e,t=[]){let n=new Map;if(!e.length)return n;let r=new Map;for(let t of e){let e=xf(t.type),n=r.get(e)??[];n.push(t),r.set(e,n)}let i=[...r.keys()].sort((e,t)=>e-t).map(e=>[...r.get(e)??[]].sort((e,t)=>e.name.localeCompare(t.name)||e.id.localeCompare(t.id))),a=new Set(e.map(e=>e.id)),o=new Map,s=new Map;for(let t of e)o.set(t.id,[]),s.set(t.id,[]);for(let e of t)!a.has(e.src)||!a.has(e.dst)||e.src===e.dst||(s.get(e.src).push(e.dst),o.get(e.dst).push(e.src));let c=new Map;i.forEach((e,t)=>{for(let n of e)c.set(n.id,t)});let l=new Map,u=()=>{for(let e of i)e.forEach((e,t)=>l.set(e.id,t))};u();let d=(e,t)=>{let n=e.map((e,n)=>{let r=Cf(t(e.id).map(e=>l.get(e)).filter(e=>e!==void 0));return{n:e,bary:Number.isNaN(r)?n:r,name:e.name,id:e.id}});return n.sort((e,t)=>e.bary-t.bary||e.name.localeCompare(t.name)||e.id.localeCompare(t.id)),n.map(e=>e.n)},f=e=>t=>c.get(t)===e;for(let e=0;e(o.get(t)??[]).filter(f(e-1))),u();for(let e=i.length-2;e>=0;e--)i[e]=d(i[e],t=>(s.get(t)??[]).filter(f(e+1))),u()}let p=Math.max(...i.map(e=>e.length),1),m=[],h=0;for(let e=0;ee.id)),r=new Set((i[e+1]??[]).map(e=>e.id)),a=0;if(r.size)for(let e of t)n.has(e.src)&&r.has(e.dst)&&(a+=1);let o=Math.min(120,Math.max(0,(a-2)*12));h+=296+o}return i.forEach((e,t)=>{let r=(p-e.length)*92/2;e.forEach((e,i)=>{n.set(e.id,{x:m[t]??0,y:r+i*92})})}),n}var Tf=[{id:`layers`,label:`Architecture layers`},{id:`flow`,label:`Edge flow`},{id:`tree`,label:`Spanning tree`},{id:`radial`,label:`Radial`},{id:`concentric`,label:`Concentric layers`},{id:`circle`,label:`Circle`},{id:`clusters`,label:`Type clusters`},{id:`grid`,label:`Compact grid`},{id:`force`,label:`Force directed`}],Ef=new Set(Tf.map(e=>e.id)),Df=`loadpath.graphLayout`,Of=8,kf=64,Af=240,jf=296,Mf=92,Nf=new Set([`django.route`,`react.route`,`react.page`,`react.server_action`,`django.task`,`django.migration_op`,`django.permission`,`openapi.path`,`django.consumer`,`django.websocket_route`,`django.template`,`graphql.operation`,`fastapi.route`]);function Pf(e=()=>document.createElement(`canvas`)){try{let t=e(),n=t.getContext(`webgl2`)||t.getContext(`webgl`)||t.getContext(`experimental-webgl`);return n?((n.getExtension?.(`WEBGL_lose_context`))?.loseContext(),!0):!1}catch{return!1}}function Ff(e,t,n){return e===`3d`&&t==null&&n!==!0?`2d`:e}var If=new Set([`django.field`,`django.serializer_field`,`django.relation`,`django.test`,`react.test`,`graphql.field`,`django.url_name`,`django.throttle`]),Lf={"arch.context":`#edf2f4`,"django.app":`#8d99ae`,"django.route":`#4cc9f0`,"django.url_name":`#4cc9f0`,"django.view":`#4895ef`,"django.viewset_action":`#4361ee`,"django.permission":`#7b8cde`,"django.serializer":`#f4a261`,"django.form":`#e9c46a`,"django.serializer_field":`#e9c46a`,"django.service":`#90be6d`,"django.model":`#2a9d8f`,"django.field":`#8ac926`,"django.task":`#e76f51`,"django.receiver":`#e85d04`,"django.signal":`#f4a261`,"django.test":`#6c757d`,"django.admin":`#adb5bd`,"django.migration_op":`#9d4edd`,"django.consumer":`#e76f51`,"django.websocket_route":`#4cc9f0`,"django.template":`#c77dff`,"django.htmx":`#ff6b6b`,"django.cache_key":`#6c757d`,"django.feature_flag":`#f4a261`,"django.side_effect":`#e85d04`,"graphql.type":`#00bbf9`,"graphql.operation":`#00bbf9`,"fastapi.route":`#4cc9f0`,"fastapi.model":`#f4a261`,"openapi.path":`#00bbf9`,"react.api_client":`#ff6b6b`,"react.query_key":`#adb5bd`,"react.hook":`#7b2cbf`,"react.feature":`#9d4edd`,"react.route":`#c77dff`,"react.page":`#c77dff`,"react.server_action":`#e76f51`,"react.component":`#9d4edd`,"react.form_schema":`#ffd166`,"react.test":`#6c757d`},Rf=160,zf=.42,Bf=100,Vf=.45,Hf=.8,Uf={0:`context`,1:`routes`,2:`url names`,3:`views`,4:`serializers`,5:`services`,6:`models`,7:`fields`,8:`jobs / signals`,9:`openapi`,10:`api client`,11:`hooks`,12:`pages`,13:`components`,14:`forms / tests`};function Wf(e){return e.startsWith(`react.`)?`react`:e.startsWith(`openapi.`)||e.startsWith(`graphql.`)||e.startsWith(`fastapi.`)?`stitch`:e.startsWith(`arch.`)?`arch`:`django`}function Gf(e){return Lf[e]?Lf[e]:e.startsWith(`react.`)?`#9d4edd`:e.startsWith(`openapi.`)?`#00bbf9`:`#4a5568`}function Kf(e,t=typeof navigator<`u`&&!!navigator.webdriver){return t?`2d`:e>=90?`3d`:`2d`}function qf(e){return e>=90?`overview`:`full`}function Jf(e,t,n=1){let r=new Set([e]),i=new Set([e]);for(let e=0;en.families.has(Wf(e.type)));n.detail===`overview`&&(r=r.filter(e=>!If.has(e.type)));let i=new Set(r.map(e=>e.id)),a=t.filter(e=>i.has(e.src)&&i.has(e.dst)),o=n.focusId?Jf(n.focusId,a,1):new Set;if(n.neighborhoodOnly&&n.focusId&&o.size){r=r.filter(e=>o.has(e.id));let e=new Set(r.map(e=>e.id));return{nodes:r,edges:a.filter(t=>e.has(t.src)&&e.has(t.dst)),neighborIds:o}}return{nodes:r,edges:a,neighborIds:o}}function Xf(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>`${e.name} ${e.qualified_name} ${e.type} ${e.file_path||``} ${e.context||``}`.toLowerCase().includes(n)).slice(0,24):[]}function Zf(e,t,n,r){let i=new Set(e.map(e=>e.id));if(!i.has(n))return{nodeIds:new Set,edgeIds:new Set};let a=new Map,o=new Map;for(let e of t){if(!i.has(e.src)||!i.has(e.dst))continue;let t=a.get(e.src)??[];t.push({dst:e.dst,id:e.id}),a.set(e.src,t);let n=o.get(e.dst)??[];n.push({src:e.src,id:e.id}),o.set(e.dst,n)}let s=new Set(e.filter(e=>Nf.has(e.type)).map(e=>e.id)),c=r&&i.has(r)?new Set([r]):s.size?s:i,l=new Set,u=[n];for(;u.length;){let e=u.pop();if(!l.has(e)){l.add(e);for(let t of a.get(e)??[])l.has(t.dst)||u.push(t.dst)}}let d=new Set([n]),f=[...c].filter(e=>l.has(e)),p=new Set(f);for(;f.length;){let e=f.pop();d.add(e);for(let t of o.get(e)??[])l.has(t.src)&&!p.has(t.src)&&(p.add(t.src),f.push(t.src))}let m=new Set;for(let e of t)d.has(e.src)&&d.has(e.dst)&&m.add(e.id);return{nodeIds:d,edgeIds:m}}var Qf=16,$f=28;function ep(e){return(e.context||``).trim()}function tp(e){return e.confidence!e&&t?1:e&&!t?-1:e.localeCompare(t));let s=new Map(a.map((e,t)=>[e,t])),c=(a.length-1)/2,l=dp(n),u=[...new Set([...r.values()].map(e=>e.x))].sort((e,t)=>e-t),d=new Map(u.map((e,t)=>[e,t]));for(let t of e){let e=r.get(t.id)??{x:0,y:0},n=((s.get(ep(t))??0)-c)*Bf;if(l){let r=d.get(e.x)??0;i.set(t.id,{x:r*Rf,y:-e.y*zf,z:n})}else i.set(t.id,{x:e.x*Vf,y:-e.y*Vf,z:n})}return i}function ip(e){return e===`layers`||e===`flow`?`slab`:e===`radial`||e===`concentric`||e===`circle`?`ring`:`none`}function ap(e,t,n=`layers`){if(!e.length)return[];let r=ip(n);if(r===`none`)return[];if(r===`ring`)return cp(e,t);let i=new Map;for(let n of e){let e=Math.round((t.get(n.id)?.x??0)*10)/10,r=i.get(e)??[];r.push(n),i.set(e,r)}return[...i.entries()].sort((e,t)=>e[0]-t[0]).map(([,e])=>sp(e,t,n))}function op(e,t){let n=new Map;for(let t of e){let e=xf(t.type);n.set(e,(n.get(e)||0)+1)}let r=-1,i=0;for(let[e,t]of n)t>i&&(r=e,i=t);return t===`flow`&&ie[0]-t[0]).map(([,e])=>{let n=0,r=0;for(let i of e){let e=t.get(i.id)??{x:0,y:0,z:0};n+=Math.hypot(e.x,e.y),r+=e.z}let i=n/e.length;return{shape:`ring`,x:0,y:0,z:r/e.length,extentY:0,extentZ:0,radius:i,label:i<12?``:op(e,`radial`),count:e.length}}).filter(e=>e.radius>=12)}function lp(){try{if(typeof localStorage>`u`)return`layers`;let e=localStorage.getItem(Df);return e&&Ef.has(e)?e:`layers`}catch{return`layers`}}function up(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(Df,e)}catch{}}function dp(e){return e===`layers`||e===`flow`}function fp(e){if(!e.length)return NaN;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2}function pp(e,t){return e.name.localeCompare(t.name)||e.id.localeCompare(t.id)}function mp(e,t){return xf(e.type)-xf(t.type)||pp(e,t)}function hp(e,t,n){e.forEach((r,i)=>{let a=-Math.PI/2+2*Math.PI*i/Math.max(e.length,1);n.set(r.id,{x:Math.cos(a)*t,y:Math.sin(a)*t})})}function gp(e,t){return Math.max(t*jf,e<=1?t===0?0:208:e*Af/(2*Math.PI))}function _p(e,t){let n=new Map;if(!e.length)return n;let r=new Set(e.flat().map(e=>e.id)),i=new Map,a=new Map;for(let t of e.flat())i.set(t.id,[]),a.set(t.id,[]);for(let e of t)!r.has(e.src)||!r.has(e.dst)||e.src===e.dst||(a.get(e.src).push(e.dst),i.get(e.dst).push(e.src));let o=new Map;e.forEach((e,t)=>{for(let n of e)o.set(n.id,t)});let s=new Map,c=()=>{for(let t of e)t.forEach((e,t)=>s.set(e.id,t))};c();let l=(e,t)=>{let n=e.map((e,n)=>{let r=fp(t(e.id).map(e=>s.get(e)).filter(e=>e!==void 0));return{n:e,bary:Number.isNaN(r)?n:r,name:e.name,id:e.id}});return n.sort((e,t)=>e.bary-t.bary||e.name.localeCompare(t.name)||e.id.localeCompare(t.id)),n.map(e=>e.n)},u=e=>t=>o.get(t)===e;for(let t=0;t(i.get(e)??[]).filter(u(t-1))),c();for(let t=e.length-2;t>=0;t--)e[t]=l(e[t],e=>(a.get(e)??[]).filter(u(t+1))),c()}let d=Math.max(...e.map(e=>e.length),1);return e.forEach((e,t)=>{let r=(d-e.length)*92/2;e.forEach((e,i)=>{n.set(e.id,{x:t*296,y:r+i*92})})}),n}function vp(e,t){let n=new Set(e.map(e=>e.id)),r=Math.max(e.length-1,0),i=new Map;for(let t of e)i.set(t.id,0);for(let a=0;a(i.get(a.dst)||0)&&(i.set(a.dst,t),e=!0)}if(!e)break}let a=new Map;for(let t of e){let e=i.get(t.id)||0,n=a.get(e)??[];n.push(t),a.set(e,n)}return _p([...a.keys()].sort((e,t)=>e-t).map(e=>(a.get(e)??[]).sort(pp)),t)}function yp(e,t){let n=new Map;if(!e.length)return n;let r=new Set(e.map(e=>e.id)),i=new Map,a=new Map;for(let t of e)i.set(t.id,[]),a.set(t.id,0);for(let e of t)!r.has(e.src)||!r.has(e.dst)||e.src===e.dst||(i.get(e.src).push(e.dst),i.get(e.dst).push(e.src),a.set(e.src,(a.get(e.src)||0)+1),a.set(e.dst,(a.get(e.dst)||0)+1));let o=[...e].sort((e,t)=>(a.get(t.id)||0)-(a.get(e.id)||0)||pp(e,t))[0]??e[0],s=new Map,c=[[o]];s.set(o.id,0);let l=[o];for(;l.length;){let t=l.shift(),n=s.get(t.id)||0,r=(i.get(t.id)??[]).map(t=>e.find(e=>e.id===t)).filter(e=>!!e).sort(pp);for(let e of r){if(s.has(e.id))continue;s.set(e.id,n+1);let t=c[n+1]??[];t.push(e),c[n+1]=t,l.push(e)}}let u=e.filter(e=>!s.has(e.id)).sort(pp);return u.length&&c.push(u),c.forEach((e,t)=>{if(t===0&&e.length===1){n.set(e[0].id,{x:0,y:0});return}let r=Math.max(t*296,e.length<=1?208:e.length*240/(2*Math.PI));e.forEach((t,i)=>{let a=-Math.PI/2+2*Math.PI*i/e.length;n.set(t.id,{x:Math.cos(a)*r,y:Math.sin(a)*r})})}),n}function bp(e){let t=new Map,n=[...e].sort((e,t)=>xf(e.type)-xf(t.type)||pp(e,t)),r=Math.max(1,Math.ceil(Math.sqrt(n.length)));return n.forEach((e,n)=>{t.set(e.id,{x:n%r*296,y:Math.floor(n/r)*92})}),t}function xp(e){let t=new Map,n=[...e].sort(mp);return n.length<=1?(n[0]&&t.set(n[0].id,{x:0,y:0}),t):(hp(n,gp(n.length,1),t),t)}function Sp(e){let t=new Map;if(!e.length)return t;let n=new Map;for(let t of e){let e=xf(t.type),r=n.get(e)??[];r.push(t),n.set(e,r)}return[...n.keys()].sort((e,t)=>e-t).forEach((e,r)=>{let i=(n.get(e)??[]).sort(pp);if(r===0&&i.length===1){t.set(i[0].id,{x:0,y:0});return}hp(i,gp(i.length,r===0?1:r),t)}),t}function Cp(e){let t=new Map;if(!e.length)return t;let n=new Map;for(let t of e){let e=n.get(t.type)??[];e.push(t),n.set(t.type,e)}let r=[...n.keys()].sort((e,t)=>xf(e)-xf(t)||e.localeCompare(t)).map(e=>{let t=(n.get(e)??[]).sort(pp),r=Math.max(1,Math.ceil(Math.sqrt(t.length))),i=Math.ceil(t.length/r);return{members:t,cols:r,width:Math.max(0,r-1)*jf,height:Math.max(0,i-1)*Mf}}),i=Math.max(...r.map(e=>Math.hypot(e.width,e.height)/2+208),208),a=r.length<=1?0:Math.max(jf,r.length*(i*2+88)/(2*Math.PI));return r.forEach((e,n)=>{let i=r.length===1?0:-Math.PI/2+2*Math.PI*n/r.length,o=Math.cos(i)*a,s=Math.sin(i)*a;e.members.forEach((n,r)=>{let i=r%e.cols,a=Math.floor(r/e.cols);t.set(n.id,{x:o-e.width/2+i*jf,y:s-e.height/2+a*Mf})})}),t}function wp(e,t){let n=new Map;if(!e.length)return n;let r=new Map(e.map(e=>[e.id,e])),i=new Set(r.keys()),a=new Map,o=new Map;for(let t of e)a.set(t.id,[]),o.set(t.id,0);for(let e of t)!i.has(e.src)||!i.has(e.dst)||e.src===e.dst||(a.get(e.src).push(e.dst),o.set(e.dst,(o.get(e.dst)||0)+1));for(let[e,t]of a){let n=[...new Set(t)];n.sort((e,t)=>pp(r.get(e),r.get(t))),a.set(e,n)}let s=e.filter(e=>(o.get(e.id)||0)===0).sort(pp);if(!s.length){let t=[...e].sort((e,t)=>(a.get(t.id)?.length||0)-(a.get(e.id)?.length||0)||pp(e,t))[0];s.push(t)}let c=new Set,l=new Map;for(let t of e)l.set(t.id,[]);let u=e=>{c.add(e);for(let t of a.get(e)??[])c.has(t)||(l.get(e).push(t),u(t))};for(let e of s)c.has(e.id)||u(e.id);for(let t of[...e].sort(pp))c.has(t.id)||(s.push(t),u(t.id));let d=0,f=(e,t)=>{let r=l.get(e)??[];if(!r.length){n.set(e,{x:d*jf,y:t*Mf}),d+=1;return}let i=d;for(let e of r)f(e,t+1);n.set(e,{x:(i+d-1)/2*jf,y:t*Mf})};for(let e of s)n.has(e.id)||f(e.id,0);return n}function Tp(e,t){for(let n=0;n<8;n++)for(let n=0;ne.id)),s=[],c=new Set;for(let e of t){if(!o.has(e.src)||!o.has(e.dst)||e.src===e.dst)continue;let t=e.src[e.id,e])),i=[];Ap.has(e.type)&&i.push(`sink`),jp.has(e.type)&&i.push(`contract`);let a=e.extra??{};a.inferred&&i.push(`inferred`),a.generated&&i.push(`generated`),a.mutation&&i.push(`mutation`),a.fbv&&i.push(`function view`),a.ninja&&i.push(`ninja`),a.ninja_schema&&i.push(`ninja schema`),a.next_app&&i.push(`app router`),a.typed_client&&i.push(String(a.typed_client)),a.e2e&&i.push(`e2e`),a.filterset===!0&&i.push(`filterset`);let o=n.filter(t=>t.dst===e.id),s=n.filter(t=>t.src===e.id),c=o.slice(0,Op).map(e=>Hp(e,r,e.src)),l=s.slice(0,Op).map(e=>Hp(e,r,e.dst)),u=e.file_path?`${e.file_path}${e.start_line?`:${e.start_line}`:``}`:void 0,d={type:e.type,typeLabel:k(j(e.type)),layer:Uf[xf(e.type)]??`other`,purpose:Rp(e.type),name:e.name,qualifiedName:e.qualified_name,file:u,context:e.context,roles:i,facts:Up(a).filter(t=>t.key!==`app`||t.value!==e.context),inputs:c,outputs:l,extraInputs:Math.max(0,o.length-Op),extraOutputs:Math.max(0,s.length-Op),degreeIn:o.length,degreeOut:s.length,inputKinds:Bp(o.map(e=>Hp(e,r,e.src))),outputKinds:Bp(s.map(e=>Hp(e,r,e.dst))),pathSummary:``};return d.pathSummary=Vp(d),d}function Bp(e){let t=new Map;for(let n of e){let e=n.edgeLabel||n.edgeType.replaceAll(`_`,` `);t.set(e,(t.get(e)||0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e,t])=>({label:e,count:t}))}function Vp(e){let t=e.inputKinds.map(e=>`${e.label} ×${e.count}`).join(`, `),n=e.outputKinds.map(e=>`${e.label} ×${e.count}`).join(`, `);return t&&n?`${t} → this → ${n}`:n?`this → ${n}`:t?`${t} → this`:``}function Hp(e,t,n){let r=t.get(n),i=n.includes(`:`)?n.slice(n.indexOf(`:`)+1):n;return{id:n,name:r?.name||i,type:r?.type||``,typeLabel:r?k(j(r.type)):``,edgeType:e.type,edgeLabel:k(e.type),inferred:e.confidence<.8}}function Up(e){let t=[...Pp.filter(t=>t in e),...Object.keys(e).filter(e=>!Pp.includes(e)&&!Fp.has(e))],n=[],r=new Set;for(let i of t){if(r.has(i)||Fp.has(i)||Lp.has(i))continue;r.add(i);let t=Wp(i,e[i]);t!=null&&n.push({key:i,label:Np[i]??k(i),value:t})}return n}function Wp(e,t){if(t==null)return null;if(typeof t==`boolean`)return!t&&!Ip.has(e)?null:t?`yes`:`no`;if(typeof t==`number`)return String(t);if(typeof t==`string`)return t.trim()||null;if(Array.isArray(t)){if(t.some(e=>e&&typeof e==`object`))return Gp(e,t);let n=t.map(e=>typeof e==`string`||typeof e==`number`?String(e):``).filter(Boolean);if(!n.length)return null;let r=n.slice(0,kp),i=n.length-r.length;return i>0?`${r.join(`, `)} +${i} more`:r.join(`, `)}return null}function Gp(e,t){let n=t.slice(0,4).map(t=>{if(e===`nplusone`){let e=String(t.queryset||`queryset`),n=Array.isArray(t.accessed)?t.accessed.join(`.`):``,r=t.line?` L${t.line}`:``;return n?`${e} → ${n}${r}`:`${e}${r}`}if(e===`lookups`){let e=Array.isArray(t.fields)?t.fields.join(`, `):``,n=String(t.kind||`filter`);return e?`${n} ${e}`:n}return Object.entries(t).filter(([,e])=>e!=null&&(typeof e==`string`||typeof e==`number`)).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `)});if(!n.some(Boolean))return null;let r=t.length-n.length;return r>0?`${n.join(`; `)} +${r} more`:n.join(`; `)}var Kp=12,qp=.2,Jp=20,Yp=64;function Xp(e,t,n){let r=n??wf(e,t),i=[...new Set([...r.values()].map(e=>e.x))].sort((e,t)=>e-t),a=[];for(let e of t){let t=r.get(e.src),n=r.get(e.dst);if(!t||!n)continue;let i=t.y+32,o=n.y+32;if(Math.abs(i-o)e.y0-t.y0||e.y1-t.y1||e.id.localeCompare(t.id)),n=$p(t),r=Math.max(0,...n.values())+1,a=t[0].sourceX,o=Zp(i,a);for(let e of t){let t=em(n.get(e.id)??0,r),i=a+Jp+Math.max(1,o-40)*t;s.set(e.id,Qp(e.sourceX,e.targetX,i))}}return s}function Zp(e,t){let n=t-208,r=e.find(e=>e>n+1);return r===void 0?88:Math.max(88,r-t)}function Qp(e,t,n){let r=t-e-40;return r<1?.5:Math.min(1,Math.max(0,(n-e-Jp)/r))}function $p(e){let t=[],n=new Map;for(let r of e){let e=-1;for(let n=0;nt[n]+Yp){e=n;break}e<0?(e=t.length,t.push(r.y1)):t[e]=Math.max(t[e],r.y1),n.set(r.id,e)}return n}function em(e,t){return t<=1?.5:qp+.6000000000000001*e/(t-1)}var tm=`modulepreload`,nm=function(e,t){return new URL(e,t).href},rm={},im=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=nm(t,n),t=s(t),t in rm)return;rm[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:tm,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},am=new Set,om=(0,_.lazy)(()=>im(()=>import(`./LayeredGraph3D-kVQDQ1-J.js`).then(e=>({default:e.LayeredGraph3D})),[],import.meta.url)),sm=class extends _.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}},cm=(0,T.jsx)(`p`,{className:`muted graph-3d-hint`,"data-testid":`graph-3d-fallback`,children:`WebGL is unavailable in this browser, so the 3D view cannot start. Switch back to 2D map.`}),lm={cheap:`var(--edge-cheap)`,expensive:`var(--edge-expensive)`,critical:`var(--edge-critical)`},um={n:W.Top,e:W.Right,s:W.Bottom,w:W.Left};function dm(e,t){let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>=Math.abs(r)?n>=0?{source:`e`,target:`w`}:{source:`w`,target:`e`}:r>=0?{source:`s`,target:`n`}:{source:`n`,target:`s`}}function fm({data:e,selected:t}){let n=(e.roles||[]).map(e=>`role-${e}`).join(` `);return(0,T.jsxs)(`div`,{className:[`lp-node`,t?`selected`:``,e.dim?`dim`:``,n].filter(Boolean).join(` `),children:[[`n`,`e`,`s`,`w`].map(e=>(0,T.jsx)(au,{id:`tgt-${e}`,type:`target`,position:um[e],isConnectable:!1},`tgt-${e}`)),(0,T.jsx)(`div`,{className:`t`,children:j(e.type)}),(0,T.jsx)(`div`,{className:`n`,title:e.name,children:N(e.name)}),[`n`,`e`,`s`,`w`].map(e=>(0,T.jsx)(au,{id:`src-${e}`,type:`source`,position:um[e],isConnectable:!1},`src-${e}`))]})}var pm={load:fm},mm=new Set([`django`,`react`,`stitch`,`arch`]);function hm({id:e,sourceX:t,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:o,style:s,markerEnd:c,markerStart:l,label:u,labelStyle:d,labelShowBg:f,labelBgStyle:p,labelBgPadding:m,labelBgBorderRadius:h,data:g,interactionWidth:_}){let[v,y,b]=ss({sourceX:t,sourceY:n,sourcePosition:a,targetX:r,targetY:i,targetPosition:o,borderRadius:8,stepPosition:g?.stepPosition??.5});return(0,T.jsx)(zu,{id:e,path:v,labelX:y,labelY:b,label:u,labelStyle:d,labelShowBg:f,labelBgStyle:p,labelBgPadding:m,labelBgBorderRadius:h,style:s,markerEnd:c,markerStart:l,interactionWidth:_})}var gm={loadstep:hm};function _m({topologyKey:e}){let{fitView:t}=Il();return(0,_.useEffect)(()=>{let e=0,n=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{t({padding:.2,maxZoom:1.15})})});return()=>{cancelAnimationFrame(n),cancelAnimationFrame(e)}},[t,e]),null}function vm(e,t,n=null,r={}){let i=new Map(e.map(e=>[e.id,e])),a=r.layout??`layers`,o=dp(a),s=Dp(e,t,a),c=Xp(e,t,s);return{rfNodes:e.map(e=>{let t=r.roles?.[e.id]||[],i=!!r.testOverlay&&!t.includes(`tested`)&&!t.includes(`untested`)&&!t.includes(`test`)&&!t.includes(`seed`);return{id:e.id,type:`load`,position:s.get(e.id)??{x:0,y:0},data:{name:e.name,type:e.type,file:e.file_path,roles:t,dim:i},selected:n===e.id,sourcePosition:W.Right,targetPosition:W.Left,width:208,height:64,style:{width:208,height:64}}}),rfEdges:t.filter(e=>i.has(e.src)&&i.has(e.dst)).map(e=>{let t=lm[e.weight]||`var(--edge-cheap)`,r=!!(n&&(e.src===n||e.dst===n)),i=s.get(e.src)??{x:0,y:0},a=s.get(e.dst)??{x:0,y:0},l=o?{source:`e`,target:`w`}:dm(i,a);return{id:e.id,source:e.src,target:e.dst,sourceHandle:`src-${l.source}`,targetHandle:`tgt-${l.target}`,sourcePosition:um[l.source],targetPosition:um[l.target],type:o?`loadstep`:`default`,animated:e.weight===`critical`,data:{stepPosition:c.get(e.id)??.5},style:{stroke:t,strokeWidth:e.weight===`critical`?2.4:1.2,strokeDasharray:e.confidence<.8?`6 4`:void 0},markerEnd:{type:Ka.ArrowClosed,width:14,height:14,color:t},label:r?e.type.replaceAll(`_`,` `):void 0,labelStyle:r?{fill:`var(--ink)`,fontSize:10,fontWeight:600}:void 0,labelBgStyle:r?{fill:`var(--graph-bg)`,fillOpacity:.92}:void 0,labelBgPadding:r?[3,5]:void 0,labelBgBorderRadius:r?4:void 0}})}}function ym({node:e,nodes:t,edges:n,onClose:r,onWhatIf:i,onSelect:a,onOpenFile:o,pinned:s,onPin:c,onIsolate:l}){let u=zp(e,t,n);return(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),(0,T.jsxs)(`aside`,{className:`inspector`,"data-testid":`graph-inspector`,children:[(0,T.jsxs)(`div`,{className:`inspector-head`,children:[(0,T.jsx)(`div`,{className:`t`,children:u.typeLabel}),(0,T.jsx)(`div`,{className:`inspector-roles`,children:u.roles.map(e=>(0,T.jsx)(`span`,{className:`inspector-chip`,children:e},e))}),(0,T.jsx)(`button`,{type:`button`,className:`inspector-close`,"data-testid":`graph-inspector-close`,"aria-label":`Close inspector`,onClick:r,children:`×`})]}),(0,T.jsx)(`div`,{className:`n`,children:N(u.name)}),(0,T.jsx)(`p`,{className:`inspector-purpose`,"data-testid":`graph-inspector-purpose`,children:u.purpose}),u.context?(0,T.jsx)(`div`,{className:`muted`,children:N(u.context)}):null,u.file?(0,T.jsxs)(`div`,{className:`file-row`,children:[(0,T.jsx)(`div`,{className:`file`,children:N(u.file)}),o&&e.file_path?(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-open-editor`,onClick:()=>o(e.file_path,e.start_line),children:`Open in editor`}):null]}):null,(0,T.jsx)(`div`,{className:`muted`,children:N(u.qualifiedName)}),(0,T.jsxs)(`div`,{className:`muted inspector-layer`,children:[`layer · `,u.layer]}),(0,T.jsxs)(`div`,{className:`muted inspector-degree`,"data-testid":`graph-inspector-degree`,children:[u.degreeIn,` in · `,u.degreeOut,` out`]}),u.pathSummary?(0,T.jsx)(`p`,{className:`inspector-path`,"data-testid":`graph-inspector-path`,children:u.pathSummary}):null,u.facts.length?(0,T.jsx)(`dl`,{className:`inspector-facts`,"data-testid":`graph-inspector-facts`,children:u.facts.map(e=>(0,T.jsxs)(`div`,{className:`inspector-fact`,children:[(0,T.jsx)(`dt`,{children:e.label}),(0,T.jsx)(`dd`,{children:N(e.value)})]},e.key))}):null,(0,T.jsx)(bm,{title:`Inputs`,testId:`graph-inspector-inputs`,links:u.inputs,extra:u.extraInputs,empty:`Nothing in this graph points here.`,onSelect:a}),(0,T.jsx)(bm,{title:`Outputs`,testId:`graph-inspector-outputs`,links:u.outputs,extra:u.extraOutputs,empty:`This node does not point at anything in this graph.`,onSelect:a}),i?(0,T.jsx)(`p`,{className:`whatif-hint`,"data-testid":`whatif-hint`,children:l?`Walks a new path from this node with no git range. Isolate (next) only hides the rest of this map.`:`Walks a new path from this node with no git range — as if this changed, regardless of Base/Head.`}):null,(0,T.jsxs)(`div`,{className:`btn-row`,children:[i?(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-whatif`,title:`Start a hypothetical walk from this node. Does not use Base/Head.`,onClick:()=>i(e.id),children:`What if this changes`}):null,l?(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-isolate`,title:`Hide nodes that are not on a path from here to a sink. Does not start a new walk.`,onClick:()=>l(e.id),children:`Isolate path to sinks`}):null,c?(0,T.jsx)(`button`,{type:`button`,className:s?`btn primary`:`btn`,"data-testid":`btn-pin-node`,onClick:()=>c(s?null:e.id),children:s?`Unpin`:`Pin`}):null]})]})}function bm({title:e,testId:t,links:n,extra:r,empty:i,onSelect:a}){return(0,T.jsxs)(`section`,{className:`inspector-section`,"data-testid":t,children:[(0,T.jsxs)(`h3`,{children:[e,(0,T.jsx)(`span`,{className:`count`,children:n.length+r})]}),n.length?(0,T.jsx)(`ul`,{children:n.map((e,t)=>(0,T.jsx)(`li`,{children:a?(0,T.jsxs)(`button`,{type:`button`,className:`inspector-link`,onClick:()=>a(e.id),children:[(0,T.jsx)(`span`,{className:`inspector-link-name`,title:e.name,children:N(e.name)}),(0,T.jsxs)(`span`,{className:`inspector-link-meta`,children:[e.typeLabel?`${e.typeLabel} · `:``,e.edgeLabel,e.inferred?` · inferred`:``]})]}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`span`,{className:`inspector-link-name`,title:e.name,children:N(e.name)}),(0,T.jsxs)(`span`,{className:`inspector-link-meta`,children:[e.typeLabel?`${e.typeLabel} · `:``,e.edgeLabel,e.inferred?` · inferred`:``]})]})},`${e.edgeType}:${e.id}:${t}`))}):(0,T.jsx)(`p`,{className:`muted`,children:i}),r?(0,T.jsxs)(`p`,{className:`muted`,children:[`+`,r,` more`]}):null]})}function xm({nodes:e,edges:t,onWhatIf:n,focusPath:r,selectedId:i,onSelect:a,nodeRoles:o,testOverlay:s=!1,isolateSource:c,onIsolate:l,repoPath:u,onOpenFile:d,pinnedId:f,onPin:p}){let[m,h]=(0,_.useState)(null),g=i===void 0?m:i,v=e=>{i===void 0&&h(e),a?.(e)},[y,b]=(0,_.useState)(null),[x,S]=(0,_.useState)(null),[C,w]=(0,_.useState)(()=>lp()),[E,D]=(0,_.useState)(new Set(mm)),[O,k]=(0,_.useState)(!1),[A,M]=(0,_.useState)(``),[ee,N]=(0,_.useState)(!1),[P,F]=(0,_.useState)(null),I=typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;(0,_.useEffect)(()=>{let e=()=>F(Pf());if(typeof window.requestIdleCallback==`function`){let t=window.requestIdleCallback(e);return()=>window.cancelIdleCallback(t)}let t=window.setTimeout(e,0);return()=>window.clearTimeout(t)},[]);let te=Ff(y??Kf(e.length),y,P),ne=x??qf(e.length),L=O?g:null,re=(0,_.useMemo)(()=>c?Zf(e,t,c):null,[e,t,c]),R=re?e.filter(e=>re.nodeIds.has(e.id)):e,z=re?t.filter(e=>re.edgeIds.has(e.id)):t,B=(0,_.useMemo)(()=>Yf(R,z,{detail:ne,families:E,focusId:L,neighborhoodOnly:!!L}),[R,z,ne,E,L]),V=(0,_.useMemo)(()=>`${C}|${B.nodes.map(e=>e.id).join(`\0`)}|${B.edges.map(e=>e.id).join(`\0`)}`,[C,B.nodes,B.edges]),ie=g?e.find(e=>e.id===g)??null:null,{rfNodes:ae,rfEdges:oe}=(0,_.useMemo)(()=>{let e=vm(B.nodes,B.edges,g,{roles:o,testOverlay:s,layout:C});return I&&(e.rfEdges=e.rfEdges.map(e=>({...e,animated:!1}))),e},[B.nodes,B.edges,g,I,o,s,C]);(0,_.useEffect)(()=>{if(!r)return;let t=e.find(e=>e.file_path===r);t&&v(t.id)},[r,e]);let se=(0,_.useMemo)(()=>Xf(e,A),[e,A]),ce=(e,t)=>{v(t.id)},le=()=>{v(null),k(!1)},ue=ie?(0,T.jsx)(ym,{node:ie,nodes:e,edges:t,onClose:le,onWhatIf:n,onSelect:v,onOpenFile:d,pinned:f===ie.id,onPin:p,onIsolate:l?e=>{l(c===e?null:e)}:void 0}):null,de=e=>{D(t=>{let n=new Set(t);if(n.has(e)){if(n.size===1)return t;n.delete(e)}else n.add(e);return n})},fe=(0,_.useMemo)(()=>{let t=new Set;for(let n of e)t.add(Wf(n.type));return t},[e]),pe=e.length-B.nodes.length;return(0,T.jsxs)(`div`,{className:`impact-graph`,style:{flex:1,minHeight:0,position:`relative`,display:`flex`,flexDirection:`column`},children:[(0,T.jsxs)(`div`,{className:`graph-toolbar`,"data-testid":`graph-toolbar`,children:[(0,T.jsxs)(`div`,{className:`seg`,"aria-label":`Graph projection`,children:[(0,T.jsx)(`button`,{type:`button`,"data-testid":`graph-view-2d`,className:te===`2d`?`active`:``,"aria-pressed":te===`2d`,onClick:()=>b(`2d`),children:`2D map`}),(0,T.jsx)(`button`,{type:`button`,"data-testid":`graph-view-3d`,className:te===`3d`?`active`:``,"aria-pressed":te===`3d`,onClick:()=>b(`3d`),children:`3D layers`})]}),(0,T.jsxs)(`div`,{className:`seg`,"aria-label":`Graph detail`,children:[(0,T.jsx)(`button`,{type:`button`,"data-testid":`graph-detail-overview`,className:ne===`overview`?`active`:``,"aria-pressed":ne===`overview`,onClick:()=>S(`overview`),children:`Overview`}),(0,T.jsx)(`button`,{type:`button`,"data-testid":`graph-detail-full`,className:ne===`full`?`active`:``,"aria-pressed":ne===`full`,onClick:()=>S(`full`),children:`Full`})]}),(0,T.jsx)(`div`,{className:`seg`,"aria-label":`Graph families`,children:[`django`,`stitch`,`react`].filter(e=>fe.has(e)).map(e=>(0,T.jsx)(`button`,{type:`button`,"data-testid":`graph-family-${e}`,className:E.has(e)?`active`:``,"aria-pressed":E.has(e),onClick:()=>de(e),children:e},e))}),(0,T.jsxs)(`label`,{className:`graph-layout`,children:[`Layout`,(0,T.jsx)(`select`,{id:`graph-layout`,"data-testid":`graph-layout`,value:C,"aria-label":`Graph layout algorithm`,onChange:e=>{let t=Tf.find(t=>t.id===e.target.value)?.id;t&&(w(t),up(t))},children:Tf.map(e=>(0,T.jsx)(`option`,{value:e.id,children:e.label},e.id))})]}),(0,T.jsx)(`button`,{type:`button`,className:O?`chip-btn active`:`chip-btn`,"data-testid":`graph-neighborhood`,disabled:!g,onClick:()=>k(e=>!e),children:O?`Neighborhood`:`Focus neighbors`}),c?(0,T.jsx)(`button`,{type:`button`,className:`chip-btn active`,"data-testid":`graph-isolate-clear`,onClick:()=>l?.(null),children:`Path isolate`}):null,(0,T.jsxs)(`label`,{className:`graph-search`,children:[(0,T.jsx)(`span`,{className:`sr-only`,children:`Search nodes`}),(0,T.jsx)(`input`,{"data-testid":`graph-search`,placeholder:`Find a node`,value:A,onChange:e=>{M(e.target.value),N(!0)},onFocus:()=>N(!0),onBlur:()=>window.setTimeout(()=>N(!1),150)}),ee&&A.trim()&&se.length?(0,T.jsx)(`ul`,{className:`graph-search-hits`,"data-testid":`graph-search-hits`,children:se.map(e=>(0,T.jsx)(`li`,{children:(0,T.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>{v(e.id),M(``),N(!1)},children:[e.name,(0,T.jsx)(`span`,{className:`muted`,children:j(e.type)})]})},e.id))}):null]}),(0,T.jsxs)(`span`,{className:`muted graph-count`,children:[B.nodes.length,` nodes · `,B.edges.length,` edges`,pe?` · ${pe} hidden`:``]})]}),(0,T.jsx)(`div`,{className:`graph-stage`,children:e.length===0?(0,T.jsxs)(`div`,{className:`empty graph-walk-empty`,"data-testid":`graph-walk-empty`,children:[(0,T.jsx)(`h2`,{children:`No typed nodes on this walk`}),(0,T.jsx)(`p`,{children:`This range did not hit models, views, routes, or React pages Loadpath extracts. Open the architecture map for the indexed graph.`})]}):te===`3d`?(0,T.jsxs)(`div`,{className:`graph-3d`,"data-testid":`graph-3d`,children:[(0,T.jsx)(`p`,{className:`graph-3d-hint`,children:`Same layout as the 2D map, with bounded context on the depth axis. Dashed edges are inferred. Drag to orbit, scroll to zoom, click a node to inspect it.`}),P===!1?cm:P===null?(0,T.jsx)(`p`,{className:`muted graph-3d-hint`,children:`Loading 3D layers…`}):(0,T.jsx)(sm,{fallback:cm,children:(0,T.jsx)(_.Suspense,{fallback:(0,T.jsx)(`p`,{className:`muted graph-3d-hint`,children:`Loading 3D layers…`}),children:(0,T.jsx)(om,{nodes:B.nodes,edges:B.edges,selectedId:g,neighborIds:L?B.neighborIds:am,layout:C,nodeRoles:o,testOverlay:s,onSelect:e=>{v(e),e||k(!1)}})})}),ue]}):(0,T.jsxs)(Md,{children:[(0,T.jsxs)(Id,{nodes:ae,edges:oe,nodeTypes:pm,edgeTypes:gm,fitView:!1,minZoom:.25,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,deleteKeyCode:null,onNodeClick:ce,onPaneClick:le,proOptions:{hideAttribution:!1},"data-testid":`impact-graph`,children:[(0,T.jsx)(_m,{topologyKey:V}),(0,T.jsx)(Ud,{}),(0,T.jsx)(gf,{pannable:!0,zoomable:!0,ariaLabel:`Impact graph overview`,nodeColor:`var(--muted)`,nodeStrokeColor:`transparent`,nodeStrokeWidth:0,maskColor:`rgba(0, 0, 0, 0.45)`,maskStrokeColor:`var(--accent)`,maskStrokeWidth:1.4,bgColor:`var(--graph-bg)`,style:{width:184,height:128}}),(0,T.jsx)(Qd,{})]}),ue]})})]})}function Sm(e){return(0,T.jsx)(sm,{fallback:(0,T.jsx)(`p`,{className:`muted graph-3d-hint`,"data-testid":`graph-crash-fallback`,children:`The graph failed to render. Switch to 2D map or another layout.`}),children:(0,T.jsx)(xm,{...e})})}function Cm(){let e=localStorage.getItem(`loadpath.editor`)||`auto`;return e===`cursor`||e===`vscode`||e===`system`?e:`auto`}function wm(e){localStorage.setItem(`loadpath.editor`,e)}async function Tm(e,t,n,r=Cm()){try{let i=await S.openEditor(e,t,n??void 0,r);if(i.ok)return{ok:!0,message:`Opened ${t} in ${i.opened_with||`editor`}`};let a=i.urls||{},o=r===`vscode`?a.vscode:r===`cursor`?a.cursor:a.cursor||a.vscode;return o?(window.open(o,`_blank`,`noopener,noreferrer`),{ok:!0,message:`Opening ${t} via editor URL`}):{ok:!1,message:i.error||`Could not open editor`}}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}}var Em=[{value:`HEAD`,label:`HEAD`,group:`preset`},{value:`HEAD~1`,label:`HEAD~1`,group:`preset`}],Dm=[`preset`,`branch`,`tag`,`commit`];function Om(e){if(!e?.git)return[...Em];let t=(e.presets?.length?e.presets:Em.map(e=>e.value)).map(e=>({value:e,label:e,group:`preset`})),n=new Set(t.map(e=>e.value)),r=[...t];for(let t of e.branches||[])n.has(t.name)||(n.add(t.name),r.push({value:t.name,label:t.current?`${t.name} (current)`:t.name,detail:t.subject,group:`branch`}));for(let t of e.tags||[])n.has(t.name)||(n.add(t.name),r.push({value:t.name,label:t.name,detail:t.subject,group:`tag`}));for(let t of e.commits||[])n.has(t.sha)||(n.add(t.sha),r.push({value:t.sha,label:t.short,detail:t.subject,group:`commit`}));return r}function km(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.value.toLowerCase().includes(n)||e.label.toLowerCase().includes(n)||(e.detail||``).toLowerCase().includes(n)):e}function Am(e){return Dm.map(t=>({group:t,items:e.filter(e=>e.group===t)})).filter(e=>e.items.length>0)}function jm(e){return e===`preset`?`Common`:e===`branch`?`Branches`:e===`tag`?`Tags`:`Recent commits`}function Mm({value:e,onChange:t,placeholder:n,testId:r,menuTestId:i,refs:a,onNeedRefs:o}){let s=(0,_.useId)(),c=(0,_.useRef)(null),[l,u]=(0,_.useState)(!1),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)(0),h=(0,_.useMemo)(()=>{let e=Om(a);return d===null?e:km(e,d)},[a,d]),g=(0,_.useMemo)(()=>Am(h),[h]);(0,_.useEffect)(()=>{l&&o()},[l,o]),(0,_.useEffect)(()=>{m(0)},[d,l]);let v=()=>{u(!1),f(null)},y=e=>{t(e.value),v()};return(0,T.jsxs)(`div`,{className:`combo`,ref:c,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||v()},children:[(0,T.jsxs)(`div`,{className:`combo-row`,children:[(0,T.jsx)(`input`,{"data-testid":r,value:e,placeholder:n,spellCheck:!1,role:`combobox`,"aria-expanded":l,"aria-controls":s,"aria-autocomplete":`list`,onChange:e=>{t(e.target.value),l&&f(e.target.value)},onKeyDown:e=>{if(e.key===`ArrowDown`){if(e.preventDefault(),!l){u(!0);return}m(e=>Math.min(e+1,Math.max(h.length-1,0)))}else if(e.key===`ArrowUp`){if(e.preventDefault(),!l)return;m(e=>Math.max(e-1,0))}else if(e.key===`Enter`&&l){e.preventDefault();let t=h[p];t&&y(t)}else e.key===`Escape`&&l&&(e.preventDefault(),v())}}),(0,T.jsx)(`button`,{type:`button`,className:`icon-btn combo-toggle`,"data-testid":`${r}-toggle`,"aria-label":`Show recent refs`,"aria-expanded":l,onMouseDown:e=>e.preventDefault(),onClick:()=>l?v():u(!0),children:(0,T.jsx)(R,{})})]}),l?(0,T.jsx)(`div`,{className:`combo-menu`,id:s,role:`listbox`,"data-testid":i,children:g.length===0?(0,T.jsx)(`div`,{className:`combo-empty muted`,children:`No matching refs — the typed value is kept`}):g.map(e=>(0,T.jsxs)(`div`,{className:`combo-group`,children:[(0,T.jsx)(`div`,{className:`combo-heading`,children:jm(e.group)}),e.items.map(e=>{let t=h.indexOf(e);return(0,T.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===p,className:t===p?`combo-option active`:`combo-option`,"data-testid":`ref-option-${e.group}`,onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>m(t),onClick:()=>y(e),children:[(0,T.jsx)(`span`,{className:`combo-label`,children:e.label}),e.detail?(0,T.jsx)(`span`,{className:`combo-detail`,children:e.detail}):null]},`${e.group}:${e.value}`)})]},e.group))}):null]})}function Nm({initialPath:e,onSelect:t,onClose:n}){let[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(e),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(``),[d,f]=(0,_.useState)(!1),p=(0,_.useRef)(null),m=(0,_.useRef)(0),h=async e=>{let t=m.current+1;m.current=t,f(!0);try{let n=await S.browse(e);if(m.current!==t)return;i(n),o(n.path),c(n.is_git?n.path:null),u(``)}catch(e){if(m.current!==t)return;u(e instanceof Error?e.message:String(e))}finally{m.current===t&&f(!1)}};(0,_.useEffect)(()=>{h(e),p.current?.focus(),p.current?.select()},[e]);let g=s||r?.path||a,v=s&&s!==r?.path?s.split(/[\\/]/).filter(Boolean).pop():r?.is_git?`this repository`:`this folder`;return(0,T.jsx)(`div`,{className:`modal-backdrop`,"data-testid":`repo-explorer`,"data-overlay":`true`,onClick:n,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),n())},children:(0,T.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`explorer-title`,onClick:e=>e.stopPropagation(),children:[(0,T.jsxs)(`div`,{className:`modal-head`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`explorer-title`,children:`Select repository`}),(0,T.jsx)(`p`,{className:`muted`,children:`Browse to a git root, or paste the full path.`})]}),(0,T.jsx)(`button`,{type:`button`,className:`btn ghost`,"data-testid":`explorer-cancel`,onClick:n,children:`Cancel`})]}),(0,T.jsxs)(`form`,{className:`explorer-path`,onSubmit:e=>{e.preventDefault(),h(a)},children:[(0,T.jsx)(`input`,{ref:p,"data-testid":`explorer-path`,value:a,onChange:e=>o(e.target.value),spellCheck:!1,"aria-label":`Directory path`}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,disabled:!r?.parent,onClick:()=>r?.parent&&void h(r.parent),children:`Up`}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>r&&void h(r.home),children:`Home`}),(0,T.jsx)(`button`,{type:`submit`,className:`btn`,children:`Go`})]}),l?(0,T.jsx)(`div`,{className:`error`,role:`alert`,children:l}):null,(0,T.jsx)(`div`,{className:`explorer-list`,role:`listbox`,"aria-label":`Folders`,"aria-busy":d,children:r?.entries.length?r.entries.map(e=>{let t=s===e.path;return(0,T.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t,className:t?`explorer-row active`:`explorer-row`,"data-testid":`explorer-entry`,"data-path":e.path,onClick:()=>c(e.path),onDoubleClick:()=>void h(e.path),children:[(0,T.jsx)(re,{}),(0,T.jsx)(`span`,{className:`explorer-name`,children:e.name}),e.is_git?(0,T.jsx)(`span`,{className:`chip git-badge`,children:`git`}):null]},e.path)}):(0,T.jsx)(`div`,{className:`muted explorer-empty`,children:d?`Loading…`:`No folders here`})}),(0,T.jsxs)(`div`,{className:`modal-foot`,children:[(0,T.jsx)(`span`,{className:`muted explorer-current`,title:g,children:g}),(0,T.jsxs)(`button`,{type:`button`,className:`btn primary`,"data-testid":`explorer-use`,disabled:!g,onClick:()=>g&&t(g),children:[`Use `,v]})]})]})})}var Pm={scan:{start:0,end:20},extract:{start:20,end:88},boot:{start:88,end:94},stitch:{start:94,end:99},skipped:{start:100,end:100},done:{start:100,end:100}},Fm=new Set([`scan`,`extract`,`boot`,`stitch`]);function Im(e){let t=e.phase||``;if(!t||t===`idle`)return null;let n=Pm[t];if(!n)return null;if(n.start===n.end)return n.end;let r=e.total||0;if(r<=0)return n.start;let i=Math.min(1,Math.max(0,(e.done||0)/r));return Math.round(n.start+(n.end-n.start)*i)}function Lm(e){return!e.phase||e.phase===`idle`?null:typeof e.percent==`number`&&Number.isFinite(e.percent)?Math.max(0,Math.min(100,Math.round(e.percent))):Im(e)}var Rm=[{id:`obsidian`,label:`Obsidian`,group:`dark`},{id:`nord`,label:`Nord`,group:`dark`},{id:`solarized-dark`,label:`Solarized Dark`,group:`dark`},{id:`forest`,label:`Forest`,group:`dark`},{id:`rose`,label:`Rose Pine`,group:`dark`},{id:`amber`,label:`Midnight Amber`,group:`dark`},{id:`volcano`,label:`Volcano`,group:`dark`},{id:`lavender`,label:`Lavender`,group:`dark`},{id:`neon-noir`,label:`Neon Noir`,group:`dark`},{id:`synthwave`,label:`Synthwave`,group:`dark`},{id:`phosphor`,label:`Phosphor`,group:`dark`},{id:`aurora`,label:`Aurora`,group:`dark`},{id:`biolume`,label:`Biolume`,group:`dark`},{id:`carbon`,label:`Carbon`,group:`dark`},{id:`paper`,label:`Paper`,group:`light`},{id:`solarized-light`,label:`Solarized Light`,group:`light`},{id:`seafoam`,label:`Seafoam`,group:`light`},{id:`high-contrast`,label:`High Contrast`,group:`light`},{id:`sakura`,label:`Sakura`,group:`light`},{id:`citrus`,label:`Citrus`,group:`light`},{id:`peach`,label:`Peach Fuzz`,group:`light`},{id:`candy`,label:`Cotton Candy`,group:`light`},{id:`sky`,label:`Clear Sky`,group:`light`},{id:`coral`,label:`Coral Reef`,group:`light`}],zm=`obsidian`,Bm=`loadpath.theme`;function Vm(e){return Rm.some(t=>t.id===e)}function Hm(){try{let e=localStorage.getItem(Bm)||``;if(Vm(e))return e}catch{}return zm}function Um(e){return Rm.find(t=>t.id===e)?.group===`light`?`light`:`dark`}function Wm(e){document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=Um(e);try{localStorage.setItem(Bm,e)}catch{}}var Gm=[{id:`review`,label:`Review`,testId:`tab-review`,shortcut:`1`,icon:F},{id:`architecture`,label:`Architecture`,testId:`tab-architecture`,shortcut:`2`,icon:I},{id:`graph`,label:`Impact graph`,testId:`tab-graph`,shortcut:`3`,icon:te},{id:`prs`,label:`Pull requests`,testId:`tab-prs`,shortcut:`4`,icon:ne},{id:`settings`,label:`Settings`,testId:`tab-settings`,shortcut:`5`,icon:L}];function Km(e,t,n){let r;try{r=new URL(e)}catch{return}if(r.protocol!==`https:`||r.username||r.password)return;let i=r.hostname.toLowerCase();i!==t&&!i.endsWith(`.${t}`)||r.pathname.startsWith(n)&&window.open(r.toString(),`_blank`,`noopener,noreferrer`)}function qm(){let[e,t]=(0,_.useState)(`review`),[n,r]=(0,_.useState)(localStorage.getItem(`loadpath.repo`)||``),[i,a]=(0,_.useState)(localStorage.getItem(`loadpath.base`)||`HEAD~1`),[o,s]=(0,_.useState)(localStorage.getItem(`loadpath.head`)||`HEAD`),[c,l]=(0,_.useState)(null),[u,d]=(0,_.useState)(null),[f,p]=(0,_.useState)(null),[m,h]=(0,_.useState)([]),[g,v]=(0,_.useState)(`review`),[y,b]=(0,_.useState)(``),[x,C]=(0,_.useState)(``),[w,E]=(0,_.useState)(null),[O,k]=(0,_.useState)(!1),[A,M]=(0,_.useState)(!1),[N,P]=(0,_.useState)(``),[F,I]=(0,_.useState)({}),[te,ne]=(0,_.useState)([]),[L,R]=(0,_.useState)([]),[z,B]=(0,_.useState)(localStorage.getItem(`loadpath.scmRepo`)||``),[V,ie]=(0,_.useState)(localStorage.getItem(`loadpath.provider`)||`github`),[ae,oe]=(0,_.useState)(localStorage.getItem(`loadpath.prNumber`)||``),[se,ce]=(0,_.useState)(localStorage.getItem(`loadpath.dirty`)===`1`),[le,ue]=(0,_.useState)(0),[de,fe]=(0,_.useState)(``),[pe,me]=(0,_.useState)(Hm),[he,ge]=(0,_.useState)(!1),[_e,ve]=(0,_.useState)(!1),[ye,be]=(0,_.useState)(!1),[xe,Se]=(0,_.useState)(null),[Ce,we]=(0,_.useState)(null),[Te,Ee]=(0,_.useState)(localStorage.getItem(`loadpath.testOverlay`)===`1`),[De,Oe]=(0,_.useState)(null),[ke,Ae]=(0,_.useState)(localStorage.getItem(`loadpath.watch`)===`1`),[je,Me]=(0,_.useState)([]),[Ne,Pe]=(0,_.useState)(null),[Fe,Ie]=(0,_.useState)(null),[Le,Re]=(0,_.useState)(null),[ze,Be]=(0,_.useState)(()=>{try{return!!(localStorage.getItem(`loadpath.lastReviewId`)&&(localStorage.getItem(`loadpath.repo`)||``).trim())}catch{return!1}}),[Ve,He]=(0,_.useState)(null),[Ue,We]=(0,_.useState)(null),[Ge,Ke]=(0,_.useState)(!1),[qe,Je]=(0,_.useState)(!1),Ye=(0,_.useRef)(n);Ye.current=n;let Xe=(0,_.useRef)(se);Xe.current=se;let Ze=(0,_.useRef)(!1);Ze.current=_e;let Qe=(0,_.useRef)(``),$e=(0,_.useRef)(``),et=e=>{me(e),Wm(e)},tt=(0,_.useRef)(``),H=e=>{tt.current=e,C(e)},nt=e=>{let t=0,n=!1;E(0);let r=()=>{S.indexProgress(e).then(e=>{if(!tt.current)return;if(e.phase&&e.phase!==`idle`&&e.message&&H(e.message),Fm.has(e.phase))n=!0;else if(!n)return;let r=Lm(e);r!=null&&(t=e.phase===`scan`&&!e.done?r:Math.max(t,r),E(t))}).catch(()=>void 0)};r();let i=window.setInterval(r,250);return()=>{window.clearInterval(i),E(null)}};(0,_.useEffect)(()=>{S.settings().then(I).catch(()=>void 0).finally(()=>ge(!0)),S.repos().then(e=>h(e.repos)).catch(()=>void 0)},[]);let rt=()=>n.trim()?!0:(b(`Point at a local repository path first.`),!1);(0,_.useEffect)(()=>{if(e!==`architecture`||!n.trim())return;let t=n,r=!1;return $e.current!==t&&pt(t),S.config(t).then(e=>{!r&&Ye.current===t&&Ie(e)}).catch(()=>void 0),S.architectureHealth(t).then(e=>{!r&&Ye.current===t&&Re(e)}).catch(()=>void 0),()=>{r=!0}},[e,n]);let it=e=>{Ye.current=e,r(e),localStorage.setItem(`loadpath.repo`,e),e.trim()!==Qe.current&&(Qe.current=``,He(null))},at=(0,_.useCallback)(e=>{let t=(e??Ye.current).trim();return!t||Qe.current===t?Promise.resolve():(Qe.current=t,S.gitRefs(t).then(e=>{Ye.current.trim()===t&&He(e)}).catch(()=>{Qe.current===t&&(Qe.current=``,He(null))}))},[]),ot=(e,t)=>{a(e),s(t),localStorage.setItem(`loadpath.base`,e),localStorage.setItem(`loadpath.head`,t)},st=(e,t,n)=>{ie(e),B(t),localStorage.setItem(`loadpath.provider`,e),localStorage.setItem(`loadpath.scmRepo`,t),n!==void 0&&(oe(n),localStorage.setItem(`loadpath.prNumber`,n))},ct=e=>{l(e),ue(0),Se(Ce&&e.nodes.some(e=>e.id===Ce)?Ce:null),Oe(null),Pe(null),e.what_if||(d(e),e.id&&localStorage.setItem(`loadpath.lastReviewId`,e.id))},lt=async e=>{try{let t=await S.reviews(e);Me(t.reviews)}catch{Me([])}},ut=async e=>{try{Re(await S.architectureHealth(e))}catch{Re(null)}},dt=e=>e===`github`?!!F.github_token_set:e===`gitlab`?!!F.gitlab_token_set:!!F.bitbucket_token_set,ft=(0,_.useCallback)(async(e=V)=>{try{let t=await S.scmRepos(e);R(t.repos),t.user?.login&&I(n=>({...n,...e===`github`?{github_user:t.user.login}:e===`gitlab`?{gitlab_user:t.user.login}:{bitbucket_user:t.user.login}}))}catch{R([])}},[V]);(0,_.useEffect)(()=>{if(e!==`prs`)return;let t=!1;return ft(V).catch(()=>{t||R([])}),()=>{t=!0}},[e,V,ft]),(0,_.useEffect)(()=>{if(!Ue)return;let e=!1,t=0,n=async()=>{try{let r=await S.githubOAuthPoll(Ue.flow_id);if(e)return;if(r.status===`complete`){We(null);let e=await S.settings();I(e),P(r.user?`Signed in to GitHub as ${r.user}`:`Signed in to GitHub`),ft(`github`);return}if(r.status===`pending`||r.status===`slow_down`){t=window.setTimeout(n,Math.max(r.interval||Ue.interval,5)*1e3);return}We(null),b(r.status===`denied`?`GitHub sign-in was denied.`:`GitHub sign-in expired. Try again.`)}catch(t){if(e)return;We(null),b(t instanceof Error?t.message:String(t))}};return t=window.setTimeout(n,Math.max(Ue.interval,5)*1e3),()=>{e=!0,window.clearTimeout(t)}},[Ue,ft]),(0,_.useEffect)(()=>{if(!Ge)return;let e=!1,t=0,n=Date.now(),r=async()=>{try{let i=await S.oauthStatus();if(e)return;if(i.bitbucket.connected){Ke(!1);let e=await S.settings();I(e),P(i.bitbucket.user?`Signed in to Bitbucket as ${i.bitbucket.user}`:`Signed in to Bitbucket`),ft(`bitbucket`);return}if(Date.now()-n>18e4){Ke(!1),b(`Bitbucket sign-in timed out. Finish in the browser, or try again.`);return}t=window.setTimeout(r,1500)}catch(t){if(e)return;Ke(!1),b(t instanceof Error?t.message:String(t))}};return t=window.setTimeout(r,1500),()=>{e=!0,window.clearTimeout(t)}},[Ge,ft]),(0,_.useEffect)(()=>{if(!qe)return;let e=!1,t=0,n=Date.now(),r=async()=>{try{let i=await S.oauthStatus();if(e)return;if(i.gitlab.connected){Je(!1);let e=await S.settings();I(e),P(i.gitlab.user?`Signed in to GitLab as ${i.gitlab.user}`:`Signed in to GitLab`),ft(`gitlab`);return}if(Date.now()-n>18e4){Je(!1),b(`GitLab sign-in timed out. Finish in the browser, or try again.`);return}t=window.setTimeout(r,1500)}catch(t){if(e)return;Je(!1),b(t instanceof Error?t.message:String(t))}};return t=window.setTimeout(r,1500),()=>{e=!0,window.clearTimeout(t)}},[qe,ft]);let pt=async(e=n,t=!1)=>{if(!e.trim())return null;$e.current=e,M(!0);try{let n=await S.architecture(e,!1);Ye.current===e&&p(n);let r=S.architectureGraph(e).then(t=>{Ye.current===e&&p(e=>e&&{...e,nodes:t.nodes,edges:t.edges,graph_pending:!1})});return r.catch(()=>{p(t=>t&&Ye.current===e?{...t,graph_pending:!1}:t)}).finally(()=>{$e.current===e&&M(!1)}),t&&await r,n}catch(t){throw Ye.current===e&&M(!1),t}},mt=async e=>{let t=e.trim();if(!(!t||t===Ye.current)){if(tt.current){b(`Wait for the current job to finish before switching workspace.`);return}b(``),P(``),l(null),d(null),p(null),v(`architecture`),it(t),k(!0),H(`Loading ${ee(t)}…`);try{await Promise.all([pt(t),at(t)])}catch(e){Ye.current===t&&b(e instanceof Error?e.message:String(e))}finally{Ye.current===t&&(H(``),k(!1))}}},ht=async()=>{if(tt.current||!rt())return;b(``),P(``),H(`Tracing load path…`),it(n),ot(i,o);let e=nt(n);try{let e=await S.review(n,i,o,!0,Xe.current);ct(e),v(`review`),t(`review`),await S.repos().then(e=>h(e.repos)).catch(()=>void 0),await Promise.all([pt(n),lt(n),ut(n)])}catch(e){b(e instanceof Error?e.message:String(e))}finally{e(),H(``)}},gt=async(e=!0)=>{if(tt.current||!rt())return;b(``),P(``),H(e?`Indexing…`:`Full reindex…`),it(n);let r=nt(n);try{await S.index(n,e);let r=await pt(n);await S.repos().then(e=>h(e.repos)).catch(()=>void 0),r?.indexed&&(v(`architecture`),t(`architecture`))}catch(e){b(e instanceof Error?e.message:String(e))}finally{r(),H(``)}},_t=async()=>{if(!tt.current&&rt()){b(``),P(``),H(`Detecting layout…`),it(n);try{let e=await S.init(n);P(e.message),await S.repos().then(e=>h(e.repos)).catch(()=>void 0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{H(``)}}},vt=async()=>{if(c?.markdown)try{await navigator.clipboard.writeText(c.markdown),P(`Copied markdown brief`)}catch(e){b(e instanceof Error?e.message:String(e))}},yt=async()=>{if(!tt.current){if(c?.what_if){b(`What-if walks are hypothetical — they are not posted to a pull request. Restore the git-range walk first.`);return}if(!c?.markdown||!z||!ae){b(`Pick a pull request first (Pull requests tab), then post the brief.`);return}H(`Posting Loadpath brief…`);try{let e=await S.postComment(V,z,Number(ae),c.markdown);P(e.updated?`Updated the Loadpath PR comment`:`Posted the Loadpath PR comment`)}catch(e){b(e instanceof Error?e.message:String(e))}finally{H(``)}}},bt=async()=>{if(!tt.current){b(``),H(`Fetching pull requests…`);try{let e=await S.prs(V,z,`open`,n.trim()||void 0);ne(e.pull_requests);let t=L.find(e=>e.slug.toLowerCase()===z.trim().toLowerCase());t?.local_path&&it(t.local_path)}catch(e){b(e instanceof Error?e.message:String(e))}finally{H(``)}}},xt=async()=>{b(``);try{let e=await S.githubOAuthStart();We(e),Km(e.verification_uri_complete,`github.com`,`/login/device`)}catch(e){b(e instanceof Error?e.message:String(e))}},St=async()=>{b(``);try{let e=await S.bitbucketOAuthStart();Ke(!0),Km(e.authorize_url,`bitbucket.org`,`/site/oauth2/authorize`)}catch(e){Ke(!1),b(e instanceof Error?e.message:String(e))}},Ct=async()=>{b(``);try{let e=await S.gitlabOAuthStart();Je(!0),Km(e.authorize_url,new URL(e.authorize_url).hostname,`/oauth/authorize`)}catch(e){Je(!1),b(e instanceof Error?e.message:String(e))}},wt=async e=>{if(!(tt.current||!n.trim())){b(``),H(`Walking what-if path…`);try{let r=await S.whatIf(n,e);P(`${r.title} — ${r.confidence.level} · ${(r.sinks||[]).length} sinks`),ct({...r,markdown:r.markdown||``,index:r.index||c?.index,workspace:r.workspace||c?.workspace}),v(`review`),t(`review`)}catch(e){b(e instanceof Error?e.message:String(e))}finally{H(``)}}},Tt=()=>{if(u){ct(u),v(`review`),t(`review`),P(`Restored the last git-range walk`);return}l(null),ue(0),Se(null),Oe(null),Pe(null),v(`architecture`),t(`architecture`),P(``)},Et=async e=>{if(tt.current)return;st(e.provider,e.repo,String(e.number));let r=L.find(t=>t.slug.toLowerCase()===e.repo.toLowerCase());r?.local_path&&it(r.local_path),b(``),H(`Fetching ${e.provider} #${e.number}…`);let i=r?.local_path||n,a=i?nt(i):()=>void 0;try{let i=await S.reviewPr(e.provider,e.repo,e.number,r?.local_path||n||void 0);ct(i),i.pull_request&&typeof i.pull_request.repo_path==`string`&&it(i.pull_request.repo_path),ot(String(i.base||e.target_branch),String(i.head||e.source_branch)),v(`review`),t(`review`),typeof i.pull_request?.repo_path==`string`&<(i.pull_request.repo_path)}catch(n){ot(e.base_sha||e.target_branch,e.head_sha||e.source_branch),t(`review`),b(n instanceof Error?n.message:String(n))}finally{a(),H(``)}},Dt=async e=>{b(``);try{I(await S.oauthDisconnect(e)),V===e&&R([]),P(`Disconnected ${e}`)}catch(e){b(e instanceof Error?e.message:String(e))}},Ot=async e=>{e.preventDefault();let t=new FormData(e.currentTarget),n={github_token:String(t.get(`github_token`)||``),github_oauth_client_id:String(t.get(`github_oauth_client_id`)||``),github_host:String(t.get(`github_host`)||``),gitlab_token:String(t.get(`gitlab_token`)||``),gitlab_host:String(t.get(`gitlab_host`)||``),gitlab_oauth_client_id:String(t.get(`gitlab_oauth_client_id`)||``),gitlab_oauth_client_secret:String(t.get(`gitlab_oauth_client_secret`)||``),bitbucket_token:String(t.get(`bitbucket_token`)||``),bitbucket_username:String(t.get(`bitbucket_username`)||``),bitbucket_oauth_client_id:String(t.get(`bitbucket_oauth_client_id`)||``),bitbucket_oauth_client_secret:String(t.get(`bitbucket_oauth_client_secret`)||``),ai_provider:String(t.get(`ai_provider`)||`none`),ai_api_key:String(t.get(`ai_api_key`)||``),ai_model:String(t.get(`ai_model`)||``),ai_base_url:String(t.get(`ai_base_url`)||``)},r=m.length?{...n,workspaces:m.map(e=>({path:e.path,name:e.name}))}:n;try{I(await S.saveSettings(r)),P(`Settings saved on this machine`)}catch(e){b(e instanceof Error?e.message:String(e))}},kt=async()=>{if(!(!c||tt.current)){H(`Residual analysis…`);try{let e=await S.residual(c);fe(e.note)}catch(e){b(e instanceof Error?e.message:String(e))}finally{H(``)}}},At=(0,_.useRef)(ht);At.current=ht;let jt=(0,_.useRef)(e);jt.current=e;let Mt=(0,_.useRef)(!1);Mt.current=ye;let Nt=(0,_.useRef)(c);Nt.current=c;let Pt=(0,_.useRef)(le);Pt.current=le,(0,_.useEffect)(()=>{let e=localStorage.getItem(`loadpath.lastReviewId`),t=(localStorage.getItem(`loadpath.repo`)||``).trim();if(!e||!t){Be(!1);return}let n=!1;return S.getReview(t,e).then(e=>{n||(ct(e),ot(e.base||localStorage.getItem(`loadpath.base`)||`HEAD~1`,e.head||localStorage.getItem(`loadpath.head`)||`HEAD`),lt(t),ut(t))}).catch(()=>void 0).finally(()=>{n||Be(!1)}),()=>{n=!0}},[]);let Ft=(0,_.useRef)(``);(0,_.useEffect)(()=>{if(!ke||!n.trim())return;let e=!1,t=async()=>{try{let t=await S.workspaceStatus(n);if(e)return;Ft.current&&t.fingerprint!==Ft.current&&!tt.current&&(ce(!0),Xe.current=!0,localStorage.setItem(`loadpath.dirty`,`1`),At.current()),Ft.current=t.fingerprint}catch{}};t();let r=window.setInterval(t,2e3);return()=>{e=!0,window.clearInterval(r)}},[ke,n]),(0,_.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`){e.preventDefault(),be(e=>!e);return}if(Mt.current){e.key===`Escape`&&(e.preventDefault(),be(!1));return}if(Ze.current){e.key===`Escape`&&(e.preventDefault(),ve(!1));return}let n=e.target;if(n&&(n.tagName===`INPUT`||n.tagName===`TEXTAREA`||n.tagName===`SELECT`||n.isContentEditable)){e.key===`Escape`&&n.blur();return}if(e.key===`Escape`){b(``),P(``),Se(Ce),Oe(null);return}if(e.key===`j`||e.key===`k`){let t=Nt.current?.read_order||[];if(!t.length)return;e.preventDefault();let n=Pt.current,r=e.key===`j`?Math.min(t.length-1,n+1):Math.max(0,n-1);ue(r);return}let r=Gm.find(t=>t.shortcut===e.key);if(r&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&t(r.id),(e.metaKey||e.ctrlKey)&&e.key===`Enter`){if(jt.current===`settings`||jt.current===`prs`||tt.current)return;e.preventDefault(),At.current()}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Ce]);let It=async(e,t)=>{if(!n.trim())return;let r=await Tm(n,e,t);r.ok?P(r.message):b(r.message)},Lt=async()=>{if(c)try{let e=await S.exportHtml(c),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`loadpath-${(c.id||`review`).slice(0,8)}.html`,n.click(),URL.revokeObjectURL(t),P(`Saved HTML brief`)}catch(e){b(e instanceof Error?e.message:String(e))}},Rt=async e=>{if(n.trim()){H(`Loading stored review…`);try{let r=await S.getReview(n,e);ct(r),ot(r.base||i,r.head||o),v(`review`),t(`review`);let a=je.findIndex(t=>t.id===e),s=a>=0?je[a+1]:void 0;if(s)try{Pe(await S.reviewDiff(n,e,s.id))}catch{Pe(null)}}catch(e){b(e instanceof Error?e.message:String(e))}finally{H(``)}}},zt={selectedId:xe,onSelect:Se,nodeRoles:c?.node_roles,testOverlay:Te,isolateSource:De,onIsolate:Oe,repoPath:n,onOpenFile:It,pinnedId:Ce,onPin:we},Bt=[{id:`review`,group:`Run`,label:`Review this range`,hint:`⌘/Ctrl+Enter`,run:()=>void ht()},...c?.what_if?[{id:`exit-whatif`,group:`Review`,label:u?`Back to git-range walk`:`Exit what-if walk`,run:Tt}]:[],{id:`index`,group:`Run`,label:`Index repository`,run:()=>void gt(!0)},{id:`watch`,group:`Run`,label:ke?`Stop watching working tree`:`Watch working tree`,run:()=>{let e=!ke;Ae(e),localStorage.setItem(`loadpath.watch`,e?`1`:`0`)}},{id:`tests`,group:`Graph`,label:Te?`Hide test overlay`:`Show test overlay`,run:()=>{let e=!Te;Ee(e),localStorage.setItem(`loadpath.testOverlay`,e?`1`:`0`)}},{id:`export`,group:`Review`,label:`Export HTML brief`,run:()=>void Lt()},...Gm.map(e=>({id:`tab-${e.id}`,group:`Tabs`,label:`Go to ${e.label}`,hint:e.shortcut,run:()=>t(e.id)})),...(c?.nodes||[]).slice(0,30).map(e=>({id:`node-${e.id}`,group:`Nodes`,label:e.name,hint:j(e.type),run:()=>{Se(e.id),t(`graph`)}})),...je.slice(0,12).map(e=>({id:`hist-${e.id}`,group:`History`,label:e.title||e.id,hint:`${e.level||``} ${e.created_at||``}`.trim(),run:()=>void Rt(e.id)}))],Vt=(0,_.useMemo)(()=>g===`architecture`?f?.nodes??[]:c?.nodes??[],[g,f,c]),Ht=(0,_.useMemo)(()=>g===`architecture`?f?.edges??[]:c?.edges??[],[g,f,c]),Ut=c?.index?`${c.index.counts.nodes} nodes · ${c.index.counts.edges} edges`:f?.indexed?`${f.counts.nodes} nodes · ${f.counts.edges} edges`:`Not indexed`,Wt=(c?.findings||[]).filter(e=>!e.waived);return(0,T.jsxs)(`div`,{className:`app`,children:[(0,T.jsx)(`a`,{className:`skip`,href:`#main`,children:`Skip to content`}),(0,T.jsxs)(`nav`,{className:`rail`,"data-testid":`rail`,"aria-label":`Primary`,children:[(0,T.jsxs)(`div`,{className:`brand`,children:[(0,T.jsx)(`div`,{className:`brand-mark`,children:`Loadpath`}),(0,T.jsx)(`div`,{className:`brand-sub`,children:`Load-path review`})]}),Gm.map(n=>{let r=n.icon,i=e===n.id;return(0,T.jsxs)(`button`,{type:`button`,"data-testid":n.testId,className:i?`nav-item active`:`nav-item`,"aria-current":i?`page`:void 0,"aria-label":n.label,onClick:()=>t(n.id),children:[(0,T.jsx)(r,{}),(0,T.jsx)(`span`,{children:n.label})]},n.id)}),(0,T.jsxs)(`div`,{className:`theme-pick`,children:[(0,T.jsx)(`label`,{htmlFor:`theme-select`,children:`Theme`}),(0,T.jsx)(`select`,{id:`theme-select`,"data-testid":`theme-select`,value:pe,onChange:e=>et(e.target.value),children:[`dark`,`light`].map(e=>(0,T.jsx)(`optgroup`,{label:e===`dark`?`Dark`:`Light`,children:Rm.filter(t=>t.group===e).map(e=>(0,T.jsx)(`option`,{value:e.id,children:e.label},e.id))},e))})]}),(0,T.jsxs)(`div`,{className:`rail-foot`,children:[(0,T.jsx)(`div`,{className:`muted`,role:`status`,children:x||Ut}),(0,T.jsxs)(`div`,{className:`kbd-hint`,children:[(0,T.jsx)(`kbd`,{children:`1`}),`–`,(0,T.jsx)(`kbd`,{children:`5`}),` tabs · `,(0,T.jsx)(`kbd`,{children:`⌘`}),(0,T.jsx)(`kbd`,{children:`K`}),` palette · `,(0,T.jsx)(`kbd`,{children:`j`}),`/`,(0,T.jsx)(`kbd`,{children:`k`}),` read order`]})]})]}),(0,T.jsxs)(`div`,{className:`main`,id:`main`,children:[x?(0,T.jsxs)(`div`,{className:w==null?`progress`:`progress determinate`,role:w==null?`status`:`progressbar`,"aria-label":x,"aria-live":`polite`,"aria-busy":`true`,"aria-valuemin":w==null?void 0:0,"aria-valuemax":w==null?void 0:100,"aria-valuenow":w??void 0,"data-testid":`progress`,children:[(0,T.jsx)(`i`,{style:w==null?void 0:{width:`${w}%`}}),(0,T.jsx)(`span`,{className:`sr-only`,children:x})]}):null,(0,T.jsxs)(`header`,{className:`topbar`,"data-testid":`topbar`,children:[m.length>0?(0,T.jsxs)(`label`,{className:`field workspace`,children:[(0,T.jsx)(`span`,{children:`Workspace`}),(0,T.jsxs)(`select`,{"data-testid":`workspace-select`,value:m.some(e=>e.path===n)?n:``,disabled:!!x,"aria-busy":O,onChange:e=>{e.target.value&&mt(e.target.value)},children:[(0,T.jsx)(`option`,{value:``,children:`Indexed repos…`}),m.map(e=>(0,T.jsxs)(`option`,{value:e.path,children:[e.name,e.indexed?` (${e.counts.nodes})`:``]},e.path))]})]}):null,(0,T.jsxs)(`label`,{className:`field path`,children:[(0,T.jsx)(`span`,{children:`Repository`}),(0,T.jsxs)(`div`,{className:`path-row`,children:[(0,T.jsx)(`input`,{"data-testid":`repo-path`,placeholder:`Local monorepo path`,value:n,onChange:e=>{let t=e.target.value;r(t),t.trim()!==Qe.current&&(Qe.current=``,He(null))},spellCheck:!1}),(0,T.jsx)(`button`,{type:`button`,className:`icon-btn`,"data-testid":`btn-browse-repo`,"aria-label":`Browse for a local repository`,onClick:()=>ve(!0),children:(0,T.jsx)(re,{})})]})]}),(0,T.jsxs)(`label`,{className:`field ref`,children:[(0,T.jsx)(`span`,{children:`Base`}),(0,T.jsx)(Mm,{testId:`base-ref`,menuTestId:`base-ref-menu`,value:i,onChange:e=>ot(e,o),placeholder:`base`,refs:Ve,onNeedRefs:at})]}),(0,T.jsxs)(`label`,{className:`field ref`,children:[(0,T.jsx)(`span`,{children:`Head`}),(0,T.jsx)(Mm,{testId:`head-ref`,menuTestId:`head-ref-menu`,value:o,onChange:e=>ot(i,e),placeholder:`head`,refs:Ve,onNeedRefs:at})]}),(0,T.jsxs)(`label`,{className:`field dirty`,children:[(0,T.jsx)(`span`,{children:`Working tree`}),(0,T.jsx)(`button`,{type:`button`,className:se?`chip-btn active`:`chip-btn`,"data-testid":`btn-dirty`,"aria-pressed":se,onClick:()=>{let e=!se;ce(e),localStorage.setItem(`loadpath.dirty`,e?`1`:`0`)},children:se?`Include uncommitted`:`Committed range`})]}),(0,T.jsxs)(`label`,{className:`field dirty`,children:[(0,T.jsx)(`span`,{children:`Watch`}),(0,T.jsx)(`button`,{type:`button`,className:ke?`chip-btn active`:`chip-btn`,"data-testid":`btn-watch`,"aria-pressed":ke,onClick:()=>{let e=!ke;Ae(e),localStorage.setItem(`loadpath.watch`,e?`1`:`0`)},children:ke?`Watching`:`Paused`})]}),c?(0,T.jsxs)(`div`,{className:`merge-box compact ${c.confidence.level}`,"data-testid":`merge-box`,children:[(0,T.jsx)(`div`,{className:`level ${c.confidence.level}`,children:c.confidence.level.toUpperCase()}),(0,T.jsxs)(`div`,{className:`muted`,children:[c.what_if?`what-if · `:``,c.confidence.covered_sinks,`/`,c.confidence.sinks,` sinks`]})]}):null,(0,T.jsxs)(`div`,{className:`topbar-actions`,children:[(0,T.jsx)(`button`,{type:`button`,"data-testid":`btn-init`,disabled:!!x,onClick:_t,children:`Draft config`}),(0,T.jsx)(`button`,{type:`button`,"data-testid":`btn-index`,disabled:!!x,onClick:()=>gt(!0),children:`Index`}),(0,T.jsx)(`button`,{type:`button`,"data-testid":`btn-review`,className:`btn primary`,disabled:!!x,onClick:ht,children:`Review`})]})]}),(0,T.jsxs)(`div`,{className:`alerts`,children:[y?(0,T.jsxs)(`div`,{className:`error`,"data-testid":`error`,role:`alert`,children:[(0,T.jsx)(`span`,{children:y}),(0,T.jsx)(`button`,{type:`button`,className:`dismiss`,onClick:()=>b(``),"aria-label":`Dismiss error`,children:`×`})]}):null,N?(0,T.jsxs)(`div`,{className:`banner`,"data-testid":`status-note`,children:[(0,T.jsx)(`span`,{children:N}),(0,T.jsx)(`button`,{type:`button`,className:`dismiss`,onClick:()=>P(``),"aria-label":`Dismiss`,children:`×`})]}):null,(c?.index?.stale||f?.stale)&&(e===`review`||e===`architecture`)?(0,T.jsx)(`div`,{className:`banner stale`,"data-testid":`index-stale`,children:`Index is stale — files changed since the last extract. Index again before trusting this walk.`}):null,c?.index?.django_boot===`failed`||f?.django_boot===`failed`?(0,T.jsx)(`div`,{className:`banner warn`,"data-testid":`django-boot-failed`,children:c?.index?.django_boot_detail||f?.django_boot_detail||`django.setup() failed`}):null,c?.workspace?.dirty_overlaps_review&&e===`review`?(0,T.jsxs)(`div`,{className:`banner warn`,"data-testid":`dirty-tree`,children:[`Uncommitted files overlap this review: `,(c.workspace.dirty_overlap||[]).slice(0,6).join(`, `)]}):null,c?.what_if?(0,T.jsxs)(`div`,{className:`banner whatif`,"data-testid":`whatif-banner`,children:[(0,T.jsxs)(`span`,{children:[`Hypothetical walk from`,` `,(0,T.jsx)(`strong`,{children:c.node?.name||`this node`}),`. Loadpath ignored Base/Head and asked which sinks would feel this node change — not a filter of the current map.`]}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-exit-whatif`,onClick:Tt,children:u?`Back to git range`:`Back to architecture`})]}):null,O?(0,T.jsx)(`div`,{className:`banner`,"data-testid":`workspace-loading`,children:x||`Loading workspace…`}):null]}),(0,T.jsxs)(`div`,{className:`stage`,"aria-busy":O||A,children:[e===`review`&&(0,T.jsxs)(`div`,{className:`content`,"data-testid":`review-layout`,children:[(0,T.jsx)(`aside`,{className:`brief`,"data-testid":`brief`,children:c?(0,T.jsx)(Jm,{review:c,findings:Wt,aiNote:de,busy:!!x,tourIndex:le,onTour:ue,onAskAi:kt,onCopy:vt,onPost:yt,onSelect:Se,onOpenFile:It,onExport:Lt,history:je,diff:Ne,onReopen:Rt,onWaiver:(e,t)=>{n.trim()&&S.addWaiver(n,e,t||void 0,`from review`).then(t=>{Ie(t),P(`Waived ${e} in loadpath.yml`)})}}):ze?(0,T.jsxs)(`div`,{className:`empty`,"data-testid":`review-restoring`,children:[(0,T.jsx)(`h2`,{children:`Restoring last review`}),(0,T.jsx)(`p`,{children:`Loading the walk this machine stored last time Loadpath was open.`})]}):(0,T.jsxs)(`div`,{className:`empty`,"data-testid":`review-empty`,children:[(0,T.jsx)(`h2`,{children:`Trace the force of this diff`}),(0,T.jsx)(`p`,{children:`The graph is the architecture. The brief is where this change travels — not a hunk list.`}),(0,T.jsxs)(`ol`,{children:[(0,T.jsx)(`li`,{children:`Point at a Django + React monorepo, or pick an indexed workspace.`}),(0,T.jsxs)(`li`,{children:[`Index it. Missing `,(0,T.jsx)(`code`,{children:`loadpath.yml`}),` is drafted from `,(0,T.jsx)(`code`,{children:`manage.py`}),` and`,` `,(0,T.jsx)(`code`,{children:`src/features`}),`.`]}),(0,T.jsx)(`li`,{children:`Review a git range, or open a pull request so base/head become a three-dot merge-base.`})]})]})}),(0,T.jsx)(`div`,{className:`graph-wrap`,"data-testid":`review-graph`,children:c?(0,T.jsx)(Sm,{nodes:c.nodes,edges:c.edges,onWhatIf:wt,focusPath:c.read_order[le]?.path,...zt}):null})]}),e===`architecture`&&(0,T.jsxs)(`div`,{className:`content`,"data-testid":`architecture-panel`,children:[(0,T.jsx)(`aside`,{className:`brief`,"data-testid":`architecture-brief`,children:f?.indexed?(0,T.jsx)(Ym,{architecture:f,busy:!!x,onReindex:()=>gt(!1),onReview:ht,onSelect:Se,config:Fe,health:Le,onSaveConfig:e=>{S.saveConfig(n,e).then(e=>{Ie(e),P(`Wrote loadpath.yml`)})},onWaiver:(e,t,r)=>{S.addWaiver(n,e,t,r).then(t=>{Ie(t),P(`Waived ${e}`)})}}):O?(0,T.jsx)(`p`,{className:`muted`,"data-testid":`architecture-loading`,children:`Loading the index summary…`}):(0,T.jsx)(`p`,{className:`muted`,"data-testid":`architecture-empty`,children:`Index this repo to build the architecture graph. Review then walks that same graph for a git range — it does not start from a hunk list.`})}),(0,T.jsx)(`div`,{className:`graph-wrap`,"data-testid":`architecture-graph`,children:(A||f?.graph_pending)&&!(f?.nodes||[]).length?(0,T.jsxs)(`div`,{className:`empty graph-loading`,"data-testid":`graph-loading`,children:[(0,T.jsx)(`h2`,{children:`Drawing the architecture map…`}),(0,T.jsx)(`p`,{children:f?.counts?.nodes?`${f.counts.nodes} indexed nodes. The brief is ready while the graph loads.`:`Fetching the indexed graph.`})]}):f?.indexed?(0,T.jsx)(Sm,{nodes:f.nodes,edges:f.edges,onWhatIf:wt,...zt,isolateSource:null,onIsolate:void 0}):null})]}),e===`graph`&&(0,T.jsxs)(`div`,{className:`graph-wrap`,"data-testid":`graph-full`,style:{height:`100%`},children:[(0,T.jsxs)(`div`,{className:`graph-modes`,children:[(0,T.jsxs)(`div`,{className:`seg`,"aria-label":`Graph scope`,children:[(0,T.jsx)(`button`,{type:`button`,"aria-pressed":g===`review`,"data-testid":`graph-mode-review`,className:g===`review`?`active`:``,onClick:()=>v(`review`),children:`This review`}),(0,T.jsx)(`button`,{type:`button`,"aria-pressed":g===`architecture`,"data-testid":`graph-mode-architecture`,className:g===`architecture`?`active`:``,onClick:()=>v(`architecture`),children:`Indexed architecture`})]}),(0,T.jsxs)(`div`,{className:`legend`,"aria-hidden":`true`,children:[(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`i`,{}),` cheap`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`i`,{className:`exp`}),` expensive`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`i`,{className:`crit`}),` critical`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`i`,{className:`dash`}),` inferred`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`i`,{className:`seed`}),` changed`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`i`,{className:`down`}),` downstream`]})]}),(0,T.jsx)(`button`,{type:`button`,className:Te?`chip-btn active`:`chip-btn`,"data-testid":`graph-test-overlay`,"aria-pressed":Te,onClick:()=>{let e=!Te;Ee(e),localStorage.setItem(`loadpath.testOverlay`,e?`1`:`0`)},children:`Tests`})]}),Vt.length||g===`review`&&c||f?.indexed&&!(A||f?.graph_pending)?(0,T.jsx)(Sm,{nodes:Vt,edges:Ht,onWhatIf:wt,...zt,...g===`architecture`?{isolateSource:null,onIsolate:void 0,nodeRoles:void 0,testOverlay:!1}:{}}):A||f?.graph_pending?(0,T.jsx)(`p`,{className:`empty`,"data-testid":`graph-loading`,children:`Drawing the architecture map…`}):(0,T.jsx)(`p`,{className:`empty`,"data-testid":`graph-empty`,children:`Index the repo or run a review first. Click a node to inspect it.`})]}),e===`prs`&&(0,T.jsxs)(`div`,{className:`pr-list`,"data-testid":`pr-list`,children:[(0,T.jsxs)(`div`,{className:`pr-toolbar`,children:[(0,T.jsxs)(`label`,{className:`field provider`,children:[(0,T.jsx)(`span`,{children:`Provider`}),(0,T.jsxs)(`select`,{"data-testid":`pr-provider`,value:V,onChange:e=>st(e.target.value,z,ae),children:[(0,T.jsx)(`option`,{value:`github`,children:`GitHub`}),(0,T.jsx)(`option`,{value:`gitlab`,children:`GitLab`}),(0,T.jsx)(`option`,{value:`bitbucket`,children:`Bitbucket`})]})]}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{children:`Repository`}),(0,T.jsx)(`input`,{"data-testid":`pr-repo`,placeholder:L.length?`Search your repos`:`owner/repo`,value:z,onChange:e=>st(V,e.target.value,ae),list:`scm-repos`,spellCheck:!1}),(0,T.jsx)(`datalist`,{id:`scm-repos`,children:L.map(e=>(0,T.jsxs)(`option`,{value:e.slug,children:[e.private?`private`:`public`,e.local_path?` · local`:``]},e.slug))})]}),(0,T.jsx)(`button`,{type:`button`,"data-testid":`btn-refresh-repos`,className:`btn`,disabled:!!x||!dt(V),onClick:()=>{ft(V)},children:`My repos`}),(0,T.jsx)(`button`,{type:`button`,"data-testid":`btn-list-prs`,className:`btn`,disabled:!!x,onClick:bt,children:`List PRs`})]}),L.length>0?(0,T.jsxs)(`p`,{className:`muted scm-count`,"data-testid":`scm-repo-count`,children:[L.length,` `,V,` repositor`,L.length===1?`y`:`ies`,V===`github`&&F.github_user?` · @${String(F.github_user)}`:``,V===`gitlab`&&F.gitlab_user?` · @${String(F.gitlab_user)}`:``,V===`bitbucket`&&F.bitbucket_user?` · ${String(F.bitbucket_user)}`:``]}):null,te.length===0?(0,T.jsxs)(`div`,{className:`empty`,"data-testid":`pr-empty`,children:[(0,T.jsx)(`h2`,{children:`No pull requests loaded`}),(0,T.jsx)(`p`,{children:`Sign in under Settings (or paste a token), load your repositories, then list open PRs. Reviewing a PR fills base and head from its SHAs.`})]}):te.map(e=>(0,T.jsxs)(`article`,{className:`pr`,"data-testid":`pr-${e.number}`,children:[(0,T.jsxs)(`h3`,{children:[`#`,e.number,` `,e.title]}),(0,T.jsxs)(`div`,{className:`pr-meta muted`,children:[(0,T.jsx)(`span`,{className:`chip ${e.draft?``:`open`}`,children:e.draft?`draft`:e.state}),(0,T.jsx)(`span`,{children:e.author}),(0,T.jsxs)(`span`,{children:[e.source_branch,` → `,e.target_branch]}),e.loadpath?(0,T.jsxs)(`span`,{className:`chip ${e.loadpath.level||``}`,"data-testid":`pr-loadpath-${e.number}`,children:[e.loadpath.level?.toUpperCase()||`REVIEWED`,e.loadpath.contract_break&&e.loadpath.contract_break!==`none`?` · ${e.loadpath.contract_break}`:``]}):(0,T.jsx)(`span`,{className:`muted`,children:`no Loadpath walk yet`})]}),(0,T.jsxs)(`div`,{className:`pr-actions`,children:[(0,T.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,children:[`Open on `,e.provider]}),(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`pr-review-${e.number}`,onClick:()=>void Et(e),children:`Review this PR`})]})]},`${e.provider}-${e.number}`))]}),e===`settings`&&he&&(0,T.jsxs)(`form`,{className:`settings`,"data-testid":`settings-form`,onSubmit:Ot,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h1`,{children:`Settings`}),(0,T.jsx)(`p`,{className:`muted`,children:`Tokens stay on this machine in ~/.loadpath/settings.json. AI runs only on residual uncertainty the graph could not close.`})]}),(0,T.jsxs)(`section`,{className:`settings-card`,children:[(0,T.jsx)(`h2`,{children:`Appearance`}),(0,T.jsx)(`p`,{className:`muted`,children:`Local to this browser. High contrast is a first-class theme, not an afterthought.`}),(0,T.jsx)(`div`,{className:`theme-grid`,"data-testid":`theme-grid`,children:Rm.map(e=>(0,T.jsxs)(`button`,{type:`button`,"data-theme":e.id,className:pe===e.id?`theme-swatch active`:`theme-swatch`,"data-testid":`theme-${e.id}`,onClick:()=>et(e.id),children:[(0,T.jsx)(`div`,{className:`swatch-bar`,"aria-hidden":`true`}),(0,T.jsx)(`div`,{className:`name`,children:e.label}),(0,T.jsx)(`div`,{className:`group`,children:e.group})]},e.id))})]}),(0,T.jsxs)(`section`,{className:`settings-card`,children:[(0,T.jsx)(`h2`,{children:`Editor`}),(0,T.jsx)(`p`,{className:`muted`,children:`Open files from the inspector and read-order in Cursor, VS Code, or the system handler.`}),(0,T.jsx)(`label`,{htmlFor:`editor-pref`,children:`Preferred editor`}),(0,T.jsxs)(`select`,{id:`editor-pref`,"data-testid":`editor-pref`,defaultValue:Cm(),onChange:e=>wm(e.target.value),children:[(0,T.jsx)(`option`,{value:`auto`,children:`Auto (Cursor, then VS Code)`}),(0,T.jsx)(`option`,{value:`cursor`,children:`Cursor`}),(0,T.jsx)(`option`,{value:`vscode`,children:`VS Code`}),(0,T.jsx)(`option`,{value:`system`,children:`System default`})]})]}),(0,T.jsxs)(`section`,{className:`settings-card`,children:[(0,T.jsx)(`h2`,{children:`Source control`}),(0,T.jsx)(`p`,{className:`muted`,children:`Sign in with OAuth to list every repository the account can access. Tokens stay in ~/.loadpath/settings.json. A classic PAT still works if you prefer not to register an OAuth app.`}),(0,T.jsxs)(`div`,{className:`scm-login`,"data-testid":`scm-github`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`strong`,{children:`GitHub`}),(0,T.jsx)(`p`,{className:`muted`,children:F.github_token_set?F.github_user?`Signed in as @${String(F.github_user)}`:`Token saved on this machine`:`Not connected`})]}),(0,T.jsx)(`div`,{className:`btn-row`,children:F.github_token_set?(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-github-disconnect`,onClick:()=>void Dt(`github`),children:`Disconnect`}):(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-github-login`,disabled:!!Ue||!F.github_oauth_ready,onClick:()=>void xt(),children:Ue?`Waiting for GitHub…`:`Sign in with GitHub`})})]}),Ue?(0,T.jsxs)(`p`,{className:`oauth-code`,"data-testid":`github-user-code`,children:[`Enter `,(0,T.jsx)(`code`,{children:Ue.user_code}),` at GitHub if the browser did not fill it in.`]}):null,F.github_oauth_ready?null:(0,T.jsx)(`p`,{className:`muted`,children:`Sign-in needs a GitHub OAuth App with Device Flow enabled. Set LOADPATH_GITHUB_CLIENT_ID or paste the client ID below.`}),(0,T.jsx)(`label`,{htmlFor:`github_oauth_client_id`,children:`GitHub OAuth client ID`}),(0,T.jsx)(`input`,{id:`github_oauth_client_id`,name:`github_oauth_client_id`,"data-testid":`github-oauth-client-id`,placeholder:`Ov23…`,defaultValue:String(F.github_oauth_client_id||``),autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`github_token`,children:`GitHub token (optional PAT)`}),(0,T.jsx)(`input`,{id:`github_token`,name:`github_token`,type:`password`,placeholder:`ghp_…`,autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`github_host`,children:`GitHub host (Enterprise)`}),(0,T.jsx)(`input`,{id:`github_host`,name:`github_host`,"data-testid":`github-host`,placeholder:`github.com`,defaultValue:String(F.github_host||``),autoComplete:`off`}),(0,T.jsxs)(`div`,{className:`scm-login`,"data-testid":`scm-gitlab`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`strong`,{children:`GitLab`}),(0,T.jsx)(`p`,{className:`muted`,children:F.gitlab_token_set?F.gitlab_user?`Signed in as @${String(F.gitlab_user)}`:`Token saved on this machine`:`Not connected`})]}),(0,T.jsx)(`div`,{className:`btn-row`,children:F.gitlab_token_set?(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-gitlab-disconnect`,onClick:()=>void Dt(`gitlab`),children:`Disconnect`}):(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-gitlab-login`,disabled:qe||!F.gitlab_oauth_ready,onClick:()=>void Ct(),children:qe?`Waiting for GitLab…`:`Sign in with GitLab`})})]}),(0,T.jsx)(`label`,{htmlFor:`gitlab_host`,children:`GitLab host`}),(0,T.jsx)(`input`,{id:`gitlab_host`,name:`gitlab_host`,"data-testid":`gitlab-host`,placeholder:`gitlab.com`,defaultValue:String(F.gitlab_host||``),autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`gitlab_oauth_client_id`,children:`GitLab OAuth application ID`}),(0,T.jsx)(`input`,{id:`gitlab_oauth_client_id`,name:`gitlab_oauth_client_id`,"data-testid":`gitlab-oauth-client-id`,defaultValue:String(F.gitlab_oauth_client_id||``),autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`gitlab_oauth_client_secret`,children:`GitLab OAuth secret`}),(0,T.jsx)(`input`,{id:`gitlab_oauth_client_secret`,name:`gitlab_oauth_client_secret`,type:`password`,autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`gitlab_token`,children:`GitLab token (optional PAT)`}),(0,T.jsx)(`input`,{id:`gitlab_token`,name:`gitlab_token`,type:`password`,placeholder:`glpat-…`,autoComplete:`off`}),(0,T.jsxs)(`div`,{className:`scm-login`,"data-testid":`scm-bitbucket`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`strong`,{children:`Bitbucket`}),(0,T.jsx)(`p`,{className:`muted`,children:F.bitbucket_token_set?F.bitbucket_user?`Signed in as ${String(F.bitbucket_user)}`:`Token saved on this machine`:`Not connected`})]}),(0,T.jsx)(`div`,{className:`btn-row`,children:F.bitbucket_token_set?(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-bitbucket-disconnect`,onClick:()=>void Dt(`bitbucket`),children:`Disconnect`}):(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-bitbucket-login`,disabled:Ge||!F.bitbucket_oauth_ready,onClick:()=>void St(),children:Ge?`Waiting for Bitbucket…`:`Sign in with Bitbucket`})})]}),F.bitbucket_oauth_ready?null:(0,T.jsxs)(`p`,{className:`muted`,children:[`Sign-in needs a Bitbucket OAuth consumer (key + secret). Callback URL:`,` `,(0,T.jsx)(`code`,{children:`/api/oauth/bitbucket/callback`}),` on this app origin.`]}),(0,T.jsx)(`label`,{htmlFor:`bitbucket_oauth_client_id`,children:`Bitbucket OAuth key`}),(0,T.jsx)(`input`,{id:`bitbucket_oauth_client_id`,name:`bitbucket_oauth_client_id`,"data-testid":`bitbucket-oauth-client-id`,defaultValue:String(F.bitbucket_oauth_client_id||``),autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`bitbucket_oauth_client_secret`,children:`Bitbucket OAuth secret`}),(0,T.jsx)(`input`,{id:`bitbucket_oauth_client_secret`,name:`bitbucket_oauth_client_secret`,type:`password`,autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`bitbucket_token`,children:`Bitbucket token (optional app password)`}),(0,T.jsx)(`input`,{id:`bitbucket_token`,name:`bitbucket_token`,type:`password`,autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`bitbucket_username`,children:`Bitbucket username (app passwords)`}),(0,T.jsx)(`input`,{id:`bitbucket_username`,name:`bitbucket_username`,defaultValue:String(F.bitbucket_username||``)})]}),(0,T.jsxs)(`section`,{className:`settings-card`,children:[(0,T.jsx)(`h2`,{children:`Residual AI`}),(0,T.jsx)(`label`,{htmlFor:`ai_provider`,children:`Provider`}),(0,T.jsxs)(`select`,{id:`ai_provider`,name:`ai_provider`,defaultValue:String(F.ai?.provider||`none`),children:[(0,T.jsx)(`option`,{value:`none`,children:`none (graph only)`}),(0,T.jsx)(`option`,{value:`anthropic`,children:`Anthropic`}),(0,T.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,T.jsx)(`option`,{value:`grok`,children:`Grok / xAI`}),(0,T.jsx)(`option`,{value:`deepseek`,children:`DeepSeek`}),(0,T.jsx)(`option`,{value:`cursor`,children:`Cursor-compatible (OpenAI protocol)`}),(0,T.jsx)(`option`,{value:`ollama`,children:`Ollama local`})]}),(0,T.jsx)(`label`,{htmlFor:`ai_api_key`,children:`API key`}),(0,T.jsx)(`input`,{id:`ai_api_key`,name:`ai_api_key`,type:`password`,autoComplete:`off`}),(0,T.jsx)(`label`,{htmlFor:`ai_model`,children:`Model`}),(0,T.jsx)(`input`,{id:`ai_model`,name:`ai_model`,"data-testid":`ai-model`,placeholder:`optional override`,defaultValue:String(F.ai?.model||``)}),(0,T.jsx)(`label`,{htmlFor:`ai_base_url`,children:`Base URL`}),(0,T.jsx)(`input`,{id:`ai_base_url`,name:`ai_base_url`,"data-testid":`ai-base-url`,placeholder:`optional, OpenAI-compatible`,defaultValue:String(F.ai?.base_url||``)}),(0,T.jsx)(`button`,{className:`btn primary`,type:`submit`,"data-testid":`btn-save-settings`,children:`Save`})]})]})]})]}),(0,T.jsx)(D,{open:ye,actions:Bt,onClose:()=>be(!1)}),_e?(0,T.jsx)(Nm,{initialPath:n,onClose:()=>ve(!1),onSelect:e=>{if(tt.current){b(`Wait for the current job to finish before switching workspace.`);return}ve(!1),mt(e)}}):null]})}function Jm({review:e,findings:t,aiNote:n,busy:r,tourIndex:i,onTour:a,onAskAi:o,onCopy:s,onPost:c,onSelect:l,onOpenFile:u,onExport:d,history:f,diff:p,onReopen:m,onWaiver:h}){let g=[...new Set(e.confidence.reasons||[])];return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`merge-box ${e.confidence.level}`,children:[(0,T.jsxs)(`div`,{className:`level ${e.confidence.level}`,children:[e.confidence.level.toUpperCase(),` — `,e.title]}),g.length?(0,T.jsx)(`ul`,{className:`reasons`,children:g.map(e=>(0,T.jsx)(`li`,{children:e},e))}):null,e.what_if?(0,T.jsx)(`span`,{className:`chip whatif`,"data-testid":`whatif-chip`,children:`what-if`}):null,e.low_risk?(0,T.jsx)(`span`,{className:`chip`,children:`low-risk`}):null,e.change_kinds.map(e=>(0,T.jsx)(`span`,{className:`chip`,children:k(e)},e)),e.contract_break?.kind&&e.contract_break.kind!==`none`?(0,T.jsxs)(`span`,{className:`chip ${e.contract_break.kind===`breaking`?`blocker`:``}`,"data-testid":`contract-kind`,children:[`contract `,e.contract_break.kind]}):null]}),(0,T.jsxs)(`div`,{className:`metrics`,children:[(0,T.jsxs)(`div`,{className:`metric`,children:[(0,T.jsxs)(`div`,{className:`n`,children:[e.confidence.covered_sinks,`/`,e.confidence.sinks]}),(0,T.jsx)(`div`,{className:`l`,children:`Sinks tested`})]}),(0,T.jsxs)(`div`,{className:`metric`,children:[(0,T.jsx)(`div`,{className:`n`,children:t.length}),(0,T.jsx)(`div`,{className:`l`,children:`Findings`})]}),(0,T.jsxs)(`div`,{className:`metric`,children:[(0,T.jsx)(`div`,{className:`n`,children:e.residuals.length}),(0,T.jsx)(`div`,{className:`l`,children:`Residuals`})]})]}),(0,T.jsx)(`pre`,{className:`headline`,children:e.headline}),(e.checklist||[]).length?(0,T.jsxs)(`details`,{className:`section`,open:!0,"data-testid":`merge-checklist`,children:[(0,T.jsxs)(`summary`,{children:[`Merge checklist`,` `,(0,T.jsx)(`span`,{className:`count`,children:(e.checklist||[]).filter(e=>e.status===`todo`).length})]}),(e.checklist||[]).map(e=>(0,T.jsxs)(`div`,{className:`check-item ${e.status}`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`linkish`,onClick:()=>e.node_id&&l(e.node_id),children:[(0,T.jsx)(`span`,{className:`chip ${e.status}`,children:e.status}),e.title]}),e.detail?(0,T.jsx)(`div`,{className:`why`,children:e.detail}):null,e.body?(0,T.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>{navigator.clipboard.writeText(e.body||``)},children:`Copy test`}):null,e.kind===`finding`&&e.status===`todo`&&e.rule?(0,T.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>h(e.rule,e.node_id),children:`Waive in loadpath.yml`}):null]},e.id))]}):null,e.index?(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Index `,(0,T.jsx)(`span`,{className:`count`,children:e.index.counts.nodes})]}),(0,T.jsxs)(`div`,{className:`muted`,children:[`Walked `,e.index.counts.nodes,` nodes / `,e.index.counts.edges,` edges`,e.index.reindex_skipped?` from an unchanged index`:e.index.reindexed?` after an incremental refresh`:` from the existing index`,e.index.django_boot&&e.index.django_boot!==`off`?` · Django boot ${e.index.django_boot}`:``,e.workspace?.three_dot?` · three-dot range`:``]})]}):null,(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Read this `,(0,T.jsx)(`span`,{className:`count`,children:e.read_order.length})]}),e.read_order.map((e,t)=>(0,T.jsxs)(`div`,{className:t===i?`read-item tour-current`:`read-item`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`linkish file`,onClick:()=>a(t),children:[t+1,`. `,e.path]}),(0,T.jsx)(`div`,{className:`why`,children:e.why}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>u(e.path),children:`Open`})]},e.path)),e.read_order.length>0?(0,T.jsxs)(`div`,{className:`btn-row tour-row`,children:[(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-tour-prev`,disabled:i<=0,onClick:()=>a(Math.max(0,i-1)),children:`Previous`}),(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-tour-next`,disabled:i>=e.read_order.length-1,onClick:()=>a(Math.min(e.read_order.length-1,i+1)),children:`Next in read order`}),(0,T.jsxs)(`span`,{className:`muted`,children:[i+1,`/`,e.read_order.length]})]}):null]}),(0,T.jsxs)(`details`,{className:`section`,children:[(0,T.jsxs)(`summary`,{children:[`Clusters `,(0,T.jsx)(`span`,{className:`count`,children:e.clusters.length})]}),e.clusters.map(e=>(0,T.jsxs)(`div`,{className:`muted`,children:[(0,T.jsx)(`strong`,{children:e.title}),` — `,e.files.join(`, `)]},e.id))]}),(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Architecture `,(0,T.jsx)(`span`,{className:`count`,children:t.length})]}),t.length===0?(0,T.jsx)(`div`,{className:`muted`,children:e.architecture_note}):t.map(e=>(0,T.jsx)(`div`,{className:`finding`,children:(0,T.jsxs)(`button`,{type:`button`,className:`linkish`,onClick:()=>e.node_id&&l(e.node_id),children:[(0,T.jsx)(`span`,{className:`chip ${e.severity}`,children:e.severity}),e.message]})},e.rule+e.message))]}),(0,T.jsx)(Xm,{cards:e.deepening}),e.contract_break?.reasons?.length?(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Contract `,(0,T.jsx)(`span`,{className:`count`,children:e.contract_break.kind})]}),e.contract_break.reasons.map(e=>(0,T.jsx)(`div`,{className:`muted`,children:e},e)),e.contract_break.sides?.rows?.length?(0,T.jsxs)(`table`,{className:`type-table`,"data-testid":`contract-sides`,children:[(0,T.jsx)(`thead`,{children:(0,T.jsxs)(`tr`,{children:[(0,T.jsx)(`th`,{children:`Field`}),(0,T.jsx)(`th`,{children:`Serializer`}),(0,T.jsx)(`th`,{children:`Zod`}),(0,T.jsx)(`th`,{children:`GraphQL`})]})}),(0,T.jsx)(`tbody`,{children:e.contract_break.sides.rows.map(e=>(0,T.jsxs)(`tr`,{className:e.status,children:[(0,T.jsx)(`td`,{children:e.field}),(0,T.jsx)(`td`,{children:e.serializer?`yes`:`—`}),(0,T.jsx)(`td`,{children:e.zod?`yes`:`—`}),(0,T.jsx)(`td`,{children:e.graphql?`yes`:`—`})]},e.field))})]}):null]}):null,e.auth?.note?(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsx)(`summary`,{children:`Auth`}),(0,T.jsx)(`div`,{className:`muted`,children:e.auth.note}),(e.auth.missing_permissions||[]).map(e=>(0,T.jsxs)(`div`,{className:`finding`,children:[(0,T.jsx)(`span`,{className:`chip warning`,children:`missing`}),e.name]},e.id))]}):null,(e.suggested_tests||[]).length?(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Suggested tests `,(0,T.jsx)(`span`,{className:`count`,children:e.suggested_tests?.length})]}),(e.suggested_tests||[]).map(e=>(0,T.jsxs)(`div`,{className:`residual`,children:[(0,T.jsx)(`strong`,{children:e.title}),(0,T.jsx)(`pre`,{className:`headline`,children:e.body}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>{navigator.clipboard.writeText(e.body)},children:`Copy sketch`})]},e.title))]}):null,e.trend?.note?(0,T.jsxs)(`details`,{className:`section`,children:[(0,T.jsx)(`summary`,{children:`Confidence trend`}),(0,T.jsx)(`div`,{className:`muted`,children:e.trend.note}),(e.trend.points||[]).slice(0,6).map(e=>(0,T.jsxs)(`div`,{className:`muted`,children:[e.level,` · `,M(e.created_at),e.sinks==null?``:` · ${e.sinks} sinks`]},e.id))]}):null,(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Residual `,(0,T.jsx)(`span`,{className:`count`,children:e.residuals.length})]}),(0,T.jsx)(`p`,{className:`muted`,children:`AI is only used here, on what the graph could not close.`}),e.residuals.map(e=>(0,T.jsx)(`div`,{className:`residual muted`,children:e},e))]}),f.length?(0,T.jsxs)(`details`,{className:`section`,"data-testid":`review-history`,children:[(0,T.jsxs)(`summary`,{children:[`History `,(0,T.jsx)(`span`,{className:`count`,children:f.length})]}),p?(0,T.jsx)(`div`,{className:`muted`,children:p.note}):null,f.slice(0,12).map(t=>(0,T.jsxs)(`button`,{type:`button`,className:t.id===e.id?`history-item current`:`history-item`,onClick:()=>m(t.id),children:[(0,T.jsx)(`span`,{className:`chip ${t.level||``}`,children:t.level||`walk`}),t.title||t.id.slice(0,8),(0,T.jsx)(`span`,{className:`muted`,children:t.created_at?M(t.created_at):``})]},t.id))]}):null,e.evolution?.notes?.length||e.evolution?.hotspots?.some(e=>e.commits)?(0,T.jsxs)(`details`,{className:`section`,children:[(0,T.jsx)(`summary`,{children:`Churn & coupling`}),(e.evolution?.notes||[]).map(e=>(0,T.jsx)(`div`,{className:`muted`,children:e},e)),(e.evolution?.hotspots||[]).filter(e=>e.commits).slice(0,6).map(e=>(0,T.jsxs)(`div`,{className:`muted`,children:[(0,T.jsx)(`span`,{className:`file`,children:e.path}),` — `,e.commits,` commits, bus factor `,e.bus_factor]},e.path))]}):null,(0,T.jsxs)(`div`,{className:`btn-row`,children:[(0,T.jsx)(`button`,{type:`button`,className:`btn`,disabled:r,onClick:o,children:`Ask configured model`}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-copy-markdown`,onClick:s,children:`Copy markdown`}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-export-html`,onClick:d,children:`Save HTML`}),(0,T.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-post-comment`,disabled:r||!!e.what_if,title:e.what_if?`Hypothetical walks are not posted to a pull request`:void 0,onClick:c,children:`Post to PR`})]}),n?(0,T.jsx)(`pre`,{className:`headline`,children:n}):null,(0,T.jsx)(`div`,{className:`kicker`,children:`Reviewers`}),(0,T.jsx)(`div`,{className:`muted`,children:e.suggested_reviewers.join(`, `)||`—`}),e.codeowners_reviewers?.length?(0,T.jsxs)(`div`,{className:`muted`,children:[`CODEOWNERS: `,e.codeowners_reviewers.join(`, `)]}):null,e.knowledge_owners?.length?(0,T.jsxs)(`div`,{className:`muted`,children:[`Knowledge: `,e.knowledge_owners.join(`, `)]}):null]})}function Ym({architecture:e,busy:t,onReindex:n,onReview:r,onSelect:i,config:a,health:o,onSaveConfig:s,onWaiver:c}){let l=e.findings.filter(e=>!e.waived);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`merge-box high`,children:[(0,T.jsxs)(`div`,{className:`level high`,children:[`INDEXED — `,e.counts.nodes,` nodes`]}),(0,T.jsxs)(`div`,{className:`muted`,style:{marginTop:8},children:[e.indexed_at?`Last index ${M(e.indexed_at)}`:`Indexed`,e.incremental?` · incremental`:` · full`,e.stale?` · stale`:``,e.django_boot&&e.django_boot!==`off`?` · Django boot ${e.django_boot}`:``]}),(0,T.jsxs)(`span`,{className:`chip`,children:[e.counts.edges,` edges`]}),e.has_config?(0,T.jsx)(`span`,{className:`chip`,children:`loadpath.yml`}):null]}),(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsx)(`summary`,{children:`Bounded contexts`}),Object.values(e.contexts).map(e=>(0,T.jsxs)(`div`,{className:`muted`,children:[(0,T.jsx)(`strong`,{children:e.name}),` — `,(e.django_apps||[]).join(`, `)||`no apps`,` ·`,` `,(e.owners||[]).join(`, `)||`unowned`]},e.name))]}),(0,T.jsxs)(`details`,{className:`section`,children:[(0,T.jsxs)(`summary`,{children:[`Rules `,(0,T.jsx)(`span`,{className:`count`,children:(e.rules||[]).length})]}),(e.rules||[]).map(e=>(0,T.jsx)(`div`,{className:`muted`,children:e},e))]}),(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsxs)(`summary`,{children:[`Findings `,(0,T.jsx)(`span`,{className:`count`,children:l.length})]}),l.length===0?(0,T.jsx)(`div`,{className:`muted`,children:`No architecture rule hits on the full graph.`}):l.map(e=>(0,T.jsx)(`div`,{className:`finding`,children:(0,T.jsxs)(`button`,{type:`button`,className:`linkish`,onClick:()=>e.node_id&&i(e.node_id),children:[(0,T.jsx)(`span`,{className:`chip ${e.severity}`,children:e.severity}),e.message]})},e.rule+e.message))]}),(0,T.jsx)(Xm,{cards:e.deepening}),o?.points?.length?(0,T.jsxs)(`details`,{className:`section`,open:!0,"data-testid":`architecture-health`,children:[(0,T.jsxs)(`summary`,{children:[`Health over time `,(0,T.jsx)(`span`,{className:`count`,children:o.points.length})]}),(0,T.jsx)(`div`,{className:`sparkline`,"aria-hidden":`true`,children:o.points.map(e=>(0,T.jsx)(`i`,{className:e.level||``,title:`${e.level} · ${e.findings} findings`,style:{height:`${8+Math.min(24,(e.findings||0)*4)}px`}},e.id||e.created_at))}),Object.entries(o.contexts).map(([e,t])=>(0,T.jsxs)(`div`,{className:`muted`,children:[(0,T.jsx)(`strong`,{children:e}),` — last `,t[t.length-1]?.findings??0,` findings`]},e))]}):null,a?(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsx)(`summary`,{children:`loadpath.yml`}),(0,T.jsx)(O,{config:a,busy:t,onSave:s,onWaiver:c})]}):null,(0,T.jsxs)(`details`,{className:`section`,open:!0,children:[(0,T.jsx)(`summary`,{children:`Types`}),(0,T.jsx)(`table`,{className:`type-table`,children:(0,T.jsx)(`tbody`,{children:Object.entries(e.type_counts||{}).sort((e,t)=>t[1]-e[1]).slice(0,12).map(([e,t])=>(0,T.jsxs)(`tr`,{children:[(0,T.jsx)(`td`,{children:j(e)}),(0,T.jsx)(`td`,{children:t})]},e))})})]}),(0,T.jsxs)(`div`,{className:`btn-row`,children:[(0,T.jsx)(`button`,{type:`button`,className:`btn`,disabled:t,onClick:n,"data-testid":`btn-full-reindex`,children:`Full reindex`}),(0,T.jsx)(`button`,{type:`button`,className:`btn primary`,disabled:t,onClick:r,children:`Review against this index`})]})]})}function Xm({cards:e}){let t=e||[];return t.length?(0,T.jsxs)(`details`,{className:`section`,open:!0,"data-testid":`deepening-list`,children:[(0,T.jsxs)(`summary`,{children:[`Depth `,(0,T.jsx)(`span`,{className:`count`,children:t.length})]}),(0,T.jsx)(`p`,{className:`muted`,children:`Deepening opportunities: more behaviour behind a smaller interface, at a real seam.`}),t.map(e=>(0,T.jsxs)(`div`,{className:`finding`,"data-testid":`deepening-card`,children:[(0,T.jsx)(`span`,{className:`chip ${e.strength}`,children:A(e.strength)}),e.top?(0,T.jsx)(`span`,{className:`chip`,children:`top`}):null,(0,T.jsx)(`strong`,{children:e.title}),(0,T.jsx)(`div`,{className:`why`,children:e.message}),e.deletion_test?(0,T.jsxs)(`div`,{className:`muted`,children:[`Deletion test: `,e.deletion_test]}):null,e.before&&e.after?(0,T.jsxs)(`div`,{className:`muted`,children:[e.before,` → `,e.after]}):null]},e.rule+e.title))]}):null}Wm(Hm()),(0,v.createRoot)(document.getElementById(`root`)).render((0,T.jsx)(_.StrictMode,{children:(0,T.jsx)(qm,{})}));export{np as a,u as c,rp as i,c as l,tp as n,j as o,ap as r,w as s,Gf as t}; \ No newline at end of file diff --git a/src/loadpath/static/assets/index-DyJR4VJX.js b/src/loadpath/static/assets/index-DyJR4VJX.js deleted file mode 100644 index 098b389..0000000 --- a/src/loadpath/static/assets/index-DyJR4VJX.js +++ /dev/null @@ -1,14 +0,0 @@ -var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m){if(n(c)!==null)m=!0,M(x);else{var t=n(l);t!==null&&N(b,t.startTime-e)}}}function x(t,i){m=!1,h&&(h=!1,_(w),w=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!D());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&N(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var S=!1,C=null,w=-1,T=5,E=-1;function D(){return!(e.unstable_now()-Ee||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(w),w=-1):h=!0,N(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,M(x))),r},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u(),n=f();function r(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n`u`||window.document===void 0||window.document.createElement===void 0),l=Object.prototype.hasOwnProperty,d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e){return l.call(m,e)?!0:l.call(p,e)?!1:d.test(e)?m[e]=!0:(p[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function x(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function S(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2s||i[o]!==a[s]){var c=` -`+i[o].replace(` at new `,` at `);return e.displayName&&c.includes(``)&&(c=c.replace(``,e.displayName)),c}while(1<=o&&0<=s);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:``)?B(e):``}function H(e){switch(e.tag){case 5:return B(e.type);case 16:return B(`Lazy`);case 13:return B(`Suspense`);case 19:return B(`SuspenseList`);case 0:case 2:case 15:return e=te(e.type,!1),e;case 11:return e=te(e.type.render,!1),e;case 1:return e=te(e.type,!0),e;default:return``}}function U(e){if(e==null)return null;if(typeof e==`function`)return e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case E:return`Fragment`;case T:return`Portal`;case O:return`Profiler`;case D:return`StrictMode`;case M:return`Suspense`;case N:return`SuspenseList`}if(typeof e==`object`)switch(e.$$typeof){case A:return(e.displayName||`Context`)+`.Consumer`;case k:return(e._context.displayName||`Context`)+`.Provider`;case j:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case P:return t=e.displayName||null,t===null?U(e.type)||`Memo`:t;case F:t=e._payload,e=e._init;try{return U(e(t))}catch{}}return null}function ne(e){var t=e.type;switch(e.tag){case 24:return`Cache`;case 9:return(t.displayName||`Context`)+`.Consumer`;case 10:return(t._context.displayName||`Context`)+`.Provider`;case 18:return`DehydratedFragment`;case 11:return e=t.render,e=e.displayName||e.name||``,t.displayName||(e===``?`ForwardRef`:`ForwardRef(`+e+`)`);case 7:return`Fragment`;case 5:return t;case 4:return`Portal`;case 3:return`Root`;case 6:return`Text`;case 16:return U(t);case 8:return t===D?`StrictMode`:`Mode`;case 22:return`Offscreen`;case 12:return`Profiler`;case 21:return`Scope`;case 13:return`Suspense`;case 19:return`SuspenseList`;case 25:return`TracingMarker`;case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==`function`)return t.displayName||t.name||null;if(typeof t==`string`)return t}return null}function re(e){switch(typeof e){case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function ie(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function ae(e){var t=ie(e)?`checked`:`value`,n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=``+e[t];if(!e.hasOwnProperty(t)&&n!==void 0&&typeof n.get==`function`&&typeof n.set==`function`){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function oe(e){e._valueTracker||=ae(e)}function se(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=ie(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function ce(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}function le(e,t){var n=t.checked;return R({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ue(e,t){var n=t.defaultValue==null?``:t.defaultValue,r=t.checked==null?t.defaultChecked:t.checked;n=re(t.value==null?n:t.value),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type===`checkbox`||t.type===`radio`?t.checked!=null:t.value!=null}}function de(e,t){t=t.checked,t!=null&&S(e,`checked`,t,!1)}function fe(e,t){de(e,t);var n=re(t.value),r=t.type;if(n!=null)r===`number`?(n===0&&e.value===``||e.value!=n)&&(e.value=``+n):e.value!==``+n&&(e.value=``+n);else if(r===`submit`||r===`reset`){e.removeAttribute(`value`);return}t.hasOwnProperty(`value`)?me(e,t.type,n):t.hasOwnProperty(`defaultValue`)&&me(e,t.type,re(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function pe(e,t,n){if(t.hasOwnProperty(`value`)||t.hasOwnProperty(`defaultValue`)){var r=t.type;if(!(r!==`submit`&&r!==`reset`||t.value!==void 0&&t.value!==null))return;t=``+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==``&&(e.name=``),e.defaultChecked=!!e._wrapperState.initialChecked,n!==``&&(e.name=n)}function me(e,t,n){(t!==`number`||ce(e.ownerDocument)!==e)&&(n==null?e.defaultValue=``+e._wrapperState.initialValue:e.defaultValue!==``+n&&(e.defaultValue=``+n))}var he=Array.isArray;function ge(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i`+t.valueOf().toString()+``,t=Ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Te(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ee={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},De=[`Webkit`,`ms`,`Moz`,`O`];Object.keys(Ee).forEach(function(e){De.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ee[t]=Ee[e]})});function Oe(e,t,n){return t==null||typeof t==`boolean`||t===``?``:n||typeof t!=`number`||t===0||Ee.hasOwnProperty(e)&&Ee[e]?(``+t).trim():t+`px`}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=n.indexOf(`--`)===0,i=Oe(n,t[n],r);n===`float`&&(n=`cssFloat`),r?e.setProperty(n,i):e[n]=i}}var Ae=R({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function je(e,t){if(t){if(Ae[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(r(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(r(60));if(typeof t.dangerouslySetInnerHTML!=`object`||!(`__html`in t.dangerouslySetInnerHTML))throw Error(r(61))}if(t.style!=null&&typeof t.style!=`object`)throw Error(r(62))}}function Me(e,t){if(e.indexOf(`-`)===-1)return typeof t.is==`string`;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Ne=null;function Pe(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Fe=null,Ie=null,Le=null;function Re(e){if(e=Ii(e)){if(typeof Fe!=`function`)throw Error(r(280));var t=e.stateNode;t&&(t=Ri(t),Fe(e.stateNode,e.type,t))}}function ze(e){Ie?Le?Le.push(e):Le=[e]:Ie=e}function Be(){if(Ie){var e=Ie,t=Le;if(Le=Ie=null,Re(e),t)for(e=0;e>>=0,e===0?32:31-(St(e)/Ct|0)|0}var Tt=64,Et=4194304;function Dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ot(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~i;s===0?(a&=o,a!==0&&(r=Dt(a))):r=Dt(s)}else o=n&~i,o===0?a!==0&&(r=Dt(a)):r=Dt(o);if(r===0)return 0;if(t!==0&&t!==r&&(t&i)===0&&(i=r&-r,a=t&-t,i>=a||i===16&&a&4194240))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Pt(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-xt(t),e[t]=n}function Ft(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Xn),$n=` `,er=!1;function tr(e,t){switch(e){case`keyup`:return Jn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function nr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var rr=!1;function ir(e,t){switch(e){case`compositionend`:return nr(t);case`keypress`:return t.which===32?(er=!0,$n):null;case`textInput`:return e=t.data,e===$n&&er?null:e;default:return null}}function ar(e,t){if(rr)return e===`compositionend`||!Yn&&tr(e,t)?(e=yn(),vn=_n=gn=null,rr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Dr(n)}}function kr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?kr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ar(){for(var e=window,t=ce();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=ce(e.document)}return t}function jr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}function Mr(e){var t=Ar(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&kr(n.ownerDocument.documentElement,n)){if(r!==null&&jr(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),`selectionStart`in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=Or(n,a);var o=Or(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus==`function`&&n.focus(),n=0;n=document.documentMode,Pr=null,Fr=null,Ir=null,Lr=!1;function Rr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Lr||Pr==null||Pr!==ce(r)||(r=Pr,`selectionStart`in r&&jr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ir&&Er(Ir,r)||(Ir=r,r=li(Fr,`onSelect`),0Bi||(e.current=zi[Bi],zi[Bi]=null,Bi--)}function J(e,t){Bi++,zi[Bi]=e.current,e.current=t}var Hi={},Ui=Vi(Hi),Wi=Vi(!1),Gi=Hi;function Ki(e,t){var n=e.type.contextTypes;if(!n)return Hi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function qi(e){return e=e.childContextTypes,e!=null}function Ji(){q(Wi),q(Ui)}function Yi(e,t,n){if(Ui.current!==Hi)throw Error(r(168));J(Ui,t),J(Wi,n)}function Xi(e,t,n){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=`function`)return n;for(var a in i=i.getChildContext(),i)if(!(a in t))throw Error(r(108,ne(e)||`Unknown`,a));return R({},n,i)}function Zi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Hi,Gi=Ui.current,J(Ui,e),J(Wi,Wi.current),!0}function Qi(e,t,n){var i=e.stateNode;if(!i)throw Error(r(169));n?(e=Xi(e,t,Gi),i.__reactInternalMemoizedMergedChildContext=e,q(Wi),q(Ui),J(Ui,e)):q(Wi),J(Wi,n)}var $i=null,ea=!1,ta=!1;function na(e){$i===null?$i=[e]:$i.push(e)}function ra(e){ea=!0,na(e)}function ia(){if(!ta&&$i!==null){ta=!0;var e=0,t=G;try{var n=$i;for(G=1;e>=o,i-=o,fa=1<<32-xt(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(r,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(r,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(r,d),Y&&ma(r,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Y&&ma(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Y&&ma(a,g),u}for(h=i(a,h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Y&&ma(a,g),u}function _(e,r,i,o){if(typeof i==`object`&&i&&i.type===E&&i.key===null&&(i=i.props.children),typeof i==`object`&&i){switch(i.$$typeof){case w:a:{for(var c=i.key,l=r;l!==null;){if(l.key===c){if(c=i.type,c===E){if(l.tag===7){n(e,l.sibling),r=a(l,i.props.children),r.return=e,e=r;break a}}else if(l.elementType===c||typeof c==`object`&&c&&c.$$typeof===F&&Na(c)===l.type){n(e,l.sibling),r=a(l,i.props),r.ref=ja(e,l,i),r.return=e,e=r;break a}n(e,l);break}t(e,l),l=l.sibling}i.type===E?(r=Zl(i.props.children,e.mode,o,i.key),r.return=e,e=r):(o=Xl(i.type,i.key,i.props,null,e.mode,o),o.ref=ja(e,r,i),o.return=e,e=o)}return s(e);case T:a:{for(l=i.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),r=a(r,i.children||[]),r.return=e,e=r;break a}n(e,r);break}t(e,r),r=r.sibling}r=eu(i,e.mode,o),r.return=e,e=r}return s(e);case F:return l=i._init,_(e,r,l(i._payload),o)}if(he(i))return h(e,r,i,o);if(ee(i))return g(e,r,i,o);Ma(e,i)}return typeof i==`string`&&i!==``||typeof i==`number`?(i=``+i,r!==null&&r.tag===6?(n(e,r.sibling),r=a(r,i),r.return=e,e=r):(n(e,r),r=$l(i,e.mode,o),r.return=e,e=r),s(e)):n(e,r)}return _}var Fa=Pa(!0),Ia=Pa(!1),La=Vi(null),Ra=null,za=null,X=null;function Ba(){X=za=Ra=null}function Va(e){var t=La.current;q(La),e._currentValue=t}function Ha(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Ua(e,t){Ra=e,X=za=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Ns=!0),e.firstContext=null)}function Wa(e){var t=e._currentValue;if(X!==e){if(e={context:e,memoizedValue:t,next:null},za===null){if(Ra===null)throw Error(r(308));za=e,Ra.dependencies={lanes:0,firstContext:e}}else za=za.next=e}return t}var Ga=null;function Ka(e){Ga===null?Ga=[e]:Ga.push(e)}function qa(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ka(t)):(n.next=i.next,i.next=n),t.interleaved=n,Ja(e,r)}function Ja(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ya=!1;function Xa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Za(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Qa(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function $a(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,$&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Ja(e,n)}return i=r.interleaved,i===null?(t.next=t,Ka(r)):(t.next=i.next,i.next=t),r.interleaved=t,Ja(e,n)}function eo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194240)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,It(e,n)}}function to(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function no(e,t,n,r){var i=e.updateQueue;Ya=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane,p=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});a:{var m=e,h=s;switch(f=t,p=n,h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(p,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(p,d,f):m,f==null)break a;d=R({},d,f);break a;case 2:Ya=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=i.effects,f===null?i.effects=[s]:f.push(s))}else p={eventTime:p,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;f=s,s=f.next,f.next=null,i.lastBaseUpdate=f,i.shared.pending=null}}while(1);if(u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Jc|=o,e.lanes=o,e.memoizedState=d}}function ro(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=yo.transition;yo.transition={};try{e(!1),t()}finally{G=n,yo.transition=r}}function os(){return No().memoizedState}function ss(e,t,n){var r=pl(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ls(e))us(t,n);else if(n=qa(e,t,n,r),n!==null){var i=fl();ml(n,e,r,i),ds(n,t,r)}}function cs(e,t,n){var r=pl(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ls(e))us(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Tr(s,o)){var c=t.interleaved;c===null?(i.next=i,Ka(t)):(i.next=c.next,c.next=i),t.interleaved=i;return}}catch{}n=qa(e,t,i,r),n!==null&&(i=fl(),ml(n,e,r,i),ds(n,t,r))}}function ls(e){var t=e.alternate;return e===xo||t!==null&&t===xo}function us(e,t){To=wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ds(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,It(e,n)}}var fs={readContext:Wa,useCallback:Oo,useContext:Oo,useEffect:Oo,useImperativeHandle:Oo,useInsertionEffect:Oo,useLayoutEffect:Oo,useMemo:Oo,useReducer:Oo,useRef:Oo,useState:Oo,useDebugValue:Oo,useDeferredValue:Oo,useTransition:Oo,useMutableSource:Oo,useSyncExternalStore:Oo,useId:Oo,unstable_isNewReconciler:!1},ps={readContext:Wa,useCallback:function(e,t){return Mo().memoizedState=[e,t===void 0?null:t],e},useContext:Wa,useEffect:Yo,useImperativeHandle:function(e,t,n){return n=n==null?null:n.concat([e]),qo(4194308,4,$o.bind(null,t,e),n)},useLayoutEffect:function(e,t){return qo(4194308,4,e,t)},useInsertionEffect:function(e,t){return qo(4,2,e,t)},useMemo:function(e,t){var n=Mo();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Mo();return t=n===void 0?t:n(t),r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ss.bind(null,xo,e),[r.memoizedState,e]},useRef:function(e){var t=Mo();return e={current:e},t.memoizedState=e},useState:Wo,useDebugValue:ts,useDeferredValue:function(e){return Mo().memoizedState=e},useTransition:function(){var e=Wo(!1),t=e[0];return e=as.bind(null,e[1]),Mo().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var i=xo,a=Mo();if(Y){if(n===void 0)throw Error(r(407));n=n()}else{if(n=t(),Vc===null)throw Error(r(349));bo&30||zo(i,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Yo(Vo.bind(null,i,o,e),[e]),i.flags|=2048,Go(9,Bo.bind(null,i,o,n,t),void 0,null),n},useId:function(){var e=Mo(),t=Vc.identifierPrefix;if(Y){var n=pa,r=fa;n=(r&~(1<<32-xt(r)-1)).toString(32)+n,t=`:`+t+`R`+n,n=Eo++,0<\/script>`,e=e.removeChild(e.firstChild)):typeof i.is==`string`?e=c.createElement(n,{is:i.is}):(e=c.createElement(n),n===`select`&&(c=e,i.multiple?c.multiple=!0:i.size&&(c.size=i.size))):e=c.createElementNS(e,n),e[ki]=t,e[Ai]=i,rc(e,t,!1,!1),t.stateNode=e;a:{switch(c=Me(n,i),n){case`dialog`:K(`cancel`,e),K(`close`,e),o=i;break;case`iframe`:case`object`:case`embed`:K(`load`,e),o=i;break;case`video`:case`audio`:for(o=0;o<$r.length;o++)K($r[o],e);o=i;break;case`source`:K(`error`,e),o=i;break;case`img`:case`image`:case`link`:K(`error`,e),K(`load`,e),o=i;break;case`details`:K(`toggle`,e),o=i;break;case`input`:ue(e,i),o=le(e,i),K(`invalid`,e);break;case`option`:o=i;break;case`select`:e._wrapperState={wasMultiple:!!i.multiple},o=R({},i,{value:void 0}),K(`invalid`,e);break;case`textarea`:ve(e,i),o=_e(e,i),K(`invalid`,e);break;default:o=i}for(s in je(n,o),l=o,l)if(l.hasOwnProperty(s)){var u=l[s];s===`style`?ke(e,u):s===`dangerouslySetInnerHTML`?(u=u?u.__html:void 0,u!=null&&we(e,u)):s===`children`?typeof u==`string`?(n!==`textarea`||u!==``)&&Te(e,u):typeof u==`number`&&Te(e,``+u):s!==`suppressContentEditableWarning`&&s!==`suppressHydrationWarning`&&s!==`autoFocus`&&(a.hasOwnProperty(s)?u!=null&&s===`onScroll`&&K(`scroll`,e):u!=null&&S(e,s,u,c))}switch(n){case`input`:oe(e),pe(e,i,!1);break;case`textarea`:oe(e),be(e);break;case`option`:i.value!=null&&e.setAttribute(`value`,``+re(i.value));break;case`select`:e.multiple=!!i.multiple,s=i.value,s==null?i.defaultValue!=null&&ge(e,!!i.multiple,i.defaultValue,!0):ge(e,!!i.multiple,s,!1);break;default:typeof o.onClick==`function`&&(e.onclick=gi)}switch(n){case`button`:case`input`:case`select`:case`textarea`:i=!!i.autoFocus;break a;case`img`:i=!0;break a;default:i=!1}}i&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return sc(t),null;case 6:if(e&&t.stateNode!=null)ac(e,t,e.memoizedProps,i);else{if(typeof i!=`string`&&t.stateNode===null)throw Error(r(166));if(n=co(so.current),co(ao.current),Ea(t)){if(i=t.stateNode,n=t.memoizedProps,i[ki]=t,(s=i.nodeValue!==n)&&(e=va,e!==null))switch(e.tag){case 3:hi(i.nodeValue,n,!!(e.mode&1));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&hi(i.nodeValue,n,!!(e.mode&1))}s&&(t.flags|=4)}else i=(n.nodeType===9?n:n.ownerDocument).createTextNode(i),i[ki]=t,t.stateNode=i}return sc(t),null;case 13:if(q(mo),i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Y&&ya!==null&&t.mode&1&&!(t.flags&128))Da(),Oa(),t.flags|=98560,s=!1;else if(s=Ea(t),i!==null&&i.dehydrated!==null){if(e===null){if(!s)throw Error(r(318));if(s=t.memoizedState,s=s===null?null:s.dehydrated,!s)throw Error(r(317));s[ki]=t}else Oa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;sc(t),s=!1}else ba!==null&&(vl(ba),ba=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(i=i!==null,i!==(e!==null&&e.memoizedState!==null)&&i&&(t.child.flags|=8192,t.mode&1&&(e===null||mo.current&1?Kc===0&&(Kc=3):Ol())),t.updateQueue!==null&&(t.flags|=4),sc(t),null);case 4:return uo(),e===null&&ai(t.stateNode.containerInfo),sc(t),null;case 10:return Va(t.type._context),sc(t),null;case 17:return qi(t.type)&&Ji(),sc(t),null;case 19:if(q(mo),s=t.memoizedState,s===null)return sc(t),null;if(i=!!(t.flags&128),c=s.rendering,c===null){if(i)oc(s,!1);else{if(Kc!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(c=ho(e),c!==null){for(t.flags|=128,oc(s,!1),i=c.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),t.subtreeFlags=0,i=n,n=t.child;n!==null;)s=n,e=i,s.flags&=14680066,c=s.alternate,c===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=c.childLanes,s.lanes=c.lanes,s.child=c.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=c.memoizedProps,s.memoizedState=c.memoizedState,s.updateQueue=c.updateQueue,s.type=c.type,e=c.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return J(mo,mo.current&1|2),t.child}e=e.sibling}s.tail!==null&&W()>el&&(t.flags|=128,i=!0,oc(s,!1),t.lanes=4194304)}}else{if(!i){if(e=ho(c),e!==null){if(t.flags|=128,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oc(s,!0),s.tail===null&&s.tailMode===`hidden`&&!c.alternate&&!Y)return sc(t),null}else 2*W()-s.renderingStartTime>el&&n!==1073741824&&(t.flags|=128,i=!0,oc(s,!1),t.lanes=4194304)}s.isBackwards?(c.sibling=t.child,t.child=c):(n=s.last,n===null?t.child=c:n.sibling=c,s.last=c)}return s.tail===null?(sc(t),null):(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=W(),t.sibling=null,n=mo.current,J(mo,i?n&1|2:n&1),t);case 22:case 23:return wl(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?Wc&1073741824&&(sc(t),t.subtreeFlags&6&&(t.flags|=8192)):sc(t),null;case 24:return null;case 25:return null}throw Error(r(156,t.tag))}function lc(e,t){switch(_a(t),t.tag){case 1:return qi(t.type)&&Ji(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return uo(),q(Wi),q(Ui),_o(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return po(t),null;case 13:if(q(mo),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));Oa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return q(mo),null;case 4:return uo(),null;case 10:return Va(t.type._context),null;case 22:case 23:return wl(),null;case 24:return null;default:return null}}var uc=!1,dc=!1,fc=typeof WeakSet==`function`?WeakSet:Set,Z=null;function pc(e,t){var n=e.ref;if(n!==null){if(typeof n==`function`)try{n(null)}catch(n){Rl(e,t,n)}else n.current=null}}function mc(e,t,n){try{n()}catch(n){Rl(e,t,n)}}var hc=!1;function gc(e,t){if(_i=ln,e=Ar(),jr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(vi={focusedElem:e,selectionRange:n},ln=!1,Z=t;Z!==null;)if(t=Z,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Z=e;else for(;Z!==null;){t=Z;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var g=h.memoizedProps,_=h.memoizedState,v=t.stateNode;v.__reactInternalSnapshotBeforeUpdate=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:gs(t.type,g),_)}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent=``:y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(e){Rl(t,t.return,e)}if(e=t.sibling,e!==null){e.return=t.return,Z=e;break}Z=t.return}return h=hc,hc=!1,h}function _c(e,t,n){var r=t.updateQueue;if(r=r===null?null:r.lastEffect,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&mc(t,n,a)}i=i.next}while(i!==r)}}function vc(e,t){if(t=t.updateQueue,t=t===null?null:t.lastEffect,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function yc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t==`function`?t(e):t.current=e}}function bc(e){var t=e.alternate;t!==null&&(e.alternate=null,bc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ki],delete t[Ai],delete t[Mi],delete t[Ni],delete t[Pi])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function xc(e){return e.tag===5||e.tag===3||e.tag===4}function Sc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Cc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=gi));else if(r!==4&&(e=e.child,e!==null))for(Cc(e,t,n),e=e.sibling;e!==null;)Cc(e,t,n),e=e.sibling}function wc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(wc(e,t,n),e=e.sibling;e!==null;)wc(e,t,n),e=e.sibling}var Tc=null,Ec=!1;function Dc(e,t,n){for(n=n.child;n!==null;)Oc(e,t,n),n=n.sibling}function Oc(e,t,n){if(yt&&typeof yt.onCommitFiberUnmount==`function`)try{yt.onCommitFiberUnmount(vt,n)}catch{}switch(n.tag){case 5:dc||pc(n,t);case 6:var r=Tc,i=Ec;Tc=null,Dc(e,t,n),Tc=r,Ec=i,Tc!==null&&(Ec?(e=Tc,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Tc.removeChild(n.stateNode));break;case 18:Tc!==null&&(Ec?(e=Tc,n=n.stateNode,e.nodeType===8?Ti(e.parentNode,n):e.nodeType===1&&Ti(e,n),sn(e)):Ti(Tc,n.stateNode));break;case 4:r=Tc,i=Ec,Tc=n.stateNode.containerInfo,Ec=!0,Dc(e,t,n),Tc=r,Ec=i;break;case 0:case 11:case 14:case 15:if(!dc&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&mc(n,t,o),i=i.next}while(i!==r)}Dc(e,t,n);break;case 1:if(!dc&&(pc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){Rl(n,t,e)}Dc(e,t,n);break;case 21:Dc(e,t,n);break;case 22:n.mode&1?(dc=(r=dc)||n.memoizedState!==null,Dc(e,t,n),dc=r):Dc(e,t,n);break;default:Dc(e,t,n)}}function kc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new fc),t.forEach(function(t){var r=Hl.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))})}}function Ac(e,t){var n=t.deletions;if(n!==null)for(var i=0;ia&&(a=s),i&=~o}if(i=a,i=W()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Lc(i/1960))-i,10e?16:e,ol===null)var i=!1;else{if(e=ol,ol=null,sl=0,$&6)throw Error(r(331));var a=$;for($|=4,Z=e.current;Z!==null;){var o=Z,s=o.child;if(Z.flags&16){var c=o.deletions;if(c!==null){for(var l=0;lW()-$c?Tl(e,0):Xc|=n),hl(e,t)}function Bl(e,t){t===0&&(e.mode&1?(t=Et,Et<<=1,!(Et&130023424)&&(Et=4194304)):t=1);var n=fl();e=Ja(e,t),e!==null&&(Pt(e,t,n),hl(e,n))}function Vl(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Bl(e,n)}function Hl(e,t){var n=0;switch(e.tag){case 13:var i=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(r(314))}i!==null&&i.delete(t),Bl(e,n)}var Ul=function(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps||Wi.current)Ns=!0;else{if((e.lanes&n)===0&&!(t.flags&128))return Ns=!1,nc(e,t,n);Ns=!!(e.flags&131072)}}else Ns=!1,Y&&t.flags&1048576&&ha(t,ca,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;ec(e,t),e=t.pendingProps;var a=Ki(t,Ui.current);Ua(t,n),a=Ao(null,t,i,e,a,n);var o=jo();return t.flags|=1,typeof a==`object`&&a&&typeof a.render==`function`&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,qi(i)?(o=!0,Zi(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,Xa(t),a.updater=vs,t.stateNode=a,a._reactInternals=t,Ss(t,i,e,n),t=Hs(null,t,i,!0,o,n)):(t.tag=0,Y&&o&&ga(t),Ps(null,t,a,n),t=t.child),t;case 16:i=t.elementType;a:{switch(ec(e,t),e=t.pendingProps,a=i._init,i=a(i._payload),t.type=i,a=t.tag=Jl(i),e=gs(i,e),a){case 0:t=Bs(null,t,i,e,n);break a;case 1:t=Vs(null,t,i,e,n);break a;case 11:t=Fs(null,t,i,e,n);break a;case 14:t=Is(null,t,i,gs(i.type,e),n);break a}throw Error(r(306,i,``))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),Bs(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),Vs(e,t,i,a,n);case 3:a:{if(Us(t),e===null)throw Error(r(387));i=t.pendingProps,o=t.memoizedState,a=o.element,Za(e,t),no(t,i,null,n);var s=t.memoizedState;if(i=s.element,o.isDehydrated){if(o={element:i,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=Cs(Error(r(423)),t),t=Ws(e,t,i,n,a);break a}if(i!==a){a=Cs(Error(r(424)),t),t=Ws(e,t,i,n,a);break a}for(ya=Ei(t.stateNode.containerInfo.firstChild),va=t,Y=!0,ba=null,n=Ia(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Oa(),i===a){t=tc(e,t,n);break a}Ps(e,t,i,n)}t=t.child}return t;case 5:return fo(t),e===null&&wa(t),i=t.type,a=t.pendingProps,o=e===null?null:e.memoizedProps,s=a.children,yi(i,a)?s=null:o!==null&&yi(i,o)&&(t.flags|=32),zs(e,t),Ps(e,t,s,n),t.child;case 6:return e===null&&wa(t),null;case 13:return qs(e,t,n);case 4:return lo(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Fa(t,null,i,n):Ps(e,t,i,n),t.child;case 11:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),Fs(e,t,i,a,n);case 7:return Ps(e,t,t.pendingProps,n),t.child;case 8:return Ps(e,t,t.pendingProps.children,n),t.child;case 12:return Ps(e,t,t.pendingProps.children,n),t.child;case 10:a:{if(i=t.type._context,a=t.pendingProps,o=t.memoizedProps,s=a.value,J(La,i._currentValue),i._currentValue=s,o!==null){if(Tr(o.value,s)){if(o.children===a.children&&!Wi.current){t=tc(e,t,n);break a}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var c=o.dependencies;if(c!==null){s=o.child;for(var l=c.firstContext;l!==null;){if(l.context===i){if(o.tag===1){l=Qa(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Ha(o.return,n,t),c.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(r(341));s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),Ha(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}}Ps(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,i=t.pendingProps.children,Ua(t,n),a=Wa(a),i=i(a),t.flags|=1,Ps(e,t,i,n),t.child;case 14:return i=t.type,a=gs(i,t.pendingProps),a=gs(i.type,a),Is(e,t,i,a,n);case 15:return Ls(e,t,t.type,t.pendingProps,n);case 17:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),ec(e,t),t.tag=1,qi(i)?(e=!0,Zi(t)):e=!1,Ua(t,n),bs(t,i,a),Ss(t,i,a,n),Hs(null,t,i,!0,e,n);case 19:return $s(e,t,n);case 22:return Rs(e,t,n)}throw Error(r(156,t.tag))};function Wl(e,t){return ct(e,t)}function Gl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Kl(e,t,n,r){return new Gl(e,t,n,r)}function ql(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Jl(e){if(typeof e==`function`)return+!!ql(e);if(e!=null){if(e=e.$$typeof,e===j)return 11;if(e===P)return 14}return 2}function Yl(e,t){var n=e.alternate;return n===null?(n=Kl(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Xl(e,t,n,i,a,o){var s=2;if(i=e,typeof e==`function`)ql(e)&&(s=1);else if(typeof e==`string`)s=5;else a:switch(e){case E:return Zl(n.children,a,o,t);case D:s=8,a|=8;break;case O:return e=Kl(12,n,t,a|2),e.elementType=O,e.lanes=o,e;case M:return e=Kl(13,n,t,a),e.elementType=M,e.lanes=o,e;case N:return e=Kl(19,n,t,a),e.elementType=N,e.lanes=o,e;case I:return Ql(n,a,o,t);default:if(typeof e==`object`&&e)switch(e.$$typeof){case k:s=10;break a;case A:s=9;break a;case j:s=11;break a;case P:s=14;break a;case F:s=16,i=null;break a}throw Error(r(130,e==null?e:typeof e,``))}return t=Kl(s,n,t,a),t.elementType=e,t.type=i,t.lanes=o,t}function Zl(e,t,n,r){return e=Kl(7,e,r,t),e.lanes=n,e}function Ql(e,t,n,r){return e=Kl(22,e,r,t),e.elementType=I,e.lanes=n,e.stateNode={isHidden:!1},e}function $l(e,t,n){return e=Kl(6,e,null,t),e.lanes=n,e}function eu(e,t,n){return t=Kl(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function tu(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Nt(0),this.expirationTimes=Nt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Nt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function nu(e,t,n,r,i,a,o,s,c){return e=new tu(e,t,n,s,c),t===1?(t=1,!0===a&&(t|=8)):t=0,a=Kl(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Xa(a),e}function ru(e,t,n){var r=3{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=m();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot})),g=c(u(),1),_=h();function v(e,t=`Request failed`){let n=(e||``).trim();if(!n)return t;try{let e=JSON.parse(n).detail;if(typeof e==`string`&&e.trim())return e;if(Array.isArray(e)){let t=e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&`msg`in e?String(e.msg):``).filter(Boolean);if(t.length)return t.join(`; `)}}catch{}return n}async function y(e,t){let n=await fetch(e,{...t,headers:{"Content-Type":`application/json`,...t?.headers||{}}});if(!n.ok){let e=await n.text();throw Error(v(e,n.statusText||`Request failed`))}return n.json()}var b=[`github_token`,`gitlab_token`,`gitlab_oauth_client_secret`,`bitbucket_token`,`bitbucket_oauth_client_secret`,`ai_api_key`,`ai_model`,`ai_base_url`],x={health:()=>y(`/api/health`),settings:()=>y(`/api/settings`),saveSettings:e=>{let t={...e};for(let e of b)t[e]===``&&delete t[e];return y(`/api/settings`,{method:`PUT`,body:JSON.stringify(t)})},repos:()=>y(`/api/repos`),browse:e=>y(`/api/fs${e?`?path=${encodeURIComponent(e)}`:``}`),gitRefs:(e,t=50)=>y(`/api/git/refs?repo_path=${encodeURIComponent(e)}&limit=${t}`),index:(e,t=!0)=>y(`/api/index`,{method:`POST`,body:JSON.stringify({repo_path:e,incremental:t})}),indexStatus:e=>y(`/api/index?repo_path=${encodeURIComponent(e)}`),indexProgress:e=>y(`/api/index/progress?repo_path=${encodeURIComponent(e)}`),architecture:(e,t=!0)=>y(`/api/architecture?repo_path=${encodeURIComponent(e)}&graph=${t?`1`:`0`}`),architectureGraph:e=>y(`/api/architecture/graph?repo_path=${encodeURIComponent(e)}`),review:(e,t,n,r=!0,i=!1)=>y(`/api/review`,{method:`POST`,body:JSON.stringify({repo_path:e,base:t,head:n||null,reindex:r,incremental:!0,three_dot:!0,dirty:i})}),whatIf:(e,t)=>y(`/api/whatif`,{method:`POST`,body:JSON.stringify({repo_path:e,node_id:t})}),reviewPr:(e,t,n,r)=>y(`/api/prs/review`,{method:`POST`,body:JSON.stringify({provider:e,repo:t,number:n,repo_path:r||null})}),init:(e,t=!1)=>y(`/api/init`,{method:`POST`,body:JSON.stringify({repo_path:e,overwrite:t})}),postComment:(e,t,n,r)=>y(`/api/prs/comment`,{method:`POST`,body:JSON.stringify({provider:e,repo:t,number:n,markdown:r})}),graph:(e,t=`full`)=>y(`/api/graph?repo_path=${encodeURIComponent(e)}&scope=${t}`),prs:(e,t,n=`open`,r)=>y(`/api/prs`,{method:`POST`,body:JSON.stringify({provider:e,repo:t,state:n,repo_path:r||null})}),scmRepos:e=>y(`/api/scm/repos?provider=${encodeURIComponent(e)}`),oauthStatus:()=>y(`/api/oauth/status`),githubOAuthStart:()=>y(`/api/oauth/github/start`,{method:`POST`,body:`{}`}),githubOAuthPoll:e=>y(`/api/oauth/github/poll`,{method:`POST`,body:JSON.stringify({flow_id:e})}),bitbucketOAuthStart:()=>y(`/api/oauth/bitbucket/start`),gitlabOAuthStart:()=>y(`/api/oauth/gitlab/start`),oauthDisconnect:e=>y(`/api/oauth/disconnect`,{method:`POST`,body:JSON.stringify({provider:e})}),residual:e=>y(`/api/ai/residual`,{method:`POST`,body:JSON.stringify({review:e})}),reviews:e=>y(`/api/reviews?repo_path=${encodeURIComponent(e)}`),getReview:(e,t)=>y(`/api/reviews/${encodeURIComponent(t)}?repo_path=${encodeURIComponent(e)}`),reviewDiff:(e,t,n)=>y(`/api/reviews/${encodeURIComponent(t)}/diff?repo_path=${encodeURIComponent(e)}&other=${encodeURIComponent(n)}`),config:e=>y(`/api/config?repo_path=${encodeURIComponent(e)}`),saveConfig:(e,t)=>y(`/api/config`,{method:`PUT`,body:JSON.stringify({repo_path:e,...t})}),addWaiver:(e,t,n,r)=>y(`/api/config/waiver`,{method:`POST`,body:JSON.stringify({repo_path:e,rule:t,node:n||null,reason:r||``})}),marks:(e,t)=>y(`/api/marks?repo_path=${encodeURIComponent(e)}${t?`&review_id=${encodeURIComponent(t)}`:``}`),architectureHealth:e=>y(`/api/architecture/health?repo_path=${encodeURIComponent(e)}`),workspaceStatus:e=>y(`/api/workspace/status?repo_path=${encodeURIComponent(e)}`),openEditor:(e,t,n,r)=>y(`/api/open`,{method:`POST`,body:JSON.stringify({repo_path:e,path:t,line:n||null,editor:r||null})}),exportHtml:e=>fetch(`/api/export/html`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({review:e})}).then(async e=>{if(!e.ok){let t=await e.text();throw Error(v(t,e.statusText||`Request failed`))}return e.blob()}),isolate:(e,t,n,r)=>y(`/api/graph/isolate`,{method:`POST`,body:JSON.stringify({nodes:e,edges:t,source_id:n,target_id:r||null})})},S=o((e=>{var t=u(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),C=o(((e,t)=>{t.exports=S()})),w=C();function T(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)||(e.hint||``).toLowerCase().includes(n)||(e.group||``).toLowerCase().includes(n)):e}function E({open:e,actions:t,onClose:n}){let[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(0),s=(0,g.useRef)(null),c=(0,g.useMemo)(()=>T(t,r),[t,r]);if((0,g.useEffect)(()=>{if(!e)return;i(``),o(0);let t=window.setTimeout(()=>s.current?.focus(),0);return()=>window.clearTimeout(t)},[e]),(0,g.useEffect)(()=>{o(0)},[r]),!e)return null;let l=c.slice(0,40),u=l[Math.min(a,Math.max(l.length-1,0))],d=e=>{e&&(n(),e.run())};return(0,w.jsx)(`div`,{className:`palette-scrim`,"data-testid":`command-palette`,onClick:e=>{e.target===e.currentTarget&&n()},children:(0,w.jsxs)(`div`,{className:`palette`,role:`dialog`,"aria-label":`Command palette`,children:[(0,w.jsx)(`input`,{ref:s,"data-testid":`command-palette-input`,placeholder:`Jump to a node, run a review, toggle overlays…`,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Escape`?(e.preventDefault(),n()):e.key===`ArrowDown`?(e.preventDefault(),o(e=>Math.min(Math.max(l.length-1,0),e+1))):e.key===`ArrowUp`?(e.preventDefault(),o(e=>Math.max(0,e-1))):e.key===`Enter`&&(e.preventDefault(),d(u))}}),(0,w.jsxs)(`ul`,{children:[l.length===0?(0,w.jsx)(`li`,{className:`muted`,children:`No matches`}):null,l.map((e,t)=>(0,w.jsx)(`li`,{children:(0,w.jsxs)(`button`,{type:`button`,className:t===a?`active`:``,onMouseEnter:()=>o(t),onClick:()=>d(e),children:[(0,w.jsx)(`span`,{children:e.label}),e.hint?(0,w.jsx)(`span`,{className:`muted`,children:e.hint}):null]})},e.id))]}),(0,w.jsxs)(`div`,{className:`palette-foot muted`,children:[(0,w.jsx)(`kbd`,{children:`↑`}),(0,w.jsx)(`kbd`,{children:`↓`}),` move · `,(0,w.jsx)(`kbd`,{children:`Enter`}),` run · `,(0,w.jsx)(`kbd`,{children:`Esc`}),` close`]})]})})}function D({config:e,busy:t,onSave:n,onWaiver:r}){let[i,a]=(0,g.useState)(e),[o,s]=(0,g.useState)(e.available_rules[0]||``),[c,l]=(0,g.useState)(``),[u,d]=(0,g.useState)(``);(0,g.useEffect)(()=>{a(e)},[e]);let f=Object.entries(i.contexts||{}),p=(e,t,n)=>{let r=i.contexts[e];if(!r)return;let o=e=>e.split(`,`).map(e=>e.trim()).filter(Boolean);a({...i,contexts:{...i.contexts,[e]:{...r,[t]:t===`name`?n:o(n)}}})},m=(e,t)=>{let n=t.trim();if(!n||n===e)return;let{[e]:r,...o}=i.contexts;r&&a({...i,contexts:{...o,[n]:{...r,name:n}}})},h=()=>{let e=1;for(;i.contexts[`context-${e}`];)e+=1;let t=`context-${e}`;a({...i,contexts:{...i.contexts,[t]:{name:t,django_apps:[],react:[],public_api:[],owners:[]}}})},_=e=>{let{[e]:t,...n}=i.contexts;a({...i,contexts:n})},v=e=>{let t=i.rules.includes(e);a({...i,rules:t?i.rules.filter(t=>t!==e):[...i.rules,e]})};return(0,w.jsxs)(`div`,{className:`config-editor`,"data-testid":`config-editor`,children:[(0,w.jsx)(`p`,{className:`muted`,children:i.exists?i.path:`No loadpath.yml yet — saving writes one at the repo root.`}),f.map(([e,t])=>(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Context `,(0,w.jsx)(`span`,{className:`count`,children:e})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Name`}),(0,w.jsx)(`input`,{defaultValue:e,"data-testid":`config-context-name-${e}`,onBlur:t=>m(e,t.target.value)})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Django apps`}),(0,w.jsx)(`input`,{value:(t.django_apps||[]).join(`, `),onChange:t=>p(e,`django_apps`,t.target.value)})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`React folders`}),(0,w.jsx)(`input`,{value:(t.react||[]).join(`, `),onChange:t=>p(e,`react`,t.target.value)})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Public API`}),(0,w.jsx)(`input`,{value:(t.public_api||[]).join(`, `),onChange:t=>p(e,`public_api`,t.target.value)})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Owners`}),(0,w.jsx)(`input`,{value:(t.owners||[]).join(`, `),onChange:t=>p(e,`owners`,t.target.value)})]}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>_(e),children:`Remove context`})]},e)),(0,w.jsx)(`div`,{className:`btn-row`,children:(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`config-add-context`,onClick:h,children:`Add context`})}),(0,w.jsxs)(`details`,{className:`section`,children:[(0,w.jsxs)(`summary`,{children:[`Rules `,(0,w.jsx)(`span`,{className:`count`,children:i.rules.length})]}),(i.available_rules.length?i.available_rules:i.rules).map(e=>(0,w.jsxs)(`label`,{className:`check-row`,children:[(0,w.jsx)(`input`,{type:`checkbox`,checked:i.rules.includes(e),onChange:()=>v(e)}),e]},e))]}),(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Waivers `,(0,w.jsx)(`span`,{className:`count`,children:(i.waivers||[]).length})]}),(i.waivers||[]).map((e,t)=>(0,w.jsxs)(`div`,{className:`muted`,children:[(0,w.jsx)(`strong`,{children:e.rule}),e.node?` · ${e.node}`:``,e.reason?` — ${e.reason}`:``]},`${e.rule}:${e.node}:${t}`)),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Rule`}),(0,w.jsx)(`select`,{value:o,onChange:e=>s(e.target.value),children:(i.available_rules.length?i.available_rules:i.rules).map(e=>(0,w.jsx)(`option`,{value:e,children:e},e))})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Node id (optional)`}),(0,w.jsx)(`input`,{value:c,onChange:e=>l(e.target.value),placeholder:`django.view:…`})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Reason`}),(0,w.jsx)(`input`,{value:u,onChange:e=>d(e.target.value)})]}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`config-add-waiver`,disabled:t||!o,onClick:()=>r?.(o,c,u),children:`Add waiver`})]}),(0,w.jsx)(`div`,{className:`btn-row`,children:(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`config-save`,disabled:t,onClick:()=>n(i),children:`Save loadpath.yml`})})]})}function O(e){return e.replaceAll(`_`,` `)}function k(e){return e.replaceAll(`_`,` `)}function A(e){return e.split(`.`).pop()||e}function j(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function M(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}function N(e){return e.replace(/([/\\._:@-])/g,`$1​`)}function P({className:e,children:t}){return(0,w.jsx)(`svg`,{className:e,width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:t})}function F({className:e}){return(0,w.jsxs)(P,{className:e,children:[(0,w.jsx)(`path`,{d:`M3 3.5h6.5L13 7v5.5H3z`}),(0,w.jsx)(`path`,{d:`M9.5 3.5V7H13`}),(0,w.jsx)(`path`,{d:`M5.5 9.5h5M5.5 11.5h3.5`})]})}function I({className:e}){return(0,w.jsxs)(P,{className:e,children:[(0,w.jsx)(`rect`,{x:`2.5`,y:`2.5`,width:`4.5`,height:`4.5`,rx:`0.8`}),(0,w.jsx)(`rect`,{x:`9`,y:`2.5`,width:`4.5`,height:`4.5`,rx:`0.8`}),(0,w.jsx)(`rect`,{x:`2.5`,y:`9`,width:`4.5`,height:`4.5`,rx:`0.8`}),(0,w.jsx)(`rect`,{x:`9`,y:`9`,width:`4.5`,height:`4.5`,rx:`0.8`})]})}function L({className:e}){return(0,w.jsxs)(P,{className:e,children:[(0,w.jsx)(`circle`,{cx:`4`,cy:`8`,r:`1.6`}),(0,w.jsx)(`circle`,{cx:`12`,cy:`4`,r:`1.6`}),(0,w.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`}),(0,w.jsx)(`path`,{d:`M5.5 7.2 10.4 4.8M5.5 8.8 10.4 11.2`})]})}function ee({className:e}){return(0,w.jsxs)(P,{className:e,children:[(0,w.jsx)(`circle`,{cx:`4.5`,cy:`4`,r:`1.4`}),(0,w.jsx)(`circle`,{cx:`4.5`,cy:`12`,r:`1.4`}),(0,w.jsx)(`circle`,{cx:`11.5`,cy:`12`,r:`1.4`}),(0,w.jsx)(`path`,{d:`M4.5 5.5v5M4.5 8h4.2a3 3 0 0 1 3 3`})]})}function R({className:e}){return(0,w.jsxs)(P,{className:e,children:[(0,w.jsx)(`circle`,{cx:`8`,cy:`8`,r:`2.1`}),(0,w.jsx)(`path`,{d:`M8 2.5v1.6M8 11.9v1.6M2.5 8h1.6M11.9 8h1.6M4.1 4.1l1.1 1.1M10.8 10.8l1.1 1.1M11.9 4.1l-1.1 1.1M5.2 10.8l-1.1 1.1`})]})}function z({className:e}){return(0,w.jsx)(P,{className:e,children:(0,w.jsx)(`path`,{d:`M2.5 4.5h4L8 6h5.5v6.5h-11z`})})}function B({className:e}){return(0,w.jsx)(P,{className:e,children:(0,w.jsx)(`path`,{d:`M4 6.5 8 10.5 12 6.5`})})}function V(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n{}};function H(){for(var e=0,t=arguments.length,n={},r;e=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}U.prototype=H.prototype={constructor:U,on:function(e,t){var n=this._,r=ne(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a0)for(var n=Array(i),r=0,i,a;r=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ae.hasOwnProperty(t)?{space:ae[t],local:e}:e}function se(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function ce(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function le(e){var t=oe(e);return(t.local?ce:se)(t)}function ue(){}function de(e){return e==null?ue:function(){return this.querySelector(e)}}function fe(e){typeof e!=`function`&&(e=de(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i=v&&(v=_+1);!(b=g[v])&&++v=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function He(e){e||=Ue;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;at?1:e>=t?0:NaN}function We(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Ge(){return Array.from(this)}function Ke(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?it:typeof t==`function`?ot:at)(e,t,n??``)):ct(this.node(),e)}function ct(e,t){return e.style.getPropertyValue(t)||rt(e).getComputedStyle(e,null).getPropertyValue(t)}function lt(e){return function(){delete this[e]}}function ut(e,t){return function(){this[e]=t}}function dt(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function W(e,t){return arguments.length>1?this.each((t==null?lt:typeof t==`function`?dt:ut)(e,t)):this.node()[e]}function ft(e){return e.trim().split(/^|\s+/)}function pt(e){return e.classList||new mt(e)}function mt(e){this._node=e,this._names=ft(e.getAttribute(`class`)||``)}mt.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function ht(e,t){for(var n=pt(e),r=-1,i=t.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Ut(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n()=>e;function fn(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}fn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function pn(e){return!e.ctrlKey&&!e.button}function mn(){return this.parentNode}function hn(e,t){return t??{x:e.x,y:e.y}}function gn(){return navigator.maxTouchPoints||`ontouchstart`in this}function _n(){var e=pn,t=mn,n=hn,r=gn,i={},a=H(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,an).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(tn(n.view).on(`mousemove.drag`,m,on).on(`mouseup.drag`,h,on),ln(n.view),sn(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(cn(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){tn(e.view).on(`mousemove.drag mouseup.drag`,null),un(e.view,l),cn(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Bn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Bn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Dn.exec(e))?new Un(t[1],t[2],t[3],1):(t=On.exec(e))?new Un(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kn.exec(e))?Bn(t[1],t[2],t[3],t[4]):(t=An.exec(e))?Bn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=jn.exec(e))?Xn(t[1],t[2]/100,t[3]/100,1):(t=Mn.exec(e))?Xn(t[1],t[2]/100,t[3]/100,t[4]):Nn.hasOwnProperty(e)?zn(Nn[e]):e===`transparent`?new Un(NaN,NaN,NaN,0):null}function zn(e){return new Un(e>>16&255,e>>8&255,e&255,1)}function Bn(e,t,n,r){return r<=0&&(e=t=n=NaN),new Un(e,t,n,r)}function Vn(e){return e instanceof bn||(e=Rn(e)),e?(e=e.rgb(),new Un(e.r,e.g,e.b,e.opacity)):new Un}function Hn(e,t,n,r){return arguments.length===1?Vn(e):new Un(e,t,n,r??1)}function Un(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}vn(Un,Hn,yn(bn,{brighter(e){return e=e==null?Sn:Sn**+e,new Un(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?xn:xn**+e,new Un(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Un(Jn(this.r),Jn(this.g),Jn(this.b),qn(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:Wn,formatHex:Wn,formatHex8:Gn,formatRgb:Kn,toString:Kn}));function Wn(){return`#${Yn(this.r)}${Yn(this.g)}${Yn(this.b)}`}function Gn(){return`#${Yn(this.r)}${Yn(this.g)}${Yn(this.b)}${Yn((isNaN(this.opacity)?1:this.opacity)*255)}`}function Kn(){let e=qn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Jn(this.r)}, ${Jn(this.g)}, ${Jn(this.b)}${e===1?`)`:`, ${e})`}`}function qn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Jn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yn(e){return e=Jn(e),(e<16?`0`:``)+e.toString(16)}function Xn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $n(e,t,n,r)}function Zn(e){if(e instanceof $n)return new $n(e.h,e.s,e.l,e.opacity);if(e instanceof bn||(e=Rn(e)),!e)return new $n;if(e instanceof $n)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new $n(o,s,c,e.opacity)}function Qn(e,t,n,r){return arguments.length===1?Zn(e):new $n(e,t,n,r??1)}function $n(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}vn($n,Qn,yn(bn,{brighter(e){return e=e==null?Sn:Sn**+e,new $n(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?xn:xn**+e,new $n(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Un(nr(e>=240?e-240:e+120,i,r),nr(e,i,r),nr(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new $n(er(this.h),tr(this.s),tr(this.l),qn(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(){let e=qn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${er(this.h)}, ${tr(this.s)*100}%, ${tr(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function er(e){return e=(e||0)%360,e<0?e+360:e}function tr(e){return Math.max(0,Math.min(1,e||0))}function nr(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var rr=e=>()=>e;function ir(e,t){return function(n){return e+n*t}}function ar(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function or(e){return(e=+e)==1?sr:function(t,n){return n-t?ar(t,n,e):rr(isNaN(t)?n:t)}}function sr(e,t){var n=t-e;return n?ir(e,n):rr(isNaN(e)?t:e)}var cr=(function e(t){var n=or(t);function r(e,t){var r=n((e=Hn(e)).r,(t=Hn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=sr(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function lr(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:pr(r,i)})),n=gr.lastIndex;return n180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:pr(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:pr(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:pr(e,n)},{i:s-2,x:pr(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t=0&&e._call.call(void 0,t),e=e._next;--Fr}function Zr(){Hr=(Vr=Wr.now())+Ur,Fr=Ir=0;try{Xr()}finally{Fr=0,$r(),Hr=0}}function Qr(){var e=Wr.now(),t=e-Vr;t>Rr&&(Ur-=t,Vr=e)}function $r(){for(var e,t=zr,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:zr=n);Br=e,ei(r)}function ei(e){Fr||(Ir&&=clearTimeout(Ir),e-Hr>24?(e<1/0&&(Ir=setTimeout(Zr,e-Wr.now()-Ur)),Lr&&=clearInterval(Lr)):(Lr||=(Vr=Wr.now(),setInterval(Qr,Rr)),Fr=1,Gr(Zr)))}function ti(e,t,n){var r=new Jr;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var ni=H(`start`,`end`,`cancel`,`interrupt`),K=[];function ri(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;si(e,n,{name:t,index:r,group:i,on:ni,tween:K,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function ii(e,t){var n=oi(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function ai(e,t){var n=oi(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function oi(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function si(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Yr(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return ti(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function li(e){return this.each(function(){ci(this,e)})}function ui(e,t){var n,r;return function(){var i=ai(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o=0&&(e=e.slice(0,t)),!e||e===`start`})}function Bi(e,t,n){var r,i,a=zi(t)?ii:ai;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Vi(e,t){var n=this._id;return arguments.length<2?oi(this.node(),n).on.on(e):this.each(Bi(n,e,t))}function q(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function J(){return this.on(`end.remove`,q(this._id))}function Hi(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=de(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o()=>e;function va(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ya(e,t,n){this.k=e,this.x=t,this.y=n}ya.prototype={constructor:ya,scale:function(e){return e===1?this:new ya(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ya(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Y=new ya(1,0,0);ba.prototype=ya.prototype;function ba(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Y;return e.__zoom}function xa(e){e.stopImmediatePropagation()}function Sa(e){e.preventDefault(),e.stopImmediatePropagation()}function Ca(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function wa(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Ta(){return this.__zoom||Y}function Ea(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Da(){return navigator.maxTouchPoints||`ontouchstart`in this}function Oa(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function ka(){var e=Ca,t=wa,n=Oa,r=Ea,i=Da,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Pr,l=H(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Ta).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Ta),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Y.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new ya(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new ya(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new ya(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=tn(this.that).datum();l.call(e,this.that,new va(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=rn(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],ci(this),s.start();Sa(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=tn(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=rn(t,i),l=t.clientX,u=t.clientY;ln(t.view),xa(t),a.mouse=[c,this.__zoom.invert(c)],ci(this),a.start();function d(e){if(Sa(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=rn(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),un(e.view,a.moved),Sa(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=rn(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Sa(r),s>0?tn(this).transition().duration(s).call(x,d,c,r):tn(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(xa(t),s=0;s`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},ja=[[-1/0,-1/0],[1/0,1/0]],Ma=[`Enter`,` `,`Escape`],Na={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Pa;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Pa||={});var Fa;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Fa||={});var Ia;(function(e){e.Partial=`partial`,e.Full=`full`})(Ia||={});var La={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Ra;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Ra||={});var za;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(za||={});var X;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(X||={});var Ba={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function Va(e){return e===null?null:e?`valid`:`invalid`}var Ha=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Ua=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),Wa=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Ga=(e,t=[0,0])=>{let{width:n,height:r}=Eo(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Ka=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):Wa(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,ao(e,lo(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?so(r):{x:0,y:0,width:0,height:0}},qa=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=ao(n,lo(e)),r=!0)}),r?so(n):{x:0,y:0,width:0,height:0}},Ja=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=fo(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Ya=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function Xa(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=Eo(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function Za({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=Co(qa(Xa(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function Qa({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,Aa.error005());else{let{width:e,height:t}=Eo(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&To(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=To(d)?to(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Aa.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function $a({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Ya(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var eo=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),to=(e={x:0,y:0},t,n)=>({x:eo(e.x,t[0][0],t[1][0]-(n?.width??0)),y:eo(e.y,t[0][1],t[1][1]-(n?.height??0))});function no(e,t,n){let{width:r,height:i}=Eo(n),{x:a,y:o}=n.internals.positionAbsolute;return to(e,[[a,o],[a+r,o+i]],t)}var ro=(e,t,n)=>en?-eo(Math.abs(e-n),1,t)/t:0,io=(e,t,n=15,r=40)=>[ro(e.x,r,t.width-r)*n,ro(e.y,r,t.height-r)*n],ao=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),oo=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),so=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),co=(e,t=[0,0])=>{let{x:n,y:r}=Wa(e)?e.internals.positionAbsolute:Ga(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},lo=(e,t=[0,0])=>{let{x:n,y:r}=Wa(e)?e.internals.positionAbsolute:Ga(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},uo=(e,t)=>so(ao(oo(e),oo(t))),fo=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},po=(e,t)=>fo(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),mo=e=>ho(e.width)&&ho(e.height)&&ho(e.x)&&ho(e.y),ho=e=>!isNaN(e)&&isFinite(e),go=(e,t)=>(e,t)=>{},_o=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),vo=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?_o(s,o):s},yo=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function bo(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function xo(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=bo(e,n),i=bo(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=bo(e.top??e.y??0,n),i=bo(e.bottom??e.y??0,n),a=bo(e.left??e.x??0,t),o=bo(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function So(e,t,n,r,i,a){let{x:o,y:s}=yo(e,[t,n,r]),{x:c,y:l}=yo({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var Co=(e,t,n,r,i,a)=>{let o=xo(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=eo(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=So(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},wo=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function To(e){return e!=null&&e!==`parent`}function Eo(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Do(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Oo(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function ko(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Ao(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function jo(e){return{...Na,...e||{}}}function Mo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Ro(e),s=vo({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?_o(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var No=e=>({width:e.offsetWidth,height:e.offsetHeight}),Po=e=>e?.getRootNode?.()||window?.document,Fo=[`INPUT`,`SELECT`,`TEXTAREA`];function Io(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?Fo.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Lo=e=>`clientX`in e,Ro=(e,t)=>{let n=Lo(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},zo=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...No(t)}})};function Bo({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Vo(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ho({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case X.Left:return[t-Vo(t-r,a),n];case X.Right:return[t+Vo(r-t,a),n];case X.Top:return[t,n-Vo(n-i,a)];case X.Bottom:return[t,n+Vo(i-n,a)]}}function Uo({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top,curvature:o=.25}){let[s,c]=Ho({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Ho({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Bo({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function Wo({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n0}var qo=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Jo=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Yo=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Aa.error006()),t;let r=n.getEdgeId||qo,i;return i=Ha(e)?{...e}:{...e,id:r(e)},Jo(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Xo({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Wo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Zo={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},Qo=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.Right?e.xMath.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function es({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:i,offset:a,stepPosition:o}){let s=Zo[t],c=Zo[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=Qo({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=Wo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function ts(e,t,n,r){let i=Math.min($o(e,t)/2,$o(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.xe.id===t):e[0])||null}function cs(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function ls(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=cs(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var us=1e3,ds=10,fs={nodeOrigin:[0,0],nodeExtent:ja,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},ps={...fs,checkEquality:!0};function ms(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function hs(e,t,n){let r=ms(fs,n);for(let n of e.values())if(n.parentId)bs(n,e,t,r);else{let e=to(Ga(n,r.nodeOrigin),To(n.extent)?n.extent:r.nodeExtent,Eo(n));n.internals.positionAbsolute=e}}function gs(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function _s(e){return e===`manual`}function vs(e,t,n,r={}){let i=ms(ps,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!_s(i.zIndexMode)?us:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=to(Ga(u,i.nodeOrigin),To(u.extent)?u.extent:i.nodeExtent,Eo(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:gs(u,e),z:xs(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&bs(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function ys(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function bs(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=ms(fs,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ys(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*ds),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Ss(e,u,o,s,a&&!_s(c)?us:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function xs(e,t,n){let r=ho(e.zIndex)?e.zIndex:0;return _s(n)?r:r+(e.selected?t:0)}function Ss(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=Eo(e),l=Ga(e,n),u=To(e.extent)?to(l,e.extent,c):l,d=to({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=no(d,c,t));let f=xs(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Cs(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=uo(a.get(n.parentId)?.expandedRect??co(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=Eo(a),l=a.origin??r,u=t.x0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width0){let e=Cs(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Ts({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Es(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Ds(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Es(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Es(`target`,s,c,e,i,o),t.set(r.id,r)}}function Os(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Os(n,t):!1}function ks(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function As(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Os(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function js({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Ms({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=_o(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Ns({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=tn(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?oo(qa(s)):null,x=v&&l?Ms({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:_o(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=Qa({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=js({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=io(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=Mo(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=As(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=js({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=_n().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=Mo(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Ro(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=Mo(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=Ro(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=Ro(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=js({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!ks(t,`.${g}`,v))&&(!_||ks(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Ps(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())po(i,co(e))>0&&r.push(e);return r}var Fs=250;function Is(e,t,n,r){let i=[],a=1/0,o=Ps(e,n,t+Fs);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=os(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function Ls(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...os(o,c,c.position,!0)}:c}function Rs(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function zs(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Bs=()=>!0;function Vs(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Bs,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=Po(e.target),E=0,D,{x:O,y:k}=Ro(e),A=Rs(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Ls(i,A,r,c,t);if(!N)return;let P=Ro(e,j),F=!1,I=null,L=!1,ee=null;function R(){if(!u||!j)return;let[e,t]=io(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(R)}let z={...N,nodeId:i,type:A,position:N.position},B=c.get(i),V={inProgress:!0,isValid:null,from:os(B,z,X.Left,!0),fromHandle:z,fromPosition:z.position,fromNode:B,to:P,toHandle:null,toPosition:Ba[z.position],toNode:null,pointer:P};function te(){M=!0,y(V),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&te();function H(e){if(!M){let{x:t,y:n}=Ro(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;te()}if(!x()||!z){U(e);return}let a=b();P=Ro(e,j),D=Is(vo(P,a,!1,[1,1]),n,c,z),F||=(R(),!0);let s=Hs(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});ee=s.handleDomNode,I=s.connection,L=zs(!!D,s.isValid);let u=c.get(i),f=u?os(u,z,X.Left,!0):V.from,p={...V,from:f,isValid:L,to:s.toHandle&&L?yo({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:Ba[z.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),V=p}function U(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||ee)&&I&&L&&h?.(I);let{inProgress:t,...n}=V,r={...n,toPosition:V.toHandle?V.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,ee=null,T.removeEventListener(`mousemove`,H),T.removeEventListener(`mouseup`,U),T.removeEventListener(`touchmove`,H),T.removeEventListener(`touchend`,U)}}T.addEventListener(`mousemove`,H),T.addEventListener(`mouseup`,U),T.addEventListener(`touchmove`,H),T.addEventListener(`touchend`,U)}function Hs(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Bs,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=Ro(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Rs(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Pa.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Ls(t,e,a,u,n,!0)}return _}var Us={onPointerDown:Vs,isValid:Hs};function Ws({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=tn(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&wo()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=ka().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:rn}}var Gs=e=>({x:e.x,y:e.y,zoom:e.k}),Ks=({x:e,y:t,zoom:n})=>Y.translate(e,t).scale(n),qs=(e,t)=>e.target.closest(`.${t}`),Js=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Ys=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Xs=(e,t=0,n=Ys,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Zs=e=>{let t=e.ctrlKey&&wo()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Qs({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(qs(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=rn(u),t=d*2**Zs(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Fa.Vertical?0:u.deltaX*f,m=i===Fa.Horizontal?0:u.deltaY*f;!wo()&&u.shiftKey&&i!==Fa.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=Gs(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function $s({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=qs(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function ec({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=Gs(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function tc({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Js(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Gs(a.transform))}}function nc({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Js(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=Gs(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function rc({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(qs(f,`${u}-flow__node`)||qs(f,`${u}-flow__edge`)||qs(f,`${u}-flow__selection`)||qs(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||qs(f,c)&&h||qs(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function ic({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=ka().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=tn(e).call(f);y({x:i.x,y:i.y,zoom:eo(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Zs);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?br:Pr).transform(Xs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!ho(D)||D<0?0:D);let A=k?Qs({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):$s({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=ec({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=tc({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=nc({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=rc({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Ks(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Ks(e);return await g(n,t),n}function x(e){if(p){let t=Ks(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?ba(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?br:Pr).scaleTo(Xs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?br:Pr).scaleBy(Xs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!ho(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var ac;(function(e){e.Line=`line`,e.Handle=`handle`})(ac||={});function oc({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function sc(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function cc(e,t){return Math.max(0,t-e)}function lc(e,t){return Math.max(0,e-t)}function uc(e,t,n){return Math.max(0,t-e,e-n)}function dc(e,t){return e?!t:t}function fc(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=uc(E,h,g),j=uc(D,_,v);if(o){let e=0,t=0;c&&w<0?e=cc(y+w+O,o[0][0]):!c&&w>0&&(e=lc(y+E+O,o[1][0])),l&&T<0?t=cc(b+T+k,o[0][1]):!l&&T>0&&(t=lc(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=lc(y+w,s[0][0]):!c&&w<0&&(e=cc(y+E,s[1][0])),l&&T>0?t=lc(b+T,s[0][1]):!l&&T<0&&(t=cc(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=uc(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?lc(b+k+E/C,o[1][1])*C:cc(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?cc(b+E/C,s[1][1])*C:lc(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=uc(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?lc(y+D*C+O,o[1][0])/C:cc(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?cc(y+D*C,s[1][0])/C:lc(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(dc(c,l)?-w:w)/C:w=(dc(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var Z={width:0,height:0,x:0,y:0},pc={...Z,pointerX:0,pointerY:0,aspectRatio:1};function mc(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function hc({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=tn(e),o={controlDirection:sc(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...Z},h={...pc};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:sc(e)};let g,_=null,v=[],y,b,x,S=!1,C=_n().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=Mo(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=To(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=mc(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=Mo(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=fc(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var gc=o((e=>{var t=u();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),_c=o(((e,t)=>{t.exports=gc()})),vc=o((e=>{var t=u(),n=_c();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),yc=c(o(((e,t)=>{t.exports=vc()}))(),1),bc=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},xc=e=>e?bc(e):bc,{useDebugValue:Sc}=g.default,{useSyncExternalStoreWithSelector:Cc}=yc.default,wc=e=>e;function Tc(e,t=wc,n){let r=Cc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Sc(r),r}var Ec=(e,t)=>{let n=xc(e),r=(e,r=t)=>Tc(n,e,r);return Object.assign(r,n),r},Dc=(e,t)=>e?Ec(e,t):Ec;function Oc(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}m();var kc=(0,g.createContext)(null),Ac=kc.Provider,jc=Aa.error001(`react`);function Q(e,t){let n=(0,g.useContext)(kc);if(n===null)throw Error(jc);return Tc(n,e,t)}function Mc(){let e=(0,g.useContext)(kc);if(e===null)throw Error(jc);return(0,g.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Nc={display:`none`},Pc={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Fc=`react-flow__node-desc`,Ic=`react-flow__edge-desc`,Lc=`react-flow__aria-live`,Rc=e=>e.ariaLiveMessage,zc=e=>e.ariaLabelConfig;function Bc({rfId:e}){let t=Q(Rc);return(0,w.jsx)(`div`,{id:`${Lc}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Pc,children:t})}function $({rfId:e,disableKeyboardA11y:t}){let n=Q(zc);return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{id:`${Fc}-${e}`,style:Nc,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,w.jsx)(`div`,{id:`${Ic}-${e}`,style:Nc,children:n[`edge.a11yDescription.default`]}),!t&&(0,w.jsx)(Bc,{rfId:e})]})}var Vc=(0,g.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,w.jsx)(`div`,{className:V([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Vc.displayName=`Panel`;var Hc=`https://reactflow.dev?utm_source=attribution`;function Uc({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,w.jsx)(Vc,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Hc}`,children:(0,w.jsx)(`a`,{href:Hc,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Wc=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Gc=e=>e.id;function Kc(e,t){return Oc(e.selectedNodes.map(Gc),t.selectedNodes.map(Gc))&&Oc(e.selectedEdges.map(Gc),t.selectedEdges.map(Gc))}function qc({onSelectionChange:e}){let t=Mc(),{selectedNodes:n,selectedEdges:r}=Q(Wc,Kc);return(0,g.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Jc=e=>!!e.onSelectionChangeHandlers;function Yc({onSelectionChange:e}){let t=Q(Jc);return e||t?(0,w.jsx)(qc,{onSelectionChange:e}):null}var Xc=[0,0],Zc={x:0,y:0,zoom:1},Qc=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],$c=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),el={translateExtent:ja,nodeOrigin:Xc,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function tl(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=Q($c,Oc),l=Mc();(0,g.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=el,s()}),[]);let u=(0,g.useRef)(el);return(0,g.useEffect)(()=>{for(let s of Qc){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:jo(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Qc.map(t=>e[t])),null}function nl(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function rl(e){let[t,n]=(0,g.useState)(e===`system`?null:e);return(0,g.useEffect)(()=>{if(e!==`system`){n(e);return}let t=nl(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?nl()?.matches?`dark`:`light`:t}var il=typeof document<`u`?document:null;function al(e=null,t={target:il,actInsideInputWithModifier:!0}){let[n,r]=(0,g.useState)(!1),i=(0,g.useRef)(!1),a=(0,g.useRef)(new Set([])),[o,s]=(0,g.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,` -`).replace(` - -`,` -+`).split(` -`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,g.useEffect)(()=>{let n=t?.target??il,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&Io(e))return!1;let n=sl(e.code,s);if(a.current.add(e[n]),ol(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=sl(e.code,s);ol(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function ol(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function sl(e,t){return t.includes(e)?`code`:`key`}var cl=()=>{let e=Mc();return(0,g.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=Co(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return vo(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=yo(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function ll(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)ul(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function ul(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function dl(e,t){return ll(e,t)}function fl(e,t){return ll(e,t)}function pl(e,t){return{id:e,type:`select`,selected:t}}function ml(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(pl(a.id,e)))}return r}function hl({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function gl(e){return{id:e.id,type:`remove`}}var _l=go(`React Flow`,`https://reactflow.dev/`);function vl(e,t,n={}){return Yo(e,t,{...n,onError:n.onError??_l})}var yl=e=>Ua(e),bl=e=>Ha(e);function xl(e){return(0,g.forwardRef)(e)}var Sl=typeof window<`u`?g.useLayoutEffect:g.useEffect;function Cl(e){let[t,n]=(0,g.useState)(BigInt(0)),[r]=(0,g.useState)(()=>wl(()=>n(e=>e+BigInt(1))));return Sl(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function wl(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Tl=(0,g.createContext)(null);function El({children:e}){let t=Mc(),n=Cl((0,g.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=hl({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Cl((0,g.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(hl({items:s,lookup:o}))},[])),i=(0,g.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,w.jsx)(Tl.Provider,{value:i,children:e})}function Dl(){let e=(0,g.useContext)(Tl);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Ol=e=>!!e.panZoom;function kl(){let e=cl(),t=Mc(),n=Dl(),r=Q(Ol),i=(0,g.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=yl(e)?e:n.get(e.id),a=i.parentId?Oo(i.position,i.measured,i.parentId,n,r):i.position;return co({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&yl(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&bl(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await $a({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(gl);o?.(f),c(e)}if(m){let e=d.map(gl);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=mo(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=co(s?r:a),l=po(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=mo(e)?e:a(e);if(!r)return!1;let i=po(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Ka(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??Ao();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,g.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Al=e=>e.selected,jl=typeof window<`u`?window:void 0;function Ml({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Mc(),{deleteElements:r}=kl(),i=al(e,{actInsideInputWithModifier:!1}),a=al(t,{target:jl});(0,g.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Al),edges:e.filter(Al)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,g.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Nl(e){let t=Mc();(0,g.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=No(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Aa.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Pl={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Fl=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Il({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=Fa.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:_,noPanClassName:v,onViewportChange:y,isControlledViewport:b,paneClickDistance:x,selectionOnDrag:S}){let C=Mc(),T=(0,g.useRef)(null),{userSelectionActive:E,lib:D,connectionInProgress:O}=Q(Fl,Oc),k=al(p),A=(0,g.useRef)();Nl(T);let j=(0,g.useCallback)(e=>{y?.({x:e[0],y:e[1],zoom:e[2]}),b||C.setState({transform:e})},[y,b]);return(0,g.useEffect)(()=>{if(T.current){A.current=ic({domNode:T.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>C.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=C.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=C.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=C.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=A.current.getViewport();return C.setState({panZoom:A.current,transform:[e,t,n],domNode:T.current.closest(`.react-flow`)}),()=>{A.current?.destroy()}}},[]),(0,g.useEffect)(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:k,preventScrolling:m,noPanClassName:v,userSelectionActive:E,noWheelClassName:_,lib:D,onTransformChange:j,connectionInProgress:O,selectionOnDrag:S,paneClickDistance:x})},[e,t,n,r,i,a,o,s,c,k,m,v,E,_,D,j,O,S,x]),(0,w.jsx)(`div`,{className:`react-flow__renderer`,ref:T,style:Pl,children:h})}var Ll=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Rl(){let{userSelectionActive:e,userSelectionRect:t}=Q(Ll,Oc);return e&&t?(0,w.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var zl=(e,t)=>n=>{n.target===t.current&&e?.(n)},Bl=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Vl({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ia.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let _=(0,g.useRef)(0),v=Mc(),{userSelectionActive:y,elementsSelectable:b,dragging:x,panBy:S,autoPanSpeed:C}=Q(Bl,Oc),T=b&&(e||y),E=(0,g.useRef)(null),D=(0,g.useRef)(),O=(0,g.useRef)(new Set),k=(0,g.useRef)(new Set),A=(0,g.useRef)(!1),j=(0,g.useRef)(!1),M=(0,g.useRef)({x:0,y:0}),N=(0,g.useRef)(!1),P=e=>{if(j.current||A.current||v.getState().connection.inProgress){j.current=!1,A.current=!1;return}l?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})},F=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},I=d?e=>d(e):void 0,L=e=>{j.current&&=(e.stopPropagation(),!1)},ee=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=v.getState();if(D.current=i?.getBoundingClientRect(),!D.current)return;let s=n.target===E.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),j.current=!1;let{x:c,y:l}=Ro(n.nativeEvent,D.current),u=vo({x:c,y:l},a);v.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function R(e,t){let{userSelectionRect:r}=v.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=v.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=yo(d,i),m={startX:d.x,startY:d.y,x:ee.id)),k.current=new Set;let _=u?.selectable??!0;for(let e of O.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??_)&&k.current.add(e)}}ko(h,O.current)||c(ml(a,O.current,!0)),ko(g,k.current)||l(ml(o,k.current)),v.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function z(){if(!i||!D.current)return;let[e,t]=io(M.current,D.current,C);S({x:e,y:t}).then(e=>{if(!j.current||!e){_.current=requestAnimationFrame(z);return}let{x:t,y:n}=M.current;R(t,n),_.current=requestAnimationFrame(z)})}let B=()=>{cancelAnimationFrame(_.current),_.current=0,N.current=!1};(0,g.useEffect)(()=>()=>B(),[]);let te=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=v.getState();if(!D.current||!n)return;let{x:o,y:c}=Ro(e.nativeEvent,D.current);M.current={x:o,y:c};let l=yo({x:n.startX,y:n.startY},r);if(!j.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}j.current=!0,N.current||=(z(),!0),R(o,c)},H=e=>{if(!T){e.target===E.current&&v.getState().connection.inProgress&&(A.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===E.current&&v.getState().userSelectionRect&&P?.(e),v.setState({userSelectionActive:!1,userSelectionRect:null}),j.current&&(c?.(e),v.setState({nodesSelectionActive:O.current.size>0})),B())},U=e=>{e.target?.releasePointerCapture?.(e.pointerId),B()},ne=r===!0||Array.isArray(r)&&r.includes(0);return(0,w.jsxs)(`div`,{className:V([`react-flow__pane`,{draggable:ne,dragging:x,selection:e}]),onClick:T?void 0:zl(P,E),onContextMenu:zl(F,E),onWheel:zl(I,E),onPointerEnter:T?void 0:f,onPointerMove:T?te:p,onPointerUp:H,onPointerCancel:T?U:void 0,onPointerDownCapture:T?ee:void 0,onClickCapture:T?L:void 0,onPointerLeave:m,ref:E,style:Pl,children:[h,(0,w.jsx)(Rl,{})]})}function Hl({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Aa.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Ul({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Mc(),[c,l]=(0,g.useState)(!1),u=(0,g.useRef)();return(0,g.useEffect)(()=>{if(!t)return u.current=Ns({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Hl({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,g.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var Wl=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Gl(){let e=Mc();return(0,g.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Wl(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=_o(t,i));let{position:a,positionAbsolute:s}=Qa({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Kl=(0,g.createContext)(null),ql=Kl.Provider;Kl.Consumer;var Jl=()=>(0,g.useContext)(Kl),Yl=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Xl=(0,g.createContext)(null);function Zl({children:e}){let t=Q(Yl,Oc);return(0,w.jsx)(Xl.Provider,{value:t,children:e})}function Ql(){let e=(0,g.useContext)(Xl);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var $l={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},eu=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return $l;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Pa.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function tu({type:e=`source`,position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Mc(),_=Jl(),{connectOnClick:v,noPanClassName:y,rfId:b}=Ql(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:T,connectionInProcess:E,clickConnectionInProcess:D,valid:O}=Q(eu(_,m,e),Oc);_||g.getState().onError?.(`010`,Aa.error010());let k=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(vl(i,e,{onError:n}))}n?.(i),s?.(i)},A=e=>{if(!_)return;let t=Lo(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Us.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:k,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,w.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:V([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:O,connectionindicator:r&&(!E||T)&&(E||D?a:i)}]),onMouseDown:A,onTouchStart:A,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=Po(t.target),h=n||c,{connection:v,isValid:y}=Us.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&k(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var nu=(0,g.memo)(xl(tu));function ru({data:e,isConnectable:t,sourcePosition:n=X.Bottom}){return(0,w.jsxs)(w.Fragment,{children:[e?.label,(0,w.jsx)(nu,{type:`source`,position:n,isConnectable:t})]})}function iu({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom}){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(nu,{type:`target`,position:n,isConnectable:t}),e?.label,(0,w.jsx)(nu,{type:`source`,position:r,isConnectable:t})]})}function au(){return null}function ou({data:e,isConnectable:t,targetPosition:n=X.Top}){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(nu,{type:`target`,position:n,isConnectable:t}),e?.label]})}var su={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},cu={input:ru,default:iu,output:ou,group:au};function lu(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var uu=e=>{let{width:t,height:n,x:r,y:i}=qa(e.nodeLookup,{filter:e=>!!e.selected});return{width:ho(t)?t:null,height:ho(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function du({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Mc(),{width:i,height:a,transformString:o,userSelectionActive:s}=Q(uu,Oc),c=Gl(),l=(0,g.useRef)(null);(0,g.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Ul({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,w.jsx)(`div`,{className:V([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,w.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(su,e.key)&&(e.preventDefault(),c({direction:su[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var fu=typeof window<`u`?window:void 0,pu=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function mu({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:T,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:N,noPanClassName:P,disableKeyboardA11y:F,onViewportChange:I,isControlledViewport:L}){let{nodesSelectionActive:ee,userSelectionActive:R}=Q(pu,Oc),z=al(l,{target:fu}),B=al(h,{target:fu}),V=B||T,te=B||b,H=u&&V!==!0,U=z||R||H;return Ml({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,w.jsx)(Il,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:te,panActivationKeyPressed:B,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&V,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:N,noPanClassName:P,onViewportChange:I,isControlledViewport:L,paneClickDistance:s,selectionOnDrag:H,children:(0,w.jsxs)(Vl,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:V,autoPanOnSelection:E,isSelecting:!!U,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:H,children:[e,ee&&(0,w.jsx)(du,{onSelectionContextMenu:M,noPanClassName:P,disableKeyboardA11y:F})]})})}mu.displayName=`FlowRenderer`;var hu=(0,g.memo)(mu),gu=e=>t=>e?Ja(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function _u(e){return Q((0,g.useCallback)(gu(e),[e]),Oc)}var vu=e=>e.updateNodeInternals;function yu(){let e=Q(vu),[t]=(0,g.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,g.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function bu({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Mc(),a=(0,g.useRef)(null),o=(0,g.useRef)(null),s=(0,g.useRef)(e.sourcePosition),c=(0,g.useRef)(e.targetPosition),l=(0,g.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,g.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,g.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,g.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function xu({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=Q(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},Oc),S=y.type||`default`,C=g?.[S]||cu[S];C===void 0&&(v?.(`003`,Aa.error003(S)),S=`default`,C=g?.default||cu.default);let T=!!(y.draggable||s&&y.draggable===void 0),E=!!(y.selectable||c&&y.selectable===void 0),D=!!(y.connectable||l&&y.connectable===void 0),O=!!(y.focusable||u&&y.focusable===void 0),k=Mc(),A=Do(y),j=bu({node:y,nodeType:S,hasDimensions:A,resizeObserver:d}),M=Ul({nodeRef:j,disabled:y.hidden||!T,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:E,nodeClickDistance:_}),N=Gl();if(y.hidden)return null;let P=Eo(y),F=lu(y),I=E||T||t||n||r||i,L=n?e=>n(e,{...b.userNode}):void 0,ee=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,te=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=k.getState();E&&(!r||!T||i>0)&&Hl({id:e,store:k,nodeRef:j}),t&&t(n,{...b.userNode})},H=t=>{if(!(Io(t.nativeEvent)||m)){if(Ma.includes(t.key)&&E){let n=t.key===`Escape`;Hl({id:e,store:k,unselect:n,nodeRef:j})}else if(T&&y.selected&&Object.prototype.hasOwnProperty.call(su,t.key)){t.preventDefault();let{ariaLabelConfig:e}=k.getState();k.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),N({direction:su[t.key],factor:t.shiftKey?4:1})}}},U=()=>{if(m||!j.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=k.getState();i&&(Ja(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+P.width/2,y.position.y+P.height/2,{zoom:t[2]}))};return(0,w.jsx)(`div`,{className:V([`react-flow__node`,`react-flow__node-${S}`,{[p]:T},y.className,{selected:y.selected,selectable:E,parent:x,draggable:T,dragging:M}]),ref:j,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:I?`all`:`none`,visibility:A?`visible`:`hidden`,...y.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:ee,onMouseLeave:R,onContextMenu:z,onClick:te,onDoubleClick:B,onKeyDown:O?H:void 0,tabIndex:O?0:void 0,onFocus:O?U:void 0,role:y.ariaRole??(O?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Fc}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,w.jsx)(ql,{value:e,children:(0,w.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:E,draggable:T,deletable:y.deletable??!0,isConnectable:D,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:M,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...P})})})}var Su=(0,g.memo)(xu),Cu=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function wu(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=Q(Cu,Oc),a=_u(e.onlyRenderVisibleElements),o=yu();return(0,w.jsx)(`div`,{className:`react-flow__nodes`,style:Pl,children:a.map(a=>(0,w.jsx)(Su,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}wu.displayName=`NodeRenderer`;var Tu=(0,g.memo)(wu);function Eu(e){return Q((0,g.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&Ko({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),Oc)}var Du=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,w.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},Ou=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,w.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},ku={[za.Arrow]:Du,[za.ArrowClosed]:Ou};function Au(e){let t=Mc();return(0,g.useMemo)(()=>Object.prototype.hasOwnProperty.call(ku,e)?ku[e]:(t.getState().onError?.(`009`,Aa.error009(e)),null),[e])}var ju=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Au(t);return c?(0,w.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,w.jsx)(c,{color:n,strokeWidth:o})}):null},Mu=({defaultColor:e,rfId:t})=>{let n=Q(e=>e.edges),r=Q(e=>e.defaultEdgeOptions),i=(0,g.useMemo)(()=>ls(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,w.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,w.jsx)(`defs`,{children:i.map(e=>(0,w.jsx)(ju,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Mu.displayName=`MarkerDefinitions`;var Nu=(0,g.memo)(Mu);function Pu({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,g.useState)({x:1,y:0,width:0,height:0}),p=V([`react-flow__edge-textwrapper`,l]),m=(0,g.useRef)(null);return(0,g.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,w.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,w.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,w.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Pu.displayName=`EdgeText`;var Fu=(0,g.memo)(Pu);function Iu({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`path`,{...u,d:e,fill:`none`,className:V([`react-flow__edge-path`,u.className])}),l?(0,w.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&ho(t)&&ho(n)?(0,w.jsx)(Fu,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Lu({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Ru({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:i,targetPosition:a=X.Top}){let[o,s]=Lu({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Lu({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Bo({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function zu(e){return(0,g.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Ru({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,w.jsx)(Iu,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Bu=zu({isInternal:!1}),Vu=zu({isInternal:!0});Bu.displayName=`SimpleBezierEdge`,Vu.displayName=`SimpleBezierEdgeInternal`;function Hu(e){return(0,g.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=X.Bottom,targetPosition:m=X.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=ns({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,w.jsx)(Iu,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Uu=Hu({isInternal:!1}),Wu=Hu({isInternal:!0});Uu.displayName=`SmoothStepEdge`,Wu.displayName=`SmoothStepEdgeInternal`;function Gu(e){return(0,g.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,w.jsx)(Uu,{...n,id:r,pathOptions:(0,g.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Ku=Gu({isInternal:!1}),qu=Gu({isInternal:!0});Ku.displayName=`StepEdge`,qu.displayName=`StepEdgeInternal`;function Ju(e){return(0,g.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Xo({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,w.jsx)(Iu,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var Yu=Ju({isInternal:!1}),Xu=Ju({isInternal:!0});Yu.displayName=`StraightEdge`,Xu.displayName=`StraightEdgeInternal`;function Zu(e){return(0,g.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=X.Bottom,targetPosition:s=X.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=Uo({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,w.jsx)(Iu,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Qu=Zu({isInternal:!1}),$u=Zu({isInternal:!0});Qu.displayName=`BezierEdge`,$u.displayName=`BezierEdgeInternal`;var ed={default:$u,straight:Xu,step:qu,smoothstep:Wu,simplebezier:Vu},td={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},nd=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,rd=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,id=`react-flow__edgeupdater`;function ad({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,w.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:V([id,`${id}-${s}`]),cx:nd(t,r,e),cy:rd(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function od({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Mc(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Us.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,w.jsxs)(w.Fragment,{children:[(e===!0||e===`source`)&&(0,w.jsx)(ad,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,w.jsx)(ad,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function sd({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:_,onError:v,disableKeyboardA11y:y}){let b=Q(t=>t.edgeLookup.get(e)),x=Q(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=h?.[S]||ed[S];C===void 0&&(v?.(`011`,Aa.error011(S)),S=`default`,C=h?.default||ed.default);let T=!!(b.focusable||t&&b.focusable===void 0),E=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),D=!!(b.selectable||r&&b.selectable===void 0),O=(0,g.useRef)(null),[k,A]=(0,g.useState)(!1),[j,M]=(0,g.useState)(!1),N=Mc(),{zIndex:P=b.zIndex,sourceX:F,sourceY:I,targetX:L,targetY:ee,sourcePosition:R,targetPosition:z}=Q((0,g.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return td;let i=is({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:v}),a=Go({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||td,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,v]),Oc),B=(0,g.useMemo)(()=>b.markerStart?`url('#${cs(b.markerStart,m)}')`:void 0,[b.markerStart,m]),te=(0,g.useMemo)(()=>b.markerEnd?`url('#${cs(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||F===null||I===null||L===null||ee===null)return null;let H=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=N.getState();D&&(N.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),O.current?.blur()):n([e])),i&&i(t,b)},U=a?e=>{a(e,{...b})}:void 0,ne=o?e=>{o(e,{...b})}:void 0,re=s?e=>{s(e,{...b})}:void 0,ie=c?e=>{c(e,{...b})}:void 0,ae=l?e=>{l(e,{...b})}:void 0;return(0,w.jsx)(`svg`,{style:{zIndex:P},children:(0,w.jsxs)(`g`,{className:V([`react-flow__edge`,`react-flow__edge-${S}`,b.className,_,{selected:b.selected,animated:b.animated,inactive:!D&&!i,updating:k,selectable:D}]),onClick:H,onDoubleClick:U,onContextMenu:ne,onMouseEnter:re,onMouseMove:ie,onMouseLeave:ae,onKeyDown:T?t=>{if(!y&&Ma.includes(t.key)&&D){let{unselectNodesAndEdges:n,addSelectedEdges:r}=N.getState();t.key===`Escape`?(O.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:T?0:void 0,role:b.ariaRole??(T?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":T?`${Ic}-${m}`:void 0,ref:O,...b.domAttributes,children:[!j&&(0,w.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:D,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:F,sourceY:I,targetX:L,targetY:ee,sourcePosition:R,targetPosition:z,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:B,markerEnd:te,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),E&&(0,w.jsx)(od,{edge:b,isReconnectable:E,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:F,sourceY:I,targetX:L,targetY:ee,sourcePosition:R,targetPosition:z,setUpdateHover:A,setReconnecting:M})]})})}var cd=(0,g.memo)(sd),ld=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ud({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=Q(ld,Oc),b=Eu(t);return(0,w.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,w.jsx)(Nu,{defaultColor:e,rfId:n}),b.map(e=>(0,w.jsx)(cd,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}ud.displayName=`EdgeRenderer`;var dd=(0,g.memo)(ud),fd=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function pd({children:e}){let t=Mc(),n=(0,g.useRef)(null),[r]=(0,g.useState)(()=>t.getState().transform);return Sl(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=fd(r)))};return r(),t.subscribe(r)},[t]),(0,w.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:fd(r)},children:e})}function md(e){let t=kl(),n=(0,g.useRef)(!1);(0,g.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var hd=e=>e.panZoom?.syncViewport;function gd(e){let t=Q(hd),n=Mc();return(0,g.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function _d(e){return e.connection.inProgress?{...e.connection,to:vo(e.connection.to,e.transform)}:{...e.connection}}function vd(e){return e?t=>e(_d(t)):_d}function yd(e){return Q(vd(e),Oc)}var bd=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function xd({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=Q(bd,Oc);return a&&i&&c?(0,w.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,w.jsx)(`g`,{className:V([`react-flow__connection`,Va(s)]),children:(0,w.jsx)(Sd,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var Sd=({style:e,type:t=Ra.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=yd();if(!i)return;if(n)return(0,w.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Va(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Ra.Bezier:[m]=Uo(h);break;case Ra.SimpleBezier:[m]=Ru(h);break;case Ra.Step:[m]=ns({...h,borderRadius:0});break;case Ra.SmoothStep:[m]=ns(h);break;default:[m]=Xo(h)}return(0,w.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};Sd.displayName=`ConnectionLine`;var Cd={};function wd(e=Cd){(0,g.useRef)(e),Mc(),(0,g.useEffect)(()=>{},[e])}function Td(){Mc(),(0,g.useRef)(!1),(0,g.useEffect)(()=>{},[])}function Ed({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:T,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:N,zoomOnScroll:P,zoomOnPinch:F,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:ee,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:V,onPaneMouseEnter:te,onPaneMouseMove:H,onPaneMouseLeave:U,onPaneScroll:ne,onPaneContextMenu:re,paneClickDistance:ie,nodeClickDistance:ae,onEdgeContextMenu:oe,onEdgeMouseEnter:se,onEdgeMouseMove:ce,onEdgeMouseLeave:le,reconnectRadius:ue,onReconnect:de,onReconnectStart:fe,onReconnectEnd:pe,noDragClassName:me,noWheelClassName:he,noPanClassName:ge,disableKeyboardA11y:_e,nodeExtent:ve,rfId:ye,viewport:be,onViewportChange:xe,nodesDraggable:Se}){return wd(e),wd(t),Td(),md(n),gd(be),(0,w.jsx)(hu,{onPaneClick:V,onPaneMouseEnter:te,onPaneMouseMove:H,onPaneMouseLeave:U,onPaneContextMenu:re,onPaneScroll:ne,paneClickDistance:ie,deleteKeyCode:T,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:D,zoomOnScroll:P,zoomOnPinch:F,zoomOnDoubleClick:R,panOnScroll:I,panOnScrollSpeed:L,panOnScrollMode:ee,panOnDrag:z,autoPanOnSelection:B,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:me,noWheelClassName:he,noPanClassName:ge,disableKeyboardA11y:_e,onViewportChange:xe,isControlledViewport:!!be,children:(0,w.jsxs)(pd,{children:[(0,w.jsx)(dd,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:de,onReconnectStart:fe,onReconnectEnd:pe,onlyRenderVisibleElements:E,onEdgeContextMenu:oe,onEdgeMouseEnter:se,onEdgeMouseMove:ce,onEdgeMouseLeave:le,reconnectRadius:ue,defaultMarkerColor:N,noPanClassName:ge,disableKeyboardA11y:_e,rfId:ye}),(0,w.jsx)(xd,{style:h,type:m,component:g,containerStyle:_}),(0,w.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,w.jsx)(Tu,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ae,onlyRenderVisibleElements:E,noPanClassName:ge,noDragClassName:me,disableKeyboardA11y:_e,nodeExtent:ve,rfId:ye,nodesDraggable:Se}),(0,w.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}Ed.displayName=`GraphView`;var Dd=(0,g.memo)(Ed),Od=go(`React Flow`,`https://reactflow.dev/`),kd=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??ja;Ds(h,g,_);let{nodesInitialized:x}=vs(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=Co(qa(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:ja,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Pa.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...La},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Od,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Na,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Ad=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>Dc((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await Za({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...kd({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=vs(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Ds(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=ws(e,n,r,i,a,o,l);d&&(hs(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=os(e,o.fromHandle,X.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Cs(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(dl(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(fl(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>pl(e,!0)));return}i(ml(r,new Set([...e]),!0)),a(ml(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>pl(e,!0)));return}a(ml(n,new Set([...e]))),i(ml(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(pl(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(pl(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,pl(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,pl(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(vs(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Ts({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...La}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...kd()})}},Object.is);function jd({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,g.useState)(()=>Ad({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,w.jsx)(Ac,{value:m,children:(0,w.jsx)(El,{children:(0,w.jsx)(Zl,{children:p})})})}function Md({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,g.useContext)(kc)?(0,w.jsx)(w.Fragment,{children:e}):(0,w.jsx)(jd,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var Nd={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function Pd({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:_,onClickConnectEnd:v,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:T,onNodeDrag:E,onNodeDragStop:D,onNodesDelete:O,onEdgesDelete:k,onDelete:A,onSelectionChange:j,onSelectionDragStart:M,onSelectionDrag:N,onSelectionDragStop:P,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:L,onBeforeDelete:ee,connectionMode:R,connectionLineType:z=Ra.Bezier,connectionLineStyle:B,connectionLineComponent:te,connectionLineContainerStyle:H,deleteKeyCode:U=`Backspace`,selectionKeyCode:ne=`Shift`,selectionOnDrag:re=!1,selectionMode:ie=Ia.Full,panActivationKeyCode:ae=`Space`,multiSelectionKeyCode:oe=wo()?`Meta`:`Control`,zoomActivationKeyCode:se=wo()?`Meta`:`Control`,snapToGrid:ce,snapGrid:le,onlyRenderVisibleElements:ue=!1,selectNodesOnDrag:de,nodesDraggable:fe,autoPanOnNodeFocus:pe,nodesConnectable:me,nodesFocusable:he,nodeOrigin:ge=Xc,edgesFocusable:_e,edgesReconnectable:ve,elementsSelectable:ye=!0,defaultViewport:be=Zc,minZoom:xe=.5,maxZoom:Se=2,translateExtent:Ce=ja,preventScrolling:we=!0,nodeExtent:Te,defaultMarkerColor:Ee=`#b1b1b7`,zoomOnScroll:De=!0,zoomOnPinch:Oe=!0,panOnScroll:ke=!1,panOnScrollSpeed:Ae=.5,panOnScrollMode:je=Fa.Free,zoomOnDoubleClick:Me=!0,panOnDrag:Ne=!0,onPaneClick:Pe,onPaneMouseEnter:Fe,onPaneMouseMove:Ie,onPaneMouseLeave:Le,onPaneScroll:Re,onPaneContextMenu:ze,paneClickDistance:Be=1,nodeClickDistance:Ve=0,children:He,onReconnect:Ue,onReconnectStart:We,onReconnectEnd:Ge,onEdgeContextMenu:Ke,onEdgeDoubleClick:qe,onEdgeMouseEnter:Je,onEdgeMouseMove:Ye,onEdgeMouseLeave:Xe,reconnectRadius:Ze=10,onNodesChange:Qe,onEdgesChange:$e,noDragClassName:et=`nodrag`,noWheelClassName:tt=`nowheel`,noPanClassName:nt=`nopan`,fitView:rt,fitViewOptions:it,connectOnClick:at,attributionPosition:ot,proOptions:st,defaultEdgeOptions:ct,elevateNodesOnSelect:lt=!0,elevateEdgesOnSelect:ut=!1,disableKeyboardA11y:dt=!1,autoPanOnConnect:W,autoPanOnNodeDrag:ft,autoPanOnSelection:pt=!0,autoPanSpeed:mt,connectionRadius:ht,isValidConnection:gt,onError:_t,style:vt,id:yt,nodeDragThreshold:bt,connectionDragThreshold:xt,viewport:St,onViewportChange:Ct,width:wt,height:Tt,colorMode:Et=`light`,debug:Dt,onScroll:Ot,ariaLabelConfig:kt,zIndexMode:At=`basic`,...jt},Mt){let Nt=yt||`1`,Pt=rl(Et),Ft=(0,g.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Ot?.(e)},[Ot]);return(0,w.jsx)(`div`,{"data-testid":`rf__wrapper`,...jt,onScroll:Ft,style:{...vt,...Nd},ref:Mt,className:V([`react-flow`,i,Pt]),id:yt,role:`application`,children:(0,w.jsxs)(Md,{nodes:e,edges:t,width:wt,height:Tt,fitView:rt,fitViewOptions:it,minZoom:xe,maxZoom:Se,nodeOrigin:ge,nodeExtent:Te,zIndexMode:At,children:[(0,w.jsx)(tl,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:_,onClickConnectEnd:v,nodesDraggable:fe,autoPanOnNodeFocus:pe,nodesConnectable:me,nodesFocusable:he,edgesFocusable:_e,edgesReconnectable:ve,elementsSelectable:ye,elevateNodesOnSelect:lt,elevateEdgesOnSelect:ut,minZoom:xe,maxZoom:Se,nodeExtent:Te,onNodesChange:Qe,onEdgesChange:$e,snapToGrid:ce,snapGrid:le,connectionMode:R,translateExtent:Ce,connectOnClick:at,defaultEdgeOptions:ct,fitView:rt,fitViewOptions:it,onNodesDelete:O,onEdgesDelete:k,onDelete:A,onNodeDragStart:T,onNodeDrag:E,onNodeDragStop:D,onSelectionDrag:N,onSelectionDragStart:M,onSelectionDragStop:P,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:nt,nodeOrigin:ge,rfId:Nt,autoPanOnConnect:W,autoPanOnNodeDrag:ft,autoPanSpeed:mt,onError:_t,connectionRadius:ht,isValidConnection:gt,selectNodesOnDrag:de,nodeDragThreshold:bt,connectionDragThreshold:xt,onBeforeDelete:ee,debug:Dt,ariaLabelConfig:kt,zIndexMode:At}),(0,w.jsx)(Dd,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:z,connectionLineStyle:B,connectionLineComponent:te,connectionLineContainerStyle:H,selectionKeyCode:ne,selectionOnDrag:re,selectionMode:ie,deleteKeyCode:U,multiSelectionKeyCode:oe,panActivationKeyCode:ae,zoomActivationKeyCode:se,onlyRenderVisibleElements:ue,defaultViewport:be,translateExtent:Ce,minZoom:xe,maxZoom:Se,preventScrolling:we,zoomOnScroll:De,zoomOnPinch:Oe,zoomOnDoubleClick:Me,panOnScroll:ke,panOnScrollSpeed:Ae,panOnScrollMode:je,panOnDrag:Ne,autoPanOnSelection:pt,onPaneClick:Pe,onPaneMouseEnter:Fe,onPaneMouseMove:Ie,onPaneMouseLeave:Le,onPaneScroll:Re,onPaneContextMenu:ze,paneClickDistance:Be,nodeClickDistance:Ve,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:L,onReconnect:Ue,onReconnectStart:We,onReconnectEnd:Ge,onEdgeContextMenu:Ke,onEdgeDoubleClick:qe,onEdgeMouseEnter:Je,onEdgeMouseMove:Ye,onEdgeMouseLeave:Xe,reconnectRadius:Ze,defaultMarkerColor:Ee,noDragClassName:et,noWheelClassName:tt,noPanClassName:nt,rfId:Nt,disableKeyboardA11y:dt,nodeExtent:Te,viewport:St,onViewportChange:Ct,nodesDraggable:fe}),(0,w.jsx)(Yc,{onSelectionChange:j}),He,(0,w.jsx)(Uc,{proOptions:st,position:ot}),(0,w.jsx)($,{rfId:Nt,disableKeyboardA11y:dt})]})})}var Fd=xl(Pd);Aa.error014();function Id({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,w.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:V([`react-flow__background-pattern`,n,r])})}function Ld({radius:e,className:t}){return(0,w.jsx)(`circle`,{cx:e,cy:e,r:e,className:V([`react-flow__background-pattern`,`dots`,t])})}var Rd;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Rd||={});var zd={[Rd.Dots]:1,[Rd.Lines]:1,[Rd.Cross]:6},Bd=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Vd({id:e,variant:t=Rd.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,g.useRef)(null),{transform:f,patternId:p}=Q(Bd,Oc),m=r||zd[t],h=t===Rd.Dots,_=t===Rd.Cross,v=Array.isArray(n)?n:[n,n],y=[v[0]*f[2]||1,v[1]*f[2]||1],b=m*f[2],x=Array.isArray(a)?a:[a,a],S=_?[b,b]:y,C=[x[0]*f[2]+S[0]/2,x[1]*f[2]+S[1]/2],T=`${p}${e||``}`;return(0,w.jsxs)(`svg`,{className:V([`react-flow__background`,l]),style:{...c,...Pl,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,w.jsx)(`pattern`,{id:T,x:f[0]%y[0],y:f[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:h?(0,w.jsx)(Ld,{radius:b/2,className:u}):(0,w.jsx)(Id,{dimensions:S,lineWidth:i,variant:t,className:u})}),(0,w.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${T})`})]})}Vd.displayName=`Background`;var Hd=(0,g.memo)(Vd);function Ud(){return(0,w.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,w.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function Wd(){return(0,w.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,w.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function Gd(){return(0,w.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,w.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function Kd(){return(0,w.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,w.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function qd(){return(0,w.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,w.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function Jd({children:e,className:t,...n}){return(0,w.jsx)(`button`,{type:`button`,className:V([`react-flow__controls-button`,t]),...n,children:e})}var Yd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Xd({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Mc(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=Q(Yd,Oc),{zoomIn:y,zoomOut:b,fitView:x}=kl();return(0,w.jsxs)(Vc,{className:V([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Jd,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,w.jsx)(Ud,{})}),(0,w.jsx)(Jd,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,w.jsx)(Wd,{})})]}),n&&(0,w.jsx)(Jd,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,w.jsx)(Gd,{})}),r&&(0,w.jsx)(Jd,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,w.jsx)(qd,{}):(0,w.jsx)(Kd,{})}),u]})}Xd.displayName=`Controls`;var Zd=(0,g.memo)(Xd);function Qd({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,w.jsx)(`rect`,{className:V([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var $d=(0,g.memo)(Qd),ef=e=>e.nodes.map(e=>e.id),tf=e=>e instanceof Function?e:()=>e;function nf({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=$d,onClick:o}){let s=Q(ef,Oc),c=tf(t),l=tf(e),u=tf(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,w.jsx)(w.Fragment,{children:s.map(e=>(0,w.jsx)(af,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function rf({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=Q(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=Eo(r);return{node:r,x:i,y:a,width:o,height:s}},Oc);return!l||l.hidden||!Do(l)?null:(0,w.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var af=(0,g.memo)(rf),of=(0,g.memo)(nf),sf=200,cf=150,lf=e=>!e.hidden,uf=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?uo(qa(e.nodeLookup,{filter:lf}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},df=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,ff=(e,t)=>df(e.viewBB,t.viewBB)&&df(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,pf=`react-flow__minimap-desc`;function mf({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:_=!1,ariaLabel:v,inversePan:y,zoomStep:b=1,offsetScale:x=5}){let S=Mc(),C=(0,g.useRef)(null),{boundingRect:T,viewBB:E,rfId:D,panZoom:O,translateExtent:k,flowWidth:A,flowHeight:j,ariaLabelConfig:M}=Q(uf,ff),N=e?.width??sf,P=e?.height??cf,F=T.width/N,I=T.height/P,L=Math.max(F,I),ee=L*N,R=L*P,z=x*L,B=T.x-(ee-T.width)/2-z,te=T.y-(R-T.height)/2-z,H=ee+z*2,U=R+z*2,ne=`${pf}-${D}`,re=(0,g.useRef)(0),ie=(0,g.useRef)();re.current=L,(0,g.useEffect)(()=>{if(C.current&&O)return ie.current=Ws({domNode:C.current,panZoom:O,getTransform:()=>S.getState().transform,getViewScale:()=>re.current}),()=>{ie.current?.destroy()}},[O]),(0,g.useEffect)(()=>{ie.current?.update({translateExtent:k,width:A,height:j,inversePan:y,pannable:h,zoomStep:b,zoomable:_})},[h,_,y,b,k,A,j]);let ae=p?e=>{let[t,n]=ie.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,oe=m?(0,g.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,se=v??M[`minimap.ariaLabel`];return(0,w.jsx)(Vc,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*L:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:V([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,w.jsxs)(`svg`,{width:N,height:P,viewBox:`${B} ${te} ${H} ${U}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ne,ref:C,onClick:ae,children:[se&&(0,w.jsx)(`title`,{id:ne,children:se}),(0,w.jsx)(of,{onClick:oe,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,w.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${B-z},${te-z}h${H+z*2}v${U+z*2}h${-H-z*2}z - M${E.x},${E.y}h${E.width}v${E.height}h${-E.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}mf.displayName=`MiniMap`;var hf=(0,g.memo)(mf),gf=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,_f={[ac.Line]:`right`,[ac.Handle]:`bottom-right`};function vf({nodeId:e,position:t,variant:n=ac.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:_,onResizeEnd:v}){let y=Jl(),b=typeof e==`string`?e:y,x=Mc(),S=(0,g.useRef)(null),C=n===ac.Handle,T=Q((0,g.useCallback)(gf(C&&p),[C,p]),Oc),E=(0,g.useRef)(null),D=t??_f[n];(0,g.useEffect)(()=>{if(!(!S.current||!b))return E.current||=hc({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Cs([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...Oo({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),E.current.update({controlPosition:D,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:_,onResizeEnd:v,shouldResize:m}),()=>{E.current?.destroy()}},[D,s,c,l,u,d,h,_,v,m]);let O=D.split(`-`);return(0,w.jsx)(`div`,{className:V([`react-flow__resize-control`,`nodrag`,...O,n,r]),ref:S,style:{...i,scale:T,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,g.memo)(vf);var yf={"arch.context":0,"django.app":0,"django.route":1,"django.websocket_route":1,"fastapi.route":1,"django.url_name":2,"django.view":3,"django.viewset_action":3,"django.permission":3,"django.throttle":3,"django.serializer":4,"django.form":4,"graphql.type":4,"fastapi.model":4,"django.serializer_field":5,"django.service":5,"graphql.field":5,"django.model":6,"django.field":7,"django.relation":7,"django.task":8,"django.receiver":8,"django.signal":8,"django.test":8,"django.migration_op":8,"django.admin":8,"django.management_command":8,"django.consumer":8,"django.cache_key":8,"django.feature_flag":8,"django.side_effect":8,"openapi.path":9,"graphql.operation":9,"react.api_client":10,"django.htmx":10,"react.query_key":11,"react.hook":11,"react.feature":11,"react.route":12,"react.page":12,"react.server_action":12,"django.template":12,"react.component":13,"react.context":13,"react.form_schema":14,"react.test":14};function bf(e){return yf[e]??8}var xf=8;function Sf(e){if(!e.length)return NaN;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2}function Cf(e,t=[]){let n=new Map;if(!e.length)return n;let r=new Map;for(let t of e){let e=bf(t.type),n=r.get(e)??[];n.push(t),r.set(e,n)}let i=[...r.keys()].sort((e,t)=>e-t).map(e=>[...r.get(e)??[]].sort((e,t)=>e.name.localeCompare(t.name)||e.id.localeCompare(t.id))),a=new Set(e.map(e=>e.id)),o=new Map,s=new Map;for(let t of e)o.set(t.id,[]),s.set(t.id,[]);for(let e of t)!a.has(e.src)||!a.has(e.dst)||e.src===e.dst||(s.get(e.src).push(e.dst),o.get(e.dst).push(e.src));let c=new Map;i.forEach((e,t)=>{for(let n of e)c.set(n.id,t)});let l=new Map,u=()=>{for(let e of i)e.forEach((e,t)=>l.set(e.id,t))};u();let d=(e,t)=>{let n=e.map((e,n)=>{let r=Sf(t(e.id).map(e=>l.get(e)).filter(e=>e!==void 0));return{n:e,bary:Number.isNaN(r)?n:r,name:e.name,id:e.id}});return n.sort((e,t)=>e.bary-t.bary||e.name.localeCompare(t.name)||e.id.localeCompare(t.id)),n.map(e=>e.n)},f=e=>t=>c.get(t)===e;for(let e=0;e(o.get(t)??[]).filter(f(e-1))),u();for(let e=i.length-2;e>=0;e--)i[e]=d(i[e],t=>(s.get(t)??[]).filter(f(e+1))),u()}let p=Math.max(...i.map(e=>e.length),1),m=[],h=0;for(let e=0;ee.id)),r=new Set((i[e+1]??[]).map(e=>e.id)),a=0;if(r.size)for(let e of t)n.has(e.src)&&r.has(e.dst)&&(a+=1);let o=Math.min(120,Math.max(0,(a-2)*12));h+=296+o}return i.forEach((e,t)=>{let r=(p-e.length)*92/2;e.forEach((e,i)=>{n.set(e.id,{x:m[t]??0,y:r+i*92})})}),n}var wf=[{id:`layers`,label:`Architecture layers`},{id:`flow`,label:`Edge flow`},{id:`tree`,label:`Spanning tree`},{id:`radial`,label:`Radial`},{id:`concentric`,label:`Concentric layers`},{id:`circle`,label:`Circle`},{id:`clusters`,label:`Type clusters`},{id:`grid`,label:`Compact grid`},{id:`force`,label:`Force directed`}],Tf=new Set(wf.map(e=>e.id)),Ef=`loadpath.graphLayout`,Df=8,Of=64,kf=240,Af=296,jf=92,Mf=new Set([`django.route`,`react.route`,`react.page`,`react.server_action`,`django.task`,`django.migration_op`,`django.permission`,`openapi.path`,`django.consumer`,`django.websocket_route`,`django.template`,`graphql.operation`,`fastapi.route`]);function Nf(e=()=>document.createElement(`canvas`)){try{let t=e(),n=t.getContext(`webgl2`)||t.getContext(`webgl`)||t.getContext(`experimental-webgl`);return n?((n.getExtension?.(`WEBGL_lose_context`))?.loseContext(),!0):!1}catch{return!1}}function Pf(e,t,n){return e===`3d`&&t==null&&n!==!0?`2d`:e}var Ff=new Set([`django.field`,`django.serializer_field`,`django.relation`,`django.test`,`react.test`,`graphql.field`,`django.url_name`,`django.throttle`]),If={"arch.context":`#edf2f4`,"django.app":`#8d99ae`,"django.route":`#4cc9f0`,"django.url_name":`#4cc9f0`,"django.view":`#4895ef`,"django.viewset_action":`#4361ee`,"django.permission":`#7b8cde`,"django.serializer":`#f4a261`,"django.form":`#e9c46a`,"django.serializer_field":`#e9c46a`,"django.service":`#90be6d`,"django.model":`#2a9d8f`,"django.field":`#8ac926`,"django.task":`#e76f51`,"django.receiver":`#e85d04`,"django.signal":`#f4a261`,"django.test":`#6c757d`,"django.admin":`#adb5bd`,"django.migration_op":`#9d4edd`,"django.consumer":`#e76f51`,"django.websocket_route":`#4cc9f0`,"django.template":`#c77dff`,"django.htmx":`#ff6b6b`,"django.cache_key":`#6c757d`,"django.feature_flag":`#f4a261`,"django.side_effect":`#e85d04`,"graphql.type":`#00bbf9`,"graphql.operation":`#00bbf9`,"fastapi.route":`#4cc9f0`,"fastapi.model":`#f4a261`,"openapi.path":`#00bbf9`,"react.api_client":`#ff6b6b`,"react.query_key":`#adb5bd`,"react.hook":`#7b2cbf`,"react.feature":`#9d4edd`,"react.route":`#c77dff`,"react.page":`#c77dff`,"react.server_action":`#e76f51`,"react.component":`#9d4edd`,"react.form_schema":`#ffd166`,"react.test":`#6c757d`},Lf=160,Rf=.42,zf=100,Bf=.45,Vf=.8,Hf={0:`context`,1:`routes`,2:`url names`,3:`views`,4:`serializers`,5:`services`,6:`models`,7:`fields`,8:`jobs / signals`,9:`openapi`,10:`api client`,11:`hooks`,12:`pages`,13:`components`,14:`forms / tests`};function Uf(e){return e.startsWith(`react.`)?`react`:e.startsWith(`openapi.`)||e.startsWith(`graphql.`)||e.startsWith(`fastapi.`)?`stitch`:e.startsWith(`arch.`)?`arch`:`django`}function Wf(e){return If[e]?If[e]:e.startsWith(`react.`)?`#9d4edd`:e.startsWith(`openapi.`)?`#00bbf9`:`#4a5568`}function Gf(e,t=typeof navigator<`u`&&!!navigator.webdriver){return t?`2d`:e>=90?`3d`:`2d`}function Kf(e){return e>=90?`overview`:`full`}function qf(e,t,n=1){let r=new Set([e]),i=new Set([e]);for(let e=0;en.families.has(Uf(e.type)));n.detail===`overview`&&(r=r.filter(e=>!Ff.has(e.type)));let i=new Set(r.map(e=>e.id)),a=t.filter(e=>i.has(e.src)&&i.has(e.dst)),o=n.focusId?qf(n.focusId,a,1):new Set;if(n.neighborhoodOnly&&n.focusId&&o.size){r=r.filter(e=>o.has(e.id));let e=new Set(r.map(e=>e.id));return{nodes:r,edges:a.filter(t=>e.has(t.src)&&e.has(t.dst)),neighborIds:o}}return{nodes:r,edges:a,neighborIds:o}}function Yf(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>`${e.name} ${e.qualified_name} ${e.type} ${e.file_path||``} ${e.context||``}`.toLowerCase().includes(n)).slice(0,24):[]}function Xf(e,t,n,r){let i=new Set(e.map(e=>e.id));if(!i.has(n))return{nodeIds:new Set,edgeIds:new Set};let a=new Map,o=new Map;for(let e of t){if(!i.has(e.src)||!i.has(e.dst))continue;let t=a.get(e.src)??[];t.push({dst:e.dst,id:e.id}),a.set(e.src,t);let n=o.get(e.dst)??[];n.push({src:e.src,id:e.id}),o.set(e.dst,n)}let s=new Set(e.filter(e=>Mf.has(e.type)).map(e=>e.id)),c=r&&i.has(r)?new Set([r]):s.size?s:i,l=new Set,u=[n];for(;u.length;){let e=u.pop();if(!l.has(e)){l.add(e);for(let t of a.get(e)??[])l.has(t.dst)||u.push(t.dst)}}let d=new Set([n]),f=[...c].filter(e=>l.has(e)),p=new Set(f);for(;f.length;){let e=f.pop();d.add(e);for(let t of o.get(e)??[])l.has(t.src)&&!p.has(t.src)&&(p.add(t.src),f.push(t.src))}let m=new Set;for(let e of t)d.has(e.src)&&d.has(e.dst)&&m.add(e.id);return{nodeIds:d,edgeIds:m}}var Zf=16,Qf=28;function $f(e){return(e.context||``).trim()}function ep(e){return e.confidence!e&&t?1:e&&!t?-1:e.localeCompare(t));let s=new Map(a.map((e,t)=>[e,t])),c=(a.length-1)/2,l=up(n),u=[...new Set([...r.values()].map(e=>e.x))].sort((e,t)=>e-t),d=new Map(u.map((e,t)=>[e,t]));for(let t of e){let e=r.get(t.id)??{x:0,y:0},n=((s.get($f(t))??0)-c)*zf;if(l){let r=d.get(e.x)??0;i.set(t.id,{x:r*Lf,y:-e.y*Rf,z:n})}else i.set(t.id,{x:e.x*Bf,y:-e.y*Bf,z:n})}return i}function rp(e){return e===`layers`||e===`flow`?`slab`:e===`radial`||e===`concentric`||e===`circle`?`ring`:`none`}function ip(e,t,n=`layers`){if(!e.length)return[];let r=rp(n);if(r===`none`)return[];if(r===`ring`)return sp(e,t);let i=new Map;for(let n of e){let e=Math.round((t.get(n.id)?.x??0)*10)/10,r=i.get(e)??[];r.push(n),i.set(e,r)}return[...i.entries()].sort((e,t)=>e[0]-t[0]).map(([,e])=>op(e,t,n))}function ap(e,t){let n=new Map;for(let t of e){let e=bf(t.type);n.set(e,(n.get(e)||0)+1)}let r=-1,i=0;for(let[e,t]of n)t>i&&(r=e,i=t);return t===`flow`&&ie[0]-t[0]).map(([,e])=>{let n=0,r=0;for(let i of e){let e=t.get(i.id)??{x:0,y:0,z:0};n+=Math.hypot(e.x,e.y),r+=e.z}let i=n/e.length;return{shape:`ring`,x:0,y:0,z:r/e.length,extentY:0,extentZ:0,radius:i,label:i<12?``:ap(e,`radial`),count:e.length}}).filter(e=>e.radius>=12)}function cp(){try{if(typeof localStorage>`u`)return`layers`;let e=localStorage.getItem(Ef);return e&&Tf.has(e)?e:`layers`}catch{return`layers`}}function lp(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(Ef,e)}catch{}}function up(e){return e===`layers`||e===`flow`}function dp(e){if(!e.length)return NaN;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2}function fp(e,t){return e.name.localeCompare(t.name)||e.id.localeCompare(t.id)}function pp(e,t){return bf(e.type)-bf(t.type)||fp(e,t)}function mp(e,t,n){e.forEach((r,i)=>{let a=-Math.PI/2+2*Math.PI*i/Math.max(e.length,1);n.set(r.id,{x:Math.cos(a)*t,y:Math.sin(a)*t})})}function hp(e,t){return Math.max(t*Af,e<=1?t===0?0:208:e*kf/(2*Math.PI))}function gp(e,t){let n=new Map;if(!e.length)return n;let r=new Set(e.flat().map(e=>e.id)),i=new Map,a=new Map;for(let t of e.flat())i.set(t.id,[]),a.set(t.id,[]);for(let e of t)!r.has(e.src)||!r.has(e.dst)||e.src===e.dst||(a.get(e.src).push(e.dst),i.get(e.dst).push(e.src));let o=new Map;e.forEach((e,t)=>{for(let n of e)o.set(n.id,t)});let s=new Map,c=()=>{for(let t of e)t.forEach((e,t)=>s.set(e.id,t))};c();let l=(e,t)=>{let n=e.map((e,n)=>{let r=dp(t(e.id).map(e=>s.get(e)).filter(e=>e!==void 0));return{n:e,bary:Number.isNaN(r)?n:r,name:e.name,id:e.id}});return n.sort((e,t)=>e.bary-t.bary||e.name.localeCompare(t.name)||e.id.localeCompare(t.id)),n.map(e=>e.n)},u=e=>t=>o.get(t)===e;for(let t=0;t(i.get(e)??[]).filter(u(t-1))),c();for(let t=e.length-2;t>=0;t--)e[t]=l(e[t],e=>(a.get(e)??[]).filter(u(t+1))),c()}let d=Math.max(...e.map(e=>e.length),1);return e.forEach((e,t)=>{let r=(d-e.length)*92/2;e.forEach((e,i)=>{n.set(e.id,{x:t*296,y:r+i*92})})}),n}function _p(e,t){let n=new Set(e.map(e=>e.id)),r=Math.max(e.length-1,0),i=new Map;for(let t of e)i.set(t.id,0);for(let a=0;a(i.get(a.dst)||0)&&(i.set(a.dst,t),e=!0)}if(!e)break}let a=new Map;for(let t of e){let e=i.get(t.id)||0,n=a.get(e)??[];n.push(t),a.set(e,n)}return gp([...a.keys()].sort((e,t)=>e-t).map(e=>(a.get(e)??[]).sort(fp)),t)}function vp(e,t){let n=new Map;if(!e.length)return n;let r=new Set(e.map(e=>e.id)),i=new Map,a=new Map;for(let t of e)i.set(t.id,[]),a.set(t.id,0);for(let e of t)!r.has(e.src)||!r.has(e.dst)||e.src===e.dst||(i.get(e.src).push(e.dst),i.get(e.dst).push(e.src),a.set(e.src,(a.get(e.src)||0)+1),a.set(e.dst,(a.get(e.dst)||0)+1));let o=[...e].sort((e,t)=>(a.get(t.id)||0)-(a.get(e.id)||0)||fp(e,t))[0]??e[0],s=new Map,c=[[o]];s.set(o.id,0);let l=[o];for(;l.length;){let t=l.shift(),n=s.get(t.id)||0,r=(i.get(t.id)??[]).map(t=>e.find(e=>e.id===t)).filter(e=>!!e).sort(fp);for(let e of r){if(s.has(e.id))continue;s.set(e.id,n+1);let t=c[n+1]??[];t.push(e),c[n+1]=t,l.push(e)}}let u=e.filter(e=>!s.has(e.id)).sort(fp);return u.length&&c.push(u),c.forEach((e,t)=>{if(t===0&&e.length===1){n.set(e[0].id,{x:0,y:0});return}let r=Math.max(t*296,e.length<=1?208:e.length*240/(2*Math.PI));e.forEach((t,i)=>{let a=-Math.PI/2+2*Math.PI*i/e.length;n.set(t.id,{x:Math.cos(a)*r,y:Math.sin(a)*r})})}),n}function yp(e){let t=new Map,n=[...e].sort((e,t)=>bf(e.type)-bf(t.type)||fp(e,t)),r=Math.max(1,Math.ceil(Math.sqrt(n.length)));return n.forEach((e,n)=>{t.set(e.id,{x:n%r*296,y:Math.floor(n/r)*92})}),t}function bp(e){let t=new Map,n=[...e].sort(pp);return n.length<=1?(n[0]&&t.set(n[0].id,{x:0,y:0}),t):(mp(n,hp(n.length,1),t),t)}function xp(e){let t=new Map;if(!e.length)return t;let n=new Map;for(let t of e){let e=bf(t.type),r=n.get(e)??[];r.push(t),n.set(e,r)}return[...n.keys()].sort((e,t)=>e-t).forEach((e,r)=>{let i=(n.get(e)??[]).sort(fp);if(r===0&&i.length===1){t.set(i[0].id,{x:0,y:0});return}mp(i,hp(i.length,r===0?1:r),t)}),t}function Sp(e){let t=new Map;if(!e.length)return t;let n=new Map;for(let t of e){let e=n.get(t.type)??[];e.push(t),n.set(t.type,e)}let r=[...n.keys()].sort((e,t)=>bf(e)-bf(t)||e.localeCompare(t)).map(e=>{let t=(n.get(e)??[]).sort(fp),r=Math.max(1,Math.ceil(Math.sqrt(t.length))),i=Math.ceil(t.length/r);return{members:t,cols:r,width:Math.max(0,r-1)*Af,height:Math.max(0,i-1)*jf}}),i=Math.max(...r.map(e=>Math.hypot(e.width,e.height)/2+208),208),a=r.length<=1?0:Math.max(Af,r.length*(i*2+88)/(2*Math.PI));return r.forEach((e,n)=>{let i=r.length===1?0:-Math.PI/2+2*Math.PI*n/r.length,o=Math.cos(i)*a,s=Math.sin(i)*a;e.members.forEach((n,r)=>{let i=r%e.cols,a=Math.floor(r/e.cols);t.set(n.id,{x:o-e.width/2+i*Af,y:s-e.height/2+a*jf})})}),t}function Cp(e,t){let n=new Map;if(!e.length)return n;let r=new Map(e.map(e=>[e.id,e])),i=new Set(r.keys()),a=new Map,o=new Map;for(let t of e)a.set(t.id,[]),o.set(t.id,0);for(let e of t)!i.has(e.src)||!i.has(e.dst)||e.src===e.dst||(a.get(e.src).push(e.dst),o.set(e.dst,(o.get(e.dst)||0)+1));for(let[e,t]of a){let n=[...new Set(t)];n.sort((e,t)=>fp(r.get(e),r.get(t))),a.set(e,n)}let s=e.filter(e=>(o.get(e.id)||0)===0).sort(fp);if(!s.length){let t=[...e].sort((e,t)=>(a.get(t.id)?.length||0)-(a.get(e.id)?.length||0)||fp(e,t))[0];s.push(t)}let c=new Set,l=new Map;for(let t of e)l.set(t.id,[]);let u=e=>{c.add(e);for(let t of a.get(e)??[])c.has(t)||(l.get(e).push(t),u(t))};for(let e of s)c.has(e.id)||u(e.id);for(let t of[...e].sort(fp))c.has(t.id)||(s.push(t),u(t.id));let d=0,f=(e,t)=>{let r=l.get(e)??[];if(!r.length){n.set(e,{x:d*Af,y:t*jf}),d+=1;return}let i=d;for(let e of r)f(e,t+1);n.set(e,{x:(i+d-1)/2*Af,y:t*jf})};for(let e of s)n.has(e.id)||f(e.id,0);return n}function wp(e,t){for(let n=0;n<8;n++)for(let n=0;ne.id)),s=[],c=new Set;for(let e of t){if(!o.has(e.src)||!o.has(e.dst)||e.src===e.dst)continue;let t=e.src[e.id,e])),i=[];kp.has(e.type)&&i.push(`sink`),Ap.has(e.type)&&i.push(`contract`);let a=e.extra??{};a.inferred&&i.push(`inferred`),a.generated&&i.push(`generated`),a.mutation&&i.push(`mutation`),a.fbv&&i.push(`function view`),a.ninja&&i.push(`ninja`),a.ninja_schema&&i.push(`ninja schema`),a.next_app&&i.push(`app router`),a.typed_client&&i.push(String(a.typed_client)),a.e2e&&i.push(`e2e`),a.filterset===!0&&i.push(`filterset`);let o=n.filter(t=>t.dst===e.id),s=n.filter(t=>t.src===e.id),c=o.slice(0,Dp).map(e=>Vp(e,r,e.src)),l=s.slice(0,Dp).map(e=>Vp(e,r,e.dst)),u=e.file_path?`${e.file_path}${e.start_line?`:${e.start_line}`:``}`:void 0,d={type:e.type,typeLabel:O(A(e.type)),layer:Hf[bf(e.type)]??`other`,purpose:Lp(e.type),name:e.name,qualifiedName:e.qualified_name,file:u,context:e.context,roles:i,facts:Hp(a).filter(t=>t.key!==`app`||t.value!==e.context),inputs:c,outputs:l,extraInputs:Math.max(0,o.length-Dp),extraOutputs:Math.max(0,s.length-Dp),degreeIn:o.length,degreeOut:s.length,inputKinds:zp(o.map(e=>Vp(e,r,e.src))),outputKinds:zp(s.map(e=>Vp(e,r,e.dst))),pathSummary:``};return d.pathSummary=Bp(d),d}function zp(e){let t=new Map;for(let n of e){let e=n.edgeLabel||n.edgeType.replaceAll(`_`,` `);t.set(e,(t.get(e)||0)+1)}return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0])).map(([e,t])=>({label:e,count:t}))}function Bp(e){let t=e.inputKinds.map(e=>`${e.label} ×${e.count}`).join(`, `),n=e.outputKinds.map(e=>`${e.label} ×${e.count}`).join(`, `);return t&&n?`${t} → this → ${n}`:n?`this → ${n}`:t?`${t} → this`:``}function Vp(e,t,n){let r=t.get(n),i=n.includes(`:`)?n.slice(n.indexOf(`:`)+1):n;return{id:n,name:r?.name||i,type:r?.type||``,typeLabel:r?O(A(r.type)):``,edgeType:e.type,edgeLabel:O(e.type),inferred:e.confidence<.8}}function Hp(e){let t=[...Np.filter(t=>t in e),...Object.keys(e).filter(e=>!Np.includes(e)&&!Pp.has(e))],n=[],r=new Set;for(let i of t){if(r.has(i)||Pp.has(i)||Ip.has(i))continue;r.add(i);let t=Up(i,e[i]);t!=null&&n.push({key:i,label:Mp[i]??O(i),value:t})}return n}function Up(e,t){if(t==null)return null;if(typeof t==`boolean`)return!t&&!Fp.has(e)?null:t?`yes`:`no`;if(typeof t==`number`)return String(t);if(typeof t==`string`)return t.trim()||null;if(Array.isArray(t)){if(t.some(e=>e&&typeof e==`object`))return Wp(e,t);let n=t.map(e=>typeof e==`string`||typeof e==`number`?String(e):``).filter(Boolean);if(!n.length)return null;let r=n.slice(0,Op),i=n.length-r.length;return i>0?`${r.join(`, `)} +${i} more`:r.join(`, `)}return null}function Wp(e,t){let n=t.slice(0,4).map(t=>{if(e===`nplusone`){let e=String(t.queryset||`queryset`),n=Array.isArray(t.accessed)?t.accessed.join(`.`):``,r=t.line?` L${t.line}`:``;return n?`${e} → ${n}${r}`:`${e}${r}`}if(e===`lookups`){let e=Array.isArray(t.fields)?t.fields.join(`, `):``,n=String(t.kind||`filter`);return e?`${n} ${e}`:n}return Object.entries(t).filter(([,e])=>e!=null&&(typeof e==`string`||typeof e==`number`)).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `)});if(!n.some(Boolean))return null;let r=t.length-n.length;return r>0?`${n.join(`; `)} +${r} more`:n.join(`; `)}var Gp=12,Kp=.2,qp=20,Jp=64;function Yp(e,t,n){let r=n??Cf(e,t),i=[...new Set([...r.values()].map(e=>e.x))].sort((e,t)=>e-t),a=[];for(let e of t){let t=r.get(e.src),n=r.get(e.dst);if(!t||!n)continue;let i=t.y+32,o=n.y+32;if(Math.abs(i-o)e.y0-t.y0||e.y1-t.y1||e.id.localeCompare(t.id)),n=Qp(t),r=Math.max(0,...n.values())+1,a=t[0].sourceX,o=Xp(i,a);for(let e of t){let t=$p(n.get(e.id)??0,r),i=a+qp+Math.max(1,o-40)*t;s.set(e.id,Zp(e.sourceX,e.targetX,i))}}return s}function Xp(e,t){let n=t-208,r=e.find(e=>e>n+1);return r===void 0?88:Math.max(88,r-t)}function Zp(e,t,n){let r=t-e-40;return r<1?.5:Math.min(1,Math.max(0,(n-e-qp)/r))}function Qp(e){let t=[],n=new Map;for(let r of e){let e=-1;for(let n=0;nt[n]+Jp){e=n;break}e<0?(e=t.length,t.push(r.y1)):t[e]=Math.max(t[e],r.y1),n.set(r.id,e)}return n}function $p(e,t){return t<=1?.5:Kp+.6000000000000001*e/(t-1)}var em=`modulepreload`,tm=function(e,t){return new URL(e,t).href},nm={},rm=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=tm(t,n),t=s(t),t in nm)return;nm[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:em,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},im=new Set,am=(0,g.lazy)(()=>rm(()=>import(`./LayeredGraph3D-HVYd3pFj.js`).then(e=>({default:e.LayeredGraph3D})),[],import.meta.url)),om=class extends g.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}},sm=(0,w.jsx)(`p`,{className:`muted graph-3d-hint`,"data-testid":`graph-3d-fallback`,children:`WebGL is unavailable in this browser, so the 3D view cannot start. Switch back to 2D map.`}),cm={cheap:`var(--edge-cheap)`,expensive:`var(--edge-expensive)`,critical:`var(--edge-critical)`},lm={n:X.Top,e:X.Right,s:X.Bottom,w:X.Left};function um(e,t){let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>=Math.abs(r)?n>=0?{source:`e`,target:`w`}:{source:`w`,target:`e`}:r>=0?{source:`s`,target:`n`}:{source:`n`,target:`s`}}function dm({data:e,selected:t}){let n=(e.roles||[]).map(e=>`role-${e}`).join(` `);return(0,w.jsxs)(`div`,{className:[`lp-node`,t?`selected`:``,e.dim?`dim`:``,n].filter(Boolean).join(` `),children:[[`n`,`e`,`s`,`w`].map(e=>(0,w.jsx)(nu,{id:`tgt-${e}`,type:`target`,position:lm[e],isConnectable:!1},`tgt-${e}`)),(0,w.jsx)(`div`,{className:`t`,children:A(e.type)}),(0,w.jsx)(`div`,{className:`n`,title:e.name,children:N(e.name)}),[`n`,`e`,`s`,`w`].map(e=>(0,w.jsx)(nu,{id:`src-${e}`,type:`source`,position:lm[e],isConnectable:!1},`src-${e}`))]})}var fm={load:dm},pm=new Set([`django`,`react`,`stitch`,`arch`]);function mm({id:e,sourceX:t,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:o,style:s,markerEnd:c,markerStart:l,label:u,labelStyle:d,labelShowBg:f,labelBgStyle:p,labelBgPadding:m,labelBgBorderRadius:h,data:g,interactionWidth:_}){let[v,y,b]=ns({sourceX:t,sourceY:n,sourcePosition:a,targetX:r,targetY:i,targetPosition:o,borderRadius:8,stepPosition:g?.stepPosition??.5});return(0,w.jsx)(Iu,{id:e,path:v,labelX:y,labelY:b,label:u,labelStyle:d,labelShowBg:f,labelBgStyle:p,labelBgPadding:m,labelBgBorderRadius:h,style:s,markerEnd:c,markerStart:l,interactionWidth:_})}var hm={loadstep:mm};function gm({topologyKey:e}){let{fitView:t}=kl();return(0,g.useEffect)(()=>{let e=0,n=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{t({padding:.2,maxZoom:1.15})})});return()=>{cancelAnimationFrame(n),cancelAnimationFrame(e)}},[t,e]),null}function _m(e,t,n=null,r={}){let i=new Map(e.map(e=>[e.id,e])),a=r.layout??`layers`,o=up(a),s=Ep(e,t,a),c=Yp(e,t,s);return{rfNodes:e.map(e=>{let t=r.roles?.[e.id]||[],i=!!r.testOverlay&&!t.includes(`tested`)&&!t.includes(`untested`)&&!t.includes(`test`)&&!t.includes(`seed`);return{id:e.id,type:`load`,position:s.get(e.id)??{x:0,y:0},data:{name:e.name,type:e.type,file:e.file_path,roles:t,dim:i},selected:n===e.id,sourcePosition:X.Right,targetPosition:X.Left,width:208,height:64,style:{width:208,height:64}}}),rfEdges:t.filter(e=>i.has(e.src)&&i.has(e.dst)).map(e=>{let t=cm[e.weight]||`var(--edge-cheap)`,r=!!(n&&(e.src===n||e.dst===n)),i=s.get(e.src)??{x:0,y:0},a=s.get(e.dst)??{x:0,y:0},l=o?{source:`e`,target:`w`}:um(i,a);return{id:e.id,source:e.src,target:e.dst,sourceHandle:`src-${l.source}`,targetHandle:`tgt-${l.target}`,sourcePosition:lm[l.source],targetPosition:lm[l.target],type:o?`loadstep`:`default`,animated:e.weight===`critical`,data:{stepPosition:c.get(e.id)??.5},style:{stroke:t,strokeWidth:e.weight===`critical`?2.4:1.2,strokeDasharray:e.confidence<.8?`6 4`:void 0},markerEnd:{type:za.ArrowClosed,width:14,height:14,color:t},label:r?e.type.replaceAll(`_`,` `):void 0,labelStyle:r?{fill:`var(--ink)`,fontSize:10,fontWeight:600}:void 0,labelBgStyle:r?{fill:`var(--graph-bg)`,fillOpacity:.92}:void 0,labelBgPadding:r?[3,5]:void 0,labelBgBorderRadius:r?4:void 0}})}}function vm({node:e,nodes:t,edges:n,onClose:r,onWhatIf:i,onSelect:a,onOpenFile:o,pinned:s,onPin:c,onIsolate:l}){let u=Rp(e,t,n);return(0,g.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]),(0,w.jsxs)(`aside`,{className:`inspector`,"data-testid":`graph-inspector`,children:[(0,w.jsxs)(`div`,{className:`inspector-head`,children:[(0,w.jsx)(`div`,{className:`t`,children:u.typeLabel}),(0,w.jsx)(`div`,{className:`inspector-roles`,children:u.roles.map(e=>(0,w.jsx)(`span`,{className:`inspector-chip`,children:e},e))}),(0,w.jsx)(`button`,{type:`button`,className:`inspector-close`,"data-testid":`graph-inspector-close`,"aria-label":`Close inspector`,onClick:r,children:`×`})]}),(0,w.jsx)(`div`,{className:`n`,children:N(u.name)}),(0,w.jsx)(`p`,{className:`inspector-purpose`,"data-testid":`graph-inspector-purpose`,children:u.purpose}),u.context?(0,w.jsx)(`div`,{className:`muted`,children:N(u.context)}):null,u.file?(0,w.jsxs)(`div`,{className:`file-row`,children:[(0,w.jsx)(`div`,{className:`file`,children:N(u.file)}),o&&e.file_path?(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-open-editor`,onClick:()=>o(e.file_path,e.start_line),children:`Open in editor`}):null]}):null,(0,w.jsx)(`div`,{className:`muted`,children:N(u.qualifiedName)}),(0,w.jsxs)(`div`,{className:`muted inspector-layer`,children:[`layer · `,u.layer]}),(0,w.jsxs)(`div`,{className:`muted inspector-degree`,"data-testid":`graph-inspector-degree`,children:[u.degreeIn,` in · `,u.degreeOut,` out`]}),u.pathSummary?(0,w.jsx)(`p`,{className:`inspector-path`,"data-testid":`graph-inspector-path`,children:u.pathSummary}):null,u.facts.length?(0,w.jsx)(`dl`,{className:`inspector-facts`,"data-testid":`graph-inspector-facts`,children:u.facts.map(e=>(0,w.jsxs)(`div`,{className:`inspector-fact`,children:[(0,w.jsx)(`dt`,{children:e.label}),(0,w.jsx)(`dd`,{children:N(e.value)})]},e.key))}):null,(0,w.jsx)(ym,{title:`Inputs`,testId:`graph-inspector-inputs`,links:u.inputs,extra:u.extraInputs,empty:`Nothing in this graph points here.`,onSelect:a}),(0,w.jsx)(ym,{title:`Outputs`,testId:`graph-inspector-outputs`,links:u.outputs,extra:u.extraOutputs,empty:`This node does not point at anything in this graph.`,onSelect:a}),i?(0,w.jsx)(`p`,{className:`whatif-hint`,"data-testid":`whatif-hint`,children:l?`Walks a new path from this node with no git range. Isolate (next) only hides the rest of this map.`:`Walks a new path from this node with no git range — as if this changed, regardless of Base/Head.`}):null,(0,w.jsxs)(`div`,{className:`btn-row`,children:[i?(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-whatif`,title:`Start a hypothetical walk from this node. Does not use Base/Head.`,onClick:()=>i(e.id),children:`What if this changes`}):null,l?(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-isolate`,title:`Hide nodes that are not on a path from here to a sink. Does not start a new walk.`,onClick:()=>l(e.id),children:`Isolate path to sinks`}):null,c?(0,w.jsx)(`button`,{type:`button`,className:s?`btn primary`:`btn`,"data-testid":`btn-pin-node`,onClick:()=>c(s?null:e.id),children:s?`Unpin`:`Pin`}):null]})]})}function ym({title:e,testId:t,links:n,extra:r,empty:i,onSelect:a}){return(0,w.jsxs)(`section`,{className:`inspector-section`,"data-testid":t,children:[(0,w.jsxs)(`h3`,{children:[e,(0,w.jsx)(`span`,{className:`count`,children:n.length+r})]}),n.length?(0,w.jsx)(`ul`,{children:n.map((e,t)=>(0,w.jsx)(`li`,{children:a?(0,w.jsxs)(`button`,{type:`button`,className:`inspector-link`,onClick:()=>a(e.id),children:[(0,w.jsx)(`span`,{className:`inspector-link-name`,title:e.name,children:N(e.name)}),(0,w.jsxs)(`span`,{className:`inspector-link-meta`,children:[e.typeLabel?`${e.typeLabel} · `:``,e.edgeLabel,e.inferred?` · inferred`:``]})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`inspector-link-name`,title:e.name,children:N(e.name)}),(0,w.jsxs)(`span`,{className:`inspector-link-meta`,children:[e.typeLabel?`${e.typeLabel} · `:``,e.edgeLabel,e.inferred?` · inferred`:``]})]})},`${e.edgeType}:${e.id}:${t}`))}):(0,w.jsx)(`p`,{className:`muted`,children:i}),r?(0,w.jsxs)(`p`,{className:`muted`,children:[`+`,r,` more`]}):null]})}function bm({nodes:e,edges:t,onWhatIf:n,focusPath:r,selectedId:i,onSelect:a,nodeRoles:o,testOverlay:s=!1,isolateSource:c,onIsolate:l,repoPath:u,onOpenFile:d,pinnedId:f,onPin:p}){let[m,h]=(0,g.useState)(null),_=i===void 0?m:i,v=e=>{i===void 0&&h(e),a?.(e)},[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(null),[C,T]=(0,g.useState)(()=>cp()),[E,D]=(0,g.useState)(new Set(pm)),[O,k]=(0,g.useState)(!1),[j,M]=(0,g.useState)(``),[N,P]=(0,g.useState)(!1),[F,I]=(0,g.useState)(null),L=typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;(0,g.useEffect)(()=>{let e=()=>I(Nf());if(typeof window.requestIdleCallback==`function`){let t=window.requestIdleCallback(e);return()=>window.cancelIdleCallback(t)}let t=window.setTimeout(e,0);return()=>window.clearTimeout(t)},[]);let ee=Pf(y??Gf(e.length),y,F),R=x??Kf(e.length),z=O?_:null,B=(0,g.useMemo)(()=>c?Xf(e,t,c):null,[e,t,c]),V=B?e.filter(e=>B.nodeIds.has(e.id)):e,te=B?t.filter(e=>B.edgeIds.has(e.id)):t,H=(0,g.useMemo)(()=>Jf(V,te,{detail:R,families:E,focusId:z,neighborhoodOnly:!!z}),[V,te,R,E,z]),U=(0,g.useMemo)(()=>`${C}|${H.nodes.map(e=>e.id).join(`\0`)}|${H.edges.map(e=>e.id).join(`\0`)}`,[C,H.nodes,H.edges]),ne=_?e.find(e=>e.id===_)??null:null,{rfNodes:re,rfEdges:ie}=(0,g.useMemo)(()=>{let e=_m(H.nodes,H.edges,_,{roles:o,testOverlay:s,layout:C});return L&&(e.rfEdges=e.rfEdges.map(e=>({...e,animated:!1}))),e},[H.nodes,H.edges,_,L,o,s,C]);(0,g.useEffect)(()=>{if(!r)return;let t=e.find(e=>e.file_path===r);t&&v(t.id)},[r,e]);let ae=(0,g.useMemo)(()=>Yf(e,j),[e,j]),oe=(e,t)=>{v(t.id)},se=()=>{v(null),k(!1)},ce=ne?(0,w.jsx)(vm,{node:ne,nodes:e,edges:t,onClose:se,onWhatIf:n,onSelect:v,onOpenFile:d,pinned:f===ne.id,onPin:p,onIsolate:l?e=>{l(c===e?null:e)}:void 0}):null,le=e=>{D(t=>{let n=new Set(t);if(n.has(e)){if(n.size===1)return t;n.delete(e)}else n.add(e);return n})},ue=(0,g.useMemo)(()=>{let t=new Set;for(let n of e)t.add(Uf(n.type));return t},[e]),de=e.length-H.nodes.length;return(0,w.jsxs)(`div`,{className:`impact-graph`,style:{flex:1,minHeight:0,position:`relative`,display:`flex`,flexDirection:`column`},children:[(0,w.jsxs)(`div`,{className:`graph-toolbar`,"data-testid":`graph-toolbar`,children:[(0,w.jsxs)(`div`,{className:`seg`,"aria-label":`Graph projection`,children:[(0,w.jsx)(`button`,{type:`button`,"data-testid":`graph-view-2d`,className:ee===`2d`?`active`:``,"aria-pressed":ee===`2d`,onClick:()=>b(`2d`),children:`2D map`}),(0,w.jsx)(`button`,{type:`button`,"data-testid":`graph-view-3d`,className:ee===`3d`?`active`:``,"aria-pressed":ee===`3d`,onClick:()=>b(`3d`),children:`3D layers`})]}),(0,w.jsxs)(`div`,{className:`seg`,"aria-label":`Graph detail`,children:[(0,w.jsx)(`button`,{type:`button`,"data-testid":`graph-detail-overview`,className:R===`overview`?`active`:``,"aria-pressed":R===`overview`,onClick:()=>S(`overview`),children:`Overview`}),(0,w.jsx)(`button`,{type:`button`,"data-testid":`graph-detail-full`,className:R===`full`?`active`:``,"aria-pressed":R===`full`,onClick:()=>S(`full`),children:`Full`})]}),(0,w.jsx)(`div`,{className:`seg`,"aria-label":`Graph families`,children:[`django`,`stitch`,`react`].filter(e=>ue.has(e)).map(e=>(0,w.jsx)(`button`,{type:`button`,"data-testid":`graph-family-${e}`,className:E.has(e)?`active`:``,"aria-pressed":E.has(e),onClick:()=>le(e),children:e},e))}),(0,w.jsxs)(`label`,{className:`graph-layout`,children:[`Layout`,(0,w.jsx)(`select`,{id:`graph-layout`,"data-testid":`graph-layout`,value:C,"aria-label":`Graph layout algorithm`,onChange:e=>{let t=wf.find(t=>t.id===e.target.value)?.id;t&&(T(t),lp(t))},children:wf.map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.label},e.id))})]}),(0,w.jsx)(`button`,{type:`button`,className:O?`chip-btn active`:`chip-btn`,"data-testid":`graph-neighborhood`,disabled:!_,onClick:()=>k(e=>!e),children:O?`Neighborhood`:`Focus neighbors`}),c?(0,w.jsx)(`button`,{type:`button`,className:`chip-btn active`,"data-testid":`graph-isolate-clear`,onClick:()=>l?.(null),children:`Path isolate`}):null,(0,w.jsxs)(`label`,{className:`graph-search`,children:[(0,w.jsx)(`span`,{className:`sr-only`,children:`Search nodes`}),(0,w.jsx)(`input`,{"data-testid":`graph-search`,placeholder:`Find a node`,value:j,onChange:e=>{M(e.target.value),P(!0)},onFocus:()=>P(!0),onBlur:()=>window.setTimeout(()=>P(!1),150)}),N&&j.trim()&&ae.length?(0,w.jsx)(`ul`,{className:`graph-search-hits`,"data-testid":`graph-search-hits`,children:ae.map(e=>(0,w.jsx)(`li`,{children:(0,w.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>{v(e.id),M(``),P(!1)},children:[e.name,(0,w.jsx)(`span`,{className:`muted`,children:A(e.type)})]})},e.id))}):null]}),(0,w.jsxs)(`span`,{className:`muted graph-count`,children:[H.nodes.length,` nodes · `,H.edges.length,` edges`,de?` · ${de} hidden`:``]})]}),(0,w.jsx)(`div`,{className:`graph-stage`,children:e.length===0?(0,w.jsxs)(`div`,{className:`empty graph-walk-empty`,"data-testid":`graph-walk-empty`,children:[(0,w.jsx)(`h2`,{children:`No typed nodes on this walk`}),(0,w.jsx)(`p`,{children:`This range did not hit models, views, routes, or React pages Loadpath extracts. Open the architecture map for the indexed graph.`})]}):ee===`3d`?(0,w.jsxs)(`div`,{className:`graph-3d`,"data-testid":`graph-3d`,children:[(0,w.jsx)(`p`,{className:`graph-3d-hint`,children:`Same layout as the 2D map, with bounded context on the depth axis. Dashed edges are inferred. Drag to orbit, scroll to zoom, click a node to inspect it.`}),F===!1?sm:F===null?(0,w.jsx)(`p`,{className:`muted graph-3d-hint`,children:`Loading 3D layers…`}):(0,w.jsx)(om,{fallback:sm,children:(0,w.jsx)(g.Suspense,{fallback:(0,w.jsx)(`p`,{className:`muted graph-3d-hint`,children:`Loading 3D layers…`}),children:(0,w.jsx)(am,{nodes:H.nodes,edges:H.edges,selectedId:_,neighborIds:z?H.neighborIds:im,layout:C,nodeRoles:o,testOverlay:s,onSelect:e=>{v(e),e||k(!1)}})})}),ce]}):(0,w.jsxs)(jd,{children:[(0,w.jsxs)(Fd,{nodes:re,edges:ie,nodeTypes:fm,edgeTypes:hm,fitView:!1,minZoom:.25,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,deleteKeyCode:null,onNodeClick:oe,onPaneClick:se,proOptions:{hideAttribution:!1},"data-testid":`impact-graph`,children:[(0,w.jsx)(gm,{topologyKey:U}),(0,w.jsx)(Hd,{}),(0,w.jsx)(hf,{pannable:!0,zoomable:!0,ariaLabel:`Impact graph overview`,nodeColor:`var(--muted)`,nodeStrokeColor:`transparent`,nodeStrokeWidth:0,maskColor:`rgba(0, 0, 0, 0.45)`,maskStrokeColor:`var(--accent)`,maskStrokeWidth:1.4,bgColor:`var(--graph-bg)`,style:{width:184,height:128}}),(0,w.jsx)(Zd,{})]}),ce]})})]})}function xm(e){return(0,w.jsx)(om,{fallback:(0,w.jsx)(`p`,{className:`muted graph-3d-hint`,"data-testid":`graph-crash-fallback`,children:`The graph failed to render. Switch to 2D map or another layout.`}),children:(0,w.jsx)(bm,{...e})})}function Sm(){let e=localStorage.getItem(`loadpath.editor`)||`auto`;return e===`cursor`||e===`vscode`||e===`system`?e:`auto`}function Cm(e){localStorage.setItem(`loadpath.editor`,e)}async function wm(e,t,n,r=Sm()){try{let i=await x.openEditor(e,t,n??void 0,r);if(i.ok)return{ok:!0,message:`Opened ${t} in ${i.opened_with||`editor`}`};let a=i.urls||{},o=r===`vscode`?a.vscode:r===`cursor`?a.cursor:a.cursor||a.vscode;return o?(window.open(o,`_blank`,`noopener,noreferrer`),{ok:!0,message:`Opening ${t} via editor URL`}):{ok:!1,message:i.error||`Could not open editor`}}catch(e){return{ok:!1,message:e instanceof Error?e.message:String(e)}}}var Tm=[{value:`HEAD`,label:`HEAD`,group:`preset`},{value:`HEAD~1`,label:`HEAD~1`,group:`preset`}],Em=[`preset`,`branch`,`tag`,`commit`];function Dm(e){if(!e?.git)return[...Tm];let t=(e.presets?.length?e.presets:Tm.map(e=>e.value)).map(e=>({value:e,label:e,group:`preset`})),n=new Set(t.map(e=>e.value)),r=[...t];for(let t of e.branches||[])n.has(t.name)||(n.add(t.name),r.push({value:t.name,label:t.current?`${t.name} (current)`:t.name,detail:t.subject,group:`branch`}));for(let t of e.tags||[])n.has(t.name)||(n.add(t.name),r.push({value:t.name,label:t.name,detail:t.subject,group:`tag`}));for(let t of e.commits||[])n.has(t.sha)||(n.add(t.sha),r.push({value:t.sha,label:t.short,detail:t.subject,group:`commit`}));return r}function Om(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.value.toLowerCase().includes(n)||e.label.toLowerCase().includes(n)||(e.detail||``).toLowerCase().includes(n)):e}function km(e){return Em.map(t=>({group:t,items:e.filter(e=>e.group===t)})).filter(e=>e.items.length>0)}function Am(e){return e===`preset`?`Common`:e===`branch`?`Branches`:e===`tag`?`Tags`:`Recent commits`}function jm({value:e,onChange:t,placeholder:n,testId:r,menuTestId:i,refs:a,onNeedRefs:o}){let s=(0,g.useId)(),c=(0,g.useRef)(null),[l,u]=(0,g.useState)(!1),[d,f]=(0,g.useState)(null),[p,m]=(0,g.useState)(0),h=(0,g.useMemo)(()=>{let e=Dm(a);return d===null?e:Om(e,d)},[a,d]),_=(0,g.useMemo)(()=>km(h),[h]);(0,g.useEffect)(()=>{l&&o()},[l,o]),(0,g.useEffect)(()=>{m(0)},[d,l]);let v=()=>{u(!1),f(null)},y=e=>{t(e.value),v()};return(0,w.jsxs)(`div`,{className:`combo`,ref:c,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||v()},children:[(0,w.jsxs)(`div`,{className:`combo-row`,children:[(0,w.jsx)(`input`,{"data-testid":r,value:e,placeholder:n,spellCheck:!1,role:`combobox`,"aria-expanded":l,"aria-controls":s,"aria-autocomplete":`list`,onChange:e=>{t(e.target.value),l&&f(e.target.value)},onKeyDown:e=>{if(e.key===`ArrowDown`){if(e.preventDefault(),!l){u(!0);return}m(e=>Math.min(e+1,Math.max(h.length-1,0)))}else if(e.key===`ArrowUp`){if(e.preventDefault(),!l)return;m(e=>Math.max(e-1,0))}else if(e.key===`Enter`&&l){e.preventDefault();let t=h[p];t&&y(t)}else e.key===`Escape`&&l&&(e.preventDefault(),v())}}),(0,w.jsx)(`button`,{type:`button`,className:`icon-btn combo-toggle`,"data-testid":`${r}-toggle`,"aria-label":`Show recent refs`,"aria-expanded":l,onMouseDown:e=>e.preventDefault(),onClick:()=>l?v():u(!0),children:(0,w.jsx)(B,{})})]}),l?(0,w.jsx)(`div`,{className:`combo-menu`,id:s,role:`listbox`,"data-testid":i,children:_.length===0?(0,w.jsx)(`div`,{className:`combo-empty muted`,children:`No matching refs — the typed value is kept`}):_.map(e=>(0,w.jsxs)(`div`,{className:`combo-group`,children:[(0,w.jsx)(`div`,{className:`combo-heading`,children:Am(e.group)}),e.items.map(e=>{let t=h.indexOf(e);return(0,w.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t===p,className:t===p?`combo-option active`:`combo-option`,"data-testid":`ref-option-${e.group}`,onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>m(t),onClick:()=>y(e),children:[(0,w.jsx)(`span`,{className:`combo-label`,children:e.label}),e.detail?(0,w.jsx)(`span`,{className:`combo-detail`,children:e.detail}):null]},`${e.group}:${e.value}`)})]},e.group))}):null]})}function Mm({initialPath:e,onSelect:t,onClose:n}){let[r,i]=(0,g.useState)(null),[a,o]=(0,g.useState)(e),[s,c]=(0,g.useState)(null),[l,u]=(0,g.useState)(``),[d,f]=(0,g.useState)(!1),p=(0,g.useRef)(null),m=(0,g.useRef)(0),h=async e=>{let t=m.current+1;m.current=t,f(!0);try{let n=await x.browse(e);if(m.current!==t)return;i(n),o(n.path),c(n.is_git?n.path:null),u(``)}catch(e){if(m.current!==t)return;u(e instanceof Error?e.message:String(e))}finally{m.current===t&&f(!1)}};(0,g.useEffect)(()=>{h(e),p.current?.focus(),p.current?.select()},[e]);let _=s||r?.path||a,v=s&&s!==r?.path?s.split(/[\\/]/).filter(Boolean).pop():r?.is_git?`this repository`:`this folder`;return(0,w.jsx)(`div`,{className:`modal-backdrop`,"data-testid":`repo-explorer`,"data-overlay":`true`,onClick:n,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),n())},children:(0,w.jsxs)(`div`,{className:`modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`explorer-title`,onClick:e=>e.stopPropagation(),children:[(0,w.jsxs)(`div`,{className:`modal-head`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h2`,{id:`explorer-title`,children:`Select repository`}),(0,w.jsx)(`p`,{className:`muted`,children:`Browse to a git root, or paste the full path.`})]}),(0,w.jsx)(`button`,{type:`button`,className:`btn ghost`,"data-testid":`explorer-cancel`,onClick:n,children:`Cancel`})]}),(0,w.jsxs)(`form`,{className:`explorer-path`,onSubmit:e=>{e.preventDefault(),h(a)},children:[(0,w.jsx)(`input`,{ref:p,"data-testid":`explorer-path`,value:a,onChange:e=>o(e.target.value),spellCheck:!1,"aria-label":`Directory path`}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,disabled:!r?.parent,onClick:()=>r?.parent&&void h(r.parent),children:`Up`}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>r&&void h(r.home),children:`Home`}),(0,w.jsx)(`button`,{type:`submit`,className:`btn`,children:`Go`})]}),l?(0,w.jsx)(`div`,{className:`error`,role:`alert`,children:l}):null,(0,w.jsx)(`div`,{className:`explorer-list`,role:`listbox`,"aria-label":`Folders`,"aria-busy":d,children:r?.entries.length?r.entries.map(e=>{let t=s===e.path;return(0,w.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t,className:t?`explorer-row active`:`explorer-row`,"data-testid":`explorer-entry`,"data-path":e.path,onClick:()=>c(e.path),onDoubleClick:()=>void h(e.path),children:[(0,w.jsx)(z,{}),(0,w.jsx)(`span`,{className:`explorer-name`,children:e.name}),e.is_git?(0,w.jsx)(`span`,{className:`chip git-badge`,children:`git`}):null]},e.path)}):(0,w.jsx)(`div`,{className:`muted explorer-empty`,children:d?`Loading…`:`No folders here`})}),(0,w.jsxs)(`div`,{className:`modal-foot`,children:[(0,w.jsx)(`span`,{className:`muted explorer-current`,title:_,children:_}),(0,w.jsxs)(`button`,{type:`button`,className:`btn primary`,"data-testid":`explorer-use`,disabled:!_,onClick:()=>_&&t(_),children:[`Use `,v]})]})]})})}var Nm={scan:{start:0,end:20},extract:{start:20,end:88},boot:{start:88,end:94},stitch:{start:94,end:99},skipped:{start:100,end:100},done:{start:100,end:100}},Pm=new Set([`scan`,`extract`,`boot`,`stitch`]);function Fm(e){let t=e.phase||``;if(!t||t===`idle`)return null;let n=Nm[t];if(!n)return null;if(n.start===n.end)return n.end;let r=e.total||0;if(r<=0)return n.start;let i=Math.min(1,Math.max(0,(e.done||0)/r));return Math.round(n.start+(n.end-n.start)*i)}function Im(e){return!e.phase||e.phase===`idle`?null:typeof e.percent==`number`&&Number.isFinite(e.percent)?Math.max(0,Math.min(100,Math.round(e.percent))):Fm(e)}var Lm=[{id:`obsidian`,label:`Obsidian`,group:`dark`},{id:`nord`,label:`Nord`,group:`dark`},{id:`solarized-dark`,label:`Solarized Dark`,group:`dark`},{id:`forest`,label:`Forest`,group:`dark`},{id:`rose`,label:`Rose Pine`,group:`dark`},{id:`amber`,label:`Midnight Amber`,group:`dark`},{id:`volcano`,label:`Volcano`,group:`dark`},{id:`lavender`,label:`Lavender`,group:`dark`},{id:`neon-noir`,label:`Neon Noir`,group:`dark`},{id:`synthwave`,label:`Synthwave`,group:`dark`},{id:`phosphor`,label:`Phosphor`,group:`dark`},{id:`aurora`,label:`Aurora`,group:`dark`},{id:`biolume`,label:`Biolume`,group:`dark`},{id:`carbon`,label:`Carbon`,group:`dark`},{id:`paper`,label:`Paper`,group:`light`},{id:`solarized-light`,label:`Solarized Light`,group:`light`},{id:`seafoam`,label:`Seafoam`,group:`light`},{id:`high-contrast`,label:`High Contrast`,group:`light`},{id:`sakura`,label:`Sakura`,group:`light`},{id:`citrus`,label:`Citrus`,group:`light`},{id:`peach`,label:`Peach Fuzz`,group:`light`},{id:`candy`,label:`Cotton Candy`,group:`light`},{id:`sky`,label:`Clear Sky`,group:`light`},{id:`coral`,label:`Coral Reef`,group:`light`}],Rm=`obsidian`,zm=`loadpath.theme`;function Bm(e){return Lm.some(t=>t.id===e)}function Vm(){try{let e=localStorage.getItem(zm)||``;if(Bm(e))return e}catch{}return Rm}function Hm(e){return Lm.find(t=>t.id===e)?.group===`light`?`light`:`dark`}function Um(e){document.documentElement.dataset.theme=e,document.documentElement.style.colorScheme=Hm(e);try{localStorage.setItem(zm,e)}catch{}}var Wm=[{id:`review`,label:`Review`,testId:`tab-review`,shortcut:`1`,icon:F},{id:`architecture`,label:`Architecture`,testId:`tab-architecture`,shortcut:`2`,icon:I},{id:`graph`,label:`Impact graph`,testId:`tab-graph`,shortcut:`3`,icon:L},{id:`prs`,label:`Pull requests`,testId:`tab-prs`,shortcut:`4`,icon:ee},{id:`settings`,label:`Settings`,testId:`tab-settings`,shortcut:`5`,icon:R}];function Gm(e,t,n){let r;try{r=new URL(e)}catch{return}if(r.protocol!==`https:`||r.username||r.password)return;let i=r.hostname.toLowerCase();i!==t&&!i.endsWith(`.${t}`)||r.pathname.startsWith(n)&&window.open(r.toString(),`_blank`,`noopener,noreferrer`)}function Km(){let[e,t]=(0,g.useState)(`review`),[n,r]=(0,g.useState)(localStorage.getItem(`loadpath.repo`)||``),[i,a]=(0,g.useState)(localStorage.getItem(`loadpath.base`)||`HEAD~1`),[o,s]=(0,g.useState)(localStorage.getItem(`loadpath.head`)||`HEAD`),[c,l]=(0,g.useState)(null),[u,d]=(0,g.useState)(null),[f,p]=(0,g.useState)(null),[m,h]=(0,g.useState)([]),[_,v]=(0,g.useState)(`review`),[y,b]=(0,g.useState)(``),[S,C]=(0,g.useState)(``),[T,D]=(0,g.useState)(null),[O,k]=(0,g.useState)(!1),[j,N]=(0,g.useState)(!1),[P,F]=(0,g.useState)(``),[I,L]=(0,g.useState)({}),[ee,R]=(0,g.useState)([]),[B,V]=(0,g.useState)([]),[te,H]=(0,g.useState)(localStorage.getItem(`loadpath.scmRepo`)||``),[U,ne]=(0,g.useState)(localStorage.getItem(`loadpath.provider`)||`github`),[re,ie]=(0,g.useState)(localStorage.getItem(`loadpath.prNumber`)||``),[ae,oe]=(0,g.useState)(localStorage.getItem(`loadpath.dirty`)===`1`),[se,ce]=(0,g.useState)(0),[le,ue]=(0,g.useState)(``),[de,fe]=(0,g.useState)(Vm),[pe,me]=(0,g.useState)(!1),[he,ge]=(0,g.useState)(!1),[_e,ve]=(0,g.useState)(!1),[ye,be]=(0,g.useState)(null),[xe,Se]=(0,g.useState)(null),[Ce,we]=(0,g.useState)(localStorage.getItem(`loadpath.testOverlay`)===`1`),[Te,Ee]=(0,g.useState)(null),[De,Oe]=(0,g.useState)(localStorage.getItem(`loadpath.watch`)===`1`),[ke,Ae]=(0,g.useState)([]),[je,Me]=(0,g.useState)(null),[Ne,Pe]=(0,g.useState)(null),[Fe,Ie]=(0,g.useState)(null),[Le,Re]=(0,g.useState)(()=>{try{return!!(localStorage.getItem(`loadpath.lastReviewId`)&&(localStorage.getItem(`loadpath.repo`)||``).trim())}catch{return!1}}),[ze,Be]=(0,g.useState)(null),[Ve,He]=(0,g.useState)(null),[Ue,We]=(0,g.useState)(!1),[Ge,Ke]=(0,g.useState)(!1),qe=(0,g.useRef)(n);qe.current=n;let Je=(0,g.useRef)(ae);Je.current=ae;let Ye=(0,g.useRef)(!1);Ye.current=he;let Xe=(0,g.useRef)(``),Ze=(0,g.useRef)(``),Qe=e=>{fe(e),Um(e)},$e=(0,g.useRef)(``),et=e=>{$e.current=e,C(e)},tt=e=>{let t=0,n=!1;D(0);let r=()=>{x.indexProgress(e).then(e=>{if(!$e.current)return;if(e.phase&&e.phase!==`idle`&&e.message&&et(e.message),Pm.has(e.phase))n=!0;else if(!n)return;let r=Im(e);r!=null&&(t=e.phase===`scan`&&!e.done?r:Math.max(t,r),D(t))}).catch(()=>void 0)};r();let i=window.setInterval(r,250);return()=>{window.clearInterval(i),D(null)}};(0,g.useEffect)(()=>{x.settings().then(L).catch(()=>void 0).finally(()=>me(!0)),x.repos().then(e=>h(e.repos)).catch(()=>void 0)},[]);let nt=()=>n.trim()?!0:(b(`Point at a local repository path first.`),!1);(0,g.useEffect)(()=>{if(e!==`architecture`||!n.trim())return;let t=n,r=!1;return Ze.current!==t&&W(t),x.config(t).then(e=>{!r&&qe.current===t&&Pe(e)}).catch(()=>void 0),x.architectureHealth(t).then(e=>{!r&&qe.current===t&&Ie(e)}).catch(()=>void 0),()=>{r=!0}},[e,n]);let rt=e=>{qe.current=e,r(e),localStorage.setItem(`loadpath.repo`,e),e.trim()!==Xe.current&&(Xe.current=``,Be(null))},it=(0,g.useCallback)(e=>{let t=(e??qe.current).trim();return!t||Xe.current===t?Promise.resolve():(Xe.current=t,x.gitRefs(t).then(e=>{qe.current.trim()===t&&Be(e)}).catch(()=>{Xe.current===t&&(Xe.current=``,Be(null))}))},[]),at=(e,t)=>{a(e),s(t),localStorage.setItem(`loadpath.base`,e),localStorage.setItem(`loadpath.head`,t)},ot=(e,t,n)=>{ne(e),H(t),localStorage.setItem(`loadpath.provider`,e),localStorage.setItem(`loadpath.scmRepo`,t),n!==void 0&&(ie(n),localStorage.setItem(`loadpath.prNumber`,n))},st=e=>{l(e),ce(0),be(xe&&e.nodes.some(e=>e.id===xe)?xe:null),Ee(null),Me(null),e.what_if||(d(e),e.id&&localStorage.setItem(`loadpath.lastReviewId`,e.id))},ct=async e=>{try{let t=await x.reviews(e);Ae(t.reviews)}catch{Ae([])}},lt=async e=>{try{Ie(await x.architectureHealth(e))}catch{Ie(null)}},ut=e=>e===`github`?!!I.github_token_set:e===`gitlab`?!!I.gitlab_token_set:!!I.bitbucket_token_set,dt=(0,g.useCallback)(async(e=U)=>{try{let t=await x.scmRepos(e);V(t.repos),t.user?.login&&L(n=>({...n,...e===`github`?{github_user:t.user.login}:e===`gitlab`?{gitlab_user:t.user.login}:{bitbucket_user:t.user.login}}))}catch{V([])}},[U]);(0,g.useEffect)(()=>{if(e!==`prs`)return;let t=!1;return dt(U).catch(()=>{t||V([])}),()=>{t=!0}},[e,U,dt]),(0,g.useEffect)(()=>{if(!Ve)return;let e=!1,t=0,n=async()=>{try{let r=await x.githubOAuthPoll(Ve.flow_id);if(e)return;if(r.status===`complete`){He(null);let e=await x.settings();L(e),F(r.user?`Signed in to GitHub as ${r.user}`:`Signed in to GitHub`),dt(`github`);return}if(r.status===`pending`||r.status===`slow_down`){t=window.setTimeout(n,Math.max(r.interval||Ve.interval,5)*1e3);return}He(null),b(r.status===`denied`?`GitHub sign-in was denied.`:`GitHub sign-in expired. Try again.`)}catch(t){if(e)return;He(null),b(t instanceof Error?t.message:String(t))}};return t=window.setTimeout(n,Math.max(Ve.interval,5)*1e3),()=>{e=!0,window.clearTimeout(t)}},[Ve,dt]),(0,g.useEffect)(()=>{if(!Ue)return;let e=!1,t=0,n=Date.now(),r=async()=>{try{let i=await x.oauthStatus();if(e)return;if(i.bitbucket.connected){We(!1);let e=await x.settings();L(e),F(i.bitbucket.user?`Signed in to Bitbucket as ${i.bitbucket.user}`:`Signed in to Bitbucket`),dt(`bitbucket`);return}if(Date.now()-n>18e4){We(!1),b(`Bitbucket sign-in timed out. Finish in the browser, or try again.`);return}t=window.setTimeout(r,1500)}catch(t){if(e)return;We(!1),b(t instanceof Error?t.message:String(t))}};return t=window.setTimeout(r,1500),()=>{e=!0,window.clearTimeout(t)}},[Ue,dt]),(0,g.useEffect)(()=>{if(!Ge)return;let e=!1,t=0,n=Date.now(),r=async()=>{try{let i=await x.oauthStatus();if(e)return;if(i.gitlab.connected){Ke(!1);let e=await x.settings();L(e),F(i.gitlab.user?`Signed in to GitLab as ${i.gitlab.user}`:`Signed in to GitLab`),dt(`gitlab`);return}if(Date.now()-n>18e4){Ke(!1),b(`GitLab sign-in timed out. Finish in the browser, or try again.`);return}t=window.setTimeout(r,1500)}catch(t){if(e)return;Ke(!1),b(t instanceof Error?t.message:String(t))}};return t=window.setTimeout(r,1500),()=>{e=!0,window.clearTimeout(t)}},[Ge,dt]);let W=async(e=n,t=!1)=>{if(!e.trim())return null;Ze.current=e,N(!0);try{let n=await x.architecture(e,!1);qe.current===e&&p(n);let r=x.architectureGraph(e).then(t=>{qe.current===e&&p(e=>e&&{...e,nodes:t.nodes,edges:t.edges,graph_pending:!1})});return r.catch(()=>{p(t=>t&&qe.current===e?{...t,graph_pending:!1}:t)}).finally(()=>{Ze.current===e&&N(!1)}),t&&await r,n}catch(t){throw qe.current===e&&N(!1),t}},ft=async e=>{let t=e.trim();if(!(!t||t===qe.current)){if($e.current){b(`Wait for the current job to finish before switching workspace.`);return}b(``),F(``),l(null),d(null),p(null),v(`architecture`),rt(t),k(!0),et(`Loading ${M(t)}…`);try{await Promise.all([W(t),it(t)])}catch(e){qe.current===t&&b(e instanceof Error?e.message:String(e))}finally{qe.current===t&&(et(``),k(!1))}}},pt=async()=>{if($e.current||!nt())return;b(``),F(``),et(`Tracing load path…`),rt(n),at(i,o);let e=tt(n);try{let e=await x.review(n,i,o,!0,Je.current);st(e),v(`review`),t(`review`),await x.repos().then(e=>h(e.repos)).catch(()=>void 0),await Promise.all([W(n),ct(n),lt(n)])}catch(e){b(e instanceof Error?e.message:String(e))}finally{e(),et(``)}},mt=async(e=!0)=>{if($e.current||!nt())return;b(``),F(``),et(e?`Indexing…`:`Full reindex…`),rt(n);let r=tt(n);try{await x.index(n,e);let r=await W(n);await x.repos().then(e=>h(e.repos)).catch(()=>void 0),r?.indexed&&(v(`architecture`),t(`architecture`))}catch(e){b(e instanceof Error?e.message:String(e))}finally{r(),et(``)}},ht=async()=>{if(!$e.current&&nt()){b(``),F(``),et(`Detecting layout…`),rt(n);try{let e=await x.init(n);F(e.message),await x.repos().then(e=>h(e.repos)).catch(()=>void 0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{et(``)}}},gt=async()=>{if(c?.markdown)try{await navigator.clipboard.writeText(c.markdown),F(`Copied markdown brief`)}catch(e){b(e instanceof Error?e.message:String(e))}},_t=async()=>{if(!$e.current){if(c?.what_if){b(`What-if walks are hypothetical — they are not posted to a pull request. Restore the git-range walk first.`);return}if(!c?.markdown||!te||!re){b(`Pick a pull request first (Pull requests tab), then post the brief.`);return}et(`Posting Loadpath brief…`);try{let e=await x.postComment(U,te,Number(re),c.markdown);F(e.updated?`Updated the Loadpath PR comment`:`Posted the Loadpath PR comment`)}catch(e){b(e instanceof Error?e.message:String(e))}finally{et(``)}}},vt=async()=>{if(!$e.current){b(``),et(`Fetching pull requests…`);try{let e=await x.prs(U,te,`open`,n.trim()||void 0);R(e.pull_requests);let t=B.find(e=>e.slug.toLowerCase()===te.trim().toLowerCase());t?.local_path&&rt(t.local_path)}catch(e){b(e instanceof Error?e.message:String(e))}finally{et(``)}}},yt=async()=>{b(``);try{let e=await x.githubOAuthStart();He(e),Gm(e.verification_uri_complete,`github.com`,`/login/device`)}catch(e){b(e instanceof Error?e.message:String(e))}},bt=async()=>{b(``);try{let e=await x.bitbucketOAuthStart();We(!0),Gm(e.authorize_url,`bitbucket.org`,`/site/oauth2/authorize`)}catch(e){We(!1),b(e instanceof Error?e.message:String(e))}},xt=async()=>{b(``);try{let e=await x.gitlabOAuthStart();Ke(!0),Gm(e.authorize_url,new URL(e.authorize_url).hostname,`/oauth/authorize`)}catch(e){Ke(!1),b(e instanceof Error?e.message:String(e))}},St=async e=>{if(!($e.current||!n.trim())){b(``),et(`Walking what-if path…`);try{let r=await x.whatIf(n,e);F(`${r.title} — ${r.confidence.level} · ${(r.sinks||[]).length} sinks`),st({...r,markdown:r.markdown||``,index:r.index||c?.index,workspace:r.workspace||c?.workspace}),v(`review`),t(`review`)}catch(e){b(e instanceof Error?e.message:String(e))}finally{et(``)}}},Ct=()=>{if(u){st(u),v(`review`),t(`review`),F(`Restored the last git-range walk`);return}l(null),ce(0),be(null),Ee(null),Me(null),v(`architecture`),t(`architecture`),F(``)},wt=async e=>{if($e.current)return;ot(e.provider,e.repo,String(e.number));let r=B.find(t=>t.slug.toLowerCase()===e.repo.toLowerCase());r?.local_path&&rt(r.local_path),b(``),et(`Fetching ${e.provider} #${e.number}…`);let i=r?.local_path||n,a=i?tt(i):()=>void 0;try{let i=await x.reviewPr(e.provider,e.repo,e.number,r?.local_path||n||void 0);st(i),i.pull_request&&typeof i.pull_request.repo_path==`string`&&rt(i.pull_request.repo_path),at(String(i.base||e.target_branch),String(i.head||e.source_branch)),v(`review`),t(`review`),typeof i.pull_request?.repo_path==`string`&&ct(i.pull_request.repo_path)}catch(n){at(e.base_sha||e.target_branch,e.head_sha||e.source_branch),t(`review`),b(n instanceof Error?n.message:String(n))}finally{a(),et(``)}},Tt=async e=>{b(``);try{L(await x.oauthDisconnect(e)),U===e&&V([]),F(`Disconnected ${e}`)}catch(e){b(e instanceof Error?e.message:String(e))}},Et=async e=>{e.preventDefault();let t=new FormData(e.currentTarget),n={github_token:String(t.get(`github_token`)||``),github_oauth_client_id:String(t.get(`github_oauth_client_id`)||``),github_host:String(t.get(`github_host`)||``),gitlab_token:String(t.get(`gitlab_token`)||``),gitlab_host:String(t.get(`gitlab_host`)||``),gitlab_oauth_client_id:String(t.get(`gitlab_oauth_client_id`)||``),gitlab_oauth_client_secret:String(t.get(`gitlab_oauth_client_secret`)||``),bitbucket_token:String(t.get(`bitbucket_token`)||``),bitbucket_username:String(t.get(`bitbucket_username`)||``),bitbucket_oauth_client_id:String(t.get(`bitbucket_oauth_client_id`)||``),bitbucket_oauth_client_secret:String(t.get(`bitbucket_oauth_client_secret`)||``),ai_provider:String(t.get(`ai_provider`)||`none`),ai_api_key:String(t.get(`ai_api_key`)||``),ai_model:String(t.get(`ai_model`)||``),ai_base_url:String(t.get(`ai_base_url`)||``)},r=m.length?{...n,workspaces:m.map(e=>({path:e.path,name:e.name}))}:n;try{L(await x.saveSettings(r)),F(`Settings saved on this machine`)}catch(e){b(e instanceof Error?e.message:String(e))}},Dt=async()=>{if(!(!c||$e.current)){et(`Residual analysis…`);try{let e=await x.residual(c);ue(e.note)}catch(e){b(e instanceof Error?e.message:String(e))}finally{et(``)}}},Ot=(0,g.useRef)(pt);Ot.current=pt;let kt=(0,g.useRef)(e);kt.current=e;let At=(0,g.useRef)(!1);At.current=_e;let jt=(0,g.useRef)(c);jt.current=c;let Mt=(0,g.useRef)(se);Mt.current=se,(0,g.useEffect)(()=>{let e=localStorage.getItem(`loadpath.lastReviewId`),t=(localStorage.getItem(`loadpath.repo`)||``).trim();if(!e||!t){Re(!1);return}let n=!1;return x.getReview(t,e).then(e=>{n||(st(e),at(e.base||localStorage.getItem(`loadpath.base`)||`HEAD~1`,e.head||localStorage.getItem(`loadpath.head`)||`HEAD`),ct(t),lt(t))}).catch(()=>void 0).finally(()=>{n||Re(!1)}),()=>{n=!0}},[]);let Nt=(0,g.useRef)(``);(0,g.useEffect)(()=>{if(!De||!n.trim())return;let e=!1,t=async()=>{try{let t=await x.workspaceStatus(n);if(e)return;Nt.current&&t.fingerprint!==Nt.current&&!$e.current&&(oe(!0),Je.current=!0,localStorage.setItem(`loadpath.dirty`,`1`),Ot.current()),Nt.current=t.fingerprint}catch{}};t();let r=window.setInterval(t,2e3);return()=>{e=!0,window.clearInterval(r)}},[De,n]),(0,g.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`){e.preventDefault(),ve(e=>!e);return}if(At.current){e.key===`Escape`&&(e.preventDefault(),ve(!1));return}if(Ye.current){e.key===`Escape`&&(e.preventDefault(),ge(!1));return}let n=e.target;if(n&&(n.tagName===`INPUT`||n.tagName===`TEXTAREA`||n.tagName===`SELECT`||n.isContentEditable)){e.key===`Escape`&&n.blur();return}if(e.key===`Escape`){b(``),F(``),be(xe),Ee(null);return}if(e.key===`j`||e.key===`k`){let t=jt.current?.read_order||[];if(!t.length)return;e.preventDefault();let n=Mt.current,r=e.key===`j`?Math.min(t.length-1,n+1):Math.max(0,n-1);ce(r);return}let r=Wm.find(t=>t.shortcut===e.key);if(r&&!e.metaKey&&!e.ctrlKey&&!e.altKey&&t(r.id),(e.metaKey||e.ctrlKey)&&e.key===`Enter`){if(kt.current===`settings`||kt.current===`prs`||$e.current)return;e.preventDefault(),Ot.current()}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[xe]);let Pt=async(e,t)=>{if(!n.trim())return;let r=await wm(n,e,t);r.ok?F(r.message):b(r.message)},Ft=async()=>{if(c)try{let e=await x.exportHtml(c),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`loadpath-${(c.id||`review`).slice(0,8)}.html`,n.click(),URL.revokeObjectURL(t),F(`Saved HTML brief`)}catch(e){b(e instanceof Error?e.message:String(e))}},It=async e=>{if(n.trim()){et(`Loading stored review…`);try{let r=await x.getReview(n,e);st(r),at(r.base||i,r.head||o),v(`review`),t(`review`);let a=ke.findIndex(t=>t.id===e),s=a>=0?ke[a+1]:void 0;if(s)try{Me(await x.reviewDiff(n,e,s.id))}catch{Me(null)}}catch(e){b(e instanceof Error?e.message:String(e))}finally{et(``)}}},G={selectedId:ye,onSelect:be,nodeRoles:c?.node_roles,testOverlay:Ce,isolateSource:Te,onIsolate:Ee,repoPath:n,onOpenFile:Pt,pinnedId:xe,onPin:Se},Lt=[{id:`review`,group:`Run`,label:`Review this range`,hint:`⌘/Ctrl+Enter`,run:()=>void pt()},...c?.what_if?[{id:`exit-whatif`,group:`Review`,label:u?`Back to git-range walk`:`Exit what-if walk`,run:Ct}]:[],{id:`index`,group:`Run`,label:`Index repository`,run:()=>void mt(!0)},{id:`watch`,group:`Run`,label:De?`Stop watching working tree`:`Watch working tree`,run:()=>{let e=!De;Oe(e),localStorage.setItem(`loadpath.watch`,e?`1`:`0`)}},{id:`tests`,group:`Graph`,label:Ce?`Hide test overlay`:`Show test overlay`,run:()=>{let e=!Ce;we(e),localStorage.setItem(`loadpath.testOverlay`,e?`1`:`0`)}},{id:`export`,group:`Review`,label:`Export HTML brief`,run:()=>void Ft()},...Wm.map(e=>({id:`tab-${e.id}`,group:`Tabs`,label:`Go to ${e.label}`,hint:e.shortcut,run:()=>t(e.id)})),...(c?.nodes||[]).slice(0,30).map(e=>({id:`node-${e.id}`,group:`Nodes`,label:e.name,hint:A(e.type),run:()=>{be(e.id),t(`graph`)}})),...ke.slice(0,12).map(e=>({id:`hist-${e.id}`,group:`History`,label:e.title||e.id,hint:`${e.level||``} ${e.created_at||``}`.trim(),run:()=>void It(e.id)}))],Rt=(0,g.useMemo)(()=>_===`architecture`?f?.nodes??[]:c?.nodes??[],[_,f,c]),zt=(0,g.useMemo)(()=>_===`architecture`?f?.edges??[]:c?.edges??[],[_,f,c]),Bt=c?.index?`${c.index.counts.nodes} nodes · ${c.index.counts.edges} edges`:f?.indexed?`${f.counts.nodes} nodes · ${f.counts.edges} edges`:`Not indexed`,Vt=(c?.findings||[]).filter(e=>!e.waived);return(0,w.jsxs)(`div`,{className:`app`,children:[(0,w.jsx)(`a`,{className:`skip`,href:`#main`,children:`Skip to content`}),(0,w.jsxs)(`nav`,{className:`rail`,"data-testid":`rail`,"aria-label":`Primary`,children:[(0,w.jsxs)(`div`,{className:`brand`,children:[(0,w.jsx)(`div`,{className:`brand-mark`,children:`Loadpath`}),(0,w.jsx)(`div`,{className:`brand-sub`,children:`Load-path review`})]}),Wm.map(n=>{let r=n.icon,i=e===n.id;return(0,w.jsxs)(`button`,{type:`button`,"data-testid":n.testId,className:i?`nav-item active`:`nav-item`,"aria-current":i?`page`:void 0,"aria-label":n.label,onClick:()=>t(n.id),children:[(0,w.jsx)(r,{}),(0,w.jsx)(`span`,{children:n.label})]},n.id)}),(0,w.jsxs)(`div`,{className:`theme-pick`,children:[(0,w.jsx)(`label`,{htmlFor:`theme-select`,children:`Theme`}),(0,w.jsx)(`select`,{id:`theme-select`,"data-testid":`theme-select`,value:de,onChange:e=>Qe(e.target.value),children:[`dark`,`light`].map(e=>(0,w.jsx)(`optgroup`,{label:e===`dark`?`Dark`:`Light`,children:Lm.filter(t=>t.group===e).map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.label},e.id))},e))})]}),(0,w.jsxs)(`div`,{className:`rail-foot`,children:[(0,w.jsx)(`div`,{className:`muted`,role:`status`,children:S||Bt}),(0,w.jsxs)(`div`,{className:`kbd-hint`,children:[(0,w.jsx)(`kbd`,{children:`1`}),`–`,(0,w.jsx)(`kbd`,{children:`5`}),` tabs · `,(0,w.jsx)(`kbd`,{children:`⌘`}),(0,w.jsx)(`kbd`,{children:`K`}),` palette · `,(0,w.jsx)(`kbd`,{children:`j`}),`/`,(0,w.jsx)(`kbd`,{children:`k`}),` read order`]})]})]}),(0,w.jsxs)(`div`,{className:`main`,id:`main`,children:[S?(0,w.jsxs)(`div`,{className:T==null?`progress`:`progress determinate`,role:T==null?`status`:`progressbar`,"aria-label":S,"aria-live":`polite`,"aria-busy":`true`,"aria-valuemin":T==null?void 0:0,"aria-valuemax":T==null?void 0:100,"aria-valuenow":T??void 0,"data-testid":`progress`,children:[(0,w.jsx)(`i`,{style:T==null?void 0:{width:`${T}%`}}),(0,w.jsx)(`span`,{className:`sr-only`,children:S})]}):null,(0,w.jsxs)(`header`,{className:`topbar`,"data-testid":`topbar`,children:[m.length>0?(0,w.jsxs)(`label`,{className:`field workspace`,children:[(0,w.jsx)(`span`,{children:`Workspace`}),(0,w.jsxs)(`select`,{"data-testid":`workspace-select`,value:m.some(e=>e.path===n)?n:``,disabled:!!S,"aria-busy":O,onChange:e=>{e.target.value&&ft(e.target.value)},children:[(0,w.jsx)(`option`,{value:``,children:`Indexed repos…`}),m.map(e=>(0,w.jsxs)(`option`,{value:e.path,children:[e.name,e.indexed?` (${e.counts.nodes})`:``]},e.path))]})]}):null,(0,w.jsxs)(`label`,{className:`field path`,children:[(0,w.jsx)(`span`,{children:`Repository`}),(0,w.jsxs)(`div`,{className:`path-row`,children:[(0,w.jsx)(`input`,{"data-testid":`repo-path`,placeholder:`Local monorepo path`,value:n,onChange:e=>{let t=e.target.value;r(t),t.trim()!==Xe.current&&(Xe.current=``,Be(null))},spellCheck:!1}),(0,w.jsx)(`button`,{type:`button`,className:`icon-btn`,"data-testid":`btn-browse-repo`,"aria-label":`Browse for a local repository`,onClick:()=>ge(!0),children:(0,w.jsx)(z,{})})]})]}),(0,w.jsxs)(`label`,{className:`field ref`,children:[(0,w.jsx)(`span`,{children:`Base`}),(0,w.jsx)(jm,{testId:`base-ref`,menuTestId:`base-ref-menu`,value:i,onChange:e=>at(e,o),placeholder:`base`,refs:ze,onNeedRefs:it})]}),(0,w.jsxs)(`label`,{className:`field ref`,children:[(0,w.jsx)(`span`,{children:`Head`}),(0,w.jsx)(jm,{testId:`head-ref`,menuTestId:`head-ref-menu`,value:o,onChange:e=>at(i,e),placeholder:`head`,refs:ze,onNeedRefs:it})]}),(0,w.jsxs)(`label`,{className:`field dirty`,children:[(0,w.jsx)(`span`,{children:`Working tree`}),(0,w.jsx)(`button`,{type:`button`,className:ae?`chip-btn active`:`chip-btn`,"data-testid":`btn-dirty`,"aria-pressed":ae,onClick:()=>{let e=!ae;oe(e),localStorage.setItem(`loadpath.dirty`,e?`1`:`0`)},children:ae?`Include uncommitted`:`Committed range`})]}),(0,w.jsxs)(`label`,{className:`field dirty`,children:[(0,w.jsx)(`span`,{children:`Watch`}),(0,w.jsx)(`button`,{type:`button`,className:De?`chip-btn active`:`chip-btn`,"data-testid":`btn-watch`,"aria-pressed":De,onClick:()=>{let e=!De;Oe(e),localStorage.setItem(`loadpath.watch`,e?`1`:`0`)},children:De?`Watching`:`Paused`})]}),c?(0,w.jsxs)(`div`,{className:`merge-box compact ${c.confidence.level}`,"data-testid":`merge-box`,children:[(0,w.jsx)(`div`,{className:`level ${c.confidence.level}`,children:c.confidence.level.toUpperCase()}),(0,w.jsxs)(`div`,{className:`muted`,children:[c.what_if?`what-if · `:``,c.confidence.covered_sinks,`/`,c.confidence.sinks,` sinks`]})]}):null,(0,w.jsxs)(`div`,{className:`topbar-actions`,children:[(0,w.jsx)(`button`,{type:`button`,"data-testid":`btn-init`,disabled:!!S,onClick:ht,children:`Draft config`}),(0,w.jsx)(`button`,{type:`button`,"data-testid":`btn-index`,disabled:!!S,onClick:()=>mt(!0),children:`Index`}),(0,w.jsx)(`button`,{type:`button`,"data-testid":`btn-review`,className:`btn primary`,disabled:!!S,onClick:pt,children:`Review`})]})]}),(0,w.jsxs)(`div`,{className:`alerts`,children:[y?(0,w.jsxs)(`div`,{className:`error`,"data-testid":`error`,role:`alert`,children:[(0,w.jsx)(`span`,{children:y}),(0,w.jsx)(`button`,{type:`button`,className:`dismiss`,onClick:()=>b(``),"aria-label":`Dismiss error`,children:`×`})]}):null,P?(0,w.jsxs)(`div`,{className:`banner`,"data-testid":`status-note`,children:[(0,w.jsx)(`span`,{children:P}),(0,w.jsx)(`button`,{type:`button`,className:`dismiss`,onClick:()=>F(``),"aria-label":`Dismiss`,children:`×`})]}):null,(c?.index?.stale||f?.stale)&&(e===`review`||e===`architecture`)?(0,w.jsx)(`div`,{className:`banner stale`,"data-testid":`index-stale`,children:`Index is stale — files changed since the last extract. Index again before trusting this walk.`}):null,c?.index?.django_boot===`failed`||f?.django_boot===`failed`?(0,w.jsx)(`div`,{className:`banner warn`,"data-testid":`django-boot-failed`,children:c?.index?.django_boot_detail||f?.django_boot_detail||`django.setup() failed`}):null,c?.workspace?.dirty_overlaps_review&&e===`review`?(0,w.jsxs)(`div`,{className:`banner warn`,"data-testid":`dirty-tree`,children:[`Uncommitted files overlap this review: `,(c.workspace.dirty_overlap||[]).slice(0,6).join(`, `)]}):null,c?.what_if?(0,w.jsxs)(`div`,{className:`banner whatif`,"data-testid":`whatif-banner`,children:[(0,w.jsxs)(`span`,{children:[`Hypothetical walk from`,` `,(0,w.jsx)(`strong`,{children:c.node?.name||`this node`}),`. Loadpath ignored Base/Head and asked which sinks would feel this node change — not a filter of the current map.`]}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-exit-whatif`,onClick:Ct,children:u?`Back to git range`:`Back to architecture`})]}):null,O?(0,w.jsx)(`div`,{className:`banner`,"data-testid":`workspace-loading`,children:S||`Loading workspace…`}):null]}),(0,w.jsxs)(`div`,{className:`stage`,"aria-busy":O||j,children:[e===`review`&&(0,w.jsxs)(`div`,{className:`content`,"data-testid":`review-layout`,children:[(0,w.jsx)(`aside`,{className:`brief`,"data-testid":`brief`,children:c?(0,w.jsx)(qm,{review:c,findings:Vt,aiNote:le,busy:!!S,tourIndex:se,onTour:ce,onAskAi:Dt,onCopy:gt,onPost:_t,onSelect:be,onOpenFile:Pt,onExport:Ft,history:ke,diff:je,onReopen:It,onWaiver:(e,t)=>{n.trim()&&x.addWaiver(n,e,t||void 0,`from review`).then(t=>{Pe(t),F(`Waived ${e} in loadpath.yml`)})}}):Le?(0,w.jsxs)(`div`,{className:`empty`,"data-testid":`review-restoring`,children:[(0,w.jsx)(`h2`,{children:`Restoring last review`}),(0,w.jsx)(`p`,{children:`Loading the walk this machine stored last time Loadpath was open.`})]}):(0,w.jsxs)(`div`,{className:`empty`,"data-testid":`review-empty`,children:[(0,w.jsx)(`h2`,{children:`Trace the force of this diff`}),(0,w.jsx)(`p`,{children:`The graph is the architecture. The brief is where this change travels — not a hunk list.`}),(0,w.jsxs)(`ol`,{children:[(0,w.jsx)(`li`,{children:`Point at a Django + React monorepo, or pick an indexed workspace.`}),(0,w.jsxs)(`li`,{children:[`Index it. Missing `,(0,w.jsx)(`code`,{children:`loadpath.yml`}),` is drafted from `,(0,w.jsx)(`code`,{children:`manage.py`}),` and`,` `,(0,w.jsx)(`code`,{children:`src/features`}),`.`]}),(0,w.jsx)(`li`,{children:`Review a git range, or open a pull request so base/head become a three-dot merge-base.`})]})]})}),(0,w.jsx)(`div`,{className:`graph-wrap`,"data-testid":`review-graph`,children:c?(0,w.jsx)(xm,{nodes:c.nodes,edges:c.edges,onWhatIf:St,focusPath:c.read_order[se]?.path,...G}):null})]}),e===`architecture`&&(0,w.jsxs)(`div`,{className:`content`,"data-testid":`architecture-panel`,children:[(0,w.jsx)(`aside`,{className:`brief`,"data-testid":`architecture-brief`,children:f?.indexed?(0,w.jsx)(Jm,{architecture:f,busy:!!S,onReindex:()=>mt(!1),onReview:pt,onSelect:be,config:Ne,health:Fe,onSaveConfig:e=>{x.saveConfig(n,e).then(e=>{Pe(e),F(`Wrote loadpath.yml`)})},onWaiver:(e,t,r)=>{x.addWaiver(n,e,t,r).then(t=>{Pe(t),F(`Waived ${e}`)})}}):O?(0,w.jsx)(`p`,{className:`muted`,"data-testid":`architecture-loading`,children:`Loading the index summary…`}):(0,w.jsx)(`p`,{className:`muted`,"data-testid":`architecture-empty`,children:`Index this repo to build the architecture graph. Review then walks that same graph for a git range — it does not start from a hunk list.`})}),(0,w.jsx)(`div`,{className:`graph-wrap`,"data-testid":`architecture-graph`,children:(j||f?.graph_pending)&&!(f?.nodes||[]).length?(0,w.jsxs)(`div`,{className:`empty graph-loading`,"data-testid":`graph-loading`,children:[(0,w.jsx)(`h2`,{children:`Drawing the architecture map…`}),(0,w.jsx)(`p`,{children:f?.counts?.nodes?`${f.counts.nodes} indexed nodes. The brief is ready while the graph loads.`:`Fetching the indexed graph.`})]}):f?.indexed?(0,w.jsx)(xm,{nodes:f.nodes,edges:f.edges,onWhatIf:St,...G,isolateSource:null,onIsolate:void 0}):null})]}),e===`graph`&&(0,w.jsxs)(`div`,{className:`graph-wrap`,"data-testid":`graph-full`,style:{height:`100%`},children:[(0,w.jsxs)(`div`,{className:`graph-modes`,children:[(0,w.jsxs)(`div`,{className:`seg`,"aria-label":`Graph scope`,children:[(0,w.jsx)(`button`,{type:`button`,"aria-pressed":_===`review`,"data-testid":`graph-mode-review`,className:_===`review`?`active`:``,onClick:()=>v(`review`),children:`This review`}),(0,w.jsx)(`button`,{type:`button`,"aria-pressed":_===`architecture`,"data-testid":`graph-mode-architecture`,className:_===`architecture`?`active`:``,onClick:()=>v(`architecture`),children:`Indexed architecture`})]}),(0,w.jsxs)(`div`,{className:`legend`,"aria-hidden":`true`,children:[(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`i`,{}),` cheap`]}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`i`,{className:`exp`}),` expensive`]}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`i`,{className:`crit`}),` critical`]}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`i`,{className:`dash`}),` inferred`]}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`i`,{className:`seed`}),` changed`]}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`i`,{className:`down`}),` downstream`]})]}),(0,w.jsx)(`button`,{type:`button`,className:Ce?`chip-btn active`:`chip-btn`,"data-testid":`graph-test-overlay`,"aria-pressed":Ce,onClick:()=>{let e=!Ce;we(e),localStorage.setItem(`loadpath.testOverlay`,e?`1`:`0`)},children:`Tests`})]}),Rt.length||_===`review`&&c||f?.indexed&&!(j||f?.graph_pending)?(0,w.jsx)(xm,{nodes:Rt,edges:zt,onWhatIf:St,...G,..._===`architecture`?{isolateSource:null,onIsolate:void 0,nodeRoles:void 0,testOverlay:!1}:{}}):j||f?.graph_pending?(0,w.jsx)(`p`,{className:`empty`,"data-testid":`graph-loading`,children:`Drawing the architecture map…`}):(0,w.jsx)(`p`,{className:`empty`,"data-testid":`graph-empty`,children:`Index the repo or run a review first. Click a node to inspect it.`})]}),e===`prs`&&(0,w.jsxs)(`div`,{className:`pr-list`,"data-testid":`pr-list`,children:[(0,w.jsxs)(`div`,{className:`pr-toolbar`,children:[(0,w.jsxs)(`label`,{className:`field provider`,children:[(0,w.jsx)(`span`,{children:`Provider`}),(0,w.jsxs)(`select`,{"data-testid":`pr-provider`,value:U,onChange:e=>ot(e.target.value,te,re),children:[(0,w.jsx)(`option`,{value:`github`,children:`GitHub`}),(0,w.jsx)(`option`,{value:`gitlab`,children:`GitLab`}),(0,w.jsx)(`option`,{value:`bitbucket`,children:`Bitbucket`})]})]}),(0,w.jsxs)(`label`,{className:`field`,children:[(0,w.jsx)(`span`,{children:`Repository`}),(0,w.jsx)(`input`,{"data-testid":`pr-repo`,placeholder:B.length?`Search your repos`:`owner/repo`,value:te,onChange:e=>ot(U,e.target.value,re),list:`scm-repos`,spellCheck:!1}),(0,w.jsx)(`datalist`,{id:`scm-repos`,children:B.map(e=>(0,w.jsxs)(`option`,{value:e.slug,children:[e.private?`private`:`public`,e.local_path?` · local`:``]},e.slug))})]}),(0,w.jsx)(`button`,{type:`button`,"data-testid":`btn-refresh-repos`,className:`btn`,disabled:!!S||!ut(U),onClick:()=>{dt(U)},children:`My repos`}),(0,w.jsx)(`button`,{type:`button`,"data-testid":`btn-list-prs`,className:`btn`,disabled:!!S,onClick:vt,children:`List PRs`})]}),B.length>0?(0,w.jsxs)(`p`,{className:`muted scm-count`,"data-testid":`scm-repo-count`,children:[B.length,` `,U,` repositor`,B.length===1?`y`:`ies`,U===`github`&&I.github_user?` · @${String(I.github_user)}`:``,U===`gitlab`&&I.gitlab_user?` · @${String(I.gitlab_user)}`:``,U===`bitbucket`&&I.bitbucket_user?` · ${String(I.bitbucket_user)}`:``]}):null,ee.length===0?(0,w.jsxs)(`div`,{className:`empty`,"data-testid":`pr-empty`,children:[(0,w.jsx)(`h2`,{children:`No pull requests loaded`}),(0,w.jsx)(`p`,{children:`Sign in under Settings (or paste a token), load your repositories, then list open PRs. Reviewing a PR fills base and head from its SHAs.`})]}):ee.map(e=>(0,w.jsxs)(`article`,{className:`pr`,"data-testid":`pr-${e.number}`,children:[(0,w.jsxs)(`h3`,{children:[`#`,e.number,` `,e.title]}),(0,w.jsxs)(`div`,{className:`pr-meta muted`,children:[(0,w.jsx)(`span`,{className:`chip ${e.draft?``:`open`}`,children:e.draft?`draft`:e.state}),(0,w.jsx)(`span`,{children:e.author}),(0,w.jsxs)(`span`,{children:[e.source_branch,` → `,e.target_branch]}),e.loadpath?(0,w.jsxs)(`span`,{className:`chip ${e.loadpath.level||``}`,"data-testid":`pr-loadpath-${e.number}`,children:[e.loadpath.level?.toUpperCase()||`REVIEWED`,e.loadpath.contract_break&&e.loadpath.contract_break!==`none`?` · ${e.loadpath.contract_break}`:``]}):(0,w.jsx)(`span`,{className:`muted`,children:`no Loadpath walk yet`})]}),(0,w.jsxs)(`div`,{className:`pr-actions`,children:[(0,w.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,children:[`Open on `,e.provider]}),(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`pr-review-${e.number}`,onClick:()=>void wt(e),children:`Review this PR`})]})]},`${e.provider}-${e.number}`))]}),e===`settings`&&pe&&(0,w.jsxs)(`form`,{className:`settings`,"data-testid":`settings-form`,onSubmit:Et,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h1`,{children:`Settings`}),(0,w.jsx)(`p`,{className:`muted`,children:`Tokens stay on this machine in ~/.loadpath/settings.json. AI runs only on residual uncertainty the graph could not close.`})]}),(0,w.jsxs)(`section`,{className:`settings-card`,children:[(0,w.jsx)(`h2`,{children:`Appearance`}),(0,w.jsx)(`p`,{className:`muted`,children:`Local to this browser. High contrast is a first-class theme, not an afterthought.`}),(0,w.jsx)(`div`,{className:`theme-grid`,"data-testid":`theme-grid`,children:Lm.map(e=>(0,w.jsxs)(`button`,{type:`button`,"data-theme":e.id,className:de===e.id?`theme-swatch active`:`theme-swatch`,"data-testid":`theme-${e.id}`,onClick:()=>Qe(e.id),children:[(0,w.jsx)(`div`,{className:`swatch-bar`,"aria-hidden":`true`}),(0,w.jsx)(`div`,{className:`name`,children:e.label}),(0,w.jsx)(`div`,{className:`group`,children:e.group})]},e.id))})]}),(0,w.jsxs)(`section`,{className:`settings-card`,children:[(0,w.jsx)(`h2`,{children:`Editor`}),(0,w.jsx)(`p`,{className:`muted`,children:`Open files from the inspector and read-order in Cursor, VS Code, or the system handler.`}),(0,w.jsx)(`label`,{htmlFor:`editor-pref`,children:`Preferred editor`}),(0,w.jsxs)(`select`,{id:`editor-pref`,"data-testid":`editor-pref`,defaultValue:Sm(),onChange:e=>Cm(e.target.value),children:[(0,w.jsx)(`option`,{value:`auto`,children:`Auto (Cursor, then VS Code)`}),(0,w.jsx)(`option`,{value:`cursor`,children:`Cursor`}),(0,w.jsx)(`option`,{value:`vscode`,children:`VS Code`}),(0,w.jsx)(`option`,{value:`system`,children:`System default`})]})]}),(0,w.jsxs)(`section`,{className:`settings-card`,children:[(0,w.jsx)(`h2`,{children:`Source control`}),(0,w.jsx)(`p`,{className:`muted`,children:`Sign in with OAuth to list every repository the account can access. Tokens stay in ~/.loadpath/settings.json. A classic PAT still works if you prefer not to register an OAuth app.`}),(0,w.jsxs)(`div`,{className:`scm-login`,"data-testid":`scm-github`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`strong`,{children:`GitHub`}),(0,w.jsx)(`p`,{className:`muted`,children:I.github_token_set?I.github_user?`Signed in as @${String(I.github_user)}`:`Token saved on this machine`:`Not connected`})]}),(0,w.jsx)(`div`,{className:`btn-row`,children:I.github_token_set?(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-github-disconnect`,onClick:()=>void Tt(`github`),children:`Disconnect`}):(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-github-login`,disabled:!!Ve||!I.github_oauth_ready,onClick:()=>void yt(),children:Ve?`Waiting for GitHub…`:`Sign in with GitHub`})})]}),Ve?(0,w.jsxs)(`p`,{className:`oauth-code`,"data-testid":`github-user-code`,children:[`Enter `,(0,w.jsx)(`code`,{children:Ve.user_code}),` at GitHub if the browser did not fill it in.`]}):null,I.github_oauth_ready?null:(0,w.jsx)(`p`,{className:`muted`,children:`Sign-in needs a GitHub OAuth App with Device Flow enabled. Set LOADPATH_GITHUB_CLIENT_ID or paste the client ID below.`}),(0,w.jsx)(`label`,{htmlFor:`github_oauth_client_id`,children:`GitHub OAuth client ID`}),(0,w.jsx)(`input`,{id:`github_oauth_client_id`,name:`github_oauth_client_id`,"data-testid":`github-oauth-client-id`,placeholder:`Ov23…`,defaultValue:String(I.github_oauth_client_id||``),autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`github_token`,children:`GitHub token (optional PAT)`}),(0,w.jsx)(`input`,{id:`github_token`,name:`github_token`,type:`password`,placeholder:`ghp_…`,autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`github_host`,children:`GitHub host (Enterprise)`}),(0,w.jsx)(`input`,{id:`github_host`,name:`github_host`,"data-testid":`github-host`,placeholder:`github.com`,defaultValue:String(I.github_host||``),autoComplete:`off`}),(0,w.jsxs)(`div`,{className:`scm-login`,"data-testid":`scm-gitlab`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`strong`,{children:`GitLab`}),(0,w.jsx)(`p`,{className:`muted`,children:I.gitlab_token_set?I.gitlab_user?`Signed in as @${String(I.gitlab_user)}`:`Token saved on this machine`:`Not connected`})]}),(0,w.jsx)(`div`,{className:`btn-row`,children:I.gitlab_token_set?(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-gitlab-disconnect`,onClick:()=>void Tt(`gitlab`),children:`Disconnect`}):(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-gitlab-login`,disabled:Ge||!I.gitlab_oauth_ready,onClick:()=>void xt(),children:Ge?`Waiting for GitLab…`:`Sign in with GitLab`})})]}),(0,w.jsx)(`label`,{htmlFor:`gitlab_host`,children:`GitLab host`}),(0,w.jsx)(`input`,{id:`gitlab_host`,name:`gitlab_host`,"data-testid":`gitlab-host`,placeholder:`gitlab.com`,defaultValue:String(I.gitlab_host||``),autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`gitlab_oauth_client_id`,children:`GitLab OAuth application ID`}),(0,w.jsx)(`input`,{id:`gitlab_oauth_client_id`,name:`gitlab_oauth_client_id`,"data-testid":`gitlab-oauth-client-id`,defaultValue:String(I.gitlab_oauth_client_id||``),autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`gitlab_oauth_client_secret`,children:`GitLab OAuth secret`}),(0,w.jsx)(`input`,{id:`gitlab_oauth_client_secret`,name:`gitlab_oauth_client_secret`,type:`password`,autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`gitlab_token`,children:`GitLab token (optional PAT)`}),(0,w.jsx)(`input`,{id:`gitlab_token`,name:`gitlab_token`,type:`password`,placeholder:`glpat-…`,autoComplete:`off`}),(0,w.jsxs)(`div`,{className:`scm-login`,"data-testid":`scm-bitbucket`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`strong`,{children:`Bitbucket`}),(0,w.jsx)(`p`,{className:`muted`,children:I.bitbucket_token_set?I.bitbucket_user?`Signed in as ${String(I.bitbucket_user)}`:`Token saved on this machine`:`Not connected`})]}),(0,w.jsx)(`div`,{className:`btn-row`,children:I.bitbucket_token_set?(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-bitbucket-disconnect`,onClick:()=>void Tt(`bitbucket`),children:`Disconnect`}):(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-bitbucket-login`,disabled:Ue||!I.bitbucket_oauth_ready,onClick:()=>void bt(),children:Ue?`Waiting for Bitbucket…`:`Sign in with Bitbucket`})})]}),I.bitbucket_oauth_ready?null:(0,w.jsxs)(`p`,{className:`muted`,children:[`Sign-in needs a Bitbucket OAuth consumer (key + secret). Callback URL:`,` `,(0,w.jsx)(`code`,{children:`/api/oauth/bitbucket/callback`}),` on this app origin.`]}),(0,w.jsx)(`label`,{htmlFor:`bitbucket_oauth_client_id`,children:`Bitbucket OAuth key`}),(0,w.jsx)(`input`,{id:`bitbucket_oauth_client_id`,name:`bitbucket_oauth_client_id`,"data-testid":`bitbucket-oauth-client-id`,defaultValue:String(I.bitbucket_oauth_client_id||``),autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`bitbucket_oauth_client_secret`,children:`Bitbucket OAuth secret`}),(0,w.jsx)(`input`,{id:`bitbucket_oauth_client_secret`,name:`bitbucket_oauth_client_secret`,type:`password`,autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`bitbucket_token`,children:`Bitbucket token (optional app password)`}),(0,w.jsx)(`input`,{id:`bitbucket_token`,name:`bitbucket_token`,type:`password`,autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`bitbucket_username`,children:`Bitbucket username (app passwords)`}),(0,w.jsx)(`input`,{id:`bitbucket_username`,name:`bitbucket_username`,defaultValue:String(I.bitbucket_username||``)})]}),(0,w.jsxs)(`section`,{className:`settings-card`,children:[(0,w.jsx)(`h2`,{children:`Residual AI`}),(0,w.jsx)(`label`,{htmlFor:`ai_provider`,children:`Provider`}),(0,w.jsxs)(`select`,{id:`ai_provider`,name:`ai_provider`,defaultValue:String(I.ai?.provider||`none`),children:[(0,w.jsx)(`option`,{value:`none`,children:`none (graph only)`}),(0,w.jsx)(`option`,{value:`anthropic`,children:`Anthropic`}),(0,w.jsx)(`option`,{value:`openai`,children:`OpenAI`}),(0,w.jsx)(`option`,{value:`grok`,children:`Grok / xAI`}),(0,w.jsx)(`option`,{value:`deepseek`,children:`DeepSeek`}),(0,w.jsx)(`option`,{value:`cursor`,children:`Cursor-compatible (OpenAI protocol)`}),(0,w.jsx)(`option`,{value:`ollama`,children:`Ollama local`})]}),(0,w.jsx)(`label`,{htmlFor:`ai_api_key`,children:`API key`}),(0,w.jsx)(`input`,{id:`ai_api_key`,name:`ai_api_key`,type:`password`,autoComplete:`off`}),(0,w.jsx)(`label`,{htmlFor:`ai_model`,children:`Model`}),(0,w.jsx)(`input`,{id:`ai_model`,name:`ai_model`,"data-testid":`ai-model`,placeholder:`optional override`,defaultValue:String(I.ai?.model||``)}),(0,w.jsx)(`label`,{htmlFor:`ai_base_url`,children:`Base URL`}),(0,w.jsx)(`input`,{id:`ai_base_url`,name:`ai_base_url`,"data-testid":`ai-base-url`,placeholder:`optional, OpenAI-compatible`,defaultValue:String(I.ai?.base_url||``)}),(0,w.jsx)(`button`,{className:`btn primary`,type:`submit`,"data-testid":`btn-save-settings`,children:`Save`})]})]})]})]}),(0,w.jsx)(E,{open:_e,actions:Lt,onClose:()=>ve(!1)}),he?(0,w.jsx)(Mm,{initialPath:n,onClose:()=>ge(!1),onSelect:e=>{if($e.current){b(`Wait for the current job to finish before switching workspace.`);return}ge(!1),ft(e)}}):null]})}function qm({review:e,findings:t,aiNote:n,busy:r,tourIndex:i,onTour:a,onAskAi:o,onCopy:s,onPost:c,onSelect:l,onOpenFile:u,onExport:d,history:f,diff:p,onReopen:m,onWaiver:h}){let g=[...new Set(e.confidence.reasons||[])];return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`merge-box ${e.confidence.level}`,children:[(0,w.jsxs)(`div`,{className:`level ${e.confidence.level}`,children:[e.confidence.level.toUpperCase(),` — `,e.title]}),g.length?(0,w.jsx)(`ul`,{className:`reasons`,children:g.map(e=>(0,w.jsx)(`li`,{children:e},e))}):null,e.what_if?(0,w.jsx)(`span`,{className:`chip whatif`,"data-testid":`whatif-chip`,children:`what-if`}):null,e.low_risk?(0,w.jsx)(`span`,{className:`chip`,children:`low-risk`}):null,e.change_kinds.map(e=>(0,w.jsx)(`span`,{className:`chip`,children:O(e)},e)),e.contract_break?.kind&&e.contract_break.kind!==`none`?(0,w.jsxs)(`span`,{className:`chip ${e.contract_break.kind===`breaking`?`blocker`:``}`,"data-testid":`contract-kind`,children:[`contract `,e.contract_break.kind]}):null]}),(0,w.jsxs)(`div`,{className:`metrics`,children:[(0,w.jsxs)(`div`,{className:`metric`,children:[(0,w.jsxs)(`div`,{className:`n`,children:[e.confidence.covered_sinks,`/`,e.confidence.sinks]}),(0,w.jsx)(`div`,{className:`l`,children:`Sinks tested`})]}),(0,w.jsxs)(`div`,{className:`metric`,children:[(0,w.jsx)(`div`,{className:`n`,children:t.length}),(0,w.jsx)(`div`,{className:`l`,children:`Findings`})]}),(0,w.jsxs)(`div`,{className:`metric`,children:[(0,w.jsx)(`div`,{className:`n`,children:e.residuals.length}),(0,w.jsx)(`div`,{className:`l`,children:`Residuals`})]})]}),(0,w.jsx)(`pre`,{className:`headline`,children:e.headline}),(e.checklist||[]).length?(0,w.jsxs)(`details`,{className:`section`,open:!0,"data-testid":`merge-checklist`,children:[(0,w.jsxs)(`summary`,{children:[`Merge checklist`,` `,(0,w.jsx)(`span`,{className:`count`,children:(e.checklist||[]).filter(e=>e.status===`todo`).length})]}),(e.checklist||[]).map(e=>(0,w.jsxs)(`div`,{className:`check-item ${e.status}`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`linkish`,onClick:()=>e.node_id&&l(e.node_id),children:[(0,w.jsx)(`span`,{className:`chip ${e.status}`,children:e.status}),e.title]}),e.detail?(0,w.jsx)(`div`,{className:`why`,children:e.detail}):null,e.body?(0,w.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>{navigator.clipboard.writeText(e.body||``)},children:`Copy test`}):null,e.kind===`finding`&&e.status===`todo`&&e.rule?(0,w.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>h(e.rule,e.node_id),children:`Waive in loadpath.yml`}):null]},e.id))]}):null,e.index?(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Index `,(0,w.jsx)(`span`,{className:`count`,children:e.index.counts.nodes})]}),(0,w.jsxs)(`div`,{className:`muted`,children:[`Walked `,e.index.counts.nodes,` nodes / `,e.index.counts.edges,` edges`,e.index.reindex_skipped?` from an unchanged index`:e.index.reindexed?` after an incremental refresh`:` from the existing index`,e.index.django_boot&&e.index.django_boot!==`off`?` · Django boot ${e.index.django_boot}`:``,e.workspace?.three_dot?` · three-dot range`:``]})]}):null,(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Read this `,(0,w.jsx)(`span`,{className:`count`,children:e.read_order.length})]}),e.read_order.map((e,t)=>(0,w.jsxs)(`div`,{className:t===i?`read-item tour-current`:`read-item`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`linkish file`,onClick:()=>a(t),children:[t+1,`. `,e.path]}),(0,w.jsx)(`div`,{className:`why`,children:e.why}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>u(e.path),children:`Open`})]},e.path)),e.read_order.length>0?(0,w.jsxs)(`div`,{className:`btn-row tour-row`,children:[(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-tour-prev`,disabled:i<=0,onClick:()=>a(Math.max(0,i-1)),children:`Previous`}),(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,"data-testid":`btn-tour-next`,disabled:i>=e.read_order.length-1,onClick:()=>a(Math.min(e.read_order.length-1,i+1)),children:`Next in read order`}),(0,w.jsxs)(`span`,{className:`muted`,children:[i+1,`/`,e.read_order.length]})]}):null]}),(0,w.jsxs)(`details`,{className:`section`,children:[(0,w.jsxs)(`summary`,{children:[`Clusters `,(0,w.jsx)(`span`,{className:`count`,children:e.clusters.length})]}),e.clusters.map(e=>(0,w.jsxs)(`div`,{className:`muted`,children:[(0,w.jsx)(`strong`,{children:e.title}),` — `,e.files.join(`, `)]},e.id))]}),(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Architecture `,(0,w.jsx)(`span`,{className:`count`,children:t.length})]}),t.length===0?(0,w.jsx)(`div`,{className:`muted`,children:e.architecture_note}):t.map(e=>(0,w.jsx)(`div`,{className:`finding`,children:(0,w.jsxs)(`button`,{type:`button`,className:`linkish`,onClick:()=>e.node_id&&l(e.node_id),children:[(0,w.jsx)(`span`,{className:`chip ${e.severity}`,children:e.severity}),e.message]})},e.rule+e.message))]}),(0,w.jsx)(Ym,{cards:e.deepening}),e.contract_break?.reasons?.length?(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Contract `,(0,w.jsx)(`span`,{className:`count`,children:e.contract_break.kind})]}),e.contract_break.reasons.map(e=>(0,w.jsx)(`div`,{className:`muted`,children:e},e)),e.contract_break.sides?.rows?.length?(0,w.jsxs)(`table`,{className:`type-table`,"data-testid":`contract-sides`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`th`,{children:`Field`}),(0,w.jsx)(`th`,{children:`Serializer`}),(0,w.jsx)(`th`,{children:`Zod`}),(0,w.jsx)(`th`,{children:`GraphQL`})]})}),(0,w.jsx)(`tbody`,{children:e.contract_break.sides.rows.map(e=>(0,w.jsxs)(`tr`,{className:e.status,children:[(0,w.jsx)(`td`,{children:e.field}),(0,w.jsx)(`td`,{children:e.serializer?`yes`:`—`}),(0,w.jsx)(`td`,{children:e.zod?`yes`:`—`}),(0,w.jsx)(`td`,{children:e.graphql?`yes`:`—`})]},e.field))})]}):null]}):null,e.auth?.note?(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsx)(`summary`,{children:`Auth`}),(0,w.jsx)(`div`,{className:`muted`,children:e.auth.note}),(e.auth.missing_permissions||[]).map(e=>(0,w.jsxs)(`div`,{className:`finding`,children:[(0,w.jsx)(`span`,{className:`chip warning`,children:`missing`}),e.name]},e.id))]}):null,(e.suggested_tests||[]).length?(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Suggested tests `,(0,w.jsx)(`span`,{className:`count`,children:e.suggested_tests?.length})]}),(e.suggested_tests||[]).map(e=>(0,w.jsxs)(`div`,{className:`residual`,children:[(0,w.jsx)(`strong`,{children:e.title}),(0,w.jsx)(`pre`,{className:`headline`,children:e.body}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>{navigator.clipboard.writeText(e.body)},children:`Copy sketch`})]},e.title))]}):null,e.trend?.note?(0,w.jsxs)(`details`,{className:`section`,children:[(0,w.jsx)(`summary`,{children:`Confidence trend`}),(0,w.jsx)(`div`,{className:`muted`,children:e.trend.note}),(e.trend.points||[]).slice(0,6).map(e=>(0,w.jsxs)(`div`,{className:`muted`,children:[e.level,` · `,j(e.created_at),e.sinks==null?``:` · ${e.sinks} sinks`]},e.id))]}):null,(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Residual `,(0,w.jsx)(`span`,{className:`count`,children:e.residuals.length})]}),(0,w.jsx)(`p`,{className:`muted`,children:`AI is only used here, on what the graph could not close.`}),e.residuals.map(e=>(0,w.jsx)(`div`,{className:`residual muted`,children:e},e))]}),f.length?(0,w.jsxs)(`details`,{className:`section`,"data-testid":`review-history`,children:[(0,w.jsxs)(`summary`,{children:[`History `,(0,w.jsx)(`span`,{className:`count`,children:f.length})]}),p?(0,w.jsx)(`div`,{className:`muted`,children:p.note}):null,f.slice(0,12).map(t=>(0,w.jsxs)(`button`,{type:`button`,className:t.id===e.id?`history-item current`:`history-item`,onClick:()=>m(t.id),children:[(0,w.jsx)(`span`,{className:`chip ${t.level||``}`,children:t.level||`walk`}),t.title||t.id.slice(0,8),(0,w.jsx)(`span`,{className:`muted`,children:t.created_at?j(t.created_at):``})]},t.id))]}):null,e.evolution?.notes?.length||e.evolution?.hotspots?.some(e=>e.commits)?(0,w.jsxs)(`details`,{className:`section`,children:[(0,w.jsx)(`summary`,{children:`Churn & coupling`}),(e.evolution?.notes||[]).map(e=>(0,w.jsx)(`div`,{className:`muted`,children:e},e)),(e.evolution?.hotspots||[]).filter(e=>e.commits).slice(0,6).map(e=>(0,w.jsxs)(`div`,{className:`muted`,children:[(0,w.jsx)(`span`,{className:`file`,children:e.path}),` — `,e.commits,` commits, bus factor `,e.bus_factor]},e.path))]}):null,(0,w.jsxs)(`div`,{className:`btn-row`,children:[(0,w.jsx)(`button`,{type:`button`,className:`btn`,disabled:r,onClick:o,children:`Ask configured model`}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-copy-markdown`,onClick:s,children:`Copy markdown`}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-export-html`,onClick:d,children:`Save HTML`}),(0,w.jsx)(`button`,{type:`button`,className:`btn`,"data-testid":`btn-post-comment`,disabled:r||!!e.what_if,title:e.what_if?`Hypothetical walks are not posted to a pull request`:void 0,onClick:c,children:`Post to PR`})]}),n?(0,w.jsx)(`pre`,{className:`headline`,children:n}):null,(0,w.jsx)(`div`,{className:`kicker`,children:`Reviewers`}),(0,w.jsx)(`div`,{className:`muted`,children:e.suggested_reviewers.join(`, `)||`—`}),e.codeowners_reviewers?.length?(0,w.jsxs)(`div`,{className:`muted`,children:[`CODEOWNERS: `,e.codeowners_reviewers.join(`, `)]}):null,e.knowledge_owners?.length?(0,w.jsxs)(`div`,{className:`muted`,children:[`Knowledge: `,e.knowledge_owners.join(`, `)]}):null]})}function Jm({architecture:e,busy:t,onReindex:n,onReview:r,onSelect:i,config:a,health:o,onSaveConfig:s,onWaiver:c}){let l=e.findings.filter(e=>!e.waived);return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`merge-box high`,children:[(0,w.jsxs)(`div`,{className:`level high`,children:[`INDEXED — `,e.counts.nodes,` nodes`]}),(0,w.jsxs)(`div`,{className:`muted`,style:{marginTop:8},children:[e.indexed_at?`Last index ${j(e.indexed_at)}`:`Indexed`,e.incremental?` · incremental`:` · full`,e.stale?` · stale`:``,e.django_boot&&e.django_boot!==`off`?` · Django boot ${e.django_boot}`:``]}),(0,w.jsxs)(`span`,{className:`chip`,children:[e.counts.edges,` edges`]}),e.has_config?(0,w.jsx)(`span`,{className:`chip`,children:`loadpath.yml`}):null]}),(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsx)(`summary`,{children:`Bounded contexts`}),Object.values(e.contexts).map(e=>(0,w.jsxs)(`div`,{className:`muted`,children:[(0,w.jsx)(`strong`,{children:e.name}),` — `,(e.django_apps||[]).join(`, `)||`no apps`,` ·`,` `,(e.owners||[]).join(`, `)||`unowned`]},e.name))]}),(0,w.jsxs)(`details`,{className:`section`,children:[(0,w.jsxs)(`summary`,{children:[`Rules `,(0,w.jsx)(`span`,{className:`count`,children:(e.rules||[]).length})]}),(e.rules||[]).map(e=>(0,w.jsx)(`div`,{className:`muted`,children:e},e))]}),(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsxs)(`summary`,{children:[`Findings `,(0,w.jsx)(`span`,{className:`count`,children:l.length})]}),l.length===0?(0,w.jsx)(`div`,{className:`muted`,children:`No architecture rule hits on the full graph.`}):l.map(e=>(0,w.jsx)(`div`,{className:`finding`,children:(0,w.jsxs)(`button`,{type:`button`,className:`linkish`,onClick:()=>e.node_id&&i(e.node_id),children:[(0,w.jsx)(`span`,{className:`chip ${e.severity}`,children:e.severity}),e.message]})},e.rule+e.message))]}),(0,w.jsx)(Ym,{cards:e.deepening}),o?.points?.length?(0,w.jsxs)(`details`,{className:`section`,open:!0,"data-testid":`architecture-health`,children:[(0,w.jsxs)(`summary`,{children:[`Health over time `,(0,w.jsx)(`span`,{className:`count`,children:o.points.length})]}),(0,w.jsx)(`div`,{className:`sparkline`,"aria-hidden":`true`,children:o.points.map(e=>(0,w.jsx)(`i`,{className:e.level||``,title:`${e.level} · ${e.findings} findings`,style:{height:`${8+Math.min(24,(e.findings||0)*4)}px`}},e.id||e.created_at))}),Object.entries(o.contexts).map(([e,t])=>(0,w.jsxs)(`div`,{className:`muted`,children:[(0,w.jsx)(`strong`,{children:e}),` — last `,t[t.length-1]?.findings??0,` findings`]},e))]}):null,a?(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsx)(`summary`,{children:`loadpath.yml`}),(0,w.jsx)(D,{config:a,busy:t,onSave:s,onWaiver:c})]}):null,(0,w.jsxs)(`details`,{className:`section`,open:!0,children:[(0,w.jsx)(`summary`,{children:`Types`}),(0,w.jsx)(`table`,{className:`type-table`,children:(0,w.jsx)(`tbody`,{children:Object.entries(e.type_counts||{}).sort((e,t)=>t[1]-e[1]).slice(0,12).map(([e,t])=>(0,w.jsxs)(`tr`,{children:[(0,w.jsx)(`td`,{children:A(e)}),(0,w.jsx)(`td`,{children:t})]},e))})})]}),(0,w.jsxs)(`div`,{className:`btn-row`,children:[(0,w.jsx)(`button`,{type:`button`,className:`btn`,disabled:t,onClick:n,"data-testid":`btn-full-reindex`,children:`Full reindex`}),(0,w.jsx)(`button`,{type:`button`,className:`btn primary`,disabled:t,onClick:r,children:`Review against this index`})]})]})}function Ym({cards:e}){let t=e||[];return t.length?(0,w.jsxs)(`details`,{className:`section`,open:!0,"data-testid":`deepening-list`,children:[(0,w.jsxs)(`summary`,{children:[`Depth `,(0,w.jsx)(`span`,{className:`count`,children:t.length})]}),(0,w.jsx)(`p`,{className:`muted`,children:`Deepening opportunities: more behaviour behind a smaller interface, at a real seam.`}),t.map(e=>(0,w.jsxs)(`div`,{className:`finding`,"data-testid":`deepening-card`,children:[(0,w.jsx)(`span`,{className:`chip ${e.strength}`,children:k(e.strength)}),e.top?(0,w.jsx)(`span`,{className:`chip`,children:`top`}):null,(0,w.jsx)(`strong`,{children:e.title}),(0,w.jsx)(`div`,{className:`why`,children:e.message}),e.deletion_test?(0,w.jsxs)(`div`,{className:`muted`,children:[`Deletion test: `,e.deletion_test]}):null,e.before&&e.after?(0,w.jsxs)(`div`,{className:`muted`,children:[e.before,` → `,e.after]}):null]},e.rule+e.title))]}):null}Um(Vm()),(0,_.createRoot)(document.getElementById(`root`)).render((0,w.jsx)(g.StrictMode,{children:(0,w.jsx)(Km,{})}));export{tp as a,u as c,np as i,c as l,ep as n,A as o,ip as r,C as s,Wf as t}; \ No newline at end of file diff --git a/src/loadpath/static/index.html b/src/loadpath/static/index.html index b5e87ee..5adfabf 100644 --- a/src/loadpath/static/index.html +++ b/src/loadpath/static/index.html @@ -17,7 +17,7 @@ - + diff --git a/ui/package-lock.json b/ui/package-lock.json index 6278df7..17940b7 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -9,13 +9,13 @@ "version": "0.1.0", "dependencies": { "@xyflow/react": "^12.6.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.8", + "react-dom": "^19.2.8", "three": "^0.185.1" }, "devDependencies": { - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@types/three": "^0.185.4", "@vitejs/plugin-react": "^6.0.5", "jsdom": "^30.0.1", @@ -605,32 +605,24 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", - "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", - "devOptional": true, - "license": "MIT" - }, "node_modules/@types/react": { - "version": "18.3.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", - "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "devOptional": true, "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", - "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", "devOptional": true, "license": "MIT", "peerDependencies": { - "@types/react": "^18.0.0" + "@types/react": "^19.2.0" } }, "node_modules/@types/stats.js": { @@ -1158,12 +1150,6 @@ "dev": true, "license": "MIT" }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, "node_modules/jsdom": { "version": "30.0.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", @@ -1476,18 +1462,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -1625,28 +1599,24 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.2.8" } }, "node_modules/require-from-string": { @@ -1706,13 +1676,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" }, "node_modules/siginfo": { "version": "2.0.0", diff --git a/ui/package.json b/ui/package.json index 3b69601..413eede 100644 --- a/ui/package.json +++ b/ui/package.json @@ -11,13 +11,13 @@ }, "dependencies": { "@xyflow/react": "^12.6.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.2.8", + "react-dom": "^19.2.8", "three": "^0.185.1" }, "devDependencies": { - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", "@types/three": "^0.185.4", "@vitejs/plugin-react": "^6.0.5", "jsdom": "^30.0.1",