@whispering233/ai-editor-server 0.0.11 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ function uj(t,r){for(var o=0;o<r.length;o++){const a=r[o];if(typeof a!="string"&&!Array.isArray(a)){for(const c in a)if(c!=="default"&&!(c in t)){const d=Object.getOwnPropertyDescriptor(a,c);d&&Object.defineProperty(t,c,d.get?d:{enumerable:!0,get:()=>a[c]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))a(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&a(m)}).observe(document,{childList:!0,subtree:!0});function o(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerPolicy&&(d.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?d.credentials="include":c.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function a(c){if(c.ep)return;c.ep=!0;const d=o(c);fetch(c.href,d)}})();function r0(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var If={exports:{}},jl={};var Zb;function dj(){if(Zb)return jl;Zb=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function o(a,c,d){var m=null;if(d!==void 0&&(m=""+d),c.key!==void 0&&(m=""+c.key),"key"in c){d={};for(var g in c)g!=="key"&&(d[g]=c[g])}else d=c;return c=d.ref,{$$typeof:t,type:a,key:m,ref:c!==void 0?c:null,props:d}}return jl.Fragment=r,jl.jsx=o,jl.jsxs=o,jl}var Jb;function fj(){return Jb||(Jb=1,If.exports=dj()),If.exports}var i=fj(),Bf={exports:{}},ot={};var Wb;function mj(){if(Wb)return ot;Wb=1;var t=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),S=Symbol.iterator;function j(A){return A===null||typeof A!="object"?null:(A=S&&A[S]||A["@@iterator"],typeof A=="function"?A:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,O={};function N(A,H,I){this.props=A,this.context=H,this.refs=O,this.updater=I||E}N.prototype.isReactComponent={},N.prototype.setState=function(A,H){if(typeof A!="object"&&typeof A!="function"&&A!=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,A,H,"setState")},N.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function T(){}T.prototype=N.prototype;function _(A,H,I){this.props=A,this.context=H,this.refs=O,this.updater=I||E}var w=_.prototype=new T;w.constructor=_,k(w,N.prototype),w.isPureReactComponent=!0;var V=Array.isArray;function M(){}var L={H:null,A:null,T:null,S:null},C=Object.prototype.hasOwnProperty;function Z(A,H,I){var B=I.ref;return{$$typeof:t,type:A,key:H,ref:B!==void 0?B:null,props:I}}function re(A,H){return Z(A.type,H,A.props)}function ie(A){return typeof A=="object"&&A!==null&&A.$$typeof===t}function te(A){var H={"=":"=0",":":"=2"};return"$"+A.replace(/[=:]/g,function(I){return H[I]})}var K=/\/+/g;function ne(A,H){return typeof A=="object"&&A!==null&&A.key!=null?te(""+A.key):H.toString(36)}function W(A){switch(A.status){case"fulfilled":return A.value;case"rejected":throw A.reason;default:switch(typeof A.status=="string"?A.then(M,M):(A.status="pending",A.then(function(H){A.status==="pending"&&(A.status="fulfilled",A.value=H)},function(H){A.status==="pending"&&(A.status="rejected",A.reason=H)})),A.status){case"fulfilled":return A.value;case"rejected":throw A.reason}}throw A}function D(A,H,I,B,G){var Q=typeof A;(Q==="undefined"||Q==="boolean")&&(A=null);var he=!1;if(A===null)he=!0;else switch(Q){case"bigint":case"string":case"number":he=!0;break;case"object":switch(A.$$typeof){case t:case r:he=!0;break;case y:return he=A._init,D(he(A._payload),H,I,B,G)}}if(he)return G=G(A),he=B===""?"."+ne(A,0):B,V(G)?(I="",he!=null&&(I=he.replace(K,"$&/")+"/"),D(G,H,I,"",function(Ue){return Ue})):G!=null&&(ie(G)&&(G=re(G,I+(G.key==null||A&&A.key===G.key?"":(""+G.key).replace(K,"$&/")+"/")+he)),H.push(G)),1;he=0;var le=B===""?".":B+":";if(V(A))for(var de=0;de<A.length;de++)B=A[de],Q=le+ne(B,de),he+=D(B,H,I,Q,G);else if(de=j(A),typeof de=="function")for(A=de.call(A),de=0;!(B=A.next()).done;)B=B.value,Q=le+ne(B,de++),he+=D(B,H,I,Q,G);else if(Q==="object"){if(typeof A.then=="function")return D(W(A),H,I,B,G);throw H=String(A),Error("Objects are not valid as a React child (found: "+(H==="[object Object]"?"object with keys {"+Object.keys(A).join(", ")+"}":H)+"). If you meant to render a collection of children, use an array instead.")}return he}function z(A,H,I){if(A==null)return A;var B=[],G=0;return D(A,B,"","",function(Q){return H.call(I,Q,G++)}),B}function P(A){if(A._status===-1){var H=A._result;H=H(),H.then(function(I){(A._status===0||A._status===-1)&&(A._status=1,A._result=I)},function(I){(A._status===0||A._status===-1)&&(A._status=2,A._result=I)}),A._status===-1&&(A._status=0,A._result=H)}if(A._status===1)return A._result.default;throw A._result}var U=typeof reportError=="function"?reportError:function(A){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var H=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof A=="object"&&A!==null&&typeof A.message=="string"?String(A.message):String(A),error:A});if(!window.dispatchEvent(H))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",A);return}console.error(A)},F={map:z,forEach:function(A,H,I){z(A,function(){H.apply(this,arguments)},I)},count:function(A){var H=0;return z(A,function(){H++}),H},toArray:function(A){return z(A,function(H){return H})||[]},only:function(A){if(!ie(A))throw Error("React.Children.only expected to receive a single React element child.");return A}};return ot.Activity=x,ot.Children=F,ot.Component=N,ot.Fragment=o,ot.Profiler=c,ot.PureComponent=_,ot.StrictMode=a,ot.Suspense=b,ot.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=L,ot.__COMPILER_RUNTIME={__proto__:null,c:function(A){return L.H.useMemoCache(A)}},ot.cache=function(A){return function(){return A.apply(null,arguments)}},ot.cacheSignal=function(){return null},ot.cloneElement=function(A,H,I){if(A==null)throw Error("The argument must be a React element, but you passed "+A+".");var B=k({},A.props),G=A.key;if(H!=null)for(Q in H.key!==void 0&&(G=""+H.key),H)!C.call(H,Q)||Q==="key"||Q==="__self"||Q==="__source"||Q==="ref"&&H.ref===void 0||(B[Q]=H[Q]);var Q=arguments.length-2;if(Q===1)B.children=I;else if(1<Q){for(var he=Array(Q),le=0;le<Q;le++)he[le]=arguments[le+2];B.children=he}return Z(A.type,G,B)},ot.createContext=function(A){return A={$$typeof:m,_currentValue:A,_currentValue2:A,_threadCount:0,Provider:null,Consumer:null},A.Provider=A,A.Consumer={$$typeof:d,_context:A},A},ot.createElement=function(A,H,I){var B,G={},Q=null;if(H!=null)for(B in H.key!==void 0&&(Q=""+H.key),H)C.call(H,B)&&B!=="key"&&B!=="__self"&&B!=="__source"&&(G[B]=H[B]);var he=arguments.length-2;if(he===1)G.children=I;else if(1<he){for(var le=Array(he),de=0;de<he;de++)le[de]=arguments[de+2];G.children=le}if(A&&A.defaultProps)for(B in he=A.defaultProps,he)G[B]===void 0&&(G[B]=he[B]);return Z(A,Q,G)},ot.createRef=function(){return{current:null}},ot.forwardRef=function(A){return{$$typeof:g,render:A}},ot.isValidElement=ie,ot.lazy=function(A){return{$$typeof:y,_payload:{_status:-1,_result:A},_init:P}},ot.memo=function(A,H){return{$$typeof:p,type:A,compare:H===void 0?null:H}},ot.startTransition=function(A){var H=L.T,I={};L.T=I;try{var B=A(),G=L.S;G!==null&&G(I,B),typeof B=="object"&&B!==null&&typeof B.then=="function"&&B.then(M,U)}catch(Q){U(Q)}finally{H!==null&&I.types!==null&&(H.types=I.types),L.T=H}},ot.unstable_useCacheRefresh=function(){return L.H.useCacheRefresh()},ot.use=function(A){return L.H.use(A)},ot.useActionState=function(A,H,I){return L.H.useActionState(A,H,I)},ot.useCallback=function(A,H){return L.H.useCallback(A,H)},ot.useContext=function(A){return L.H.useContext(A)},ot.useDebugValue=function(){},ot.useDeferredValue=function(A,H){return L.H.useDeferredValue(A,H)},ot.useEffect=function(A,H){return L.H.useEffect(A,H)},ot.useEffectEvent=function(A){return L.H.useEffectEvent(A)},ot.useId=function(){return L.H.useId()},ot.useImperativeHandle=function(A,H,I){return L.H.useImperativeHandle(A,H,I)},ot.useInsertionEffect=function(A,H){return L.H.useInsertionEffect(A,H)},ot.useLayoutEffect=function(A,H){return L.H.useLayoutEffect(A,H)},ot.useMemo=function(A,H){return L.H.useMemo(A,H)},ot.useOptimistic=function(A,H){return L.H.useOptimistic(A,H)},ot.useReducer=function(A,H,I){return L.H.useReducer(A,H,I)},ot.useRef=function(A){return L.H.useRef(A)},ot.useState=function(A){return L.H.useState(A)},ot.useSyncExternalStore=function(A,H,I){return L.H.useSyncExternalStore(A,H,I)},ot.useTransition=function(){return L.H.useTransition()},ot.version="19.2.8",ot}var ey;function Wl(){return ey||(ey=1,Bf.exports=mj()),Bf.exports}var h=Wl();const ze=r0(h),pj=uj({__proto__:null,default:ze},[h]);var Hf={exports:{}},Tl={},Uf={exports:{}},Pf={};var ty;function hj(){return ty||(ty=1,(function(t){function r(D,z){var P=D.length;D.push(z);e:for(;0<P;){var U=P-1>>>1,F=D[U];if(0<c(F,z))D[U]=z,D[P]=F,P=U;else break e}}function o(D){return D.length===0?null:D[0]}function a(D){if(D.length===0)return null;var z=D[0],P=D.pop();if(P!==z){D[0]=P;e:for(var U=0,F=D.length,A=F>>>1;U<A;){var H=2*(U+1)-1,I=D[H],B=H+1,G=D[B];if(0>c(I,P))B<F&&0>c(G,I)?(D[U]=G,D[B]=P,U=B):(D[U]=I,D[H]=P,U=H);else if(B<F&&0>c(G,P))D[U]=G,D[B]=P,U=B;else break e}}return z}function c(D,z){var P=D.sortIndex-z.sortIndex;return P!==0?P:D.id-z.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;t.unstable_now=function(){return d.now()}}else{var m=Date,g=m.now();t.unstable_now=function(){return m.now()-g}}var b=[],p=[],y=1,x=null,S=3,j=!1,E=!1,k=!1,O=!1,N=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function w(D){for(var z=o(p);z!==null;){if(z.callback===null)a(p);else if(z.startTime<=D)a(p),z.sortIndex=z.expirationTime,r(b,z);else break;z=o(p)}}function V(D){if(k=!1,w(D),!E)if(o(b)!==null)E=!0,M||(M=!0,te());else{var z=o(p);z!==null&&W(V,z.startTime-D)}}var M=!1,L=-1,C=5,Z=-1;function re(){return O?!0:!(t.unstable_now()-Z<C)}function ie(){if(O=!1,M){var D=t.unstable_now();Z=D;var z=!0;try{e:{E=!1,k&&(k=!1,T(L),L=-1),j=!0;var P=S;try{t:{for(w(D),x=o(b);x!==null&&!(x.expirationTime>D&&re());){var U=x.callback;if(typeof U=="function"){x.callback=null,S=x.priorityLevel;var F=U(x.expirationTime<=D);if(D=t.unstable_now(),typeof F=="function"){x.callback=F,w(D),z=!0;break t}x===o(b)&&a(b),w(D)}else a(b);x=o(b)}if(x!==null)z=!0;else{var A=o(p);A!==null&&W(V,A.startTime-D),z=!1}}break e}finally{x=null,S=P,j=!1}z=void 0}}finally{z?te():M=!1}}}var te;if(typeof _=="function")te=function(){_(ie)};else if(typeof MessageChannel<"u"){var K=new MessageChannel,ne=K.port2;K.port1.onmessage=ie,te=function(){ne.postMessage(null)}}else te=function(){N(ie,0)};function W(D,z){L=N(function(){D(t.unstable_now())},z)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(D){D.callback=null},t.unstable_forceFrameRate=function(D){0>D||125<D?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<D?Math.floor(1e3/D):5},t.unstable_getCurrentPriorityLevel=function(){return S},t.unstable_next=function(D){switch(S){case 1:case 2:case 3:var z=3;break;default:z=S}var P=S;S=z;try{return D()}finally{S=P}},t.unstable_requestPaint=function(){O=!0},t.unstable_runWithPriority=function(D,z){switch(D){case 1:case 2:case 3:case 4:case 5:break;default:D=3}var P=S;S=D;try{return z()}finally{S=P}},t.unstable_scheduleCallback=function(D,z,P){var U=t.unstable_now();switch(typeof P=="object"&&P!==null?(P=P.delay,P=typeof P=="number"&&0<P?U+P:U):P=U,D){case 1:var F=-1;break;case 2:F=250;break;case 5:F=1073741823;break;case 4:F=1e4;break;default:F=5e3}return F=P+F,D={id:y++,callback:z,priorityLevel:D,startTime:P,expirationTime:F,sortIndex:-1},P>U?(D.sortIndex=P,r(p,D),o(b)===null&&D===o(p)&&(k?(T(L),L=-1):k=!0,W(V,P-U))):(D.sortIndex=F,r(b,D),E||j||(E=!0,M||(M=!0,te()))),D},t.unstable_shouldYield=re,t.unstable_wrapCallback=function(D){var z=S;return function(){var P=S;S=z;try{return D.apply(this,arguments)}finally{S=P}}}})(Pf)),Pf}var ny;function gj(){return ny||(ny=1,Uf.exports=hj()),Uf.exports}var Yf={exports:{}},En={};var sy;function xj(){if(sy)return En;sy=1;var t=Wl();function r(b){var p="https://react.dev/errors/"+b;if(1<arguments.length){p+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)p+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+b+"; visit "+p+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var a={d:{f:o,r:function(){throw Error(r(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},c=Symbol.for("react.portal");function d(b,p,y){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:c,key:x==null?null:""+x,children:b,containerInfo:p,implementation:y}}var m=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(b,p){if(b==="font")return"";if(typeof p=="string")return p==="use-credentials"?p:""}return En.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,En.createPortal=function(b,p){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!p||p.nodeType!==1&&p.nodeType!==9&&p.nodeType!==11)throw Error(r(299));return d(b,p,null,y)},En.flushSync=function(b){var p=m.T,y=a.p;try{if(m.T=null,a.p=2,b)return b()}finally{m.T=p,a.p=y,a.d.f()}},En.preconnect=function(b,p){typeof b=="string"&&(p?(p=p.crossOrigin,p=typeof p=="string"?p==="use-credentials"?p:"":void 0):p=null,a.d.C(b,p))},En.prefetchDNS=function(b){typeof b=="string"&&a.d.D(b)},En.preinit=function(b,p){if(typeof b=="string"&&p&&typeof p.as=="string"){var y=p.as,x=g(y,p.crossOrigin),S=typeof p.integrity=="string"?p.integrity:void 0,j=typeof p.fetchPriority=="string"?p.fetchPriority:void 0;y==="style"?a.d.S(b,typeof p.precedence=="string"?p.precedence:void 0,{crossOrigin:x,integrity:S,fetchPriority:j}):y==="script"&&a.d.X(b,{crossOrigin:x,integrity:S,fetchPriority:j,nonce:typeof p.nonce=="string"?p.nonce:void 0})}},En.preinitModule=function(b,p){if(typeof b=="string")if(typeof p=="object"&&p!==null){if(p.as==null||p.as==="script"){var y=g(p.as,p.crossOrigin);a.d.M(b,{crossOrigin:y,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0})}}else p==null&&a.d.M(b)},En.preload=function(b,p){if(typeof b=="string"&&typeof p=="object"&&p!==null&&typeof p.as=="string"){var y=p.as,x=g(y,p.crossOrigin);a.d.L(b,y,{crossOrigin:x,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0,type:typeof p.type=="string"?p.type:void 0,fetchPriority:typeof p.fetchPriority=="string"?p.fetchPriority:void 0,referrerPolicy:typeof p.referrerPolicy=="string"?p.referrerPolicy:void 0,imageSrcSet:typeof p.imageSrcSet=="string"?p.imageSrcSet:void 0,imageSizes:typeof p.imageSizes=="string"?p.imageSizes:void 0,media:typeof p.media=="string"?p.media:void 0})}},En.preloadModule=function(b,p){if(typeof b=="string")if(p){var y=g(p.as,p.crossOrigin);a.d.m(b,{as:typeof p.as=="string"&&p.as!=="script"?p.as:void 0,crossOrigin:y,integrity:typeof p.integrity=="string"?p.integrity:void 0})}else a.d.m(b)},En.requestFormReset=function(b){a.d.r(b)},En.unstable_batchedUpdates=function(b,p){return b(p)},En.useFormState=function(b,p,y){return m.H.useFormState(b,p,y)},En.useFormStatus=function(){return m.H.useHostTransitionStatus()},En.version="19.2.8",En}var ry;function o0(){if(ry)return Yf.exports;ry=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),Yf.exports=xj(),Yf.exports}var oy;function bj(){if(oy)return Tl;oy=1;var t=gj(),r=Wl(),o=o0();function a(e){var n="https://react.dev/errors/"+e;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)n+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function d(e){var n=e,s=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(s=n.return),e=n.return;while(e)}return n.tag===3?s:null}function m(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function g(e){if(e.tag===31){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function b(e){if(d(e)!==e)throw Error(a(188))}function p(e){var n=e.alternate;if(!n){if(n=d(e),n===null)throw Error(a(188));return n!==e?null:e}for(var s=e,l=n;;){var u=s.return;if(u===null)break;var f=u.alternate;if(f===null){if(l=u.return,l!==null){s=l;continue}break}if(u.child===f.child){for(f=u.child;f;){if(f===s)return b(u),e;if(f===l)return b(u),n;f=f.sibling}throw Error(a(188))}if(s.return!==l.return)s=u,l=f;else{for(var v=!1,R=u.child;R;){if(R===s){v=!0,s=u,l=f;break}if(R===l){v=!0,l=u,s=f;break}R=R.sibling}if(!v){for(R=f.child;R;){if(R===s){v=!0,s=f,l=u;break}if(R===l){v=!0,l=f,s=u;break}R=R.sibling}if(!v)throw Error(a(189))}}if(s.alternate!==l)throw Error(a(190))}if(s.tag!==3)throw Error(a(188));return s.stateNode.current===s?e:n}function y(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e;for(e=e.child;e!==null;){if(n=y(e),n!==null)return n;e=e.sibling}return null}var x=Object.assign,S=Symbol.for("react.element"),j=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),_=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),C=Symbol.for("react.lazy"),Z=Symbol.for("react.activity"),re=Symbol.for("react.memo_cache_sentinel"),ie=Symbol.iterator;function te(e){return e===null||typeof e!="object"?null:(e=ie&&e[ie]||e["@@iterator"],typeof e=="function"?e:null)}var K=Symbol.for("react.client.reference");function ne(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===K?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case k:return"Fragment";case N:return"Profiler";case O:return"StrictMode";case V:return"Suspense";case M:return"SuspenseList";case Z:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case E:return"Portal";case _:return e.displayName||"Context";case T:return(e._context.displayName||"Context")+".Consumer";case w:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case L:return n=e.displayName||null,n!==null?n:ne(e.type)||"Memo";case C:n=e._payload,e=e._init;try{return ne(e(n))}catch{}}return null}var W=Array.isArray,D=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P={pending:!1,data:null,method:null,action:null},U=[],F=-1;function A(e){return{current:e}}function H(e){0>F||(e.current=U[F],U[F]=null,F--)}function I(e,n){F++,U[F]=e.current,e.current=n}var B=A(null),G=A(null),Q=A(null),he=A(null);function le(e,n){switch(I(Q,n),I(G,e),I(B,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?vb(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=vb(n),e=Sb(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}H(B),I(B,e)}function de(){H(B),H(G),H(Q)}function Ue(e){e.memoizedState!==null&&I(he,e);var n=B.current,s=Sb(n,e.type);n!==s&&(I(G,e),I(B,s))}function Le(e){G.current===e&&(H(B),H(G)),he.current===e&&(H(he),vl._currentValue=P)}var we,Be;function ge(e){if(we===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);we=n&&n[1]||"",Be=-1<s.stack.indexOf(`
2
+ at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
3
+ `+we+e+Be}var q=!1;function Me(e,n){if(!e||q)return"";q=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(n){var je=function(){throw Error()};if(Object.defineProperty(je.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(je,[])}catch(pe){var fe=pe}Reflect.construct(e,[],je)}else{try{je.call()}catch(pe){fe=pe}e.call(je.prototype)}}else{try{throw Error()}catch(pe){fe=pe}(je=e())&&typeof je.catch=="function"&&je.catch(function(){})}}catch(pe){if(pe&&fe&&typeof pe.stack=="string")return[pe.stack,fe.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=l.DetermineComponentFrameRoot(),v=f[0],R=f[1];if(v&&R){var X=v.split(`
4
+ `),ue=R.split(`
5
+ `);for(u=l=0;l<X.length&&!X[l].includes("DetermineComponentFrameRoot");)l++;for(;u<ue.length&&!ue[u].includes("DetermineComponentFrameRoot");)u++;if(l===X.length||u===ue.length)for(l=X.length-1,u=ue.length-1;1<=l&&0<=u&&X[l]!==ue[u];)u--;for(;1<=l&&0<=u;l--,u--)if(X[l]!==ue[u]){if(l!==1||u!==1)do if(l--,u--,0>u||X[l]!==ue[u]){var ve=`
6
+ `+X[l].replace(" at new "," at ");return e.displayName&&ve.includes("<anonymous>")&&(ve=ve.replace("<anonymous>",e.displayName)),ve}while(1<=l&&0<=u);break}}}finally{q=!1,Error.prepareStackTrace=s}return(s=e?e.displayName||e.name:"")?ge(s):""}function Oe(e,n){switch(e.tag){case 26:case 27:case 5:return ge(e.type);case 16:return ge("Lazy");case 13:return e.child!==n&&n!==null?ge("Suspense Fallback"):ge("Suspense");case 19:return ge("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 ge("Activity");default:return""}}function _e(e){try{var n="",s=null;do n+=Oe(e,s),s=e,e=e.return;while(e);return n}catch(l){return`
7
+ Error generating stack: `+l.message+`
8
+ `+l.stack}}var be=Object.prototype.hasOwnProperty,Ie=t.unstable_scheduleCallback,Ve=t.unstable_cancelCallback,Pe=t.unstable_shouldYield,ee=t.unstable_requestPaint,Y=t.unstable_now,$=t.unstable_getCurrentPriorityLevel,Te=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,ae=t.unstable_NormalPriority,ke=t.unstable_LowPriority,Ye=t.unstable_IdlePriority,We=t.log,pt=t.unstable_setDisableYieldValue,At=null,mt=null;function Tt(e){if(typeof We=="function"&&pt(e),mt&&typeof mt.setStrictMode=="function")try{mt.setStrictMode(At,e)}catch{}}var Rt=Math.clz32?Math.clz32:Se,Lt=Math.log,Ce=Math.LN2;function Se(e){return e>>>=0,e===0?32:31-(Lt(e)/Ce|0)|0}var Ge=256,Ot=262144,Yt=4194304;function se(e){var n=e&42;if(n!==0)return n;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 ye(e,n,s){var l=e.pendingLanes;if(l===0)return 0;var u=0,f=e.suspendedLanes,v=e.pingedLanes;e=e.warmLanes;var R=l&134217727;return R!==0?(l=R&~f,l!==0?u=se(l):(v&=R,v!==0?u=se(v):s||(s=R&~e,s!==0&&(u=se(s))))):(R=l&~f,R!==0?u=se(R):v!==0?u=se(v):s||(s=l&~e,s!==0&&(u=se(s)))),u===0?0:n!==0&&n!==u&&(n&f)===0&&(f=u&-u,s=n&-n,f>=s||f===32&&(s&4194048)!==0)?n:u}function De(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function Ze(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+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 n+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 nt(){var e=Yt;return Yt<<=1,(Yt&62914560)===0&&(Yt=4194304),e}function at(e){for(var n=[],s=0;31>s;s++)n.push(e);return n}function rt(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function $t(e,n,s,l,u,f){var v=e.pendingLanes;e.pendingLanes=s,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=s,e.entangledLanes&=s,e.errorRecoveryDisabledLanes&=s,e.shellSuspendCounter=0;var R=e.entanglements,X=e.expirationTimes,ue=e.hiddenUpdates;for(s=v&~s;0<s;){var ve=31-Rt(s),je=1<<ve;R[ve]=0,X[ve]=-1;var fe=ue[ve];if(fe!==null)for(ue[ve]=null,ve=0;ve<fe.length;ve++){var pe=fe[ve];pe!==null&&(pe.lane&=-536870913)}s&=~je}l!==0&&Zn(e,l,0),f!==0&&u===0&&e.tag!==0&&(e.suspendedLanes|=f&~(v&~n))}function Zn(e,n,s){e.pendingLanes|=n,e.suspendedLanes&=~n;var l=31-Rt(n);e.entangledLanes|=n,e.entanglements[l]=e.entanglements[l]|1073741824|s&261930}function Jt(e,n){var s=e.entangledLanes|=n;for(e=e.entanglements;s;){var l=31-Rt(s),u=1<<l;u&n|e[l]&n&&(e[l]|=n),s&=~u}}function gn(e,n){var s=n&-n;return s=(s&42)!==0?1:hr(s),(s&(e.suspendedLanes|n))!==0?0:s}function hr(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;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:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Hn(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Ls(){var e=z.p;return e!==0?e:(e=window.event,e===void 0?32:Fb(e.type))}function ii(e,n){var s=z.p;try{return z.p=e,n()}finally{z.p=s}}var xs=Math.random().toString(36).slice(2),an="__reactFiber$"+xs,Rn="__reactProps$"+xs,Do="__reactContainer$"+xs,Cu="__reactEvents$"+xs,WS="__reactListeners$"+xs,eE="__reactHandles$"+xs,lh="__reactResources$"+xs,za="__reactMarker$"+xs;function Ru(e){delete e[an],delete e[Rn],delete e[Cu],delete e[WS],delete e[eE]}function zo(e){var n=e[an];if(n)return n;for(var s=e.parentNode;s;){if(n=s[Do]||s[an]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(e=Rb(e);e!==null;){if(s=e[an])return s;e=Rb(e)}return n}e=s,s=e.parentNode}return null}function Lo(e){if(e=e[an]||e[Do]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function La(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(a(33))}function Io(e){var n=e[lh];return n||(n=e[lh]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function dn(e){e[za]=!0}var ih=new Set,ch={};function Qr(e,n){Bo(e,n),Bo(e+"Capture",n)}function Bo(e,n){for(ch[e]=n,e=0;e<n.length;e++)ih.add(n[e])}var tE=RegExp("^[: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]*$"),uh={},dh={};function nE(e){return be.call(dh,e)?!0:be.call(uh,e)?!1:tE.test(e)?dh[e]=!0:(uh[e]=!0,!1)}function ci(e,n,s){if(nE(n))if(s===null)e.removeAttribute(n);else{switch(typeof s){case"undefined":case"function":case"symbol":e.removeAttribute(n);return;case"boolean":var l=n.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){e.removeAttribute(n);return}}e.setAttribute(n,""+s)}}function ui(e,n,s){if(s===null)e.removeAttribute(n);else{switch(typeof s){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttribute(n,""+s)}}function Is(e,n,s,l){if(l===null)e.removeAttribute(s);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(s);return}e.setAttributeNS(n,s,""+l)}}function Jn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function fh(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function sE(e,n,s){var l=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var u=l.get,f=l.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return u.call(this)},set:function(v){s=""+v,f.call(this,v)}}),Object.defineProperty(e,n,{enumerable:l.enumerable}),{getValue:function(){return s},setValue:function(v){s=""+v},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Ou(e){if(!e._valueTracker){var n=fh(e)?"checked":"value";e._valueTracker=sE(e,n,""+e[n])}}function mh(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var s=n.getValue(),l="";return e&&(l=fh(e)?e.checked?"true":"false":e.value),e=l,e!==s?(n.setValue(e),!0):!1}function di(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var rE=/[\n"\\]/g;function Wn(e){return e.replace(rE,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function ku(e,n,s,l,u,f,v,R){e.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?e.type=v:e.removeAttribute("type"),n!=null?v==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+Jn(n)):e.value!==""+Jn(n)&&(e.value=""+Jn(n)):v!=="submit"&&v!=="reset"||e.removeAttribute("value"),n!=null?_u(e,v,Jn(n)):s!=null?_u(e,v,Jn(s)):l!=null&&e.removeAttribute("value"),u==null&&f!=null&&(e.defaultChecked=!!f),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?e.name=""+Jn(R):e.removeAttribute("name")}function ph(e,n,s,l,u,f,v,R){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.type=f),n!=null||s!=null){if(!(f!=="submit"&&f!=="reset"||n!=null)){Ou(e);return}s=s!=null?""+Jn(s):"",n=n!=null?""+Jn(n):s,R||n===e.value||(e.value=n),e.defaultValue=n}l=l??u,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=R?e.checked:!!l,e.defaultChecked=!!l,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(e.name=v),Ou(e)}function _u(e,n,s){n==="number"&&di(e.ownerDocument)===e||e.defaultValue===""+s||(e.defaultValue=""+s)}function Ho(e,n,s,l){if(e=e.options,n){n={};for(var u=0;u<s.length;u++)n["$"+s[u]]=!0;for(s=0;s<e.length;s++)u=n.hasOwnProperty("$"+e[s].value),e[s].selected!==u&&(e[s].selected=u),u&&l&&(e[s].defaultSelected=!0)}else{for(s=""+Jn(s),n=null,u=0;u<e.length;u++){if(e[u].value===s){e[u].selected=!0,l&&(e[u].defaultSelected=!0);return}n!==null||e[u].disabled||(n=e[u])}n!==null&&(n.selected=!0)}}function hh(e,n,s){if(n!=null&&(n=""+Jn(n),n!==e.value&&(e.value=n),s==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=s!=null?""+Jn(s):""}function gh(e,n,s,l){if(n==null){if(l!=null){if(s!=null)throw Error(a(92));if(W(l)){if(1<l.length)throw Error(a(93));l=l[0]}s=l}s==null&&(s=""),n=s}s=Jn(n),e.defaultValue=s,l=e.textContent,l===s&&l!==""&&l!==null&&(e.value=l),Ou(e)}function Uo(e,n){if(n){var s=e.firstChild;if(s&&s===e.lastChild&&s.nodeType===3){s.nodeValue=n;return}}e.textContent=n}var oE=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function xh(e,n,s){var l=n.indexOf("--")===0;s==null||typeof s=="boolean"||s===""?l?e.setProperty(n,""):n==="float"?e.cssFloat="":e[n]="":l?e.setProperty(n,s):typeof s!="number"||s===0||oE.has(n)?n==="float"?e.cssFloat=s:e[n]=(""+s).trim():e[n]=s+"px"}function bh(e,n,s){if(n!=null&&typeof n!="object")throw Error(a(62));if(e=e.style,s!=null){for(var l in s)!s.hasOwnProperty(l)||n!=null&&n.hasOwnProperty(l)||(l.indexOf("--")===0?e.setProperty(l,""):l==="float"?e.cssFloat="":e[l]="");for(var u in n)l=n[u],n.hasOwnProperty(u)&&s[u]!==l&&xh(e,u,l)}else for(var f in n)n.hasOwnProperty(f)&&xh(e,f,n[f])}function Mu(e){if(e.indexOf("-")===-1)return!1;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 aE=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),lE=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function fi(e){return lE.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Bs(){}var Au=null;function Du(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Po=null,Yo=null;function yh(e){var n=Lo(e);if(n&&(e=n.stateNode)){var s=e[Rn]||null;e:switch(e=n.stateNode,n.type){case"input":if(ku(e,s.value,s.defaultValue,s.defaultValue,s.checked,s.defaultChecked,s.type,s.name),n=s.name,s.type==="radio"&&n!=null){for(s=e;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll('input[name="'+Wn(""+n)+'"][type="radio"]'),n=0;n<s.length;n++){var l=s[n];if(l!==e&&l.form===e.form){var u=l[Rn]||null;if(!u)throw Error(a(90));ku(l,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name)}}for(n=0;n<s.length;n++)l=s[n],l.form===e.form&&mh(l)}break e;case"textarea":hh(e,s.value,s.defaultValue);break e;case"select":n=s.value,n!=null&&Ho(e,!!s.multiple,n,!1)}}}var zu=!1;function vh(e,n,s){if(zu)return e(n,s);zu=!0;try{var l=e(n);return l}finally{if(zu=!1,(Po!==null||Yo!==null)&&(Wi(),Po&&(n=Po,e=Yo,Yo=Po=null,yh(n),e)))for(n=0;n<e.length;n++)yh(e[n])}}function Ia(e,n){var s=e.stateNode;if(s===null)return null;var l=s[Rn]||null;if(l===null)return null;s=l[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(e=e.type,l=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!l;break e;default:e=!1}if(e)return null;if(s&&typeof s!="function")throw Error(a(231,n,typeof s));return s}var Hs=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Lu=!1;if(Hs)try{var Ba={};Object.defineProperty(Ba,"passive",{get:function(){Lu=!0}}),window.addEventListener("test",Ba,Ba),window.removeEventListener("test",Ba,Ba)}catch{Lu=!1}var gr=null,Iu=null,mi=null;function Sh(){if(mi)return mi;var e,n=Iu,s=n.length,l,u="value"in gr?gr.value:gr.textContent,f=u.length;for(e=0;e<s&&n[e]===u[e];e++);var v=s-e;for(l=1;l<=v&&n[s-l]===u[f-l];l++);return mi=u.slice(e,1<l?1-l:void 0)}function pi(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function hi(){return!0}function Eh(){return!1}function On(e){function n(s,l,u,f,v){this._reactName=s,this._targetInst=u,this.type=l,this.nativeEvent=f,this.target=v,this.currentTarget=null;for(var R in e)e.hasOwnProperty(R)&&(s=e[R],this[R]=s?s(f):f[R]);return this.isDefaultPrevented=(f.defaultPrevented!=null?f.defaultPrevented:f.returnValue===!1)?hi:Eh,this.isPropagationStopped=Eh,this}return x(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=hi)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=hi)},persist:function(){},isPersistent:hi}),n}var Zr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},gi=On(Zr),Ha=x({},Zr,{view:0,detail:0}),iE=On(Ha),Bu,Hu,Ua,xi=x({},Ha,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pu,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Ua&&(Ua&&e.type==="mousemove"?(Bu=e.screenX-Ua.screenX,Hu=e.screenY-Ua.screenY):Hu=Bu=0,Ua=e),Bu)},movementY:function(e){return"movementY"in e?e.movementY:Hu}}),Nh=On(xi),cE=x({},xi,{dataTransfer:0}),uE=On(cE),dE=x({},Ha,{relatedTarget:0}),Uu=On(dE),fE=x({},Zr,{animationName:0,elapsedTime:0,pseudoElement:0}),mE=On(fE),pE=x({},Zr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),hE=On(pE),gE=x({},Zr,{data:0}),jh=On(gE),xE={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},bE={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},yE={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function vE(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=yE[e])?!!n[e]:!1}function Pu(){return vE}var SE=x({},Ha,{key:function(e){if(e.key){var n=xE[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=pi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?bE[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pu,charCode:function(e){return e.type==="keypress"?pi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?pi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),EE=On(SE),NE=x({},xi,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Th=On(NE),jE=x({},Ha,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pu}),TE=On(jE),wE=x({},Zr,{propertyName:0,elapsedTime:0,pseudoElement:0}),CE=On(wE),RE=x({},xi,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),OE=On(RE),kE=x({},Zr,{newState:0,oldState:0}),_E=On(kE),ME=[9,13,27,32],Yu=Hs&&"CompositionEvent"in window,Pa=null;Hs&&"documentMode"in document&&(Pa=document.documentMode);var AE=Hs&&"TextEvent"in window&&!Pa,wh=Hs&&(!Yu||Pa&&8<Pa&&11>=Pa),Ch=" ",Rh=!1;function Oh(e,n){switch(e){case"keyup":return ME.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Vo=!1;function DE(e,n){switch(e){case"compositionend":return kh(n);case"keypress":return n.which!==32?null:(Rh=!0,Ch);case"textInput":return e=n.data,e===Ch&&Rh?null:e;default:return null}}function zE(e,n){if(Vo)return e==="compositionend"||!Yu&&Oh(e,n)?(e=Sh(),mi=Iu=gr=null,Vo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return wh&&n.locale!=="ko"?null:n.data;default:return null}}var LE={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function _h(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!LE[e.type]:n==="textarea"}function Mh(e,n,s,l){Po?Yo?Yo.push(l):Yo=[l]:Po=l,n=ac(n,"onChange"),0<n.length&&(s=new gi("onChange","change",null,s,l),e.push({event:s,listeners:n}))}var Ya=null,Va=null;function IE(e){pb(e,0)}function bi(e){var n=La(e);if(mh(n))return e}function Ah(e,n){if(e==="change")return n}var Dh=!1;if(Hs){var Vu;if(Hs){var Fu="oninput"in document;if(!Fu){var zh=document.createElement("div");zh.setAttribute("oninput","return;"),Fu=typeof zh.oninput=="function"}Vu=Fu}else Vu=!1;Dh=Vu&&(!document.documentMode||9<document.documentMode)}function Lh(){Ya&&(Ya.detachEvent("onpropertychange",Ih),Va=Ya=null)}function Ih(e){if(e.propertyName==="value"&&bi(Va)){var n=[];Mh(n,Va,e,Du(e)),vh(IE,n)}}function BE(e,n,s){e==="focusin"?(Lh(),Ya=n,Va=s,Ya.attachEvent("onpropertychange",Ih)):e==="focusout"&&Lh()}function HE(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return bi(Va)}function UE(e,n){if(e==="click")return bi(n)}function PE(e,n){if(e==="input"||e==="change")return bi(n)}function YE(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Un=typeof Object.is=="function"?Object.is:YE;function Fa(e,n){if(Un(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var s=Object.keys(e),l=Object.keys(n);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var u=s[l];if(!be.call(n,u)||!Un(e[u],n[u]))return!1}return!0}function Bh(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Hh(e,n){var s=Bh(e);e=0;for(var l;s;){if(s.nodeType===3){if(l=e+s.textContent.length,e<=n&&l>=n)return{node:s,offset:n-e};e=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=Bh(s)}}function Uh(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Uh(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Ph(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=di(e.document);n instanceof e.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)e=n.contentWindow;else break;n=di(e.document)}return n}function Gu(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var VE=Hs&&"documentMode"in document&&11>=document.documentMode,Fo=null,qu=null,Ga=null,$u=!1;function Yh(e,n,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;$u||Fo==null||Fo!==di(l)||(l=Fo,"selectionStart"in l&&Gu(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Ga&&Fa(Ga,l)||(Ga=l,l=ac(qu,"onSelect"),0<l.length&&(n=new gi("onSelect","select",null,n,s),e.push({event:n,listeners:l}),n.target=Fo)))}function Jr(e,n){var s={};return s[e.toLowerCase()]=n.toLowerCase(),s["Webkit"+e]="webkit"+n,s["Moz"+e]="moz"+n,s}var Go={animationend:Jr("Animation","AnimationEnd"),animationiteration:Jr("Animation","AnimationIteration"),animationstart:Jr("Animation","AnimationStart"),transitionrun:Jr("Transition","TransitionRun"),transitionstart:Jr("Transition","TransitionStart"),transitioncancel:Jr("Transition","TransitionCancel"),transitionend:Jr("Transition","TransitionEnd")},Xu={},Vh={};Hs&&(Vh=document.createElement("div").style,"AnimationEvent"in window||(delete Go.animationend.animation,delete Go.animationiteration.animation,delete Go.animationstart.animation),"TransitionEvent"in window||delete Go.transitionend.transition);function Wr(e){if(Xu[e])return Xu[e];if(!Go[e])return e;var n=Go[e],s;for(s in n)if(n.hasOwnProperty(s)&&s in Vh)return Xu[e]=n[s];return e}var Fh=Wr("animationend"),Gh=Wr("animationiteration"),qh=Wr("animationstart"),FE=Wr("transitionrun"),GE=Wr("transitionstart"),qE=Wr("transitioncancel"),$h=Wr("transitionend"),Xh=new Map,Ku="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Ku.push("scrollEnd");function fs(e,n){Xh.set(e,n),Qr(n,[e])}var yi=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},es=[],qo=0,Qu=0;function vi(){for(var e=qo,n=Qu=qo=0;n<e;){var s=es[n];es[n++]=null;var l=es[n];es[n++]=null;var u=es[n];es[n++]=null;var f=es[n];if(es[n++]=null,l!==null&&u!==null){var v=l.pending;v===null?u.next=u:(u.next=v.next,v.next=u),l.pending=u}f!==0&&Kh(s,u,f)}}function Si(e,n,s,l){es[qo++]=e,es[qo++]=n,es[qo++]=s,es[qo++]=l,Qu|=l,e.lanes|=l,e=e.alternate,e!==null&&(e.lanes|=l)}function Zu(e,n,s,l){return Si(e,n,s,l),Ei(e)}function eo(e,n){return Si(e,null,null,n),Ei(e)}function Kh(e,n,s){e.lanes|=s;var l=e.alternate;l!==null&&(l.lanes|=s);for(var u=!1,f=e.return;f!==null;)f.childLanes|=s,l=f.alternate,l!==null&&(l.childLanes|=s),f.tag===22&&(e=f.stateNode,e===null||e._visibility&1||(u=!0)),e=f,f=f.return;return e.tag===3?(f=e.stateNode,u&&n!==null&&(u=31-Rt(s),e=f.hiddenUpdates,l=e[u],l===null?e[u]=[n]:l.push(n),n.lane=s|536870912),f):null}function Ei(e){if(50<ml)throw ml=0,af=null,Error(a(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var $o={};function $E(e,n,s,l){this.tag=e,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pn(e,n,s,l){return new $E(e,n,s,l)}function Ju(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Us(e,n){var s=e.alternate;return s===null?(s=Pn(e.tag,n,e.key,e.mode),s.elementType=e.elementType,s.type=e.type,s.stateNode=e.stateNode,s.alternate=e,e.alternate=s):(s.pendingProps=n,s.type=e.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=e.flags&65011712,s.childLanes=e.childLanes,s.lanes=e.lanes,s.child=e.child,s.memoizedProps=e.memoizedProps,s.memoizedState=e.memoizedState,s.updateQueue=e.updateQueue,n=e.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=e.sibling,s.index=e.index,s.ref=e.ref,s.refCleanup=e.refCleanup,s}function Qh(e,n){e.flags&=65011714;var s=e.alternate;return s===null?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=s.childLanes,e.lanes=s.lanes,e.child=s.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=s.memoizedProps,e.memoizedState=s.memoizedState,e.updateQueue=s.updateQueue,e.type=s.type,n=s.dependencies,e.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function Ni(e,n,s,l,u,f){var v=0;if(l=e,typeof e=="function")Ju(e)&&(v=1);else if(typeof e=="string")v=JN(e,s,B.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case Z:return e=Pn(31,s,n,u),e.elementType=Z,e.lanes=f,e;case k:return to(s.children,u,f,n);case O:v=8,u|=24;break;case N:return e=Pn(12,s,n,u|2),e.elementType=N,e.lanes=f,e;case V:return e=Pn(13,s,n,u),e.elementType=V,e.lanes=f,e;case M:return e=Pn(19,s,n,u),e.elementType=M,e.lanes=f,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _:v=10;break e;case T:v=9;break e;case w:v=11;break e;case L:v=14;break e;case C:v=16,l=null;break e}v=29,s=Error(a(130,e===null?"null":typeof e,"")),l=null}return n=Pn(v,s,n,u),n.elementType=e,n.type=l,n.lanes=f,n}function to(e,n,s,l){return e=Pn(7,e,l,n),e.lanes=s,e}function Wu(e,n,s){return e=Pn(6,e,null,n),e.lanes=s,e}function Zh(e){var n=Pn(18,null,null,0);return n.stateNode=e,n}function ed(e,n,s){return n=Pn(4,e.children!==null?e.children:[],e.key,n),n.lanes=s,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var Jh=new WeakMap;function ts(e,n){if(typeof e=="object"&&e!==null){var s=Jh.get(e);return s!==void 0?s:(n={value:e,source:n,stack:_e(n)},Jh.set(e,n),n)}return{value:e,source:n,stack:_e(n)}}var Xo=[],Ko=0,ji=null,qa=0,ns=[],ss=0,xr=null,bs=1,ys="";function Ps(e,n){Xo[Ko++]=qa,Xo[Ko++]=ji,ji=e,qa=n}function Wh(e,n,s){ns[ss++]=bs,ns[ss++]=ys,ns[ss++]=xr,xr=e;var l=bs;e=ys;var u=32-Rt(l)-1;l&=~(1<<u),s+=1;var f=32-Rt(n)+u;if(30<f){var v=u-u%5;f=(l&(1<<v)-1).toString(32),l>>=v,u-=v,bs=1<<32-Rt(n)+u|s<<u|l,ys=f+e}else bs=1<<f|s<<u|l,ys=e}function td(e){e.return!==null&&(Ps(e,1),Wh(e,1,0))}function nd(e){for(;e===ji;)ji=Xo[--Ko],Xo[Ko]=null,qa=Xo[--Ko],Xo[Ko]=null;for(;e===xr;)xr=ns[--ss],ns[ss]=null,ys=ns[--ss],ns[ss]=null,bs=ns[--ss],ns[ss]=null}function eg(e,n){ns[ss++]=bs,ns[ss++]=ys,ns[ss++]=xr,bs=n.id,ys=n.overflow,xr=e}var xn=null,Gt=null,Et=!1,br=null,rs=!1,sd=Error(a(519));function yr(e){var n=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw $a(ts(n,e)),sd}function tg(e){var n=e.stateNode,s=e.type,l=e.memoizedProps;switch(n[an]=e,n[Rn]=l,s){case"dialog":gt("cancel",n),gt("close",n);break;case"iframe":case"object":case"embed":gt("load",n);break;case"video":case"audio":for(s=0;s<hl.length;s++)gt(hl[s],n);break;case"source":gt("error",n);break;case"img":case"image":case"link":gt("error",n),gt("load",n);break;case"details":gt("toggle",n);break;case"input":gt("invalid",n),ph(n,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":gt("invalid",n);break;case"textarea":gt("invalid",n),gh(n,l.value,l.defaultValue,l.children)}s=l.children,typeof s!="string"&&typeof s!="number"&&typeof s!="bigint"||n.textContent===""+s||l.suppressHydrationWarning===!0||bb(n.textContent,s)?(l.popover!=null&&(gt("beforetoggle",n),gt("toggle",n)),l.onScroll!=null&&gt("scroll",n),l.onScrollEnd!=null&&gt("scrollend",n),l.onClick!=null&&(n.onclick=Bs),n=!0):n=!1,n||yr(e,!0)}function ng(e){for(xn=e.return;xn;)switch(xn.tag){case 5:case 31:case 13:rs=!1;return;case 27:case 3:rs=!0;return;default:xn=xn.return}}function Qo(e){if(e!==xn)return!1;if(!Et)return ng(e),Et=!0,!1;var n=e.tag,s;if((s=n!==3&&n!==27)&&((s=n===5)&&(s=e.type,s=!(s!=="form"&&s!=="button")||Ef(e.type,e.memoizedProps)),s=!s),s&&Gt&&yr(e),ng(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Gt=Cb(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(317));Gt=Cb(e)}else n===27?(n=Gt,Ar(e.type)?(e=Cf,Cf=null,Gt=e):Gt=n):Gt=xn?as(e.stateNode.nextSibling):null;return!0}function no(){Gt=xn=null,Et=!1}function rd(){var e=br;return e!==null&&(An===null?An=e:An.push.apply(An,e),br=null),e}function $a(e){br===null?br=[e]:br.push(e)}var od=A(null),so=null,Ys=null;function vr(e,n,s){I(od,n._currentValue),n._currentValue=s}function Vs(e){e._currentValue=od.current,H(od)}function ad(e,n,s){for(;e!==null;){var l=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,l!==null&&(l.childLanes|=n)):l!==null&&(l.childLanes&n)!==n&&(l.childLanes|=n),e===s)break;e=e.return}}function ld(e,n,s,l){var u=e.child;for(u!==null&&(u.return=e);u!==null;){var f=u.dependencies;if(f!==null){var v=u.child;f=f.firstContext;e:for(;f!==null;){var R=f;f=u;for(var X=0;X<n.length;X++)if(R.context===n[X]){f.lanes|=s,R=f.alternate,R!==null&&(R.lanes|=s),ad(f.return,s,e),l||(v=null);break e}f=R.next}}else if(u.tag===18){if(v=u.return,v===null)throw Error(a(341));v.lanes|=s,f=v.alternate,f!==null&&(f.lanes|=s),ad(v,s,e),v=null}else v=u.child;if(v!==null)v.return=u;else for(v=u;v!==null;){if(v===e){v=null;break}if(u=v.sibling,u!==null){u.return=v.return,v=u;break}v=v.return}u=v}}function Zo(e,n,s,l){e=null;for(var u=n,f=!1;u!==null;){if(!f){if((u.flags&524288)!==0)f=!0;else if((u.flags&262144)!==0)break}if(u.tag===10){var v=u.alternate;if(v===null)throw Error(a(387));if(v=v.memoizedProps,v!==null){var R=u.type;Un(u.pendingProps.value,v.value)||(e!==null?e.push(R):e=[R])}}else if(u===he.current){if(v=u.alternate,v===null)throw Error(a(387));v.memoizedState.memoizedState!==u.memoizedState.memoizedState&&(e!==null?e.push(vl):e=[vl])}u=u.return}e!==null&&ld(n,e,s,l),n.flags|=262144}function Ti(e){for(e=e.firstContext;e!==null;){if(!Un(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ro(e){so=e,Ys=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function bn(e){return sg(so,e)}function wi(e,n){return so===null&&ro(e),sg(e,n)}function sg(e,n){var s=n._currentValue;if(n={context:n,memoizedValue:s,next:null},Ys===null){if(e===null)throw Error(a(308));Ys=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else Ys=Ys.next=n;return s}var XE=typeof AbortController<"u"?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(s,l){e.push(l)}};this.abort=function(){n.aborted=!0,e.forEach(function(s){return s()})}},KE=t.unstable_scheduleCallback,QE=t.unstable_NormalPriority,tn={$$typeof:_,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function id(){return{controller:new XE,data:new Map,refCount:0}}function Xa(e){e.refCount--,e.refCount===0&&KE(QE,function(){e.controller.abort()})}var Ka=null,cd=0,Jo=0,Wo=null;function ZE(e,n){if(Ka===null){var s=Ka=[];cd=0,Jo=mf(),Wo={status:"pending",value:void 0,then:function(l){s.push(l)}}}return cd++,n.then(rg,rg),n}function rg(){if(--cd===0&&Ka!==null){Wo!==null&&(Wo.status="fulfilled");var e=Ka;Ka=null,Jo=0,Wo=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function JE(e,n){var s=[],l={status:"pending",value:null,reason:null,then:function(u){s.push(u)}};return e.then(function(){l.status="fulfilled",l.value=n;for(var u=0;u<s.length;u++)(0,s[u])(n)},function(u){for(l.status="rejected",l.reason=u,u=0;u<s.length;u++)(0,s[u])(void 0)}),l}var og=D.S;D.S=function(e,n){Yx=Y(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&ZE(e,n),og!==null&&og(e,n)};var oo=A(null);function ud(){var e=oo.current;return e!==null?e:Pt.pooledCache}function Ci(e,n){n===null?I(oo,oo.current):I(oo,n.pool)}function ag(){var e=ud();return e===null?null:{parent:tn._currentValue,pool:e}}var ea=Error(a(460)),dd=Error(a(474)),Ri=Error(a(542)),Oi={then:function(){}};function lg(e){return e=e.status,e==="fulfilled"||e==="rejected"}function ig(e,n,s){switch(s=e[s],s===void 0?e.push(n):s!==n&&(n.then(Bs,Bs),n=s),n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,ug(e),e;default:if(typeof n.status=="string")n.then(Bs,Bs);else{if(e=Pt,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=n,e.status="pending",e.then(function(l){if(n.status==="pending"){var u=n;u.status="fulfilled",u.value=l}},function(l){if(n.status==="pending"){var u=n;u.status="rejected",u.reason=l}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,ug(e),e}throw lo=n,ea}}function ao(e){try{var n=e._init;return n(e._payload)}catch(s){throw s!==null&&typeof s=="object"&&typeof s.then=="function"?(lo=s,ea):s}}var lo=null;function cg(){if(lo===null)throw Error(a(459));var e=lo;return lo=null,e}function ug(e){if(e===ea||e===Ri)throw Error(a(483))}var ta=null,Qa=0;function ki(e){var n=Qa;return Qa+=1,ta===null&&(ta=[]),ig(ta,e,n)}function Za(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function _i(e,n){throw n.$$typeof===S?Error(a(525)):(e=Object.prototype.toString.call(n),Error(a(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)))}function dg(e){function n(oe,J){if(e){var ce=oe.deletions;ce===null?(oe.deletions=[J],oe.flags|=16):ce.push(J)}}function s(oe,J){if(!e)return null;for(;J!==null;)n(oe,J),J=J.sibling;return null}function l(oe){for(var J=new Map;oe!==null;)oe.key!==null?J.set(oe.key,oe):J.set(oe.index,oe),oe=oe.sibling;return J}function u(oe,J){return oe=Us(oe,J),oe.index=0,oe.sibling=null,oe}function f(oe,J,ce){return oe.index=ce,e?(ce=oe.alternate,ce!==null?(ce=ce.index,ce<J?(oe.flags|=67108866,J):ce):(oe.flags|=67108866,J)):(oe.flags|=1048576,J)}function v(oe){return e&&oe.alternate===null&&(oe.flags|=67108866),oe}function R(oe,J,ce,Ne){return J===null||J.tag!==6?(J=Wu(ce,oe.mode,Ne),J.return=oe,J):(J=u(J,ce),J.return=oe,J)}function X(oe,J,ce,Ne){var Je=ce.type;return Je===k?ve(oe,J,ce.props.children,Ne,ce.key):J!==null&&(J.elementType===Je||typeof Je=="object"&&Je!==null&&Je.$$typeof===C&&ao(Je)===J.type)?(J=u(J,ce.props),Za(J,ce),J.return=oe,J):(J=Ni(ce.type,ce.key,ce.props,null,oe.mode,Ne),Za(J,ce),J.return=oe,J)}function ue(oe,J,ce,Ne){return J===null||J.tag!==4||J.stateNode.containerInfo!==ce.containerInfo||J.stateNode.implementation!==ce.implementation?(J=ed(ce,oe.mode,Ne),J.return=oe,J):(J=u(J,ce.children||[]),J.return=oe,J)}function ve(oe,J,ce,Ne,Je){return J===null||J.tag!==7?(J=to(ce,oe.mode,Ne,Je),J.return=oe,J):(J=u(J,ce),J.return=oe,J)}function je(oe,J,ce){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return J=Wu(""+J,oe.mode,ce),J.return=oe,J;if(typeof J=="object"&&J!==null){switch(J.$$typeof){case j:return ce=Ni(J.type,J.key,J.props,null,oe.mode,ce),Za(ce,J),ce.return=oe,ce;case E:return J=ed(J,oe.mode,ce),J.return=oe,J;case C:return J=ao(J),je(oe,J,ce)}if(W(J)||te(J))return J=to(J,oe.mode,ce,null),J.return=oe,J;if(typeof J.then=="function")return je(oe,ki(J),ce);if(J.$$typeof===_)return je(oe,wi(oe,J),ce);_i(oe,J)}return null}function fe(oe,J,ce,Ne){var Je=J!==null?J.key:null;if(typeof ce=="string"&&ce!==""||typeof ce=="number"||typeof ce=="bigint")return Je!==null?null:R(oe,J,""+ce,Ne);if(typeof ce=="object"&&ce!==null){switch(ce.$$typeof){case j:return ce.key===Je?X(oe,J,ce,Ne):null;case E:return ce.key===Je?ue(oe,J,ce,Ne):null;case C:return ce=ao(ce),fe(oe,J,ce,Ne)}if(W(ce)||te(ce))return Je!==null?null:ve(oe,J,ce,Ne,null);if(typeof ce.then=="function")return fe(oe,J,ki(ce),Ne);if(ce.$$typeof===_)return fe(oe,J,wi(oe,ce),Ne);_i(oe,ce)}return null}function pe(oe,J,ce,Ne,Je){if(typeof Ne=="string"&&Ne!==""||typeof Ne=="number"||typeof Ne=="bigint")return oe=oe.get(ce)||null,R(J,oe,""+Ne,Je);if(typeof Ne=="object"&&Ne!==null){switch(Ne.$$typeof){case j:return oe=oe.get(Ne.key===null?ce:Ne.key)||null,X(J,oe,Ne,Je);case E:return oe=oe.get(Ne.key===null?ce:Ne.key)||null,ue(J,oe,Ne,Je);case C:return Ne=ao(Ne),pe(oe,J,ce,Ne,Je)}if(W(Ne)||te(Ne))return oe=oe.get(ce)||null,ve(J,oe,Ne,Je,null);if(typeof Ne.then=="function")return pe(oe,J,ce,ki(Ne),Je);if(Ne.$$typeof===_)return pe(oe,J,ce,wi(J,Ne),Je);_i(J,Ne)}return null}function Xe(oe,J,ce,Ne){for(var Je=null,wt=null,Ke=J,dt=J=0,yt=null;Ke!==null&&dt<ce.length;dt++){Ke.index>dt?(yt=Ke,Ke=null):yt=Ke.sibling;var Ct=fe(oe,Ke,ce[dt],Ne);if(Ct===null){Ke===null&&(Ke=yt);break}e&&Ke&&Ct.alternate===null&&n(oe,Ke),J=f(Ct,J,dt),wt===null?Je=Ct:wt.sibling=Ct,wt=Ct,Ke=yt}if(dt===ce.length)return s(oe,Ke),Et&&Ps(oe,dt),Je;if(Ke===null){for(;dt<ce.length;dt++)Ke=je(oe,ce[dt],Ne),Ke!==null&&(J=f(Ke,J,dt),wt===null?Je=Ke:wt.sibling=Ke,wt=Ke);return Et&&Ps(oe,dt),Je}for(Ke=l(Ke);dt<ce.length;dt++)yt=pe(Ke,oe,dt,ce[dt],Ne),yt!==null&&(e&&yt.alternate!==null&&Ke.delete(yt.key===null?dt:yt.key),J=f(yt,J,dt),wt===null?Je=yt:wt.sibling=yt,wt=yt);return e&&Ke.forEach(function(Br){return n(oe,Br)}),Et&&Ps(oe,dt),Je}function et(oe,J,ce,Ne){if(ce==null)throw Error(a(151));for(var Je=null,wt=null,Ke=J,dt=J=0,yt=null,Ct=ce.next();Ke!==null&&!Ct.done;dt++,Ct=ce.next()){Ke.index>dt?(yt=Ke,Ke=null):yt=Ke.sibling;var Br=fe(oe,Ke,Ct.value,Ne);if(Br===null){Ke===null&&(Ke=yt);break}e&&Ke&&Br.alternate===null&&n(oe,Ke),J=f(Br,J,dt),wt===null?Je=Br:wt.sibling=Br,wt=Br,Ke=yt}if(Ct.done)return s(oe,Ke),Et&&Ps(oe,dt),Je;if(Ke===null){for(;!Ct.done;dt++,Ct=ce.next())Ct=je(oe,Ct.value,Ne),Ct!==null&&(J=f(Ct,J,dt),wt===null?Je=Ct:wt.sibling=Ct,wt=Ct);return Et&&Ps(oe,dt),Je}for(Ke=l(Ke);!Ct.done;dt++,Ct=ce.next())Ct=pe(Ke,oe,dt,Ct.value,Ne),Ct!==null&&(e&&Ct.alternate!==null&&Ke.delete(Ct.key===null?dt:Ct.key),J=f(Ct,J,dt),wt===null?Je=Ct:wt.sibling=Ct,wt=Ct);return e&&Ke.forEach(function(cj){return n(oe,cj)}),Et&&Ps(oe,dt),Je}function Ht(oe,J,ce,Ne){if(typeof ce=="object"&&ce!==null&&ce.type===k&&ce.key===null&&(ce=ce.props.children),typeof ce=="object"&&ce!==null){switch(ce.$$typeof){case j:e:{for(var Je=ce.key;J!==null;){if(J.key===Je){if(Je=ce.type,Je===k){if(J.tag===7){s(oe,J.sibling),Ne=u(J,ce.props.children),Ne.return=oe,oe=Ne;break e}}else if(J.elementType===Je||typeof Je=="object"&&Je!==null&&Je.$$typeof===C&&ao(Je)===J.type){s(oe,J.sibling),Ne=u(J,ce.props),Za(Ne,ce),Ne.return=oe,oe=Ne;break e}s(oe,J);break}else n(oe,J);J=J.sibling}ce.type===k?(Ne=to(ce.props.children,oe.mode,Ne,ce.key),Ne.return=oe,oe=Ne):(Ne=Ni(ce.type,ce.key,ce.props,null,oe.mode,Ne),Za(Ne,ce),Ne.return=oe,oe=Ne)}return v(oe);case E:e:{for(Je=ce.key;J!==null;){if(J.key===Je)if(J.tag===4&&J.stateNode.containerInfo===ce.containerInfo&&J.stateNode.implementation===ce.implementation){s(oe,J.sibling),Ne=u(J,ce.children||[]),Ne.return=oe,oe=Ne;break e}else{s(oe,J);break}else n(oe,J);J=J.sibling}Ne=ed(ce,oe.mode,Ne),Ne.return=oe,oe=Ne}return v(oe);case C:return ce=ao(ce),Ht(oe,J,ce,Ne)}if(W(ce))return Xe(oe,J,ce,Ne);if(te(ce)){if(Je=te(ce),typeof Je!="function")throw Error(a(150));return ce=Je.call(ce),et(oe,J,ce,Ne)}if(typeof ce.then=="function")return Ht(oe,J,ki(ce),Ne);if(ce.$$typeof===_)return Ht(oe,J,wi(oe,ce),Ne);_i(oe,ce)}return typeof ce=="string"&&ce!==""||typeof ce=="number"||typeof ce=="bigint"?(ce=""+ce,J!==null&&J.tag===6?(s(oe,J.sibling),Ne=u(J,ce),Ne.return=oe,oe=Ne):(s(oe,J),Ne=Wu(ce,oe.mode,Ne),Ne.return=oe,oe=Ne),v(oe)):s(oe,J)}return function(oe,J,ce,Ne){try{Qa=0;var Je=Ht(oe,J,ce,Ne);return ta=null,Je}catch(Ke){if(Ke===ea||Ke===Ri)throw Ke;var wt=Pn(29,Ke,null,oe.mode);return wt.lanes=Ne,wt.return=oe,wt}}}var io=dg(!0),fg=dg(!1),Sr=!1;function fd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function md(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Er(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Nr(e,n,s){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(kt&2)!==0){var u=l.pending;return u===null?n.next=n:(n.next=u.next,u.next=n),l.pending=n,n=Ei(e),Kh(e,null,s),n}return Si(e,l,n,s),Ei(e)}function Ja(e,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194048)!==0)){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Jt(e,s)}}function pd(e,n){var s=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var u=null,f=null;if(s=s.firstBaseUpdate,s!==null){do{var v={lane:s.lane,tag:s.tag,payload:s.payload,callback:null,next:null};f===null?u=f=v:f=f.next=v,s=s.next}while(s!==null);f===null?u=f=n:f=f.next=n}else u=f=n;s={baseState:l.baseState,firstBaseUpdate:u,lastBaseUpdate:f,shared:l.shared,callbacks:l.callbacks},e.updateQueue=s;return}e=s.lastBaseUpdate,e===null?s.firstBaseUpdate=n:e.next=n,s.lastBaseUpdate=n}var hd=!1;function Wa(){if(hd){var e=Wo;if(e!==null)throw e}}function el(e,n,s,l){hd=!1;var u=e.updateQueue;Sr=!1;var f=u.firstBaseUpdate,v=u.lastBaseUpdate,R=u.shared.pending;if(R!==null){u.shared.pending=null;var X=R,ue=X.next;X.next=null,v===null?f=ue:v.next=ue,v=X;var ve=e.alternate;ve!==null&&(ve=ve.updateQueue,R=ve.lastBaseUpdate,R!==v&&(R===null?ve.firstBaseUpdate=ue:R.next=ue,ve.lastBaseUpdate=X))}if(f!==null){var je=u.baseState;v=0,ve=ue=X=null,R=f;do{var fe=R.lane&-536870913,pe=fe!==R.lane;if(pe?(bt&fe)===fe:(l&fe)===fe){fe!==0&&fe===Jo&&(hd=!0),ve!==null&&(ve=ve.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});e:{var Xe=e,et=R;fe=n;var Ht=s;switch(et.tag){case 1:if(Xe=et.payload,typeof Xe=="function"){je=Xe.call(Ht,je,fe);break e}je=Xe;break e;case 3:Xe.flags=Xe.flags&-65537|128;case 0:if(Xe=et.payload,fe=typeof Xe=="function"?Xe.call(Ht,je,fe):Xe,fe==null)break e;je=x({},je,fe);break e;case 2:Sr=!0}}fe=R.callback,fe!==null&&(e.flags|=64,pe&&(e.flags|=8192),pe=u.callbacks,pe===null?u.callbacks=[fe]:pe.push(fe))}else pe={lane:fe,tag:R.tag,payload:R.payload,callback:R.callback,next:null},ve===null?(ue=ve=pe,X=je):ve=ve.next=pe,v|=fe;if(R=R.next,R===null){if(R=u.shared.pending,R===null)break;pe=R,R=pe.next,pe.next=null,u.lastBaseUpdate=pe,u.shared.pending=null}}while(!0);ve===null&&(X=je),u.baseState=X,u.firstBaseUpdate=ue,u.lastBaseUpdate=ve,f===null&&(u.shared.lanes=0),Rr|=v,e.lanes=v,e.memoizedState=je}}function mg(e,n){if(typeof e!="function")throw Error(a(191,e));e.call(n)}function pg(e,n){var s=e.callbacks;if(s!==null)for(e.callbacks=null,e=0;e<s.length;e++)mg(s[e],n)}var na=A(null),Mi=A(0);function hg(e,n){e=Js,I(Mi,e),I(na,n),Js=e|n.baseLanes}function gd(){I(Mi,Js),I(na,na.current)}function xd(){Js=Mi.current,H(na),H(Mi)}var Yn=A(null),os=null;function jr(e){var n=e.alternate;I(Wt,Wt.current&1),I(Yn,e),os===null&&(n===null||na.current!==null||n.memoizedState!==null)&&(os=e)}function bd(e){I(Wt,Wt.current),I(Yn,e),os===null&&(os=e)}function gg(e){e.tag===22?(I(Wt,Wt.current),I(Yn,e),os===null&&(os=e)):Tr()}function Tr(){I(Wt,Wt.current),I(Yn,Yn.current)}function Vn(e){H(Yn),os===e&&(os=null),H(Wt)}var Wt=A(0);function Ai(e){for(var n=e;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||Tf(s)||wf(s)))return n}else if(n.tag===19&&(n.memoizedProps.revealOrder==="forwards"||n.memoizedProps.revealOrder==="backwards"||n.memoizedProps.revealOrder==="unstable_legacy-backwards"||n.memoizedProps.revealOrder==="together")){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var Fs=0,ct=null,It=null,nn=null,Di=!1,sa=!1,co=!1,zi=0,tl=0,ra=null,WE=0;function Kt(){throw Error(a(321))}function yd(e,n){if(n===null)return!1;for(var s=0;s<n.length&&s<e.length;s++)if(!Un(e[s],n[s]))return!1;return!0}function vd(e,n,s,l,u,f){return Fs=f,ct=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,D.H=e===null||e.memoizedState===null?Wg:zd,co=!1,f=s(l,u),co=!1,sa&&(f=bg(n,s,l,u)),xg(e),f}function xg(e){D.H=rl;var n=It!==null&&It.next!==null;if(Fs=0,nn=It=ct=null,Di=!1,tl=0,ra=null,n)throw Error(a(300));e===null||sn||(e=e.dependencies,e!==null&&Ti(e)&&(sn=!0))}function bg(e,n,s,l){ct=e;var u=0;do{if(sa&&(ra=null),tl=0,sa=!1,25<=u)throw Error(a(301));if(u+=1,nn=It=null,e.updateQueue!=null){var f=e.updateQueue;f.lastEffect=null,f.events=null,f.stores=null,f.memoCache!=null&&(f.memoCache.index=0)}D.H=ex,f=n(s,l)}while(sa);return f}function eN(){var e=D.H,n=e.useState()[0];return n=typeof n.then=="function"?nl(n):n,e=e.useState()[0],(It!==null?It.memoizedState:null)!==e&&(ct.flags|=1024),n}function Sd(){var e=zi!==0;return zi=0,e}function Ed(e,n,s){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~s}function Nd(e){if(Di){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Di=!1}Fs=0,nn=It=ct=null,sa=!1,tl=zi=0,ra=null}function wn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return nn===null?ct.memoizedState=nn=e:nn=nn.next=e,nn}function en(){if(It===null){var e=ct.alternate;e=e!==null?e.memoizedState:null}else e=It.next;var n=nn===null?ct.memoizedState:nn.next;if(n!==null)nn=n,It=e;else{if(e===null)throw ct.alternate===null?Error(a(467)):Error(a(310));It=e,e={memoizedState:It.memoizedState,baseState:It.baseState,baseQueue:It.baseQueue,queue:It.queue,next:null},nn===null?ct.memoizedState=nn=e:nn=nn.next=e}return nn}function Li(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function nl(e){var n=tl;return tl+=1,ra===null&&(ra=[]),e=ig(ra,e,n),n=ct,(nn===null?n.memoizedState:nn.next)===null&&(n=n.alternate,D.H=n===null||n.memoizedState===null?Wg:zd),e}function Ii(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return nl(e);if(e.$$typeof===_)return bn(e)}throw Error(a(438,String(e)))}function jd(e){var n=null,s=ct.updateQueue;if(s!==null&&(n=s.memoCache),n==null){var l=ct.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(n={data:l.data.map(function(u){return u.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),s===null&&(s=Li(),ct.updateQueue=s),s.memoCache=n,s=n.data[n.index],s===void 0)for(s=n.data[n.index]=Array(e),l=0;l<e;l++)s[l]=re;return n.index++,s}function Gs(e,n){return typeof n=="function"?n(e):n}function Bi(e){var n=en();return Td(n,It,e)}function Td(e,n,s){var l=e.queue;if(l===null)throw Error(a(311));l.lastRenderedReducer=s;var u=e.baseQueue,f=l.pending;if(f!==null){if(u!==null){var v=u.next;u.next=f.next,f.next=v}n.baseQueue=u=f,l.pending=null}if(f=e.baseState,u===null)e.memoizedState=f;else{n=u.next;var R=v=null,X=null,ue=n,ve=!1;do{var je=ue.lane&-536870913;if(je!==ue.lane?(bt&je)===je:(Fs&je)===je){var fe=ue.revertLane;if(fe===0)X!==null&&(X=X.next={lane:0,revertLane:0,gesture:null,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null}),je===Jo&&(ve=!0);else if((Fs&fe)===fe){ue=ue.next,fe===Jo&&(ve=!0);continue}else je={lane:0,revertLane:ue.revertLane,gesture:null,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null},X===null?(R=X=je,v=f):X=X.next=je,ct.lanes|=fe,Rr|=fe;je=ue.action,co&&s(f,je),f=ue.hasEagerState?ue.eagerState:s(f,je)}else fe={lane:je,revertLane:ue.revertLane,gesture:ue.gesture,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null},X===null?(R=X=fe,v=f):X=X.next=fe,ct.lanes|=je,Rr|=je;ue=ue.next}while(ue!==null&&ue!==n);if(X===null?v=f:X.next=R,!Un(f,e.memoizedState)&&(sn=!0,ve&&(s=Wo,s!==null)))throw s;e.memoizedState=f,e.baseState=v,e.baseQueue=X,l.lastRenderedState=f}return u===null&&(l.lanes=0),[e.memoizedState,l.dispatch]}function wd(e){var n=en(),s=n.queue;if(s===null)throw Error(a(311));s.lastRenderedReducer=e;var l=s.dispatch,u=s.pending,f=n.memoizedState;if(u!==null){s.pending=null;var v=u=u.next;do f=e(f,v.action),v=v.next;while(v!==u);Un(f,n.memoizedState)||(sn=!0),n.memoizedState=f,n.baseQueue===null&&(n.baseState=f),s.lastRenderedState=f}return[f,l]}function yg(e,n,s){var l=ct,u=en(),f=Et;if(f){if(s===void 0)throw Error(a(407));s=s()}else s=n();var v=!Un((It||u).memoizedState,s);if(v&&(u.memoizedState=s,sn=!0),u=u.queue,Od(Eg.bind(null,l,u,e),[e]),u.getSnapshot!==n||v||nn!==null&&nn.memoizedState.tag&1){if(l.flags|=2048,oa(9,{destroy:void 0},Sg.bind(null,l,u,s,n),null),Pt===null)throw Error(a(349));f||(Fs&127)!==0||vg(l,n,s)}return s}function vg(e,n,s){e.flags|=16384,e={getSnapshot:n,value:s},n=ct.updateQueue,n===null?(n=Li(),ct.updateQueue=n,n.stores=[e]):(s=n.stores,s===null?n.stores=[e]:s.push(e))}function Sg(e,n,s,l){n.value=s,n.getSnapshot=l,Ng(n)&&jg(e)}function Eg(e,n,s){return s(function(){Ng(n)&&jg(e)})}function Ng(e){var n=e.getSnapshot;e=e.value;try{var s=n();return!Un(e,s)}catch{return!0}}function jg(e){var n=eo(e,2);n!==null&&Dn(n,e,2)}function Cd(e){var n=wn();if(typeof e=="function"){var s=e;if(e=s(),co){Tt(!0);try{s()}finally{Tt(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gs,lastRenderedState:e},n}function Tg(e,n,s,l){return e.baseState=s,Td(e,It,typeof l=="function"?l:Gs)}function tN(e,n,s,l,u){if(Pi(e))throw Error(a(485));if(e=n.action,e!==null){var f={payload:u,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(v){f.listeners.push(v)}};D.T!==null?s(!0):f.isTransition=!1,l(f),s=n.pending,s===null?(f.next=n.pending=f,wg(n,f)):(f.next=s.next,n.pending=s.next=f)}}function wg(e,n){var s=n.action,l=n.payload,u=e.state;if(n.isTransition){var f=D.T,v={};D.T=v;try{var R=s(u,l),X=D.S;X!==null&&X(v,R),Cg(e,n,R)}catch(ue){Rd(e,n,ue)}finally{f!==null&&v.types!==null&&(f.types=v.types),D.T=f}}else try{f=s(u,l),Cg(e,n,f)}catch(ue){Rd(e,n,ue)}}function Cg(e,n,s){s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(function(l){Rg(e,n,l)},function(l){return Rd(e,n,l)}):Rg(e,n,s)}function Rg(e,n,s){n.status="fulfilled",n.value=s,Og(n),e.state=s,n=e.pending,n!==null&&(s=n.next,s===n?e.pending=null:(s=s.next,n.next=s,wg(e,s)))}function Rd(e,n,s){var l=e.pending;if(e.pending=null,l!==null){l=l.next;do n.status="rejected",n.reason=s,Og(n),n=n.next;while(n!==l)}e.action=null}function Og(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function kg(e,n){return n}function _g(e,n){if(Et){var s=Pt.formState;if(s!==null){e:{var l=ct;if(Et){if(Gt){t:{for(var u=Gt,f=rs;u.nodeType!==8;){if(!f){u=null;break t}if(u=as(u.nextSibling),u===null){u=null;break t}}f=u.data,u=f==="F!"||f==="F"?u:null}if(u){Gt=as(u.nextSibling),l=u.data==="F!";break e}}yr(l)}l=!1}l&&(n=s[0])}}return s=wn(),s.memoizedState=s.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:kg,lastRenderedState:n},s.queue=l,s=Qg.bind(null,ct,l),l.dispatch=s,l=Cd(!1),f=Dd.bind(null,ct,!1,l.queue),l=wn(),u={state:n,dispatch:null,action:e,pending:null},l.queue=u,s=tN.bind(null,ct,u,f,s),u.dispatch=s,l.memoizedState=e,[n,s,!1]}function Mg(e){var n=en();return Ag(n,It,e)}function Ag(e,n,s){if(n=Td(e,n,kg)[0],e=Bi(Gs)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var l=nl(n)}catch(v){throw v===ea?Ri:v}else l=n;n=en();var u=n.queue,f=u.dispatch;return s!==n.memoizedState&&(ct.flags|=2048,oa(9,{destroy:void 0},nN.bind(null,u,s),null)),[l,f,e]}function nN(e,n){e.action=n}function Dg(e){var n=en(),s=It;if(s!==null)return Ag(n,s,e);en(),n=n.memoizedState,s=en();var l=s.queue.dispatch;return s.memoizedState=e,[n,l,!1]}function oa(e,n,s,l){return e={tag:e,create:s,deps:l,inst:n,next:null},n=ct.updateQueue,n===null&&(n=Li(),ct.updateQueue=n),s=n.lastEffect,s===null?n.lastEffect=e.next=e:(l=s.next,s.next=e,e.next=l,n.lastEffect=e),e}function zg(){return en().memoizedState}function Hi(e,n,s,l){var u=wn();ct.flags|=e,u.memoizedState=oa(1|n,{destroy:void 0},s,l===void 0?null:l)}function Ui(e,n,s,l){var u=en();l=l===void 0?null:l;var f=u.memoizedState.inst;It!==null&&l!==null&&yd(l,It.memoizedState.deps)?u.memoizedState=oa(n,f,s,l):(ct.flags|=e,u.memoizedState=oa(1|n,f,s,l))}function Lg(e,n){Hi(8390656,8,e,n)}function Od(e,n){Ui(2048,8,e,n)}function sN(e){ct.flags|=4;var n=ct.updateQueue;if(n===null)n=Li(),ct.updateQueue=n,n.events=[e];else{var s=n.events;s===null?n.events=[e]:s.push(e)}}function Ig(e){var n=en().memoizedState;return sN({ref:n,nextImpl:e}),function(){if((kt&2)!==0)throw Error(a(440));return n.impl.apply(void 0,arguments)}}function Bg(e,n){return Ui(4,2,e,n)}function Hg(e,n){return Ui(4,4,e,n)}function Ug(e,n){if(typeof n=="function"){e=e();var s=n(e);return function(){typeof s=="function"?s():n(null)}}if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Pg(e,n,s){s=s!=null?s.concat([e]):null,Ui(4,4,Ug.bind(null,n,e),s)}function kd(){}function Yg(e,n){var s=en();n=n===void 0?null:n;var l=s.memoizedState;return n!==null&&yd(n,l[1])?l[0]:(s.memoizedState=[e,n],e)}function Vg(e,n){var s=en();n=n===void 0?null:n;var l=s.memoizedState;if(n!==null&&yd(n,l[1]))return l[0];if(l=e(),co){Tt(!0);try{e()}finally{Tt(!1)}}return s.memoizedState=[l,n],l}function _d(e,n,s){return s===void 0||(Fs&1073741824)!==0&&(bt&261930)===0?e.memoizedState=n:(e.memoizedState=s,e=Fx(),ct.lanes|=e,Rr|=e,s)}function Fg(e,n,s,l){return Un(s,n)?s:na.current!==null?(e=_d(e,s,l),Un(e,n)||(sn=!0),e):(Fs&42)===0||(Fs&1073741824)!==0&&(bt&261930)===0?(sn=!0,e.memoizedState=s):(e=Fx(),ct.lanes|=e,Rr|=e,n)}function Gg(e,n,s,l,u){var f=z.p;z.p=f!==0&&8>f?f:8;var v=D.T,R={};D.T=R,Dd(e,!1,n,s);try{var X=u(),ue=D.S;if(ue!==null&&ue(R,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var ve=JE(X,l);sl(e,n,ve,qn(e))}else sl(e,n,l,qn(e))}catch(je){sl(e,n,{then:function(){},status:"rejected",reason:je},qn())}finally{z.p=f,v!==null&&R.types!==null&&(v.types=R.types),D.T=v}}function rN(){}function Md(e,n,s,l){if(e.tag!==5)throw Error(a(476));var u=qg(e).queue;Gg(e,u,n,P,s===null?rN:function(){return $g(e),s(l)})}function qg(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:P,baseState:P,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gs,lastRenderedState:P},next:null};var s={};return n.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gs,lastRenderedState:s},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function $g(e){var n=qg(e);n.next===null&&(n=e.alternate.memoizedState),sl(e,n.next.queue,{},qn())}function Ad(){return bn(vl)}function Xg(){return en().memoizedState}function Kg(){return en().memoizedState}function oN(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var s=qn();e=Er(s);var l=Nr(n,e,s);l!==null&&(Dn(l,n,s),Ja(l,n,s)),n={cache:id()},e.payload=n;return}n=n.return}}function aN(e,n,s){var l=qn();s={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},Pi(e)?Zg(n,s):(s=Zu(e,n,s,l),s!==null&&(Dn(s,e,l),Jg(s,n,l)))}function Qg(e,n,s){var l=qn();sl(e,n,s,l)}function sl(e,n,s,l){var u={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(Pi(e))Zg(n,u);else{var f=e.alternate;if(e.lanes===0&&(f===null||f.lanes===0)&&(f=n.lastRenderedReducer,f!==null))try{var v=n.lastRenderedState,R=f(v,s);if(u.hasEagerState=!0,u.eagerState=R,Un(R,v))return Si(e,n,u,0),Pt===null&&vi(),!1}catch{}if(s=Zu(e,n,u,l),s!==null)return Dn(s,e,l),Jg(s,n,l),!0}return!1}function Dd(e,n,s,l){if(l={lane:2,revertLane:mf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Pi(e)){if(n)throw Error(a(479))}else n=Zu(e,s,l,2),n!==null&&Dn(n,e,2)}function Pi(e){var n=e.alternate;return e===ct||n!==null&&n===ct}function Zg(e,n){sa=Di=!0;var s=e.pending;s===null?n.next=n:(n.next=s.next,s.next=n),e.pending=n}function Jg(e,n,s){if((s&4194048)!==0){var l=n.lanes;l&=e.pendingLanes,s|=l,n.lanes=s,Jt(e,s)}}var rl={readContext:bn,use:Ii,useCallback:Kt,useContext:Kt,useEffect:Kt,useImperativeHandle:Kt,useLayoutEffect:Kt,useInsertionEffect:Kt,useMemo:Kt,useReducer:Kt,useRef:Kt,useState:Kt,useDebugValue:Kt,useDeferredValue:Kt,useTransition:Kt,useSyncExternalStore:Kt,useId:Kt,useHostTransitionStatus:Kt,useFormState:Kt,useActionState:Kt,useOptimistic:Kt,useMemoCache:Kt,useCacheRefresh:Kt};rl.useEffectEvent=Kt;var Wg={readContext:bn,use:Ii,useCallback:function(e,n){return wn().memoizedState=[e,n===void 0?null:n],e},useContext:bn,useEffect:Lg,useImperativeHandle:function(e,n,s){s=s!=null?s.concat([e]):null,Hi(4194308,4,Ug.bind(null,n,e),s)},useLayoutEffect:function(e,n){return Hi(4194308,4,e,n)},useInsertionEffect:function(e,n){Hi(4,2,e,n)},useMemo:function(e,n){var s=wn();n=n===void 0?null:n;var l=e();if(co){Tt(!0);try{e()}finally{Tt(!1)}}return s.memoizedState=[l,n],l},useReducer:function(e,n,s){var l=wn();if(s!==void 0){var u=s(n);if(co){Tt(!0);try{s(n)}finally{Tt(!1)}}}else u=n;return l.memoizedState=l.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},l.queue=e,e=e.dispatch=aN.bind(null,ct,e),[l.memoizedState,e]},useRef:function(e){var n=wn();return e={current:e},n.memoizedState=e},useState:function(e){e=Cd(e);var n=e.queue,s=Qg.bind(null,ct,n);return n.dispatch=s,[e.memoizedState,s]},useDebugValue:kd,useDeferredValue:function(e,n){var s=wn();return _d(s,e,n)},useTransition:function(){var e=Cd(!1);return e=Gg.bind(null,ct,e.queue,!0,!1),wn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,s){var l=ct,u=wn();if(Et){if(s===void 0)throw Error(a(407));s=s()}else{if(s=n(),Pt===null)throw Error(a(349));(bt&127)!==0||vg(l,n,s)}u.memoizedState=s;var f={value:s,getSnapshot:n};return u.queue=f,Lg(Eg.bind(null,l,f,e),[e]),l.flags|=2048,oa(9,{destroy:void 0},Sg.bind(null,l,f,s,n),null),s},useId:function(){var e=wn(),n=Pt.identifierPrefix;if(Et){var s=ys,l=bs;s=(l&~(1<<32-Rt(l)-1)).toString(32)+s,n="_"+n+"R_"+s,s=zi++,0<s&&(n+="H"+s.toString(32)),n+="_"}else s=WE++,n="_"+n+"r_"+s.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:Ad,useFormState:_g,useActionState:_g,useOptimistic:function(e){var n=wn();n.memoizedState=n.baseState=e;var s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=s,n=Dd.bind(null,ct,!0,s),s.dispatch=n,[e,n]},useMemoCache:jd,useCacheRefresh:function(){return wn().memoizedState=oN.bind(null,ct)},useEffectEvent:function(e){var n=wn(),s={impl:e};return n.memoizedState=s,function(){if((kt&2)!==0)throw Error(a(440));return s.impl.apply(void 0,arguments)}}},zd={readContext:bn,use:Ii,useCallback:Yg,useContext:bn,useEffect:Od,useImperativeHandle:Pg,useInsertionEffect:Bg,useLayoutEffect:Hg,useMemo:Vg,useReducer:Bi,useRef:zg,useState:function(){return Bi(Gs)},useDebugValue:kd,useDeferredValue:function(e,n){var s=en();return Fg(s,It.memoizedState,e,n)},useTransition:function(){var e=Bi(Gs)[0],n=en().memoizedState;return[typeof e=="boolean"?e:nl(e),n]},useSyncExternalStore:yg,useId:Xg,useHostTransitionStatus:Ad,useFormState:Mg,useActionState:Mg,useOptimistic:function(e,n){var s=en();return Tg(s,It,e,n)},useMemoCache:jd,useCacheRefresh:Kg};zd.useEffectEvent=Ig;var ex={readContext:bn,use:Ii,useCallback:Yg,useContext:bn,useEffect:Od,useImperativeHandle:Pg,useInsertionEffect:Bg,useLayoutEffect:Hg,useMemo:Vg,useReducer:wd,useRef:zg,useState:function(){return wd(Gs)},useDebugValue:kd,useDeferredValue:function(e,n){var s=en();return It===null?_d(s,e,n):Fg(s,It.memoizedState,e,n)},useTransition:function(){var e=wd(Gs)[0],n=en().memoizedState;return[typeof e=="boolean"?e:nl(e),n]},useSyncExternalStore:yg,useId:Xg,useHostTransitionStatus:Ad,useFormState:Dg,useActionState:Dg,useOptimistic:function(e,n){var s=en();return It!==null?Tg(s,It,e,n):(s.baseState=e,[e,s.queue.dispatch])},useMemoCache:jd,useCacheRefresh:Kg};ex.useEffectEvent=Ig;function Ld(e,n,s,l){n=e.memoizedState,s=s(l,n),s=s==null?n:x({},n,s),e.memoizedState=s,e.lanes===0&&(e.updateQueue.baseState=s)}var Id={enqueueSetState:function(e,n,s){e=e._reactInternals;var l=qn(),u=Er(l);u.payload=n,s!=null&&(u.callback=s),n=Nr(e,u,l),n!==null&&(Dn(n,e,l),Ja(n,e,l))},enqueueReplaceState:function(e,n,s){e=e._reactInternals;var l=qn(),u=Er(l);u.tag=1,u.payload=n,s!=null&&(u.callback=s),n=Nr(e,u,l),n!==null&&(Dn(n,e,l),Ja(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var s=qn(),l=Er(s);l.tag=2,n!=null&&(l.callback=n),n=Nr(e,l,s),n!==null&&(Dn(n,e,s),Ja(n,e,s))}};function tx(e,n,s,l,u,f,v){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,f,v):n.prototype&&n.prototype.isPureReactComponent?!Fa(s,l)||!Fa(u,f):!0}function nx(e,n,s,l){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(s,l),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(s,l),n.state!==e&&Id.enqueueReplaceState(n,n.state,null)}function uo(e,n){var s=n;if("ref"in n){s={};for(var l in n)l!=="ref"&&(s[l]=n[l])}if(e=e.defaultProps){s===n&&(s=x({},s));for(var u in e)s[u]===void 0&&(s[u]=e[u])}return s}function sx(e){yi(e)}function rx(e){console.error(e)}function ox(e){yi(e)}function Yi(e,n){try{var s=e.onUncaughtError;s(n.value,{componentStack:n.stack})}catch(l){setTimeout(function(){throw l})}}function ax(e,n,s){try{var l=e.onCaughtError;l(s.value,{componentStack:s.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function Bd(e,n,s){return s=Er(s),s.tag=3,s.payload={element:null},s.callback=function(){Yi(e,n)},s}function lx(e){return e=Er(e),e.tag=3,e}function ix(e,n,s,l){var u=s.type.getDerivedStateFromError;if(typeof u=="function"){var f=l.value;e.payload=function(){return u(f)},e.callback=function(){ax(n,s,l)}}var v=s.stateNode;v!==null&&typeof v.componentDidCatch=="function"&&(e.callback=function(){ax(n,s,l),typeof u!="function"&&(Or===null?Or=new Set([this]):Or.add(this));var R=l.stack;this.componentDidCatch(l.value,{componentStack:R!==null?R:""})})}function lN(e,n,s,l,u){if(s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(n=s.alternate,n!==null&&Zo(n,s,u,!0),s=Yn.current,s!==null){switch(s.tag){case 31:case 13:return os===null?ec():s.alternate===null&&Qt===0&&(Qt=3),s.flags&=-257,s.flags|=65536,s.lanes=u,l===Oi?s.flags|=16384:(n=s.updateQueue,n===null?s.updateQueue=new Set([l]):n.add(l),uf(e,l,u)),!1;case 22:return s.flags|=65536,l===Oi?s.flags|=16384:(n=s.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([l])},s.updateQueue=n):(s=n.retryQueue,s===null?n.retryQueue=new Set([l]):s.add(l)),uf(e,l,u)),!1}throw Error(a(435,s.tag))}return uf(e,l,u),ec(),!1}if(Et)return n=Yn.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=u,l!==sd&&(e=Error(a(422),{cause:l}),$a(ts(e,s)))):(l!==sd&&(n=Error(a(423),{cause:l}),$a(ts(n,s))),e=e.current.alternate,e.flags|=65536,u&=-u,e.lanes|=u,l=ts(l,s),u=Bd(e.stateNode,l,u),pd(e,u),Qt!==4&&(Qt=2)),!1;var f=Error(a(520),{cause:l});if(f=ts(f,s),fl===null?fl=[f]:fl.push(f),Qt!==4&&(Qt=2),n===null)return!0;l=ts(l,s),s=n;do{switch(s.tag){case 3:return s.flags|=65536,e=u&-u,s.lanes|=e,e=Bd(s.stateNode,l,e),pd(s,e),!1;case 1:if(n=s.type,f=s.stateNode,(s.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(Or===null||!Or.has(f))))return s.flags|=65536,u&=-u,s.lanes|=u,u=lx(u),ix(u,e,s,l),pd(s,u),!1}s=s.return}while(s!==null);return!1}var Hd=Error(a(461)),sn=!1;function yn(e,n,s,l){n.child=e===null?fg(n,null,s,l):io(n,e.child,s,l)}function cx(e,n,s,l,u){s=s.render;var f=n.ref;if("ref"in l){var v={};for(var R in l)R!=="ref"&&(v[R]=l[R])}else v=l;return ro(n),l=vd(e,n,s,v,f,u),R=Sd(),e!==null&&!sn?(Ed(e,n,u),qs(e,n,u)):(Et&&R&&td(n),n.flags|=1,yn(e,n,l,u),n.child)}function ux(e,n,s,l,u){if(e===null){var f=s.type;return typeof f=="function"&&!Ju(f)&&f.defaultProps===void 0&&s.compare===null?(n.tag=15,n.type=f,dx(e,n,f,l,u)):(e=Ni(s.type,null,l,n,n.mode,u),e.ref=n.ref,e.return=n,n.child=e)}if(f=e.child,!$d(e,u)){var v=f.memoizedProps;if(s=s.compare,s=s!==null?s:Fa,s(v,l)&&e.ref===n.ref)return qs(e,n,u)}return n.flags|=1,e=Us(f,l),e.ref=n.ref,e.return=n,n.child=e}function dx(e,n,s,l,u){if(e!==null){var f=e.memoizedProps;if(Fa(f,l)&&e.ref===n.ref)if(sn=!1,n.pendingProps=l=f,$d(e,u))(e.flags&131072)!==0&&(sn=!0);else return n.lanes=e.lanes,qs(e,n,u)}return Ud(e,n,s,l,u)}function fx(e,n,s,l){var u=l.children,f=e!==null?e.memoizedState:null;if(e===null&&n.stateNode===null&&(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((n.flags&128)!==0){if(f=f!==null?f.baseLanes|s:s,e!==null){for(l=n.child=e.child,u=0;l!==null;)u=u|l.lanes|l.childLanes,l=l.sibling;l=u&~f}else l=0,n.child=null;return mx(e,n,f,s,l)}if((s&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ci(n,f!==null?f.cachePool:null),f!==null?hg(n,f):gd(),gg(n);else return l=n.lanes=536870912,mx(e,n,f!==null?f.baseLanes|s:s,s,l)}else f!==null?(Ci(n,f.cachePool),hg(n,f),Tr(),n.memoizedState=null):(e!==null&&Ci(n,null),gd(),Tr());return yn(e,n,u,s),n.child}function ol(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function mx(e,n,s,l,u){var f=ud();return f=f===null?null:{parent:tn._currentValue,pool:f},n.memoizedState={baseLanes:s,cachePool:f},e!==null&&Ci(n,null),gd(),gg(n),e!==null&&Zo(e,n,l,!0),n.childLanes=u,null}function Vi(e,n){return n=Gi({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function px(e,n,s){return io(n,e.child,null,s),e=Vi(n,n.pendingProps),e.flags|=2,Vn(n),n.memoizedState=null,e}function iN(e,n,s){var l=n.pendingProps,u=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(Et){if(l.mode==="hidden")return e=Vi(n,l),n.lanes=536870912,ol(null,e);if(bd(n),(e=Gt)?(e=wb(e,rs),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:xr!==null?{id:bs,overflow:ys}:null,retryLane:536870912,hydrationErrors:null},s=Zh(e),s.return=n,n.child=s,xn=n,Gt=null)):e=null,e===null)throw yr(n);return n.lanes=536870912,null}return Vi(n,l)}var f=e.memoizedState;if(f!==null){var v=f.dehydrated;if(bd(n),u)if(n.flags&256)n.flags&=-257,n=px(e,n,s);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(a(558));else if(sn||Zo(e,n,s,!1),u=(s&e.childLanes)!==0,sn||u){if(l=Pt,l!==null&&(v=gn(l,s),v!==0&&v!==f.retryLane))throw f.retryLane=v,eo(e,v),Dn(l,e,v),Hd;ec(),n=px(e,n,s)}else e=f.treeContext,Gt=as(v.nextSibling),xn=n,Et=!0,br=null,rs=!1,e!==null&&eg(n,e),n=Vi(n,l),n.flags|=4096;return n}return e=Us(e.child,{mode:l.mode,children:l.children}),e.ref=n.ref,n.child=e,e.return=n,e}function Fi(e,n){var s=n.ref;if(s===null)e!==null&&e.ref!==null&&(n.flags|=4194816);else{if(typeof s!="function"&&typeof s!="object")throw Error(a(284));(e===null||e.ref!==s)&&(n.flags|=4194816)}}function Ud(e,n,s,l,u){return ro(n),s=vd(e,n,s,l,void 0,u),l=Sd(),e!==null&&!sn?(Ed(e,n,u),qs(e,n,u)):(Et&&l&&td(n),n.flags|=1,yn(e,n,s,u),n.child)}function hx(e,n,s,l,u,f){return ro(n),n.updateQueue=null,s=bg(n,l,s,u),xg(e),l=Sd(),e!==null&&!sn?(Ed(e,n,f),qs(e,n,f)):(Et&&l&&td(n),n.flags|=1,yn(e,n,s,f),n.child)}function gx(e,n,s,l,u){if(ro(n),n.stateNode===null){var f=$o,v=s.contextType;typeof v=="object"&&v!==null&&(f=bn(v)),f=new s(l,f),n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Id,n.stateNode=f,f._reactInternals=n,f=n.stateNode,f.props=l,f.state=n.memoizedState,f.refs={},fd(n),v=s.contextType,f.context=typeof v=="object"&&v!==null?bn(v):$o,f.state=n.memoizedState,v=s.getDerivedStateFromProps,typeof v=="function"&&(Ld(n,s,v,l),f.state=n.memoizedState),typeof s.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(v=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),v!==f.state&&Id.enqueueReplaceState(f,f.state,null),el(n,l,f,u),Wa(),f.state=n.memoizedState),typeof f.componentDidMount=="function"&&(n.flags|=4194308),l=!0}else if(e===null){f=n.stateNode;var R=n.memoizedProps,X=uo(s,R);f.props=X;var ue=f.context,ve=s.contextType;v=$o,typeof ve=="object"&&ve!==null&&(v=bn(ve));var je=s.getDerivedStateFromProps;ve=typeof je=="function"||typeof f.getSnapshotBeforeUpdate=="function",R=n.pendingProps!==R,ve||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(R||ue!==v)&&nx(n,f,l,v),Sr=!1;var fe=n.memoizedState;f.state=fe,el(n,l,f,u),Wa(),ue=n.memoizedState,R||fe!==ue||Sr?(typeof je=="function"&&(Ld(n,s,je,l),ue=n.memoizedState),(X=Sr||tx(n,s,X,l,fe,ue,v))?(ve||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount()),typeof f.componentDidMount=="function"&&(n.flags|=4194308)):(typeof f.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=l,n.memoizedState=ue),f.props=l,f.state=ue,f.context=v,l=X):(typeof f.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{f=n.stateNode,md(e,n),v=n.memoizedProps,ve=uo(s,v),f.props=ve,je=n.pendingProps,fe=f.context,ue=s.contextType,X=$o,typeof ue=="object"&&ue!==null&&(X=bn(ue)),R=s.getDerivedStateFromProps,(ue=typeof R=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(v!==je||fe!==X)&&nx(n,f,l,X),Sr=!1,fe=n.memoizedState,f.state=fe,el(n,l,f,u),Wa();var pe=n.memoizedState;v!==je||fe!==pe||Sr||e!==null&&e.dependencies!==null&&Ti(e.dependencies)?(typeof R=="function"&&(Ld(n,s,R,l),pe=n.memoizedState),(ve=Sr||tx(n,s,ve,l,fe,pe,X)||e!==null&&e.dependencies!==null&&Ti(e.dependencies))?(ue||typeof f.UNSAFE_componentWillUpdate!="function"&&typeof f.componentWillUpdate!="function"||(typeof f.componentWillUpdate=="function"&&f.componentWillUpdate(l,pe,X),typeof f.UNSAFE_componentWillUpdate=="function"&&f.UNSAFE_componentWillUpdate(l,pe,X)),typeof f.componentDidUpdate=="function"&&(n.flags|=4),typeof f.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof f.componentDidUpdate!="function"||v===e.memoizedProps&&fe===e.memoizedState||(n.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&fe===e.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=pe),f.props=l,f.state=pe,f.context=X,l=ve):(typeof f.componentDidUpdate!="function"||v===e.memoizedProps&&fe===e.memoizedState||(n.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||v===e.memoizedProps&&fe===e.memoizedState||(n.flags|=1024),l=!1)}return f=l,Fi(e,n),l=(n.flags&128)!==0,f||l?(f=n.stateNode,s=l&&typeof s.getDerivedStateFromError!="function"?null:f.render(),n.flags|=1,e!==null&&l?(n.child=io(n,e.child,null,u),n.child=io(n,null,s,u)):yn(e,n,s,u),n.memoizedState=f.state,e=n.child):e=qs(e,n,u),e}function xx(e,n,s,l){return no(),n.flags|=256,yn(e,n,s,l),n.child}var Pd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Yd(e){return{baseLanes:e,cachePool:ag()}}function Vd(e,n,s){return e=e!==null?e.childLanes&~s:0,n&&(e|=Gn),e}function bx(e,n,s){var l=n.pendingProps,u=!1,f=(n.flags&128)!==0,v;if((v=f)||(v=e!==null&&e.memoizedState===null?!1:(Wt.current&2)!==0),v&&(u=!0,n.flags&=-129),v=(n.flags&32)!==0,n.flags&=-33,e===null){if(Et){if(u?jr(n):Tr(),(e=Gt)?(e=wb(e,rs),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:xr!==null?{id:bs,overflow:ys}:null,retryLane:536870912,hydrationErrors:null},s=Zh(e),s.return=n,n.child=s,xn=n,Gt=null)):e=null,e===null)throw yr(n);return wf(e)?n.lanes=32:n.lanes=536870912,null}var R=l.children;return l=l.fallback,u?(Tr(),u=n.mode,R=Gi({mode:"hidden",children:R},u),l=to(l,u,s,null),R.return=n,l.return=n,R.sibling=l,n.child=R,l=n.child,l.memoizedState=Yd(s),l.childLanes=Vd(e,v,s),n.memoizedState=Pd,ol(null,l)):(jr(n),Fd(n,R))}var X=e.memoizedState;if(X!==null&&(R=X.dehydrated,R!==null)){if(f)n.flags&256?(jr(n),n.flags&=-257,n=Gd(e,n,s)):n.memoizedState!==null?(Tr(),n.child=e.child,n.flags|=128,n=null):(Tr(),R=l.fallback,u=n.mode,l=Gi({mode:"visible",children:l.children},u),R=to(R,u,s,null),R.flags|=2,l.return=n,R.return=n,l.sibling=R,n.child=l,io(n,e.child,null,s),l=n.child,l.memoizedState=Yd(s),l.childLanes=Vd(e,v,s),n.memoizedState=Pd,n=ol(null,l));else if(jr(n),wf(R)){if(v=R.nextSibling&&R.nextSibling.dataset,v)var ue=v.dgst;v=ue,l=Error(a(419)),l.stack="",l.digest=v,$a({value:l,source:null,stack:null}),n=Gd(e,n,s)}else if(sn||Zo(e,n,s,!1),v=(s&e.childLanes)!==0,sn||v){if(v=Pt,v!==null&&(l=gn(v,s),l!==0&&l!==X.retryLane))throw X.retryLane=l,eo(e,l),Dn(v,e,l),Hd;Tf(R)||ec(),n=Gd(e,n,s)}else Tf(R)?(n.flags|=192,n.child=e.child,n=null):(e=X.treeContext,Gt=as(R.nextSibling),xn=n,Et=!0,br=null,rs=!1,e!==null&&eg(n,e),n=Fd(n,l.children),n.flags|=4096);return n}return u?(Tr(),R=l.fallback,u=n.mode,X=e.child,ue=X.sibling,l=Us(X,{mode:"hidden",children:l.children}),l.subtreeFlags=X.subtreeFlags&65011712,ue!==null?R=Us(ue,R):(R=to(R,u,s,null),R.flags|=2),R.return=n,l.return=n,l.sibling=R,n.child=l,ol(null,l),l=n.child,R=e.child.memoizedState,R===null?R=Yd(s):(u=R.cachePool,u!==null?(X=tn._currentValue,u=u.parent!==X?{parent:X,pool:X}:u):u=ag(),R={baseLanes:R.baseLanes|s,cachePool:u}),l.memoizedState=R,l.childLanes=Vd(e,v,s),n.memoizedState=Pd,ol(e.child,l)):(jr(n),s=e.child,e=s.sibling,s=Us(s,{mode:"visible",children:l.children}),s.return=n,s.sibling=null,e!==null&&(v=n.deletions,v===null?(n.deletions=[e],n.flags|=16):v.push(e)),n.child=s,n.memoizedState=null,s)}function Fd(e,n){return n=Gi({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function Gi(e,n){return e=Pn(22,e,null,n),e.lanes=0,e}function Gd(e,n,s){return io(n,e.child,null,s),e=Fd(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function yx(e,n,s){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),ad(e.return,n,s)}function qd(e,n,s,l,u,f){var v=e.memoizedState;v===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:u,treeForkCount:f}:(v.isBackwards=n,v.rendering=null,v.renderingStartTime=0,v.last=l,v.tail=s,v.tailMode=u,v.treeForkCount=f)}function vx(e,n,s){var l=n.pendingProps,u=l.revealOrder,f=l.tail;l=l.children;var v=Wt.current,R=(v&2)!==0;if(R?(v=v&1|2,n.flags|=128):v&=1,I(Wt,v),yn(e,n,l,s),l=Et?qa:0,!R&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&yx(e,s,n);else if(e.tag===19)yx(e,s,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(u){case"forwards":for(s=n.child,u=null;s!==null;)e=s.alternate,e!==null&&Ai(e)===null&&(u=s),s=s.sibling;s=u,s===null?(u=n.child,n.child=null):(u=s.sibling,s.sibling=null),qd(n,!1,u,s,f,l);break;case"backwards":case"unstable_legacy-backwards":for(s=null,u=n.child,n.child=null;u!==null;){if(e=u.alternate,e!==null&&Ai(e)===null){n.child=u;break}e=u.sibling,u.sibling=s,s=u,u=e}qd(n,!0,s,null,f,l);break;case"together":qd(n,!1,null,null,void 0,l);break;default:n.memoizedState=null}return n.child}function qs(e,n,s){if(e!==null&&(n.dependencies=e.dependencies),Rr|=n.lanes,(s&n.childLanes)===0)if(e!==null){if(Zo(e,n,s,!1),(s&n.childLanes)===0)return null}else return null;if(e!==null&&n.child!==e.child)throw Error(a(153));if(n.child!==null){for(e=n.child,s=Us(e,e.pendingProps),n.child=s,s.return=n;e.sibling!==null;)e=e.sibling,s=s.sibling=Us(e,e.pendingProps),s.return=n;s.sibling=null}return n.child}function $d(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&Ti(e)))}function cN(e,n,s){switch(n.tag){case 3:le(n,n.stateNode.containerInfo),vr(n,tn,e.memoizedState.cache),no();break;case 27:case 5:Ue(n);break;case 4:le(n,n.stateNode.containerInfo);break;case 10:vr(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,bd(n),null;break;case 13:var l=n.memoizedState;if(l!==null)return l.dehydrated!==null?(jr(n),n.flags|=128,null):(s&n.child.childLanes)!==0?bx(e,n,s):(jr(n),e=qs(e,n,s),e!==null?e.sibling:null);jr(n);break;case 19:var u=(e.flags&128)!==0;if(l=(s&n.childLanes)!==0,l||(Zo(e,n,s,!1),l=(s&n.childLanes)!==0),u){if(l)return vx(e,n,s);n.flags|=128}if(u=n.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),I(Wt,Wt.current),l)break;return null;case 22:return n.lanes=0,fx(e,n,s,n.pendingProps);case 24:vr(n,tn,e.memoizedState.cache)}return qs(e,n,s)}function Sx(e,n,s){if(e!==null)if(e.memoizedProps!==n.pendingProps)sn=!0;else{if(!$d(e,s)&&(n.flags&128)===0)return sn=!1,cN(e,n,s);sn=(e.flags&131072)!==0}else sn=!1,Et&&(n.flags&1048576)!==0&&Wh(n,qa,n.index);switch(n.lanes=0,n.tag){case 16:e:{var l=n.pendingProps;if(e=ao(n.elementType),n.type=e,typeof e=="function")Ju(e)?(l=uo(e,l),n.tag=1,n=gx(null,n,e,l,s)):(n.tag=0,n=Ud(null,n,e,l,s));else{if(e!=null){var u=e.$$typeof;if(u===w){n.tag=11,n=cx(null,n,e,l,s);break e}else if(u===L){n.tag=14,n=ux(null,n,e,l,s);break e}}throw n=ne(e)||e,Error(a(306,n,""))}}return n;case 0:return Ud(e,n,n.type,n.pendingProps,s);case 1:return l=n.type,u=uo(l,n.pendingProps),gx(e,n,l,u,s);case 3:e:{if(le(n,n.stateNode.containerInfo),e===null)throw Error(a(387));l=n.pendingProps;var f=n.memoizedState;u=f.element,md(e,n),el(n,l,null,s);var v=n.memoizedState;if(l=v.cache,vr(n,tn,l),l!==f.cache&&ld(n,[tn],s,!0),Wa(),l=v.element,f.isDehydrated)if(f={element:l,isDehydrated:!1,cache:v.cache},n.updateQueue.baseState=f,n.memoizedState=f,n.flags&256){n=xx(e,n,l,s);break e}else if(l!==u){u=ts(Error(a(424)),n),$a(u),n=xx(e,n,l,s);break e}else for(e=n.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,Gt=as(e.firstChild),xn=n,Et=!0,br=null,rs=!0,s=fg(n,null,l,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(no(),l===u){n=qs(e,n,s);break e}yn(e,n,l,s)}n=n.child}return n;case 26:return Fi(e,n),e===null?(s=Mb(n.type,null,n.pendingProps,null))?n.memoizedState=s:Et||(s=n.type,e=n.pendingProps,l=lc(Q.current).createElement(s),l[an]=n,l[Rn]=e,vn(l,s,e),dn(l),n.stateNode=l):n.memoizedState=Mb(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return Ue(n),e===null&&Et&&(l=n.stateNode=Ob(n.type,n.pendingProps,Q.current),xn=n,rs=!0,u=Gt,Ar(n.type)?(Cf=u,Gt=as(l.firstChild)):Gt=u),yn(e,n,n.pendingProps.children,s),Fi(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&Et&&((u=l=Gt)&&(l=HN(l,n.type,n.pendingProps,rs),l!==null?(n.stateNode=l,xn=n,Gt=as(l.firstChild),rs=!1,u=!0):u=!1),u||yr(n)),Ue(n),u=n.type,f=n.pendingProps,v=e!==null?e.memoizedProps:null,l=f.children,Ef(u,f)?l=null:v!==null&&Ef(u,v)&&(n.flags|=32),n.memoizedState!==null&&(u=vd(e,n,eN,null,null,s),vl._currentValue=u),Fi(e,n),yn(e,n,l,s),n.child;case 6:return e===null&&Et&&((e=s=Gt)&&(s=UN(s,n.pendingProps,rs),s!==null?(n.stateNode=s,xn=n,Gt=null,e=!0):e=!1),e||yr(n)),null;case 13:return bx(e,n,s);case 4:return le(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=io(n,null,l,s):yn(e,n,l,s),n.child;case 11:return cx(e,n,n.type,n.pendingProps,s);case 7:return yn(e,n,n.pendingProps,s),n.child;case 8:return yn(e,n,n.pendingProps.children,s),n.child;case 12:return yn(e,n,n.pendingProps.children,s),n.child;case 10:return l=n.pendingProps,vr(n,n.type,l.value),yn(e,n,l.children,s),n.child;case 9:return u=n.type._context,l=n.pendingProps.children,ro(n),u=bn(u),l=l(u),n.flags|=1,yn(e,n,l,s),n.child;case 14:return ux(e,n,n.type,n.pendingProps,s);case 15:return dx(e,n,n.type,n.pendingProps,s);case 19:return vx(e,n,s);case 31:return iN(e,n,s);case 22:return fx(e,n,s,n.pendingProps);case 24:return ro(n),l=bn(tn),e===null?(u=ud(),u===null&&(u=Pt,f=id(),u.pooledCache=f,f.refCount++,f!==null&&(u.pooledCacheLanes|=s),u=f),n.memoizedState={parent:l,cache:u},fd(n),vr(n,tn,u)):((e.lanes&s)!==0&&(md(e,n),el(n,null,null,s),Wa()),u=e.memoizedState,f=n.memoizedState,u.parent!==l?(u={parent:l,cache:l},n.memoizedState=u,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=u),vr(n,tn,l)):(l=f.cache,vr(n,tn,l),l!==u.cache&&ld(n,[tn],s,!0))),yn(e,n,n.pendingProps.children,s),n.child;case 29:throw n.pendingProps}throw Error(a(156,n.tag))}function $s(e){e.flags|=4}function Xd(e,n,s,l,u){if((n=(e.mode&32)!==0)&&(n=!1),n){if(e.flags|=16777216,(u&335544128)===u)if(e.stateNode.complete)e.flags|=8192;else if(Xx())e.flags|=8192;else throw lo=Oi,dd}else e.flags&=-16777217}function Ex(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Ib(n))if(Xx())e.flags|=8192;else throw lo=Oi,dd}function qi(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?nt():536870912,e.lanes|=n,ca|=n)}function al(e,n){if(!Et)switch(e.tailMode){case"hidden":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?e.tail=null:s.sibling=null;break;case"collapsed":s=e.tail;for(var l=null;s!==null;)s.alternate!==null&&(l=s),s=s.sibling;l===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:l.sibling=null}}function qt(e){var n=e.alternate!==null&&e.alternate.child===e.child,s=0,l=0;if(n)for(var u=e.child;u!==null;)s|=u.lanes|u.childLanes,l|=u.subtreeFlags&65011712,l|=u.flags&65011712,u.return=e,u=u.sibling;else for(u=e.child;u!==null;)s|=u.lanes|u.childLanes,l|=u.subtreeFlags,l|=u.flags,u.return=e,u=u.sibling;return e.subtreeFlags|=l,e.childLanes=s,n}function uN(e,n,s){var l=n.pendingProps;switch(nd(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qt(n),null;case 1:return qt(n),null;case 3:return s=n.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),Vs(tn),de(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(Qo(n)?$s(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,rd())),qt(n),null;case 26:var u=n.type,f=n.memoizedState;return e===null?($s(n),f!==null?(qt(n),Ex(n,f)):(qt(n),Xd(n,u,null,l,s))):f?f!==e.memoizedState?($s(n),qt(n),Ex(n,f)):(qt(n),n.flags&=-16777217):(e=e.memoizedProps,e!==l&&$s(n),qt(n),Xd(n,u,e,l,s)),null;case 27:if(Le(n),s=Q.current,u=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&$s(n);else{if(!l){if(n.stateNode===null)throw Error(a(166));return qt(n),null}e=B.current,Qo(n)?tg(n):(e=Ob(u,l,s),n.stateNode=e,$s(n))}return qt(n),null;case 5:if(Le(n),u=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==l&&$s(n);else{if(!l){if(n.stateNode===null)throw Error(a(166));return qt(n),null}if(f=B.current,Qo(n))tg(n);else{var v=lc(Q.current);switch(f){case 1:f=v.createElementNS("http://www.w3.org/2000/svg",u);break;case 2:f=v.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;default:switch(u){case"svg":f=v.createElementNS("http://www.w3.org/2000/svg",u);break;case"math":f=v.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;case"script":f=v.createElement("div"),f.innerHTML="<script><\/script>",f=f.removeChild(f.firstChild);break;case"select":f=typeof l.is=="string"?v.createElement("select",{is:l.is}):v.createElement("select"),l.multiple?f.multiple=!0:l.size&&(f.size=l.size);break;default:f=typeof l.is=="string"?v.createElement(u,{is:l.is}):v.createElement(u)}}f[an]=n,f[Rn]=l;e:for(v=n.child;v!==null;){if(v.tag===5||v.tag===6)f.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===n)break e;for(;v.sibling===null;){if(v.return===null||v.return===n)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}n.stateNode=f;e:switch(vn(f,u,l),u){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&$s(n)}}return qt(n),Xd(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,s),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==l&&$s(n);else{if(typeof l!="string"&&n.stateNode===null)throw Error(a(166));if(e=Q.current,Qo(n)){if(e=n.stateNode,s=n.memoizedProps,l=null,u=xn,u!==null)switch(u.tag){case 27:case 5:l=u.memoizedProps}e[an]=n,e=!!(e.nodeValue===s||l!==null&&l.suppressHydrationWarning===!0||bb(e.nodeValue,s)),e||yr(n,!0)}else e=lc(e).createTextNode(l),e[an]=n,n.stateNode=e}return qt(n),null;case 31:if(s=n.memoizedState,e===null||e.memoizedState!==null){if(l=Qo(n),s!==null){if(e===null){if(!l)throw Error(a(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(a(557));e[an]=n}else no(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;qt(n),e=!1}else s=rd(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),e=!0;if(!e)return n.flags&256?(Vn(n),n):(Vn(n),null);if((n.flags&128)!==0)throw Error(a(558))}return qt(n),null;case 13:if(l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=Qo(n),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(a(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(a(317));u[an]=n}else no(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;qt(n),u=!1}else u=rd(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return n.flags&256?(Vn(n),n):(Vn(n),null)}return Vn(n),(n.flags&128)!==0?(n.lanes=s,n):(s=l!==null,e=e!==null&&e.memoizedState!==null,s&&(l=n.child,u=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(u=l.alternate.memoizedState.cachePool.pool),f=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(f=l.memoizedState.cachePool.pool),f!==u&&(l.flags|=2048)),s!==e&&s&&(n.child.flags|=8192),qi(n,n.updateQueue),qt(n),null);case 4:return de(),e===null&&xf(n.stateNode.containerInfo),qt(n),null;case 10:return Vs(n.type),qt(n),null;case 19:if(H(Wt),l=n.memoizedState,l===null)return qt(n),null;if(u=(n.flags&128)!==0,f=l.rendering,f===null)if(u)al(l,!1);else{if(Qt!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(f=Ai(e),f!==null){for(n.flags|=128,al(l,!1),e=f.updateQueue,n.updateQueue=e,qi(n,e),n.subtreeFlags=0,e=s,s=n.child;s!==null;)Qh(s,e),s=s.sibling;return I(Wt,Wt.current&1|2),Et&&Ps(n,l.treeForkCount),n.child}e=e.sibling}l.tail!==null&&Y()>Zi&&(n.flags|=128,u=!0,al(l,!1),n.lanes=4194304)}else{if(!u)if(e=Ai(f),e!==null){if(n.flags|=128,u=!0,e=e.updateQueue,n.updateQueue=e,qi(n,e),al(l,!0),l.tail===null&&l.tailMode==="hidden"&&!f.alternate&&!Et)return qt(n),null}else 2*Y()-l.renderingStartTime>Zi&&s!==536870912&&(n.flags|=128,u=!0,al(l,!1),n.lanes=4194304);l.isBackwards?(f.sibling=n.child,n.child=f):(e=l.last,e!==null?e.sibling=f:n.child=f,l.last=f)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=Y(),e.sibling=null,s=Wt.current,I(Wt,u?s&1|2:s&1),Et&&Ps(n,l.treeForkCount),e):(qt(n),null);case 22:case 23:return Vn(n),xd(),l=n.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(n.flags|=8192):l&&(n.flags|=8192),l?(s&536870912)!==0&&(n.flags&128)===0&&(qt(n),n.subtreeFlags&6&&(n.flags|=8192)):qt(n),s=n.updateQueue,s!==null&&qi(n,s.retryQueue),s=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(s=e.memoizedState.cachePool.pool),l=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(l=n.memoizedState.cachePool.pool),l!==s&&(n.flags|=2048),e!==null&&H(oo),null;case 24:return s=null,e!==null&&(s=e.memoizedState.cache),n.memoizedState.cache!==s&&(n.flags|=2048),Vs(tn),qt(n),null;case 25:return null;case 30:return null}throw Error(a(156,n.tag))}function dN(e,n){switch(nd(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Vs(tn),de(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return Le(n),null;case 31:if(n.memoizedState!==null){if(Vn(n),n.alternate===null)throw Error(a(340));no()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(Vn(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(a(340));no()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return H(Wt),null;case 4:return de(),null;case 10:return Vs(n.type),null;case 22:case 23:return Vn(n),xd(),e!==null&&H(oo),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Vs(tn),null;case 25:return null;default:return null}}function Nx(e,n){switch(nd(n),n.tag){case 3:Vs(tn),de();break;case 26:case 27:case 5:Le(n);break;case 4:de();break;case 31:n.memoizedState!==null&&Vn(n);break;case 13:Vn(n);break;case 19:H(Wt);break;case 10:Vs(n.type);break;case 22:case 23:Vn(n),xd(),e!==null&&H(oo);break;case 24:Vs(tn)}}function ll(e,n){try{var s=n.updateQueue,l=s!==null?s.lastEffect:null;if(l!==null){var u=l.next;s=u;do{if((s.tag&e)===e){l=void 0;var f=s.create,v=s.inst;l=f(),v.destroy=l}s=s.next}while(s!==u)}}catch(R){zt(n,n.return,R)}}function wr(e,n,s){try{var l=n.updateQueue,u=l!==null?l.lastEffect:null;if(u!==null){var f=u.next;l=f;do{if((l.tag&e)===e){var v=l.inst,R=v.destroy;if(R!==void 0){v.destroy=void 0,u=n;var X=s,ue=R;try{ue()}catch(ve){zt(u,X,ve)}}}l=l.next}while(l!==f)}}catch(ve){zt(n,n.return,ve)}}function jx(e){var n=e.updateQueue;if(n!==null){var s=e.stateNode;try{pg(n,s)}catch(l){zt(e,e.return,l)}}}function Tx(e,n,s){s.props=uo(e.type,e.memoizedProps),s.state=e.memoizedState;try{s.componentWillUnmount()}catch(l){zt(e,n,l)}}function il(e,n){try{var s=e.ref;if(s!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof s=="function"?e.refCleanup=s(l):s.current=l}}catch(u){zt(e,n,u)}}function vs(e,n){var s=e.ref,l=e.refCleanup;if(s!==null)if(typeof l=="function")try{l()}catch(u){zt(e,n,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(u){zt(e,n,u)}else s.current=null}function wx(e){var n=e.type,s=e.memoizedProps,l=e.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":s.autoFocus&&l.focus();break e;case"img":s.src?l.src=s.src:s.srcSet&&(l.srcset=s.srcSet)}}catch(u){zt(e,e.return,u)}}function Kd(e,n,s){try{var l=e.stateNode;AN(l,e.type,s,n),l[Rn]=n}catch(u){zt(e,e.return,u)}}function Cx(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ar(e.type)||e.tag===4}function Qd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Cx(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&&Ar(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zd(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s).insertBefore(e,n):(n=s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,n.appendChild(e),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=Bs));else if(l!==4&&(l===27&&Ar(e.type)&&(s=e.stateNode,n=null),e=e.child,e!==null))for(Zd(e,n,s),e=e.sibling;e!==null;)Zd(e,n,s),e=e.sibling}function $i(e,n,s){var l=e.tag;if(l===5||l===6)e=e.stateNode,n?s.insertBefore(e,n):s.appendChild(e);else if(l!==4&&(l===27&&Ar(e.type)&&(s=e.stateNode),e=e.child,e!==null))for($i(e,n,s),e=e.sibling;e!==null;)$i(e,n,s),e=e.sibling}function Rx(e){var n=e.stateNode,s=e.memoizedProps;try{for(var l=e.type,u=n.attributes;u.length;)n.removeAttributeNode(u[0]);vn(n,l,s),n[an]=e,n[Rn]=s}catch(f){zt(e,e.return,f)}}var Xs=!1,rn=!1,Jd=!1,Ox=typeof WeakSet=="function"?WeakSet:Set,fn=null;function fN(e,n){if(e=e.containerInfo,vf=pc,e=Ph(e),Gu(e)){if("selectionStart"in e)var s={start:e.selectionStart,end:e.selectionEnd};else e:{s=(s=e.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var u=l.anchorOffset,f=l.focusNode;l=l.focusOffset;try{s.nodeType,f.nodeType}catch{s=null;break e}var v=0,R=-1,X=-1,ue=0,ve=0,je=e,fe=null;t:for(;;){for(var pe;je!==s||u!==0&&je.nodeType!==3||(R=v+u),je!==f||l!==0&&je.nodeType!==3||(X=v+l),je.nodeType===3&&(v+=je.nodeValue.length),(pe=je.firstChild)!==null;)fe=je,je=pe;for(;;){if(je===e)break t;if(fe===s&&++ue===u&&(R=v),fe===f&&++ve===l&&(X=v),(pe=je.nextSibling)!==null)break;je=fe,fe=je.parentNode}je=pe}s=R===-1||X===-1?null:{start:R,end:X}}else s=null}s=s||{start:0,end:0}}else s=null;for(Sf={focusedElem:e,selectionRange:s},pc=!1,fn=n;fn!==null;)if(n=fn,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,fn=e;else for(;fn!==null;){switch(n=fn,f=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(s=0;s<e.length;s++)u=e[s],u.ref.impl=u.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&f!==null){e=void 0,s=n,u=f.memoizedProps,f=f.memoizedState,l=s.stateNode;try{var Xe=uo(s.type,u);e=l.getSnapshotBeforeUpdate(Xe,f),l.__reactInternalSnapshotBeforeUpdate=e}catch(et){zt(s,s.return,et)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,s=e.nodeType,s===9)jf(e);else if(s===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":jf(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(a(163))}if(e=n.sibling,e!==null){e.return=n.return,fn=e;break}fn=n.return}}function kx(e,n,s){var l=s.flags;switch(s.tag){case 0:case 11:case 15:Qs(e,s),l&4&&ll(5,s);break;case 1:if(Qs(e,s),l&4)if(e=s.stateNode,n===null)try{e.componentDidMount()}catch(v){zt(s,s.return,v)}else{var u=uo(s.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(u,n,e.__reactInternalSnapshotBeforeUpdate)}catch(v){zt(s,s.return,v)}}l&64&&jx(s),l&512&&il(s,s.return);break;case 3:if(Qs(e,s),l&64&&(e=s.updateQueue,e!==null)){if(n=null,s.child!==null)switch(s.child.tag){case 27:case 5:n=s.child.stateNode;break;case 1:n=s.child.stateNode}try{pg(e,n)}catch(v){zt(s,s.return,v)}}break;case 27:n===null&&l&4&&Rx(s);case 26:case 5:Qs(e,s),n===null&&l&4&&wx(s),l&512&&il(s,s.return);break;case 12:Qs(e,s);break;case 31:Qs(e,s),l&4&&Ax(e,s);break;case 13:Qs(e,s),l&4&&Dx(e,s),l&64&&(e=s.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(s=SN.bind(null,s),PN(e,s))));break;case 22:if(l=s.memoizedState!==null||Xs,!l){n=n!==null&&n.memoizedState!==null||rn,u=Xs;var f=rn;Xs=l,(rn=n)&&!f?Zs(e,s,(s.subtreeFlags&8772)!==0):Qs(e,s),Xs=u,rn=f}break;case 30:break;default:Qs(e,s)}}function _x(e){var n=e.alternate;n!==null&&(e.alternate=null,_x(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&Ru(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Xt=null,kn=!1;function Ks(e,n,s){for(s=s.child;s!==null;)Mx(e,n,s),s=s.sibling}function Mx(e,n,s){if(mt&&typeof mt.onCommitFiberUnmount=="function")try{mt.onCommitFiberUnmount(At,s)}catch{}switch(s.tag){case 26:rn||vs(s,n),Ks(e,n,s),s.memoizedState?s.memoizedState.count--:s.stateNode&&(s=s.stateNode,s.parentNode.removeChild(s));break;case 27:rn||vs(s,n);var l=Xt,u=kn;Ar(s.type)&&(Xt=s.stateNode,kn=!1),Ks(e,n,s),xl(s.stateNode),Xt=l,kn=u;break;case 5:rn||vs(s,n);case 6:if(l=Xt,u=kn,Xt=null,Ks(e,n,s),Xt=l,kn=u,Xt!==null)if(kn)try{(Xt.nodeType===9?Xt.body:Xt.nodeName==="HTML"?Xt.ownerDocument.body:Xt).removeChild(s.stateNode)}catch(f){zt(s,n,f)}else try{Xt.removeChild(s.stateNode)}catch(f){zt(s,n,f)}break;case 18:Xt!==null&&(kn?(e=Xt,jb(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,s.stateNode),xa(e)):jb(Xt,s.stateNode));break;case 4:l=Xt,u=kn,Xt=s.stateNode.containerInfo,kn=!0,Ks(e,n,s),Xt=l,kn=u;break;case 0:case 11:case 14:case 15:wr(2,s,n),rn||wr(4,s,n),Ks(e,n,s);break;case 1:rn||(vs(s,n),l=s.stateNode,typeof l.componentWillUnmount=="function"&&Tx(s,n,l)),Ks(e,n,s);break;case 21:Ks(e,n,s);break;case 22:rn=(l=rn)||s.memoizedState!==null,Ks(e,n,s),rn=l;break;default:Ks(e,n,s)}}function Ax(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{xa(e)}catch(s){zt(n,n.return,s)}}}function Dx(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{xa(e)}catch(s){zt(n,n.return,s)}}function mN(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new Ox),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new Ox),n;default:throw Error(a(435,e.tag))}}function Xi(e,n){var s=mN(e);n.forEach(function(l){if(!s.has(l)){s.add(l);var u=EN.bind(null,e,l);l.then(u,u)}})}function _n(e,n){var s=n.deletions;if(s!==null)for(var l=0;l<s.length;l++){var u=s[l],f=e,v=n,R=v;e:for(;R!==null;){switch(R.tag){case 27:if(Ar(R.type)){Xt=R.stateNode,kn=!1;break e}break;case 5:Xt=R.stateNode,kn=!1;break e;case 3:case 4:Xt=R.stateNode.containerInfo,kn=!0;break e}R=R.return}if(Xt===null)throw Error(a(160));Mx(f,v,u),Xt=null,kn=!1,f=u.alternate,f!==null&&(f.return=null),u.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)zx(n,e),n=n.sibling}var ms=null;function zx(e,n){var s=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:_n(n,e),Mn(e),l&4&&(wr(3,e,e.return),ll(3,e),wr(5,e,e.return));break;case 1:_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),l&64&&Xs&&(e=e.updateQueue,e!==null&&(l=e.callbacks,l!==null&&(s=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=s===null?l:s.concat(l))));break;case 26:var u=ms;if(_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),l&4){var f=s!==null?s.memoizedState:null;if(l=e.memoizedState,s===null)if(l===null)if(e.stateNode===null){e:{l=e.type,s=e.memoizedProps,u=u.ownerDocument||u;t:switch(l){case"title":f=u.getElementsByTagName("title")[0],(!f||f[za]||f[an]||f.namespaceURI==="http://www.w3.org/2000/svg"||f.hasAttribute("itemprop"))&&(f=u.createElement(l),u.head.insertBefore(f,u.querySelector("head > title"))),vn(f,l,s),f[an]=e,dn(f),l=f;break e;case"link":var v=zb("link","href",u).get(l+(s.href||""));if(v){for(var R=0;R<v.length;R++)if(f=v[R],f.getAttribute("href")===(s.href==null||s.href===""?null:s.href)&&f.getAttribute("rel")===(s.rel==null?null:s.rel)&&f.getAttribute("title")===(s.title==null?null:s.title)&&f.getAttribute("crossorigin")===(s.crossOrigin==null?null:s.crossOrigin)){v.splice(R,1);break t}}f=u.createElement(l),vn(f,l,s),u.head.appendChild(f);break;case"meta":if(v=zb("meta","content",u).get(l+(s.content||""))){for(R=0;R<v.length;R++)if(f=v[R],f.getAttribute("content")===(s.content==null?null:""+s.content)&&f.getAttribute("name")===(s.name==null?null:s.name)&&f.getAttribute("property")===(s.property==null?null:s.property)&&f.getAttribute("http-equiv")===(s.httpEquiv==null?null:s.httpEquiv)&&f.getAttribute("charset")===(s.charSet==null?null:s.charSet)){v.splice(R,1);break t}}f=u.createElement(l),vn(f,l,s),u.head.appendChild(f);break;default:throw Error(a(468,l))}f[an]=e,dn(f),l=f}e.stateNode=l}else Lb(u,e.type,e.stateNode);else e.stateNode=Db(u,l,e.memoizedProps);else f!==l?(f===null?s.stateNode!==null&&(s=s.stateNode,s.parentNode.removeChild(s)):f.count--,l===null?Lb(u,e.type,e.stateNode):Db(u,l,e.memoizedProps)):l===null&&e.stateNode!==null&&Kd(e,e.memoizedProps,s.memoizedProps)}break;case 27:_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),s!==null&&l&4&&Kd(e,e.memoizedProps,s.memoizedProps);break;case 5:if(_n(n,e),Mn(e),l&512&&(rn||s===null||vs(s,s.return)),e.flags&32){u=e.stateNode;try{Uo(u,"")}catch(Xe){zt(e,e.return,Xe)}}l&4&&e.stateNode!=null&&(u=e.memoizedProps,Kd(e,u,s!==null?s.memoizedProps:u)),l&1024&&(Jd=!0);break;case 6:if(_n(n,e),Mn(e),l&4){if(e.stateNode===null)throw Error(a(162));l=e.memoizedProps,s=e.stateNode;try{s.nodeValue=l}catch(Xe){zt(e,e.return,Xe)}}break;case 3:if(uc=null,u=ms,ms=ic(n.containerInfo),_n(n,e),ms=u,Mn(e),l&4&&s!==null&&s.memoizedState.isDehydrated)try{xa(n.containerInfo)}catch(Xe){zt(e,e.return,Xe)}Jd&&(Jd=!1,Lx(e));break;case 4:l=ms,ms=ic(e.stateNode.containerInfo),_n(n,e),Mn(e),ms=l;break;case 12:_n(n,e),Mn(e);break;case 31:_n(n,e),Mn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Xi(e,l)));break;case 13:_n(n,e),Mn(e),e.child.flags&8192&&e.memoizedState!==null!=(s!==null&&s.memoizedState!==null)&&(Qi=Y()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Xi(e,l)));break;case 22:u=e.memoizedState!==null;var X=s!==null&&s.memoizedState!==null,ue=Xs,ve=rn;if(Xs=ue||u,rn=ve||X,_n(n,e),rn=ve,Xs=ue,Mn(e),l&8192)e:for(n=e.stateNode,n._visibility=u?n._visibility&-2:n._visibility|1,u&&(s===null||X||Xs||rn||fo(e)),s=null,n=e;;){if(n.tag===5||n.tag===26){if(s===null){X=s=n;try{if(f=X.stateNode,u)v=f.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none";else{R=X.stateNode;var je=X.memoizedProps.style,fe=je!=null&&je.hasOwnProperty("display")?je.display:null;R.style.display=fe==null||typeof fe=="boolean"?"":(""+fe).trim()}}catch(Xe){zt(X,X.return,Xe)}}}else if(n.tag===6){if(s===null){X=n;try{X.stateNode.nodeValue=u?"":X.memoizedProps}catch(Xe){zt(X,X.return,Xe)}}}else if(n.tag===18){if(s===null){X=n;try{var pe=X.stateNode;u?Tb(pe,!0):Tb(X.stateNode,!1)}catch(Xe){zt(X,X.return,Xe)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;s===n&&(s=null),n=n.return}s===n&&(s=null),n.sibling.return=n.return,n=n.sibling}l&4&&(l=e.updateQueue,l!==null&&(s=l.retryQueue,s!==null&&(l.retryQueue=null,Xi(e,s))));break;case 19:_n(n,e),Mn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,Xi(e,l)));break;case 30:break;case 21:break;default:_n(n,e),Mn(e)}}function Mn(e){var n=e.flags;if(n&2){try{for(var s,l=e.return;l!==null;){if(Cx(l)){s=l;break}l=l.return}if(s==null)throw Error(a(160));switch(s.tag){case 27:var u=s.stateNode,f=Qd(e);$i(e,f,u);break;case 5:var v=s.stateNode;s.flags&32&&(Uo(v,""),s.flags&=-33);var R=Qd(e);$i(e,R,v);break;case 3:case 4:var X=s.stateNode.containerInfo,ue=Qd(e);Zd(e,ue,X);break;default:throw Error(a(161))}}catch(ve){zt(e,e.return,ve)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function Lx(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;Lx(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),e=e.sibling}}function Qs(e,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)kx(e,n.alternate,n),n=n.sibling}function fo(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:wr(4,n,n.return),fo(n);break;case 1:vs(n,n.return);var s=n.stateNode;typeof s.componentWillUnmount=="function"&&Tx(n,n.return,s),fo(n);break;case 27:xl(n.stateNode);case 26:case 5:vs(n,n.return),fo(n);break;case 22:n.memoizedState===null&&fo(n);break;case 30:fo(n);break;default:fo(n)}e=e.sibling}}function Zs(e,n,s){for(s=s&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var l=n.alternate,u=e,f=n,v=f.flags;switch(f.tag){case 0:case 11:case 15:Zs(u,f,s),ll(4,f);break;case 1:if(Zs(u,f,s),l=f,u=l.stateNode,typeof u.componentDidMount=="function")try{u.componentDidMount()}catch(ue){zt(l,l.return,ue)}if(l=f,u=l.updateQueue,u!==null){var R=l.stateNode;try{var X=u.shared.hiddenCallbacks;if(X!==null)for(u.shared.hiddenCallbacks=null,u=0;u<X.length;u++)mg(X[u],R)}catch(ue){zt(l,l.return,ue)}}s&&v&64&&jx(f),il(f,f.return);break;case 27:Rx(f);case 26:case 5:Zs(u,f,s),s&&l===null&&v&4&&wx(f),il(f,f.return);break;case 12:Zs(u,f,s);break;case 31:Zs(u,f,s),s&&v&4&&Ax(u,f);break;case 13:Zs(u,f,s),s&&v&4&&Dx(u,f);break;case 22:f.memoizedState===null&&Zs(u,f,s),il(f,f.return);break;case 30:break;default:Zs(u,f,s)}n=n.sibling}}function Wd(e,n){var s=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(s=e.memoizedState.cachePool.pool),e=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(e=n.memoizedState.cachePool.pool),e!==s&&(e!=null&&e.refCount++,s!=null&&Xa(s))}function ef(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&Xa(e))}function ps(e,n,s,l){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Ix(e,n,s,l),n=n.sibling}function Ix(e,n,s,l){var u=n.flags;switch(n.tag){case 0:case 11:case 15:ps(e,n,s,l),u&2048&&ll(9,n);break;case 1:ps(e,n,s,l);break;case 3:ps(e,n,s,l),u&2048&&(e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&Xa(e)));break;case 12:if(u&2048){ps(e,n,s,l),e=n.stateNode;try{var f=n.memoizedProps,v=f.id,R=f.onPostCommit;typeof R=="function"&&R(v,n.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(X){zt(n,n.return,X)}}else ps(e,n,s,l);break;case 31:ps(e,n,s,l);break;case 13:ps(e,n,s,l);break;case 23:break;case 22:f=n.stateNode,v=n.alternate,n.memoizedState!==null?f._visibility&2?ps(e,n,s,l):cl(e,n):f._visibility&2?ps(e,n,s,l):(f._visibility|=2,aa(e,n,s,l,(n.subtreeFlags&10256)!==0||!1)),u&2048&&Wd(v,n);break;case 24:ps(e,n,s,l),u&2048&&ef(n.alternate,n);break;default:ps(e,n,s,l)}}function aa(e,n,s,l,u){for(u=u&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var f=e,v=n,R=s,X=l,ue=v.flags;switch(v.tag){case 0:case 11:case 15:aa(f,v,R,X,u),ll(8,v);break;case 23:break;case 22:var ve=v.stateNode;v.memoizedState!==null?ve._visibility&2?aa(f,v,R,X,u):cl(f,v):(ve._visibility|=2,aa(f,v,R,X,u)),u&&ue&2048&&Wd(v.alternate,v);break;case 24:aa(f,v,R,X,u),u&&ue&2048&&ef(v.alternate,v);break;default:aa(f,v,R,X,u)}n=n.sibling}}function cl(e,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var s=e,l=n,u=l.flags;switch(l.tag){case 22:cl(s,l),u&2048&&Wd(l.alternate,l);break;case 24:cl(s,l),u&2048&&ef(l.alternate,l);break;default:cl(s,l)}n=n.sibling}}var ul=8192;function la(e,n,s){if(e.subtreeFlags&ul)for(e=e.child;e!==null;)Bx(e,n,s),e=e.sibling}function Bx(e,n,s){switch(e.tag){case 26:la(e,n,s),e.flags&ul&&e.memoizedState!==null&&WN(s,ms,e.memoizedState,e.memoizedProps);break;case 5:la(e,n,s);break;case 3:case 4:var l=ms;ms=ic(e.stateNode.containerInfo),la(e,n,s),ms=l;break;case 22:e.memoizedState===null&&(l=e.alternate,l!==null&&l.memoizedState!==null?(l=ul,ul=16777216,la(e,n,s),ul=l):la(e,n,s));break;default:la(e,n,s)}}function Hx(e){var n=e.alternate;if(n!==null&&(e=n.child,e!==null)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(e!==null)}}function dl(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];fn=l,Px(l,e)}Hx(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ux(e),e=e.sibling}function Ux(e){switch(e.tag){case 0:case 11:case 15:dl(e),e.flags&2048&&wr(9,e,e.return);break;case 3:dl(e);break;case 12:dl(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,Ki(e)):dl(e);break;default:dl(e)}}function Ki(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];fn=l,Px(l,e)}Hx(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:wr(8,n,n.return),Ki(n);break;case 22:s=n.stateNode,s._visibility&2&&(s._visibility&=-3,Ki(n));break;default:Ki(n)}e=e.sibling}}function Px(e,n){for(;fn!==null;){var s=fn;switch(s.tag){case 0:case 11:case 15:wr(8,s,n);break;case 23:case 22:if(s.memoizedState!==null&&s.memoizedState.cachePool!==null){var l=s.memoizedState.cachePool.pool;l!=null&&l.refCount++}break;case 24:Xa(s.memoizedState.cache)}if(l=s.child,l!==null)l.return=s,fn=l;else e:for(s=e;fn!==null;){l=fn;var u=l.sibling,f=l.return;if(_x(l),l===s){fn=null;break e}if(u!==null){u.return=f,fn=u;break e}fn=f}}}var pN={getCacheForType:function(e){var n=bn(tn),s=n.data.get(e);return s===void 0&&(s=e(),n.data.set(e,s)),s},cacheSignal:function(){return bn(tn).controller.signal}},hN=typeof WeakMap=="function"?WeakMap:Map,kt=0,Pt=null,ht=null,bt=0,Dt=0,Fn=null,Cr=!1,ia=!1,tf=!1,Js=0,Qt=0,Rr=0,mo=0,nf=0,Gn=0,ca=0,fl=null,An=null,sf=!1,Qi=0,Yx=0,Zi=1/0,Ji=null,Or=null,ln=0,kr=null,ua=null,Ws=0,rf=0,of=null,Vx=null,ml=0,af=null;function qn(){return(kt&2)!==0&&bt!==0?bt&-bt:D.T!==null?mf():Ls()}function Fx(){if(Gn===0)if((bt&536870912)===0||Et){var e=Ot;Ot<<=1,(Ot&3932160)===0&&(Ot=262144),Gn=e}else Gn=536870912;return e=Yn.current,e!==null&&(e.flags|=32),Gn}function Dn(e,n,s){(e===Pt&&(Dt===2||Dt===9)||e.cancelPendingCommit!==null)&&(da(e,0),_r(e,bt,Gn,!1)),rt(e,s),((kt&2)===0||e!==Pt)&&(e===Pt&&((kt&2)===0&&(mo|=s),Qt===4&&_r(e,bt,Gn,!1)),Ss(e))}function Gx(e,n,s){if((kt&6)!==0)throw Error(a(327));var l=!s&&(n&127)===0&&(n&e.expiredLanes)===0||De(e,n),u=l?bN(e,n):cf(e,n,!0),f=l;do{if(u===0){ia&&!l&&_r(e,n,0,!1);break}else{if(s=e.current.alternate,f&&!gN(s)){u=cf(e,n,!1),f=!1;continue}if(u===2){if(f=n,e.errorRecoveryDisabledLanes&f)var v=0;else v=e.pendingLanes&-536870913,v=v!==0?v:v&536870912?536870912:0;if(v!==0){n=v;e:{var R=e;u=fl;var X=R.current.memoizedState.isDehydrated;if(X&&(da(R,v).flags|=256),v=cf(R,v,!1),v!==2){if(tf&&!X){R.errorRecoveryDisabledLanes|=f,mo|=f,u=4;break e}f=An,An=u,f!==null&&(An===null?An=f:An.push.apply(An,f))}u=v}if(f=!1,u!==2)continue}}if(u===1){da(e,0),_r(e,n,0,!0);break}e:{switch(l=e,f=u,f){case 0:case 1:throw Error(a(345));case 4:if((n&4194048)!==n)break;case 6:_r(l,n,Gn,!Cr);break e;case 2:An=null;break;case 3:case 5:break;default:throw Error(a(329))}if((n&62914560)===n&&(u=Qi+300-Y(),10<u)){if(_r(l,n,Gn,!Cr),ye(l,0,!0)!==0)break e;Ws=n,l.timeoutHandle=Eb(qx.bind(null,l,s,An,Ji,sf,n,Gn,mo,ca,Cr,f,"Throttled",-0,0),u);break e}qx(l,s,An,Ji,sf,n,Gn,mo,ca,Cr,f,null,-0,0)}}break}while(!0);Ss(e)}function qx(e,n,s,l,u,f,v,R,X,ue,ve,je,fe,pe){if(e.timeoutHandle=-1,je=n.subtreeFlags,je&8192||(je&16785408)===16785408){je={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Bs},Bx(n,f,je);var Xe=(f&62914560)===f?Qi-Y():(f&4194048)===f?Yx-Y():0;if(Xe=ej(je,Xe),Xe!==null){Ws=f,e.cancelPendingCommit=Xe(eb.bind(null,e,n,f,s,l,u,v,R,X,ve,je,null,fe,pe)),_r(e,f,v,!ue);return}}eb(e,n,f,s,l,u,v,R,X)}function gN(e){for(var n=e;;){var s=n.tag;if((s===0||s===11||s===15)&&n.flags&16384&&(s=n.updateQueue,s!==null&&(s=s.stores,s!==null)))for(var l=0;l<s.length;l++){var u=s[l],f=u.getSnapshot;u=u.value;try{if(!Un(f(),u))return!1}catch{return!1}}if(s=n.child,n.subtreeFlags&16384&&s!==null)s.return=n,n=s;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function _r(e,n,s,l){n&=~nf,n&=~mo,e.suspendedLanes|=n,e.pingedLanes&=~n,l&&(e.warmLanes|=n),l=e.expirationTimes;for(var u=n;0<u;){var f=31-Rt(u),v=1<<f;l[f]=-1,u&=~v}s!==0&&Zn(e,s,n)}function Wi(){return(kt&6)===0?(pl(0),!1):!0}function lf(){if(ht!==null){if(Dt===0)var e=ht.return;else e=ht,Ys=so=null,Nd(e),ta=null,Qa=0,e=ht;for(;e!==null;)Nx(e.alternate,e),e=e.return;ht=null}}function da(e,n){var s=e.timeoutHandle;s!==-1&&(e.timeoutHandle=-1,LN(s)),s=e.cancelPendingCommit,s!==null&&(e.cancelPendingCommit=null,s()),Ws=0,lf(),Pt=e,ht=s=Us(e.current,null),bt=n,Dt=0,Fn=null,Cr=!1,ia=De(e,n),tf=!1,ca=Gn=nf=mo=Rr=Qt=0,An=fl=null,sf=!1,(n&8)!==0&&(n|=n&32);var l=e.entangledLanes;if(l!==0)for(e=e.entanglements,l&=n;0<l;){var u=31-Rt(l),f=1<<u;n|=e[u],l&=~f}return Js=n,vi(),s}function $x(e,n){ct=null,D.H=rl,n===ea||n===Ri?(n=cg(),Dt=3):n===dd?(n=cg(),Dt=4):Dt=n===Hd?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,Fn=n,ht===null&&(Qt=1,Yi(e,ts(n,e.current)))}function Xx(){var e=Yn.current;return e===null?!0:(bt&4194048)===bt?os===null:(bt&62914560)===bt||(bt&536870912)!==0?e===os:!1}function Kx(){var e=D.H;return D.H=rl,e===null?rl:e}function Qx(){var e=D.A;return D.A=pN,e}function ec(){Qt=4,Cr||(bt&4194048)!==bt&&Yn.current!==null||(ia=!0),(Rr&134217727)===0&&(mo&134217727)===0||Pt===null||_r(Pt,bt,Gn,!1)}function cf(e,n,s){var l=kt;kt|=2;var u=Kx(),f=Qx();(Pt!==e||bt!==n)&&(Ji=null,da(e,n)),n=!1;var v=Qt;e:do try{if(Dt!==0&&ht!==null){var R=ht,X=Fn;switch(Dt){case 8:lf(),v=6;break e;case 3:case 2:case 9:case 6:Yn.current===null&&(n=!0);var ue=Dt;if(Dt=0,Fn=null,fa(e,R,X,ue),s&&ia){v=0;break e}break;default:ue=Dt,Dt=0,Fn=null,fa(e,R,X,ue)}}xN(),v=Qt;break}catch(ve){$x(e,ve)}while(!0);return n&&e.shellSuspendCounter++,Ys=so=null,kt=l,D.H=u,D.A=f,ht===null&&(Pt=null,bt=0,vi()),v}function xN(){for(;ht!==null;)Zx(ht)}function bN(e,n){var s=kt;kt|=2;var l=Kx(),u=Qx();Pt!==e||bt!==n?(Ji=null,Zi=Y()+500,da(e,n)):ia=De(e,n);e:do try{if(Dt!==0&&ht!==null){n=ht;var f=Fn;t:switch(Dt){case 1:Dt=0,Fn=null,fa(e,n,f,1);break;case 2:case 9:if(lg(f)){Dt=0,Fn=null,Jx(n);break}n=function(){Dt!==2&&Dt!==9||Pt!==e||(Dt=7),Ss(e)},f.then(n,n);break e;case 3:Dt=7;break e;case 4:Dt=5;break e;case 7:lg(f)?(Dt=0,Fn=null,Jx(n)):(Dt=0,Fn=null,fa(e,n,f,7));break;case 5:var v=null;switch(ht.tag){case 26:v=ht.memoizedState;case 5:case 27:var R=ht;if(v?Ib(v):R.stateNode.complete){Dt=0,Fn=null;var X=R.sibling;if(X!==null)ht=X;else{var ue=R.return;ue!==null?(ht=ue,tc(ue)):ht=null}break t}}Dt=0,Fn=null,fa(e,n,f,5);break;case 6:Dt=0,Fn=null,fa(e,n,f,6);break;case 8:lf(),Qt=6;break e;default:throw Error(a(462))}}yN();break}catch(ve){$x(e,ve)}while(!0);return Ys=so=null,D.H=l,D.A=u,kt=s,ht!==null?0:(Pt=null,bt=0,vi(),Qt)}function yN(){for(;ht!==null&&!Pe();)Zx(ht)}function Zx(e){var n=Sx(e.alternate,e,Js);e.memoizedProps=e.pendingProps,n===null?tc(e):ht=n}function Jx(e){var n=e,s=n.alternate;switch(n.tag){case 15:case 0:n=hx(s,n,n.pendingProps,n.type,void 0,bt);break;case 11:n=hx(s,n,n.pendingProps,n.type.render,n.ref,bt);break;case 5:Nd(n);default:Nx(s,n),n=ht=Qh(n,Js),n=Sx(s,n,Js)}e.memoizedProps=e.pendingProps,n===null?tc(e):ht=n}function fa(e,n,s,l){Ys=so=null,Nd(n),ta=null,Qa=0;var u=n.return;try{if(lN(e,u,n,s,bt)){Qt=1,Yi(e,ts(s,e.current)),ht=null;return}}catch(f){if(u!==null)throw ht=u,f;Qt=1,Yi(e,ts(s,e.current)),ht=null;return}n.flags&32768?(Et||l===1?e=!0:ia||(bt&536870912)!==0?e=!1:(Cr=e=!0,(l===2||l===9||l===3||l===6)&&(l=Yn.current,l!==null&&l.tag===13&&(l.flags|=16384))),Wx(n,e)):tc(n)}function tc(e){var n=e;do{if((n.flags&32768)!==0){Wx(n,Cr);return}e=n.return;var s=uN(n.alternate,n,Js);if(s!==null){ht=s;return}if(n=n.sibling,n!==null){ht=n;return}ht=n=e}while(n!==null);Qt===0&&(Qt=5)}function Wx(e,n){do{var s=dN(e.alternate,e);if(s!==null){s.flags&=32767,ht=s;return}if(s=e.return,s!==null&&(s.flags|=32768,s.subtreeFlags=0,s.deletions=null),!n&&(e=e.sibling,e!==null)){ht=e;return}ht=e=s}while(e!==null);Qt=6,ht=null}function eb(e,n,s,l,u,f,v,R,X){e.cancelPendingCommit=null;do nc();while(ln!==0);if((kt&6)!==0)throw Error(a(327));if(n!==null){if(n===e.current)throw Error(a(177));if(f=n.lanes|n.childLanes,f|=Qu,$t(e,s,f,v,R,X),e===Pt&&(ht=Pt=null,bt=0),ua=n,kr=e,Ws=s,rf=f,of=u,Vx=l,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,NN(ae,function(){return ob(),null})):(e.callbackNode=null,e.callbackPriority=0),l=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||l){l=D.T,D.T=null,u=z.p,z.p=2,v=kt,kt|=4;try{fN(e,n,s)}finally{kt=v,z.p=u,D.T=l}}ln=1,tb(),nb(),sb()}}function tb(){if(ln===1){ln=0;var e=kr,n=ua,s=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||s){s=D.T,D.T=null;var l=z.p;z.p=2;var u=kt;kt|=4;try{zx(n,e);var f=Sf,v=Ph(e.containerInfo),R=f.focusedElem,X=f.selectionRange;if(v!==R&&R&&R.ownerDocument&&Uh(R.ownerDocument.documentElement,R)){if(X!==null&&Gu(R)){var ue=X.start,ve=X.end;if(ve===void 0&&(ve=ue),"selectionStart"in R)R.selectionStart=ue,R.selectionEnd=Math.min(ve,R.value.length);else{var je=R.ownerDocument||document,fe=je&&je.defaultView||window;if(fe.getSelection){var pe=fe.getSelection(),Xe=R.textContent.length,et=Math.min(X.start,Xe),Ht=X.end===void 0?et:Math.min(X.end,Xe);!pe.extend&&et>Ht&&(v=Ht,Ht=et,et=v);var oe=Hh(R,et),J=Hh(R,Ht);if(oe&&J&&(pe.rangeCount!==1||pe.anchorNode!==oe.node||pe.anchorOffset!==oe.offset||pe.focusNode!==J.node||pe.focusOffset!==J.offset)){var ce=je.createRange();ce.setStart(oe.node,oe.offset),pe.removeAllRanges(),et>Ht?(pe.addRange(ce),pe.extend(J.node,J.offset)):(ce.setEnd(J.node,J.offset),pe.addRange(ce))}}}}for(je=[],pe=R;pe=pe.parentNode;)pe.nodeType===1&&je.push({element:pe,left:pe.scrollLeft,top:pe.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;R<je.length;R++){var Ne=je[R];Ne.element.scrollLeft=Ne.left,Ne.element.scrollTop=Ne.top}}pc=!!vf,Sf=vf=null}finally{kt=u,z.p=l,D.T=s}}e.current=n,ln=2}}function nb(){if(ln===2){ln=0;var e=kr,n=ua,s=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||s){s=D.T,D.T=null;var l=z.p;z.p=2;var u=kt;kt|=4;try{kx(e,n.alternate,n)}finally{kt=u,z.p=l,D.T=s}}ln=3}}function sb(){if(ln===4||ln===3){ln=0,ee();var e=kr,n=ua,s=Ws,l=Vx;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?ln=5:(ln=0,ua=kr=null,rb(e,e.pendingLanes));var u=e.pendingLanes;if(u===0&&(Or=null),Hn(s),n=n.stateNode,mt&&typeof mt.onCommitFiberRoot=="function")try{mt.onCommitFiberRoot(At,n,void 0,(n.current.flags&128)===128)}catch{}if(l!==null){n=D.T,u=z.p,z.p=2,D.T=null;try{for(var f=e.onRecoverableError,v=0;v<l.length;v++){var R=l[v];f(R.value,{componentStack:R.stack})}}finally{D.T=n,z.p=u}}(Ws&3)!==0&&nc(),Ss(e),u=e.pendingLanes,(s&261930)!==0&&(u&42)!==0?e===af?ml++:(ml=0,af=e):ml=0,pl(0)}}function rb(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,Xa(n)))}function nc(){return tb(),nb(),sb(),ob()}function ob(){if(ln!==5)return!1;var e=kr,n=rf;rf=0;var s=Hn(Ws),l=D.T,u=z.p;try{z.p=32>s?32:s,D.T=null,s=of,of=null;var f=kr,v=Ws;if(ln=0,ua=kr=null,Ws=0,(kt&6)!==0)throw Error(a(331));var R=kt;if(kt|=4,Ux(f.current),Ix(f,f.current,v,s),kt=R,pl(0,!1),mt&&typeof mt.onPostCommitFiberRoot=="function")try{mt.onPostCommitFiberRoot(At,f)}catch{}return!0}finally{z.p=u,D.T=l,rb(e,n)}}function ab(e,n,s){n=ts(s,n),n=Bd(e.stateNode,n,2),e=Nr(e,n,2),e!==null&&(rt(e,2),Ss(e))}function zt(e,n,s){if(e.tag===3)ab(e,e,s);else for(;n!==null;){if(n.tag===3){ab(n,e,s);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Or===null||!Or.has(l))){e=ts(s,e),s=lx(2),l=Nr(n,s,2),l!==null&&(ix(s,l,n,e),rt(l,2),Ss(l));break}}n=n.return}}function uf(e,n,s){var l=e.pingCache;if(l===null){l=e.pingCache=new hN;var u=new Set;l.set(n,u)}else u=l.get(n),u===void 0&&(u=new Set,l.set(n,u));u.has(s)||(tf=!0,u.add(s),e=vN.bind(null,e,n,s),n.then(e,e))}function vN(e,n,s){var l=e.pingCache;l!==null&&l.delete(n),e.pingedLanes|=e.suspendedLanes&s,e.warmLanes&=~s,Pt===e&&(bt&s)===s&&(Qt===4||Qt===3&&(bt&62914560)===bt&&300>Y()-Qi?(kt&2)===0&&da(e,0):nf|=s,ca===bt&&(ca=0)),Ss(e)}function lb(e,n){n===0&&(n=nt()),e=eo(e,n),e!==null&&(rt(e,n),Ss(e))}function SN(e){var n=e.memoizedState,s=0;n!==null&&(s=n.retryLane),lb(e,s)}function EN(e,n){var s=0;switch(e.tag){case 31:case 13:var l=e.stateNode,u=e.memoizedState;u!==null&&(s=u.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(a(314))}l!==null&&l.delete(n),lb(e,s)}function NN(e,n){return Ie(e,n)}var sc=null,ma=null,df=!1,rc=!1,ff=!1,Mr=0;function Ss(e){e!==ma&&e.next===null&&(ma===null?sc=ma=e:ma=ma.next=e),rc=!0,df||(df=!0,TN())}function pl(e,n){if(!ff&&rc){ff=!0;do for(var s=!1,l=sc;l!==null;){if(e!==0){var u=l.pendingLanes;if(u===0)var f=0;else{var v=l.suspendedLanes,R=l.pingedLanes;f=(1<<31-Rt(42|e)+1)-1,f&=u&~(v&~R),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(s=!0,db(l,f))}else f=bt,f=ye(l,l===Pt?f:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(f&3)===0||De(l,f)||(s=!0,db(l,f));l=l.next}while(s);ff=!1}}function jN(){ib()}function ib(){rc=df=!1;var e=0;Mr!==0&&zN()&&(e=Mr);for(var n=Y(),s=null,l=sc;l!==null;){var u=l.next,f=cb(l,n);f===0?(l.next=null,s===null?sc=u:s.next=u,u===null&&(ma=s)):(s=l,(e!==0||(f&3)!==0)&&(rc=!0)),l=u}ln!==0&&ln!==5||pl(e),Mr!==0&&(Mr=0)}function cb(e,n){for(var s=e.suspendedLanes,l=e.pingedLanes,u=e.expirationTimes,f=e.pendingLanes&-62914561;0<f;){var v=31-Rt(f),R=1<<v,X=u[v];X===-1?((R&s)===0||(R&l)!==0)&&(u[v]=Ze(R,n)):X<=n&&(e.expiredLanes|=R),f&=~R}if(n=Pt,s=bt,s=ye(e,e===n?s:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l=e.callbackNode,s===0||e===n&&(Dt===2||Dt===9)||e.cancelPendingCommit!==null)return l!==null&&l!==null&&Ve(l),e.callbackNode=null,e.callbackPriority=0;if((s&3)===0||De(e,s)){if(n=s&-s,n===e.callbackPriority)return n;switch(l!==null&&Ve(l),Hn(s)){case 2:case 8:s=xe;break;case 32:s=ae;break;case 268435456:s=Ye;break;default:s=ae}return l=ub.bind(null,e),s=Ie(s,l),e.callbackPriority=n,e.callbackNode=s,n}return l!==null&&l!==null&&Ve(l),e.callbackPriority=2,e.callbackNode=null,2}function ub(e,n){if(ln!==0&&ln!==5)return e.callbackNode=null,e.callbackPriority=0,null;var s=e.callbackNode;if(nc()&&e.callbackNode!==s)return null;var l=bt;return l=ye(e,e===Pt?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l===0?null:(Gx(e,l,n),cb(e,Y()),e.callbackNode!=null&&e.callbackNode===s?ub.bind(null,e):null)}function db(e,n){if(nc())return null;Gx(e,n,!0)}function TN(){IN(function(){(kt&6)!==0?Ie(Te,jN):ib()})}function mf(){if(Mr===0){var e=Jo;e===0&&(e=Ge,Ge<<=1,(Ge&261888)===0&&(Ge=256)),Mr=e}return Mr}function fb(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:fi(""+e)}function mb(e,n){var s=n.ownerDocument.createElement("input");return s.name=n.name,s.value=n.value,e.id&&s.setAttribute("form",e.id),n.parentNode.insertBefore(s,n),e=new FormData(e),s.parentNode.removeChild(s),e}function wN(e,n,s,l,u){if(n==="submit"&&s&&s.stateNode===u){var f=fb((u[Rn]||null).action),v=l.submitter;v&&(n=(n=v[Rn]||null)?fb(n.formAction):v.getAttribute("formAction"),n!==null&&(f=n,v=null));var R=new gi("action","action",null,l,u);e.push({event:R,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Mr!==0){var X=v?mb(u,v):new FormData(u);Md(s,{pending:!0,data:X,method:u.method,action:f},null,X)}}else typeof f=="function"&&(R.preventDefault(),X=v?mb(u,v):new FormData(u),Md(s,{pending:!0,data:X,method:u.method,action:f},f,X))},currentTarget:u}]})}}for(var pf=0;pf<Ku.length;pf++){var hf=Ku[pf],CN=hf.toLowerCase(),RN=hf[0].toUpperCase()+hf.slice(1);fs(CN,"on"+RN)}fs(Fh,"onAnimationEnd"),fs(Gh,"onAnimationIteration"),fs(qh,"onAnimationStart"),fs("dblclick","onDoubleClick"),fs("focusin","onFocus"),fs("focusout","onBlur"),fs(FE,"onTransitionRun"),fs(GE,"onTransitionStart"),fs(qE,"onTransitionCancel"),fs($h,"onTransitionEnd"),Bo("onMouseEnter",["mouseout","mouseover"]),Bo("onMouseLeave",["mouseout","mouseover"]),Bo("onPointerEnter",["pointerout","pointerover"]),Bo("onPointerLeave",["pointerout","pointerover"]),Qr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Qr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Qr("onBeforeInput",["compositionend","keypress","textInput","paste"]),Qr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Qr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Qr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var hl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),ON=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(hl));function pb(e,n){n=(n&4)!==0;for(var s=0;s<e.length;s++){var l=e[s],u=l.event;l=l.listeners;e:{var f=void 0;if(n)for(var v=l.length-1;0<=v;v--){var R=l[v],X=R.instance,ue=R.currentTarget;if(R=R.listener,X!==f&&u.isPropagationStopped())break e;f=R,u.currentTarget=ue;try{f(u)}catch(ve){yi(ve)}u.currentTarget=null,f=X}else for(v=0;v<l.length;v++){if(R=l[v],X=R.instance,ue=R.currentTarget,R=R.listener,X!==f&&u.isPropagationStopped())break e;f=R,u.currentTarget=ue;try{f(u)}catch(ve){yi(ve)}u.currentTarget=null,f=X}}}}function gt(e,n){var s=n[Cu];s===void 0&&(s=n[Cu]=new Set);var l=e+"__bubble";s.has(l)||(hb(n,e,2,!1),s.add(l))}function gf(e,n,s){var l=0;n&&(l|=4),hb(s,e,l,n)}var oc="_reactListening"+Math.random().toString(36).slice(2);function xf(e){if(!e[oc]){e[oc]=!0,ih.forEach(function(s){s!=="selectionchange"&&(ON.has(s)||gf(s,!1,e),gf(s,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[oc]||(n[oc]=!0,gf("selectionchange",!1,n))}}function hb(e,n,s,l){switch(Fb(n)){case 2:var u=sj;break;case 8:u=rj;break;default:u=Mf}s=u.bind(null,n,s,e),u=void 0,!Lu||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(u=!0),l?u!==void 0?e.addEventListener(n,s,{capture:!0,passive:u}):e.addEventListener(n,s,!0):u!==void 0?e.addEventListener(n,s,{passive:u}):e.addEventListener(n,s,!1)}function bf(e,n,s,l,u){var f=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var v=l.tag;if(v===3||v===4){var R=l.stateNode.containerInfo;if(R===u)break;if(v===4)for(v=l.return;v!==null;){var X=v.tag;if((X===3||X===4)&&v.stateNode.containerInfo===u)return;v=v.return}for(;R!==null;){if(v=zo(R),v===null)return;if(X=v.tag,X===5||X===6||X===26||X===27){l=f=v;continue e}R=R.parentNode}}l=l.return}vh(function(){var ue=f,ve=Du(s),je=[];e:{var fe=Xh.get(e);if(fe!==void 0){var pe=gi,Xe=e;switch(e){case"keypress":if(pi(s)===0)break e;case"keydown":case"keyup":pe=EE;break;case"focusin":Xe="focus",pe=Uu;break;case"focusout":Xe="blur",pe=Uu;break;case"beforeblur":case"afterblur":pe=Uu;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":pe=Nh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":pe=uE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":pe=TE;break;case Fh:case Gh:case qh:pe=mE;break;case $h:pe=CE;break;case"scroll":case"scrollend":pe=iE;break;case"wheel":pe=OE;break;case"copy":case"cut":case"paste":pe=hE;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":pe=Th;break;case"toggle":case"beforetoggle":pe=_E}var et=(n&4)!==0,Ht=!et&&(e==="scroll"||e==="scrollend"),oe=et?fe!==null?fe+"Capture":null:fe;et=[];for(var J=ue,ce;J!==null;){var Ne=J;if(ce=Ne.stateNode,Ne=Ne.tag,Ne!==5&&Ne!==26&&Ne!==27||ce===null||oe===null||(Ne=Ia(J,oe),Ne!=null&&et.push(gl(J,Ne,ce))),Ht)break;J=J.return}0<et.length&&(fe=new pe(fe,Xe,null,s,ve),je.push({event:fe,listeners:et}))}}if((n&7)===0){e:{if(fe=e==="mouseover"||e==="pointerover",pe=e==="mouseout"||e==="pointerout",fe&&s!==Au&&(Xe=s.relatedTarget||s.fromElement)&&(zo(Xe)||Xe[Do]))break e;if((pe||fe)&&(fe=ve.window===ve?ve:(fe=ve.ownerDocument)?fe.defaultView||fe.parentWindow:window,pe?(Xe=s.relatedTarget||s.toElement,pe=ue,Xe=Xe?zo(Xe):null,Xe!==null&&(Ht=d(Xe),et=Xe.tag,Xe!==Ht||et!==5&&et!==27&&et!==6)&&(Xe=null)):(pe=null,Xe=ue),pe!==Xe)){if(et=Nh,Ne="onMouseLeave",oe="onMouseEnter",J="mouse",(e==="pointerout"||e==="pointerover")&&(et=Th,Ne="onPointerLeave",oe="onPointerEnter",J="pointer"),Ht=pe==null?fe:La(pe),ce=Xe==null?fe:La(Xe),fe=new et(Ne,J+"leave",pe,s,ve),fe.target=Ht,fe.relatedTarget=ce,Ne=null,zo(ve)===ue&&(et=new et(oe,J+"enter",Xe,s,ve),et.target=ce,et.relatedTarget=Ht,Ne=et),Ht=Ne,pe&&Xe)t:{for(et=kN,oe=pe,J=Xe,ce=0,Ne=oe;Ne;Ne=et(Ne))ce++;Ne=0;for(var Je=J;Je;Je=et(Je))Ne++;for(;0<ce-Ne;)oe=et(oe),ce--;for(;0<Ne-ce;)J=et(J),Ne--;for(;ce--;){if(oe===J||J!==null&&oe===J.alternate){et=oe;break t}oe=et(oe),J=et(J)}et=null}else et=null;pe!==null&&gb(je,fe,pe,et,!1),Xe!==null&&Ht!==null&&gb(je,Ht,Xe,et,!0)}}e:{if(fe=ue?La(ue):window,pe=fe.nodeName&&fe.nodeName.toLowerCase(),pe==="select"||pe==="input"&&fe.type==="file")var wt=Ah;else if(_h(fe))if(Dh)wt=PE;else{wt=HE;var Ke=BE}else pe=fe.nodeName,!pe||pe.toLowerCase()!=="input"||fe.type!=="checkbox"&&fe.type!=="radio"?ue&&Mu(ue.elementType)&&(wt=Ah):wt=UE;if(wt&&(wt=wt(e,ue))){Mh(je,wt,s,ve);break e}Ke&&Ke(e,fe,ue),e==="focusout"&&ue&&fe.type==="number"&&ue.memoizedProps.value!=null&&_u(fe,"number",fe.value)}switch(Ke=ue?La(ue):window,e){case"focusin":(_h(Ke)||Ke.contentEditable==="true")&&(Fo=Ke,qu=ue,Ga=null);break;case"focusout":Ga=qu=Fo=null;break;case"mousedown":$u=!0;break;case"contextmenu":case"mouseup":case"dragend":$u=!1,Yh(je,s,ve);break;case"selectionchange":if(VE)break;case"keydown":case"keyup":Yh(je,s,ve)}var dt;if(Yu)e:{switch(e){case"compositionstart":var yt="onCompositionStart";break e;case"compositionend":yt="onCompositionEnd";break e;case"compositionupdate":yt="onCompositionUpdate";break e}yt=void 0}else Vo?Oh(e,s)&&(yt="onCompositionEnd"):e==="keydown"&&s.keyCode===229&&(yt="onCompositionStart");yt&&(wh&&s.locale!=="ko"&&(Vo||yt!=="onCompositionStart"?yt==="onCompositionEnd"&&Vo&&(dt=Sh()):(gr=ve,Iu="value"in gr?gr.value:gr.textContent,Vo=!0)),Ke=ac(ue,yt),0<Ke.length&&(yt=new jh(yt,e,null,s,ve),je.push({event:yt,listeners:Ke}),dt?yt.data=dt:(dt=kh(s),dt!==null&&(yt.data=dt)))),(dt=AE?DE(e,s):zE(e,s))&&(yt=ac(ue,"onBeforeInput"),0<yt.length&&(Ke=new jh("onBeforeInput","beforeinput",null,s,ve),je.push({event:Ke,listeners:yt}),Ke.data=dt)),wN(je,e,ue,s,ve)}pb(je,n)})}function gl(e,n,s){return{instance:e,listener:n,currentTarget:s}}function ac(e,n){for(var s=n+"Capture",l=[];e!==null;){var u=e,f=u.stateNode;if(u=u.tag,u!==5&&u!==26&&u!==27||f===null||(u=Ia(e,s),u!=null&&l.unshift(gl(e,u,f)),u=Ia(e,n),u!=null&&l.push(gl(e,u,f))),e.tag===3)return l;e=e.return}return[]}function kN(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function gb(e,n,s,l,u){for(var f=n._reactName,v=[];s!==null&&s!==l;){var R=s,X=R.alternate,ue=R.stateNode;if(R=R.tag,X!==null&&X===l)break;R!==5&&R!==26&&R!==27||ue===null||(X=ue,u?(ue=Ia(s,f),ue!=null&&v.unshift(gl(s,ue,X))):u||(ue=Ia(s,f),ue!=null&&v.push(gl(s,ue,X)))),s=s.return}v.length!==0&&e.push({event:n,listeners:v})}var _N=/\r\n?/g,MN=/\u0000|\uFFFD/g;function xb(e){return(typeof e=="string"?e:""+e).replace(_N,`
9
+ `).replace(MN,"")}function bb(e,n){return n=xb(n),xb(e)===n}function Bt(e,n,s,l,u,f){switch(s){case"children":typeof l=="string"?n==="body"||n==="textarea"&&l===""||Uo(e,l):(typeof l=="number"||typeof l=="bigint")&&n!=="body"&&Uo(e,""+l);break;case"className":ui(e,"class",l);break;case"tabIndex":ui(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":ui(e,s,l);break;case"style":bh(e,l,f);break;case"data":if(n!=="object"){ui(e,"data",l);break}case"src":case"href":if(l===""&&(n!=="a"||s!=="href")){e.removeAttribute(s);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=fi(""+l),e.setAttribute(s,l);break;case"action":case"formAction":if(typeof l=="function"){e.setAttribute(s,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof f=="function"&&(s==="formAction"?(n!=="input"&&Bt(e,n,"name",u.name,u,null),Bt(e,n,"formEncType",u.formEncType,u,null),Bt(e,n,"formMethod",u.formMethod,u,null),Bt(e,n,"formTarget",u.formTarget,u,null)):(Bt(e,n,"encType",u.encType,u,null),Bt(e,n,"method",u.method,u,null),Bt(e,n,"target",u.target,u,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){e.removeAttribute(s);break}l=fi(""+l),e.setAttribute(s,l);break;case"onClick":l!=null&&(e.onclick=Bs);break;case"onScroll":l!=null&&gt("scroll",e);break;case"onScrollEnd":l!=null&&gt("scrollend",e);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(a(61));if(s=l.__html,s!=null){if(u.children!=null)throw Error(a(60));e.innerHTML=s}}break;case"multiple":e.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":e.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){e.removeAttribute("xlink:href");break}s=fi(""+l),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",s);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(s,""+l):e.removeAttribute(s);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(s,""):e.removeAttribute(s);break;case"capture":case"download":l===!0?e.setAttribute(s,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?e.setAttribute(s,l):e.removeAttribute(s);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?e.setAttribute(s,l):e.removeAttribute(s);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?e.removeAttribute(s):e.setAttribute(s,l);break;case"popover":gt("beforetoggle",e),gt("toggle",e),ci(e,"popover",l);break;case"xlinkActuate":Is(e,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":Is(e,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":Is(e,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":Is(e,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":Is(e,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":Is(e,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":Is(e,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":Is(e,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":Is(e,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":ci(e,"is",l);break;case"innerText":case"textContent":break;default:(!(2<s.length)||s[0]!=="o"&&s[0]!=="O"||s[1]!=="n"&&s[1]!=="N")&&(s=aE.get(s)||s,ci(e,s,l))}}function yf(e,n,s,l,u,f){switch(s){case"style":bh(e,l,f);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(a(61));if(s=l.__html,s!=null){if(u.children!=null)throw Error(a(60));e.innerHTML=s}}break;case"children":typeof l=="string"?Uo(e,l):(typeof l=="number"||typeof l=="bigint")&&Uo(e,""+l);break;case"onScroll":l!=null&&gt("scroll",e);break;case"onScrollEnd":l!=null&&gt("scrollend",e);break;case"onClick":l!=null&&(e.onclick=Bs);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!ch.hasOwnProperty(s))e:{if(s[0]==="o"&&s[1]==="n"&&(u=s.endsWith("Capture"),n=s.slice(2,u?s.length-7:void 0),f=e[Rn]||null,f=f!=null?f[s]:null,typeof f=="function"&&e.removeEventListener(n,f,u),typeof l=="function")){typeof f!="function"&&f!==null&&(s in e?e[s]=null:e.hasAttribute(s)&&e.removeAttribute(s)),e.addEventListener(n,l,u);break e}s in e?e[s]=l:l===!0?e.setAttribute(s,""):ci(e,s,l)}}}function vn(e,n,s){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":gt("error",e),gt("load",e);var l=!1,u=!1,f;for(f in s)if(s.hasOwnProperty(f)){var v=s[f];if(v!=null)switch(f){case"src":l=!0;break;case"srcSet":u=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,n));default:Bt(e,n,f,v,s,null)}}u&&Bt(e,n,"srcSet",s.srcSet,s,null),l&&Bt(e,n,"src",s.src,s,null);return;case"input":gt("invalid",e);var R=f=v=u=null,X=null,ue=null;for(l in s)if(s.hasOwnProperty(l)){var ve=s[l];if(ve!=null)switch(l){case"name":u=ve;break;case"type":v=ve;break;case"checked":X=ve;break;case"defaultChecked":ue=ve;break;case"value":f=ve;break;case"defaultValue":R=ve;break;case"children":case"dangerouslySetInnerHTML":if(ve!=null)throw Error(a(137,n));break;default:Bt(e,n,l,ve,s,null)}}ph(e,f,R,X,ue,v,u,!1);return;case"select":gt("invalid",e),l=v=f=null;for(u in s)if(s.hasOwnProperty(u)&&(R=s[u],R!=null))switch(u){case"value":f=R;break;case"defaultValue":v=R;break;case"multiple":l=R;default:Bt(e,n,u,R,s,null)}n=f,s=v,e.multiple=!!l,n!=null?Ho(e,!!l,n,!1):s!=null&&Ho(e,!!l,s,!0);return;case"textarea":gt("invalid",e),f=u=l=null;for(v in s)if(s.hasOwnProperty(v)&&(R=s[v],R!=null))switch(v){case"value":l=R;break;case"defaultValue":u=R;break;case"children":f=R;break;case"dangerouslySetInnerHTML":if(R!=null)throw Error(a(91));break;default:Bt(e,n,v,R,s,null)}gh(e,l,u,f);return;case"option":for(X in s)s.hasOwnProperty(X)&&(l=s[X],l!=null)&&(X==="selected"?e.selected=l&&typeof l!="function"&&typeof l!="symbol":Bt(e,n,X,l,s,null));return;case"dialog":gt("beforetoggle",e),gt("toggle",e),gt("cancel",e),gt("close",e);break;case"iframe":case"object":gt("load",e);break;case"video":case"audio":for(l=0;l<hl.length;l++)gt(hl[l],e);break;case"image":gt("error",e),gt("load",e);break;case"details":gt("toggle",e);break;case"embed":case"source":case"link":gt("error",e),gt("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ue in s)if(s.hasOwnProperty(ue)&&(l=s[ue],l!=null))switch(ue){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,n));default:Bt(e,n,ue,l,s,null)}return;default:if(Mu(n)){for(ve in s)s.hasOwnProperty(ve)&&(l=s[ve],l!==void 0&&yf(e,n,ve,l,s,void 0));return}}for(R in s)s.hasOwnProperty(R)&&(l=s[R],l!=null&&Bt(e,n,R,l,s,null))}function AN(e,n,s,l){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var u=null,f=null,v=null,R=null,X=null,ue=null,ve=null;for(pe in s){var je=s[pe];if(s.hasOwnProperty(pe)&&je!=null)switch(pe){case"checked":break;case"value":break;case"defaultValue":X=je;default:l.hasOwnProperty(pe)||Bt(e,n,pe,null,l,je)}}for(var fe in l){var pe=l[fe];if(je=s[fe],l.hasOwnProperty(fe)&&(pe!=null||je!=null))switch(fe){case"type":f=pe;break;case"name":u=pe;break;case"checked":ue=pe;break;case"defaultChecked":ve=pe;break;case"value":v=pe;break;case"defaultValue":R=pe;break;case"children":case"dangerouslySetInnerHTML":if(pe!=null)throw Error(a(137,n));break;default:pe!==je&&Bt(e,n,fe,pe,l,je)}}ku(e,v,R,X,ue,ve,f,u);return;case"select":pe=v=R=fe=null;for(f in s)if(X=s[f],s.hasOwnProperty(f)&&X!=null)switch(f){case"value":break;case"multiple":pe=X;default:l.hasOwnProperty(f)||Bt(e,n,f,null,l,X)}for(u in l)if(f=l[u],X=s[u],l.hasOwnProperty(u)&&(f!=null||X!=null))switch(u){case"value":fe=f;break;case"defaultValue":R=f;break;case"multiple":v=f;default:f!==X&&Bt(e,n,u,f,l,X)}n=R,s=v,l=pe,fe!=null?Ho(e,!!s,fe,!1):!!l!=!!s&&(n!=null?Ho(e,!!s,n,!0):Ho(e,!!s,s?[]:"",!1));return;case"textarea":pe=fe=null;for(R in s)if(u=s[R],s.hasOwnProperty(R)&&u!=null&&!l.hasOwnProperty(R))switch(R){case"value":break;case"children":break;default:Bt(e,n,R,null,l,u)}for(v in l)if(u=l[v],f=s[v],l.hasOwnProperty(v)&&(u!=null||f!=null))switch(v){case"value":fe=u;break;case"defaultValue":pe=u;break;case"children":break;case"dangerouslySetInnerHTML":if(u!=null)throw Error(a(91));break;default:u!==f&&Bt(e,n,v,u,l,f)}hh(e,fe,pe);return;case"option":for(var Xe in s)fe=s[Xe],s.hasOwnProperty(Xe)&&fe!=null&&!l.hasOwnProperty(Xe)&&(Xe==="selected"?e.selected=!1:Bt(e,n,Xe,null,l,fe));for(X in l)fe=l[X],pe=s[X],l.hasOwnProperty(X)&&fe!==pe&&(fe!=null||pe!=null)&&(X==="selected"?e.selected=fe&&typeof fe!="function"&&typeof fe!="symbol":Bt(e,n,X,fe,l,pe));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var et in s)fe=s[et],s.hasOwnProperty(et)&&fe!=null&&!l.hasOwnProperty(et)&&Bt(e,n,et,null,l,fe);for(ue in l)if(fe=l[ue],pe=s[ue],l.hasOwnProperty(ue)&&fe!==pe&&(fe!=null||pe!=null))switch(ue){case"children":case"dangerouslySetInnerHTML":if(fe!=null)throw Error(a(137,n));break;default:Bt(e,n,ue,fe,l,pe)}return;default:if(Mu(n)){for(var Ht in s)fe=s[Ht],s.hasOwnProperty(Ht)&&fe!==void 0&&!l.hasOwnProperty(Ht)&&yf(e,n,Ht,void 0,l,fe);for(ve in l)fe=l[ve],pe=s[ve],!l.hasOwnProperty(ve)||fe===pe||fe===void 0&&pe===void 0||yf(e,n,ve,fe,l,pe);return}}for(var oe in s)fe=s[oe],s.hasOwnProperty(oe)&&fe!=null&&!l.hasOwnProperty(oe)&&Bt(e,n,oe,null,l,fe);for(je in l)fe=l[je],pe=s[je],!l.hasOwnProperty(je)||fe===pe||fe==null&&pe==null||Bt(e,n,je,fe,l,pe)}function yb(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function DN(){if(typeof performance.getEntriesByType=="function"){for(var e=0,n=0,s=performance.getEntriesByType("resource"),l=0;l<s.length;l++){var u=s[l],f=u.transferSize,v=u.initiatorType,R=u.duration;if(f&&R&&yb(v)){for(v=0,R=u.responseEnd,l+=1;l<s.length;l++){var X=s[l],ue=X.startTime;if(ue>R)break;var ve=X.transferSize,je=X.initiatorType;ve&&yb(je)&&(X=X.responseEnd,v+=ve*(X<R?1:(R-ue)/(X-ue)))}if(--l,n+=8*(f+v)/(u.duration/1e3),e++,10<e)break}}if(0<e)return n/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var vf=null,Sf=null;function lc(e){return e.nodeType===9?e:e.ownerDocument}function vb(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Sb(e,n){if(e===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&n==="foreignObject"?0:e}function Ef(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var Nf=null;function zN(){var e=window.event;return e&&e.type==="popstate"?e===Nf?!1:(Nf=e,!0):(Nf=null,!1)}var Eb=typeof setTimeout=="function"?setTimeout:void 0,LN=typeof clearTimeout=="function"?clearTimeout:void 0,Nb=typeof Promise=="function"?Promise:void 0,IN=typeof queueMicrotask=="function"?queueMicrotask:typeof Nb<"u"?function(e){return Nb.resolve(null).then(e).catch(BN)}:Eb;function BN(e){setTimeout(function(){throw e})}function Ar(e){return e==="head"}function jb(e,n){var s=n,l=0;do{var u=s.nextSibling;if(e.removeChild(s),u&&u.nodeType===8)if(s=u.data,s==="/$"||s==="/&"){if(l===0){e.removeChild(u),xa(n);return}l--}else if(s==="$"||s==="$?"||s==="$~"||s==="$!"||s==="&")l++;else if(s==="html")xl(e.ownerDocument.documentElement);else if(s==="head"){s=e.ownerDocument.head,xl(s);for(var f=s.firstChild;f;){var v=f.nextSibling,R=f.nodeName;f[za]||R==="SCRIPT"||R==="STYLE"||R==="LINK"&&f.rel.toLowerCase()==="stylesheet"||s.removeChild(f),f=v}}else s==="body"&&xl(e.ownerDocument.body);s=u}while(s);xa(n)}function Tb(e,n){var s=e;e=0;do{var l=s.nextSibling;if(s.nodeType===1?n?(s._stashedDisplay=s.style.display,s.style.display="none"):(s.style.display=s._stashedDisplay||"",s.getAttribute("style")===""&&s.removeAttribute("style")):s.nodeType===3&&(n?(s._stashedText=s.nodeValue,s.nodeValue=""):s.nodeValue=s._stashedText||""),l&&l.nodeType===8)if(s=l.data,s==="/$"){if(e===0)break;e--}else s!=="$"&&s!=="$?"&&s!=="$~"&&s!=="$!"||e++;s=l}while(s)}function jf(e){var n=e.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var s=n;switch(n=n.nextSibling,s.nodeName){case"HTML":case"HEAD":case"BODY":jf(s),Ru(s);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(s.rel.toLowerCase()==="stylesheet")continue}e.removeChild(s)}}function HN(e,n,s,l){for(;e.nodeType===1;){var u=s;if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!l&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(l){if(!e[za])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(f=e.getAttribute("rel"),f==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(f!==u.rel||e.getAttribute("href")!==(u.href==null||u.href===""?null:u.href)||e.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin)||e.getAttribute("title")!==(u.title==null?null:u.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(f=e.getAttribute("src"),(f!==(u.src==null?null:u.src)||e.getAttribute("type")!==(u.type==null?null:u.type)||e.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin))&&f&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(n==="input"&&e.type==="hidden"){var f=u.name==null?null:""+u.name;if(u.type==="hidden"&&e.getAttribute("name")===f)return e}else return e;if(e=as(e.nextSibling),e===null)break}return null}function UN(e,n,s){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!s||(e=as(e.nextSibling),e===null))return null;return e}function wb(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=as(e.nextSibling),e===null))return null;return e}function Tf(e){return e.data==="$?"||e.data==="$~"}function wf(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function PN(e,n){var s=e.ownerDocument;if(e.data==="$~")e._reactRetry=n;else if(e.data!=="$?"||s.readyState!=="loading")n();else{var l=function(){n(),s.removeEventListener("DOMContentLoaded",l)};s.addEventListener("DOMContentLoaded",l),e._reactRetry=l}}function as(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"||n==="F!"||n==="F")break;if(n==="/$"||n==="/&")return null}}return e}var Cf=null;function Cb(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="/$"||s==="/&"){if(n===0)return as(e.nextSibling);n--}else s!=="$"&&s!=="$!"&&s!=="$?"&&s!=="$~"&&s!=="&"||n++}e=e.nextSibling}return null}function Rb(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var s=e.data;if(s==="$"||s==="$!"||s==="$?"||s==="$~"||s==="&"){if(n===0)return e;n--}else s!=="/$"&&s!=="/&"||n++}e=e.previousSibling}return null}function Ob(e,n,s){switch(n=lc(s),e){case"html":if(e=n.documentElement,!e)throw Error(a(452));return e;case"head":if(e=n.head,!e)throw Error(a(453));return e;case"body":if(e=n.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function xl(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Ru(e)}var ls=new Map,kb=new Set;function ic(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var er=z.d;z.d={f:YN,r:VN,D:FN,C:GN,L:qN,m:$N,X:KN,S:XN,M:QN};function YN(){var e=er.f(),n=Wi();return e||n}function VN(e){var n=Lo(e);n!==null&&n.tag===5&&n.type==="form"?$g(n):er.r(e)}var pa=typeof document>"u"?null:document;function _b(e,n,s){var l=pa;if(l&&typeof n=="string"&&n){var u=Wn(n);u='link[rel="'+e+'"][href="'+u+'"]',typeof s=="string"&&(u+='[crossorigin="'+s+'"]'),kb.has(u)||(kb.add(u),e={rel:e,crossOrigin:s,href:n},l.querySelector(u)===null&&(n=l.createElement("link"),vn(n,"link",e),dn(n),l.head.appendChild(n)))}}function FN(e){er.D(e),_b("dns-prefetch",e,null)}function GN(e,n){er.C(e,n),_b("preconnect",e,n)}function qN(e,n,s){er.L(e,n,s);var l=pa;if(l&&e&&n){var u='link[rel="preload"][as="'+Wn(n)+'"]';n==="image"&&s&&s.imageSrcSet?(u+='[imagesrcset="'+Wn(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(u+='[imagesizes="'+Wn(s.imageSizes)+'"]')):u+='[href="'+Wn(e)+'"]';var f=u;switch(n){case"style":f=ha(e);break;case"script":f=ga(e)}ls.has(f)||(e=x({rel:"preload",href:n==="image"&&s&&s.imageSrcSet?void 0:e,as:n},s),ls.set(f,e),l.querySelector(u)!==null||n==="style"&&l.querySelector(bl(f))||n==="script"&&l.querySelector(yl(f))||(n=l.createElement("link"),vn(n,"link",e),dn(n),l.head.appendChild(n)))}}function $N(e,n){er.m(e,n);var s=pa;if(s&&e){var l=n&&typeof n.as=="string"?n.as:"script",u='link[rel="modulepreload"][as="'+Wn(l)+'"][href="'+Wn(e)+'"]',f=u;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=ga(e)}if(!ls.has(f)&&(e=x({rel:"modulepreload",href:e},n),ls.set(f,e),s.querySelector(u)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(yl(f)))return}l=s.createElement("link"),vn(l,"link",e),dn(l),s.head.appendChild(l)}}}function XN(e,n,s){er.S(e,n,s);var l=pa;if(l&&e){var u=Io(l).hoistableStyles,f=ha(e);n=n||"default";var v=u.get(f);if(!v){var R={loading:0,preload:null};if(v=l.querySelector(bl(f)))R.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":n},s),(s=ls.get(f))&&Rf(e,s);var X=v=l.createElement("link");dn(X),vn(X,"link",e),X._p=new Promise(function(ue,ve){X.onload=ue,X.onerror=ve}),X.addEventListener("load",function(){R.loading|=1}),X.addEventListener("error",function(){R.loading|=2}),R.loading|=4,cc(v,n,l)}v={type:"stylesheet",instance:v,count:1,state:R},u.set(f,v)}}}function KN(e,n){er.X(e,n);var s=pa;if(s&&e){var l=Io(s).hoistableScripts,u=ga(e),f=l.get(u);f||(f=s.querySelector(yl(u)),f||(e=x({src:e,async:!0},n),(n=ls.get(u))&&Of(e,n),f=s.createElement("script"),dn(f),vn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(u,f))}}function QN(e,n){er.M(e,n);var s=pa;if(s&&e){var l=Io(s).hoistableScripts,u=ga(e),f=l.get(u);f||(f=s.querySelector(yl(u)),f||(e=x({src:e,async:!0,type:"module"},n),(n=ls.get(u))&&Of(e,n),f=s.createElement("script"),dn(f),vn(f,"link",e),s.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},l.set(u,f))}}function Mb(e,n,s,l){var u=(u=Q.current)?ic(u):null;if(!u)throw Error(a(446));switch(e){case"meta":case"title":return null;case"style":return typeof s.precedence=="string"&&typeof s.href=="string"?(n=ha(s.href),s=Io(u).hoistableStyles,l=s.get(n),l||(l={type:"style",instance:null,count:0,state:null},s.set(n,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(s.rel==="stylesheet"&&typeof s.href=="string"&&typeof s.precedence=="string"){e=ha(s.href);var f=Io(u).hoistableStyles,v=f.get(e);if(v||(u=u.ownerDocument||u,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(e,v),(f=u.querySelector(bl(e)))&&!f._p&&(v.instance=f,v.state.loading=5),ls.has(e)||(s={rel:"preload",as:"style",href:s.href,crossOrigin:s.crossOrigin,integrity:s.integrity,media:s.media,hrefLang:s.hrefLang,referrerPolicy:s.referrerPolicy},ls.set(e,s),f||ZN(u,e,s,v.state))),n&&l===null)throw Error(a(528,""));return v}if(n&&l!==null)throw Error(a(529,""));return null;case"script":return n=s.async,s=s.src,typeof s=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=ga(s),s=Io(u).hoistableScripts,l=s.get(n),l||(l={type:"script",instance:null,count:0,state:null},s.set(n,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,e))}}function ha(e){return'href="'+Wn(e)+'"'}function bl(e){return'link[rel="stylesheet"]['+e+"]"}function Ab(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function ZN(e,n,s,l){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?l.loading=1:(n=e.createElement("link"),l.preload=n,n.addEventListener("load",function(){return l.loading|=1}),n.addEventListener("error",function(){return l.loading|=2}),vn(n,"link",s),dn(n),e.head.appendChild(n))}function ga(e){return'[src="'+Wn(e)+'"]'}function yl(e){return"script[async]"+e}function Db(e,n,s){if(n.count++,n.instance===null)switch(n.type){case"style":var l=e.querySelector('style[data-href~="'+Wn(s.href)+'"]');if(l)return n.instance=l,dn(l),l;var u=x({},s,{"data-href":s.href,"data-precedence":s.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),dn(l),vn(l,"style",u),cc(l,s.precedence,e),n.instance=l;case"stylesheet":u=ha(s.href);var f=e.querySelector(bl(u));if(f)return n.state.loading|=4,n.instance=f,dn(f),f;l=Ab(s),(u=ls.get(u))&&Rf(l,u),f=(e.ownerDocument||e).createElement("link"),dn(f);var v=f;return v._p=new Promise(function(R,X){v.onload=R,v.onerror=X}),vn(f,"link",l),n.state.loading|=4,cc(f,s.precedence,e),n.instance=f;case"script":return f=ga(s.src),(u=e.querySelector(yl(f)))?(n.instance=u,dn(u),u):(l=s,(u=ls.get(f))&&(l=x({},s),Of(l,u)),e=e.ownerDocument||e,u=e.createElement("script"),dn(u),vn(u,"link",l),e.head.appendChild(u),n.instance=u);case"void":return null;default:throw Error(a(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(l=n.instance,n.state.loading|=4,cc(l,s.precedence,e));return n.instance}function cc(e,n,s){for(var l=s.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=l.length?l[l.length-1]:null,f=u,v=0;v<l.length;v++){var R=l[v];if(R.dataset.precedence===n)f=R;else if(f!==u)break}f?f.parentNode.insertBefore(e,f.nextSibling):(n=s.nodeType===9?s.head:s,n.insertBefore(e,n.firstChild))}function Rf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function Of(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var uc=null;function zb(e,n,s){if(uc===null){var l=new Map,u=uc=new Map;u.set(s,l)}else u=uc,l=u.get(s),l||(l=new Map,u.set(s,l));if(l.has(e))return l;for(l.set(e,null),s=s.getElementsByTagName(e),u=0;u<s.length;u++){var f=s[u];if(!(f[za]||f[an]||e==="link"&&f.getAttribute("rel")==="stylesheet")&&f.namespaceURI!=="http://www.w3.org/2000/svg"){var v=f.getAttribute(n)||"";v=e+v;var R=l.get(v);R?R.push(f):l.set(v,[f])}}return l}function Lb(e,n,s){e=e.ownerDocument||e,e.head.insertBefore(s,n==="title"?e.querySelector("head > title"):null)}function JN(e,n,s){if(s===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;return n.rel==="stylesheet"?(e=n.disabled,typeof n.precedence=="string"&&e==null):!0;case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function Ib(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function WN(e,n,s,l){if(s.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(s.state.loading&4)===0){if(s.instance===null){var u=ha(l.href),f=n.querySelector(bl(u));if(f){n=f._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=dc.bind(e),n.then(e,e)),s.state.loading|=4,s.instance=f,dn(f);return}f=n.ownerDocument||n,l=Ab(l),(u=ls.get(u))&&Rf(l,u),f=f.createElement("link"),dn(f);var v=f;v._p=new Promise(function(R,X){v.onload=R,v.onerror=X}),vn(f,"link",l),s.instance=f}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(s,n),(n=s.state.preload)&&(s.state.loading&3)===0&&(e.count++,s=dc.bind(e),n.addEventListener("load",s),n.addEventListener("error",s))}}var kf=0;function ej(e,n){return e.stylesheets&&e.count===0&&mc(e,e.stylesheets),0<e.count||0<e.imgCount?function(s){var l=setTimeout(function(){if(e.stylesheets&&mc(e,e.stylesheets),e.unsuspend){var f=e.unsuspend;e.unsuspend=null,f()}},6e4+n);0<e.imgBytes&&kf===0&&(kf=62500*DN());var u=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&mc(e,e.stylesheets),e.unsuspend)){var f=e.unsuspend;e.unsuspend=null,f()}},(e.imgBytes>kf?50:800)+n);return e.unsuspend=s,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(u)}}:null}function dc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)mc(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var fc=null;function mc(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,fc=new Map,n.forEach(tj,e),fc=null,dc.call(e))}function tj(e,n){if(!(n.state.loading&4)){var s=fc.get(e);if(s)var l=s.get(null);else{s=new Map,fc.set(e,s);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f<u.length;f++){var v=u[f];(v.nodeName==="LINK"||v.getAttribute("media")!=="not all")&&(s.set(v.dataset.precedence,v),l=v)}l&&s.set(null,l)}u=n.instance,v=u.getAttribute("data-precedence"),f=s.get(v)||l,f===l&&s.set(null,u),s.set(v,u),this.count++,l=dc.bind(this),u.addEventListener("load",l),u.addEventListener("error",l),f?f.parentNode.insertBefore(u,f.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(u,e.firstChild)),n.state.loading|=4}}var vl={$$typeof:_,Provider:null,Consumer:null,_currentValue:P,_currentValue2:P,_threadCount:0};function nj(e,n,s,l,u,f,v,R,X){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=at(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=at(0),this.hiddenUpdates=at(null),this.identifierPrefix=l,this.onUncaughtError=u,this.onCaughtError=f,this.onRecoverableError=v,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=X,this.incompleteTransitions=new Map}function Bb(e,n,s,l,u,f,v,R,X,ue,ve,je){return e=new nj(e,n,s,v,X,ue,ve,je,R),n=1,f===!0&&(n|=24),f=Pn(3,null,null,n),e.current=f,f.stateNode=e,n=id(),n.refCount++,e.pooledCache=n,n.refCount++,f.memoizedState={element:l,isDehydrated:s,cache:n},fd(f),e}function Hb(e){return e?(e=$o,e):$o}function Ub(e,n,s,l,u,f){u=Hb(u),l.context===null?l.context=u:l.pendingContext=u,l=Er(n),l.payload={element:s},f=f===void 0?null:f,f!==null&&(l.callback=f),s=Nr(e,l,n),s!==null&&(Dn(s,e,n),Ja(s,e,n))}function Pb(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var s=e.retryLane;e.retryLane=s!==0&&s<n?s:n}}function _f(e,n){Pb(e,n),(e=e.alternate)&&Pb(e,n)}function Yb(e){if(e.tag===13||e.tag===31){var n=eo(e,67108864);n!==null&&Dn(n,e,67108864),_f(e,67108864)}}function Vb(e){if(e.tag===13||e.tag===31){var n=qn();n=hr(n);var s=eo(e,n);s!==null&&Dn(s,e,n),_f(e,n)}}var pc=!0;function sj(e,n,s,l){var u=D.T;D.T=null;var f=z.p;try{z.p=2,Mf(e,n,s,l)}finally{z.p=f,D.T=u}}function rj(e,n,s,l){var u=D.T;D.T=null;var f=z.p;try{z.p=8,Mf(e,n,s,l)}finally{z.p=f,D.T=u}}function Mf(e,n,s,l){if(pc){var u=Af(l);if(u===null)bf(e,n,l,hc,s),Gb(e,l);else if(aj(u,e,n,s,l))l.stopPropagation();else if(Gb(e,l),n&4&&-1<oj.indexOf(e)){for(;u!==null;){var f=Lo(u);if(f!==null)switch(f.tag){case 3:if(f=f.stateNode,f.current.memoizedState.isDehydrated){var v=se(f.pendingLanes);if(v!==0){var R=f;for(R.pendingLanes|=2,R.entangledLanes|=2;v;){var X=1<<31-Rt(v);R.entanglements[1]|=X,v&=~X}Ss(f),(kt&6)===0&&(Zi=Y()+500,pl(0))}}break;case 31:case 13:R=eo(f,2),R!==null&&Dn(R,f,2),Wi(),_f(f,2)}if(f=Af(l),f===null&&bf(e,n,l,hc,s),f===u)break;u=f}u!==null&&l.stopPropagation()}else bf(e,n,l,null,s)}}function Af(e){return e=Du(e),Df(e)}var hc=null;function Df(e){if(hc=null,e=zo(e),e!==null){var n=d(e);if(n===null)e=null;else{var s=n.tag;if(s===13){if(e=m(n),e!==null)return e;e=null}else if(s===31){if(e=g(n),e!==null)return e;e=null}else if(s===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return hc=e,null}function Fb(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch($()){case Te:return 2;case xe:return 8;case ae:case ke:return 32;case Ye:return 268435456;default:return 32}default:return 32}}var zf=!1,Dr=null,zr=null,Lr=null,Sl=new Map,El=new Map,Ir=[],oj="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Gb(e,n){switch(e){case"focusin":case"focusout":Dr=null;break;case"dragenter":case"dragleave":zr=null;break;case"mouseover":case"mouseout":Lr=null;break;case"pointerover":case"pointerout":Sl.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":El.delete(n.pointerId)}}function Nl(e,n,s,l,u,f){return e===null||e.nativeEvent!==f?(e={blockedOn:n,domEventName:s,eventSystemFlags:l,nativeEvent:f,targetContainers:[u]},n!==null&&(n=Lo(n),n!==null&&Yb(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,u!==null&&n.indexOf(u)===-1&&n.push(u),e)}function aj(e,n,s,l,u){switch(n){case"focusin":return Dr=Nl(Dr,e,n,s,l,u),!0;case"dragenter":return zr=Nl(zr,e,n,s,l,u),!0;case"mouseover":return Lr=Nl(Lr,e,n,s,l,u),!0;case"pointerover":var f=u.pointerId;return Sl.set(f,Nl(Sl.get(f)||null,e,n,s,l,u)),!0;case"gotpointercapture":return f=u.pointerId,El.set(f,Nl(El.get(f)||null,e,n,s,l,u)),!0}return!1}function qb(e){var n=zo(e.target);if(n!==null){var s=d(n);if(s!==null){if(n=s.tag,n===13){if(n=m(s),n!==null){e.blockedOn=n,ii(e.priority,function(){Vb(s)});return}}else if(n===31){if(n=g(s),n!==null){e.blockedOn=n,ii(e.priority,function(){Vb(s)});return}}else if(n===3&&s.stateNode.current.memoizedState.isDehydrated){e.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}e.blockedOn=null}function gc(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var s=Af(e.nativeEvent);if(s===null){s=e.nativeEvent;var l=new s.constructor(s.type,s);Au=l,s.target.dispatchEvent(l),Au=null}else return n=Lo(s),n!==null&&Yb(n),e.blockedOn=s,!1;n.shift()}return!0}function $b(e,n,s){gc(e)&&s.delete(n)}function lj(){zf=!1,Dr!==null&&gc(Dr)&&(Dr=null),zr!==null&&gc(zr)&&(zr=null),Lr!==null&&gc(Lr)&&(Lr=null),Sl.forEach($b),El.forEach($b)}function xc(e,n){e.blockedOn===n&&(e.blockedOn=null,zf||(zf=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,lj)))}var bc=null;function Xb(e){bc!==e&&(bc=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){bc===e&&(bc=null);for(var n=0;n<e.length;n+=3){var s=e[n],l=e[n+1],u=e[n+2];if(typeof l!="function"){if(Df(l||s)===null)continue;break}var f=Lo(s);f!==null&&(e.splice(n,3),n-=3,Md(f,{pending:!0,data:u,method:s.method,action:l},l,u))}}))}function xa(e){function n(X){return xc(X,e)}Dr!==null&&xc(Dr,e),zr!==null&&xc(zr,e),Lr!==null&&xc(Lr,e),Sl.forEach(n),El.forEach(n);for(var s=0;s<Ir.length;s++){var l=Ir[s];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Ir.length&&(s=Ir[0],s.blockedOn===null);)qb(s),s.blockedOn===null&&Ir.shift();if(s=(e.ownerDocument||e).$$reactFormReplay,s!=null)for(l=0;l<s.length;l+=3){var u=s[l],f=s[l+1],v=u[Rn]||null;if(typeof f=="function")v||Xb(s);else if(v){var R=null;if(f&&f.hasAttribute("formAction")){if(u=f,v=f[Rn]||null)R=v.formAction;else if(Df(u)!==null)continue}else R=v.action;typeof R=="function"?s[l+1]=R:(s.splice(l,3),l-=3),Xb(s)}}}function Kb(){function e(f){f.canIntercept&&f.info==="react-transition"&&f.intercept({handler:function(){return new Promise(function(v){return u=v})},focusReset:"manual",scroll:"manual"})}function n(){u!==null&&(u(),u=null),l||setTimeout(s,20)}function s(){if(!l&&!navigation.transition){var f=navigation.currentEntry;f&&f.url!=null&&navigation.navigate(f.url,{state:f.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var l=!1,u=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(s,100),function(){l=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),u!==null&&(u(),u=null)}}}function Lf(e){this._internalRoot=e}yc.prototype.render=Lf.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(a(409));var s=n.current,l=qn();Ub(s,l,e,n,null,null)},yc.prototype.unmount=Lf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Ub(e.current,2,null,e,null,null),Wi(),n[Do]=null}};function yc(e){this._internalRoot=e}yc.prototype.unstable_scheduleHydration=function(e){if(e){var n=Ls();e={blockedOn:null,target:e,priority:n};for(var s=0;s<Ir.length&&n!==0&&n<Ir[s].priority;s++);Ir.splice(s,0,e),s===0&&qb(e)}};var Qb=r.version;if(Qb!=="19.2.8")throw Error(a(527,Qb,"19.2.8"));z.findDOMNode=function(e){var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(a(188)):(e=Object.keys(e).join(","),Error(a(268,e)));return e=p(n),e=e!==null?y(e):null,e=e===null?null:e.stateNode,e};var ij={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:D,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var vc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vc.isDisabled&&vc.supportsFiber)try{At=vc.inject(ij),mt=vc}catch{}}return Tl.createRoot=function(e,n){if(!c(e))throw Error(a(299));var s=!1,l="",u=sx,f=rx,v=ox;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(u=n.onUncaughtError),n.onCaughtError!==void 0&&(f=n.onCaughtError),n.onRecoverableError!==void 0&&(v=n.onRecoverableError)),n=Bb(e,1,!1,null,null,s,l,null,u,f,v,Kb),e[Do]=n.current,xf(e),new Lf(n)},Tl.hydrateRoot=function(e,n,s){if(!c(e))throw Error(a(299));var l=!1,u="",f=sx,v=rx,R=ox,X=null;return s!=null&&(s.unstable_strictMode===!0&&(l=!0),s.identifierPrefix!==void 0&&(u=s.identifierPrefix),s.onUncaughtError!==void 0&&(f=s.onUncaughtError),s.onCaughtError!==void 0&&(v=s.onCaughtError),s.onRecoverableError!==void 0&&(R=s.onRecoverableError),s.formState!==void 0&&(X=s.formState)),n=Bb(e,1,!0,n,s??null,l,u,X,f,v,R,Kb),n.context=Hb(null),s=n.current,l=qn(),l=hr(l),u=Er(l),u.callback=null,Nr(s,u,l),s=l,n.current.lanes=s,rt(n,s),Ss(n),e[Do]=n.current,xf(e),new yc(n)},Tl.version="19.2.8",Tl}var ay;function yj(){if(ay)return Hf.exports;ay=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(r){console.error(r)}}return t(),Hf.exports=bj(),Hf.exports}var vj=yj();const ka=["character","setting","location","hook","event","timepoint"],Qm=["belongs_to","owns","masters","ally","rival","mentor","family","kills","appears_in","occurs_at","plot_edge","plants","advances","resolves","depends_on","involves","occurs_in"],Sj="plot_edge",ly=["mystery","relationship","item","character_growth","world_building"],a0=["inner","personal","extra_personal"],Ej=[5,10,15,30,60],iy=30;function ds(t){const r=new Date(t);if(Number.isNaN(r.getTime()))return t;const o=a=>String(a).padStart(2,"0");return`${r.getFullYear()}-${o(r.getMonth()+1)}-${o(r.getDate())} ${o(r.getHours())}:${o(r.getMinutes())}`}function Eo(t){const r=new Date(t);if(Number.isNaN(r.getTime()))return t;const o=Math.floor((Date.now()-r.getTime())/6e4);if(o<1)return"刚刚";if(o<60)return`${o} 分钟前`;const a=Math.floor(o/60);if(a<24)return`${a} 小时前`;const c=Math.floor(a/24);return c<30?`${c} 天前`:ds(t)}const Nj=["outline","entities","canvas","hooks","timeline","trash","settings"];function cy(t){const r=t.replace(/^#/,"").replace(/^\/+/,""),o=r===""?[]:r.split("/").filter(c=>c!=="");return o.length>0&&!Nj.includes(o[0])?{path:"/",segments:[],isFallback:!0}:{path:`/${o.join("/")}`,segments:o,isFallback:!1}}function jj(){const[t,r]=h.useState(()=>cy(window.location.hash));return h.useEffect(()=>{const o=()=>{const a=cy(window.location.hash);r(a),a.isFallback&&window.location.hash!=="#/"&&window.location.replace("#/")};return window.addEventListener("hashchange",o),o(),()=>window.removeEventListener("hashchange",o)},[]),t}function on(t){const r=t.startsWith("#")?t:`#${t.startsWith("/")?t:`/${t}`}`;window.location.hash!==r&&(window.location.hash=r)}const l0=(...t)=>t.filter((r,o,a)=>!!r&&r.trim()!==""&&a.indexOf(r)===o).join(" ").trim();const Tj=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const wj=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(r,o,a)=>a?a.toUpperCase():o.toLowerCase());const uy=t=>{const r=wj(t);return r.charAt(0).toUpperCase()+r.slice(1)};var Vf={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Cj=t=>{for(const r in t)if(r.startsWith("aria-")||r==="role"||r==="title")return!0;return!1},Rj=h.createContext({}),Oj=()=>h.useContext(Rj),kj=h.forwardRef(({color:t,size:r,strokeWidth:o,absoluteStrokeWidth:a,className:c="",children:d,iconNode:m,...g},b)=>{const{size:p=24,strokeWidth:y=2,absoluteStrokeWidth:x=!1,color:S="currentColor",className:j=""}=Oj()??{},E=a??x?Number(o??y)*24/Number(r??p):o??y;return h.createElement("svg",{ref:b,...Vf,width:r??p??Vf.width,height:r??p??Vf.height,stroke:t??S,strokeWidth:E,className:l0("lucide",j,c),...!d&&!Cj(g)&&{"aria-hidden":"true"},...g},[...m.map(([k,O])=>h.createElement(k,O)),...Array.isArray(d)?d:[d]])});const lt=(t,r)=>{const o=h.forwardRef(({className:a,...c},d)=>h.createElement(kj,{ref:d,iconNode:r,className:l0(`lucide-${Tj(uy(t))}`,`lucide-${t}`,a),...c}));return o.displayName=uy(t),o};const _j=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Mj=lt("arrow-up",_j);const Aj=[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]],vm=lt("book-open",Aj);const Dj=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v3",key:"otl347"}],["path",{d:"M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338",key:"7hb8p4"}],["path",{d:"M3 9h5.859",key:"numkqi"}],["path",{d:"M8 2v3",key:"1ioesn"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],zj=lt("calendar-clock",Dj);const Lj=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],i0=lt("check",Lj);const Ij=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Bj=lt("chevron-down",Ij);const Hj=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Zm=lt("chevron-right",Hj);const Uj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],Jm=lt("circle-alert",Uj);const Pj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Wm=lt("circle-check",Pj);const Yj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Vj=lt("circle",Yj);const Fj=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],Gj=lt("download",Fj);const qj=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],ep=lt("eye",qj);const $j=[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]],Xj=lt("fast-forward",$j);const Kj=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],au=lt("grip-vertical",Kj);const Qj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],c0=lt("info",Qj);const Zj=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Jj=lt("layout-grid",Zj);const Wj=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],eT=lt("list-ordered",Wj);const tT=[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]],nT=lt("list-tree",tT);const sT=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Yl=lt("loader-circle",sT);const rT=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Vl=lt("message-square",rT);const oT=[["path",{d:"M5 12h14",key:"1ays0h"}]],aT=lt("minus",oT);const lT=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],iT=lt("moon",lT);const cT=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],uT=lt("network",cT);const dT=[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],fT=lt("octagon-x",dT);const mT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],pT=lt("panel-left-close",mT);const hT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],gT=lt("panel-left-open",hT);const xT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],bT=lt("panel-right-close",xT);const yT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],vT=lt("panel-right-open",yT);const ST=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],ei=lt("pencil",ST);const ET=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],NT=lt("pin",ET);const jT=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],lu=lt("plus",jT);const TT=[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]],wT=lt("puzzle",TT);const CT=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],RT=lt("refresh-cw",CT);const OT=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],kT=lt("rotate-ccw",OT);const _T=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],MT=lt("send",_T);const AT=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],DT=lt("settings",AT);const zT=[["path",{d:"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z",key:"1bo67w"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}],["circle",{cx:"17.5",cy:"17.5",r:"3.5",key:"w3z12y"}]],LT=lt("shapes",zT);const IT=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],u0=lt("sparkles",IT);const BT=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],HT=lt("sun",BT);const UT=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],ti=lt("trash-2",UT);const PT=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],tp=lt("triangle-alert",PT);const YT=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],VT=lt("upload",YT);const FT=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],GT=lt("wrench",FT);const qT=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],hs=lt("x",qT);function np(t){const[r,o]=h.useState(()=>window.matchMedia(t).matches);return h.useEffect(()=>{const a=window.matchMedia(t),c=d=>o(d.matches);return o(a.matches),a.addEventListener("change",c),()=>a.removeEventListener("change",c)},[t]),r}const Fl=160,sp=480,Gl=240,rp=720,$T=320,d0="ai-editor:panels",dy=1024,Sm=1440;function ql(t,r,o){return Math.round(Math.min(Math.max(t,r),o))}function Sc(t){const r=Number.isFinite(t)&&t>0?t:Sm;return{sidebarWidth:r<dy?Fl:ql(r*.1,Fl,sp),chatWidth:r<dy?Gl:ql(r*.4,Gl,rp),collapsedSidebar:!1,collapsedChat:!1}}function XT(t,r){if(!t)return Sc(r);let o;try{o=JSON.parse(t)}catch{return Sc(r)}if(typeof o!="object"||o===null||Array.isArray(o))return Sc(r);const a=o,c=a.sidebarWidth,d=a.chatWidth;return typeof c!="number"||!Number.isFinite(c)||typeof d!="number"||!Number.isFinite(d)?Sc(r):{sidebarWidth:ql(c,Fl,sp),chatWidth:ql(d,Gl,rp),collapsedSidebar:a.collapsedSidebar===!0,collapsedChat:a.collapsedChat===!0}}function fy(t){return JSON.stringify({sidebarWidth:t.sidebarWidth,chatWidth:t.chatWidth,collapsedSidebar:t.collapsedSidebar,collapsedChat:t.collapsedChat})}function KT(){if(typeof window>"u")return null;try{return window.localStorage.getItem(d0)}catch{return null}}function my(t){try{window.localStorage.setItem(d0,t)}catch{}}function QT(){if(typeof window>"u")return Sm;const t=window.innerWidth;return Number.isFinite(t)&&t>0?t:Sm}function ZT(){const[t,r]=h.useState(()=>XT(KT(),QT())),[o,a]=h.useState(null),c=np("(min-width: 1024px)"),d=h.useRef(null);h.useEffect(()=>{!c&&d.current!==null&&(d.current=null,a(null))},[c]);function m(x){const S=x.lastX-x.startX,[j,E]=x.side==="sidebar"?[Fl,sp]:[Gl,rp],k=x.side==="sidebar"?x.startWidth+S:x.startWidth-S;return ql(k,j,E)}function g(x,S){const j=x==="sidebar"?t.sidebarWidth:t.chatWidth;d.current={side:x,startX:S,startWidth:j,lastX:S},a(x)}function b(x,S){const j=d.current;if(!j||j.side!==x)return;j.lastX=S;const E=m(j);r(k=>({...k,...x==="sidebar"?{sidebarWidth:E}:{chatWidth:E}}))}function p(){const x=d.current;if(!x)return;const S=m(x);d.current=null,a(null),r(j=>{const E={...j,...x.side==="sidebar"?{sidebarWidth:S}:{chatWidth:S}};return my(fy(E)),E})}function y(x){r(S=>{const j=x==="sidebar"?{...S,collapsedSidebar:!S.collapsedSidebar}:{...S,collapsedChat:!S.collapsedChat};return my(fy(j)),j})}return{layout:t,isDesktop:c,dragSide:o,toggleCollapse:y,startResize:g,moveResize:b,endResize:p}}function f0(t){var r,o,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var c=t.length;for(r=0;r<c;r++)t[r]&&(o=f0(t[r]))&&(a&&(a+=" "),a+=o)}else for(o in t)t[o]&&(a&&(a+=" "),a+=o);return a}function m0(){for(var t,r,o=0,a="",c=arguments.length;o<c;o++)(t=arguments[o])&&(r=f0(t))&&(a&&(a+=" "),a+=r);return a}const JT=(t,r)=>{const o=new Array(t.length+r.length);for(let a=0;a<t.length;a++)o[a]=t[a];for(let a=0;a<r.length;a++)o[t.length+a]=r[a];return o},WT=(t,r)=>({classGroupId:t,validator:r}),p0=(t=new Map,r=null,o)=>({nextPart:t,validators:r,classGroupId:o}),qc="-",py=[],ew="arbitrary..",tw=t=>{const r=sw(t),{conflictingClassGroups:o,conflictingClassGroupModifiers:a}=t;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return nw(m);const g=m.split(qc),b=g[0]===""&&g.length>1?1:0;return h0(g,b,r)},getConflictingClassGroupIds:(m,g)=>{if(g){const b=a[m],p=o[m];return b?p?JT(p,b):b:p||py}return o[m]||py}}},h0=(t,r,o)=>{if(t.length-r===0)return o.classGroupId;const c=t[r],d=o.nextPart.get(c);if(d){const p=h0(t,r+1,d);if(p)return p}const m=o.validators;if(m===null)return;const g=r===0?t.join(qc):t.slice(r).join(qc),b=m.length;for(let p=0;p<b;p++){const y=m[p];if(y.validator(g))return y.classGroupId}},nw=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=t.slice(1,-1),o=r.indexOf(":"),a=r.slice(0,o);return a?ew+a:void 0})(),sw=t=>{const{theme:r,classGroups:o}=t;return rw(o,r)},rw=(t,r)=>{const o=p0();for(const a in t){const c=t[a];op(c,o,a,r)}return o},op=(t,r,o,a)=>{const c=t.length;for(let d=0;d<c;d++){const m=t[d];ow(m,r,o,a)}},ow=(t,r,o,a)=>{if(typeof t=="string"){aw(t,r,o);return}if(typeof t=="function"){lw(t,r,o,a);return}iw(t,r,o,a)},aw=(t,r,o)=>{const a=t===""?r:g0(r,t);a.classGroupId=o},lw=(t,r,o,a)=>{if(cw(t)){op(t(a),r,o,a);return}r.validators===null&&(r.validators=[]),r.validators.push(WT(o,t))},iw=(t,r,o,a)=>{const c=Object.entries(t),d=c.length;for(let m=0;m<d;m++){const[g,b]=c[m];op(b,g0(r,g),o,a)}},g0=(t,r)=>{let o=t;const a=r.split(qc),c=a.length;for(let d=0;d<c;d++){const m=a[d];let g=o.nextPart.get(m);g||(g=p0(),o.nextPart.set(m,g)),o=g}return o},cw=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,uw=t=>{if(t<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),a=Object.create(null);const c=(d,m)=>{o[d]=m,r++,r>t&&(r=0,a=o,o=Object.create(null))};return{get(d){let m=o[d];if(m!==void 0)return m;if((m=a[d])!==void 0)return c(d,m),m},set(d,m){d in o?o[d]=m:c(d,m)}}},Em="!",hy=":",dw=[],gy=(t,r,o,a,c)=>({modifiers:t,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:a,isExternal:c}),fw=t=>{const{prefix:r,experimentalParseClassName:o}=t;let a=c=>{const d=[];let m=0,g=0,b=0,p;const y=c.length;for(let k=0;k<y;k++){const O=c[k];if(m===0&&g===0){if(O===hy){d.push(c.slice(b,k)),b=k+1;continue}if(O==="/"){p=k;continue}}O==="["?m++:O==="]"?m--:O==="("?g++:O===")"&&g--}const x=d.length===0?c:c.slice(b);let S=x,j=!1;x.endsWith(Em)?(S=x.slice(0,-1),j=!0):x.startsWith(Em)&&(S=x.slice(1),j=!0);const E=p&&p>b?p-b:void 0;return gy(d,j,S,E)};if(r){const c=r+hy,d=a;a=m=>m.startsWith(c)?d(m.slice(c.length)):gy(dw,!1,m,void 0,!0)}if(o){const c=a;a=d=>o({className:d,parseClassName:c})}return a},mw=t=>{const r=new Map;return t.orderSensitiveModifiers.forEach((o,a)=>{r.set(o,1e6+a)}),o=>{const a=[];let c=[];for(let d=0;d<o.length;d++){const m=o[d],g=m[0]==="[",b=r.has(m);g||b?(c.length>0&&(c.sort(),a.push(...c),c=[]),a.push(m)):c.push(m)}return c.length>0&&(c.sort(),a.push(...c)),a}},pw=t=>({cache:uw(t.cacheSize),parseClassName:fw(t),sortModifiers:mw(t),postfixLookupClassGroupIds:hw(t),...tw(t)}),hw=t=>{const r=Object.create(null),o=t.postfixLookupClassGroups;if(o)for(let a=0;a<o.length;a++)r[o[a]]=!0;return r},gw=/\s+/,xw=(t,r)=>{const{parseClassName:o,getClassGroupId:a,getConflictingClassGroupIds:c,sortModifiers:d,postfixLookupClassGroupIds:m}=r,g=[],b=t.trim().split(gw);let p="";for(let y=b.length-1;y>=0;y-=1){const x=b[y],{isExternal:S,modifiers:j,hasImportantModifier:E,baseClassName:k,maybePostfixModifierPosition:O}=o(x);if(S){p=x+(p.length>0?" "+p:p);continue}let N=!!O,T;if(N){const L=k.substring(0,O);T=a(L);const C=T&&m[T]?a(k):void 0;C&&C!==T&&(T=C,N=!1)}else T=a(k);if(!T){if(!N){p=x+(p.length>0?" "+p:p);continue}if(T=a(k),!T){p=x+(p.length>0?" "+p:p);continue}N=!1}const _=j.length===0?"":j.length===1?j[0]:d(j).join(":"),w=E?_+Em:_,V=w+T;if(g.indexOf(V)>-1)continue;g.push(V);const M=c(T,N);for(let L=0;L<M.length;++L){const C=M[L];g.push(w+C)}p=x+(p.length>0?" "+p:p)}return p},bw=(...t)=>{let r=0,o,a,c="";for(;r<t.length;)(o=t[r++])&&(a=x0(o))&&(c&&(c+=" "),c+=a);return c},x0=t=>{if(typeof t=="string")return t;let r,o="";for(let a=0;a<t.length;a++)t[a]&&(r=x0(t[a]))&&(o&&(o+=" "),o+=r);return o},yw=(t,...r)=>{let o,a,c,d;const m=b=>{const p=r.reduce((y,x)=>x(y),t());return o=pw(p),a=o.cache.get,c=o.cache.set,d=g,g(b)},g=b=>{const p=a(b);if(p)return p;const y=xw(b,o);return c(b,y),y};return d=m,(...b)=>d(bw(...b))},vw=[],cn=t=>{const r=o=>o[t]||vw;return r.isThemeGetter=!0,r},b0=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,y0=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Sw=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Ew=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Nw=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,jw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Tw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ww=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Hr=t=>Sw.test(t),ft=t=>!!t&&!Number.isNaN(Number(t)),Es=t=>!!t&&Number.isInteger(Number(t)),Ff=t=>t.endsWith("%")&&ft(t.slice(0,-1)),tr=t=>Ew.test(t),v0=()=>!0,Cw=t=>Nw.test(t)&&!jw.test(t),ap=()=>!1,Rw=t=>Tw.test(t),Ow=t=>ww.test(t),kw=t=>!Fe(t)&&!qe(t),_w=t=>t.startsWith("@container")&&(t[10]==="/"&&t[11]!==void 0||t[11]==="s"&&t[16]!==void 0&&t.startsWith("-size/",10)||t[11]==="n"&&t[18]!==void 0&&t.startsWith("-normal/",10)),Mw=t=>$r(t,N0,ap),Fe=t=>b0.test(t),po=t=>$r(t,j0,Cw),xy=t=>$r(t,Uw,ft),Aw=t=>$r(t,w0,v0),Dw=t=>$r(t,T0,ap),by=t=>$r(t,S0,ap),zw=t=>$r(t,E0,Ow),Ec=t=>$r(t,C0,Rw),qe=t=>y0.test(t),wl=t=>Ro(t,j0),Lw=t=>Ro(t,T0),yy=t=>Ro(t,S0),Iw=t=>Ro(t,N0),Bw=t=>Ro(t,E0),Nc=t=>Ro(t,C0,!0),Hw=t=>Ro(t,w0,!0),$r=(t,r,o)=>{const a=b0.exec(t);return a?a[1]?r(a[1]):o(a[2]):!1},Ro=(t,r,o=!1)=>{const a=y0.exec(t);return a?a[1]?r(a[1]):o:!1},S0=t=>t==="position"||t==="percentage",E0=t=>t==="image"||t==="url",N0=t=>t==="length"||t==="size"||t==="bg-size",j0=t=>t==="length",Uw=t=>t==="number",T0=t=>t==="family-name",w0=t=>t==="number"||t==="weight",C0=t=>t==="shadow",Pw=()=>{const t=cn("color"),r=cn("font"),o=cn("text"),a=cn("font-weight"),c=cn("tracking"),d=cn("leading"),m=cn("breakpoint"),g=cn("container"),b=cn("spacing"),p=cn("radius"),y=cn("shadow"),x=cn("inset-shadow"),S=cn("text-shadow"),j=cn("drop-shadow"),E=cn("blur"),k=cn("perspective"),O=cn("aspect"),N=cn("ease"),T=cn("animate"),_=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...w(),qe,Fe],M=()=>["auto","hidden","clip","visible","scroll"],L=()=>["auto","contain","none"],C=()=>[qe,Fe,b],Z=()=>[Hr,"full","auto",...C()],re=()=>[Es,"none","subgrid",qe,Fe],ie=()=>["auto",{span:["full",Es,qe,Fe]},Es,qe,Fe],te=()=>[Es,"auto",qe,Fe],K=()=>["auto","min","max","fr",qe,Fe],ne=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],D=()=>["auto",...C()],z=()=>[Hr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],P=()=>[Hr,"screen","full","dvw","lvw","svw","min","max","fit",...C()],U=()=>[Hr,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],F=()=>[t,qe,Fe],A=()=>[...w(),yy,by,{position:[qe,Fe]}],H=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",Iw,Mw,{size:[qe,Fe]}],B=()=>[Ff,wl,po],G=()=>["","none","full",p,qe,Fe],Q=()=>["",ft,wl,po],he=()=>["solid","dashed","dotted","double"],le=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>[ft,Ff,yy,by],Ue=()=>["","none",E,qe,Fe],Le=()=>["none",ft,qe,Fe],we=()=>["none",ft,qe,Fe],Be=()=>[ft,qe,Fe],ge=()=>[Hr,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[tr],breakpoint:[tr],color:[v0],container:[tr],"drop-shadow":[tr],ease:["in","out","in-out"],font:[kw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[tr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[tr],shadow:[tr],spacing:["px",ft],text:[tr],"text-shadow":[tr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Hr,Fe,qe,O]}],container:["container"],"container-type":[{"@container":["","normal","size",qe,Fe]}],"container-named":[_w],columns:[{columns:[ft,Fe,qe,g]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:V()}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Z()}],"inset-x":[{"inset-x":Z()}],"inset-y":[{"inset-y":Z()}],start:[{"inset-s":Z(),start:Z()}],end:[{"inset-e":Z(),end:Z()}],"inset-bs":[{"inset-bs":Z()}],"inset-be":[{"inset-be":Z()}],top:[{top:Z()}],right:[{right:Z()}],bottom:[{bottom:Z()}],left:[{left:Z()}],visibility:["visible","invisible","collapse"],z:[{z:[Es,"auto",qe,Fe]}],basis:[{basis:[Hr,"full","auto",g,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ft,Hr,"auto","initial","none",Fe]}],grow:[{grow:["",ft,qe,Fe]}],shrink:[{shrink:["",ft,qe,Fe]}],order:[{order:[Es,"first","last","none",qe,Fe]}],"grid-cols":[{"grid-cols":re()}],"col-start-end":[{col:ie()}],"col-start":[{"col-start":te()}],"col-end":[{"col-end":te()}],"grid-rows":[{"grid-rows":re()}],"row-start-end":[{row:ie()}],"row-start":[{"row-start":te()}],"row-end":[{"row-end":te()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":K()}],"auto-rows":[{"auto-rows":K()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...ne(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...ne()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":ne()}],"place-items":[{"place-items":[...W(),"baseline"]}],"place-self":[{"place-self":["auto",...W()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:D()}],mx:[{mx:D()}],my:[{my:D()}],ms:[{ms:D()}],me:[{me:D()}],mbs:[{mbs:D()}],mbe:[{mbe:D()}],mt:[{mt:D()}],mr:[{mr:D()}],mb:[{mb:D()}],ml:[{ml:D()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:z()}],"inline-size":[{inline:["auto",...P()]}],"min-inline-size":[{"min-inline":["auto",...P()]}],"max-inline-size":[{"max-inline":["none",...P()]}],"block-size":[{block:["auto",...U()]}],"min-block-size":[{"min-block":["auto",...U()]}],"max-block-size":[{"max-block":["none",...U()]}],w:[{w:[g,"screen",...z()]}],"min-w":[{"min-w":[g,"screen","none",...z()]}],"max-w":[{"max-w":[g,"screen","none","prose",{screen:[m]},...z()]}],h:[{h:["screen","lh",...z()]}],"min-h":[{"min-h":["screen","lh","none",...z()]}],"max-h":[{"max-h":["screen","lh",...z()]}],"font-size":[{text:["base",o,wl,po]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Hw,Aw]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ff,Fe]}],"font-family":[{font:[Lw,Dw,r]}],"font-features":[{"font-features":[Fe]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,qe,Fe]}],"line-clamp":[{"line-clamp":[ft,"none",qe,xy]}],leading:[{leading:[d,...C()]}],"list-image":[{"list-image":["none",qe,Fe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",qe,Fe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:F()}],"text-color":[{text:F()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...he(),"wavy"]}],"text-decoration-thickness":[{decoration:[ft,"from-font","auto",qe,po]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[ft,"auto",qe,Fe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"tab-size":[{tab:[Es,qe,Fe]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",qe,Fe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",qe,Fe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:A()}],"bg-repeat":[{bg:H()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Es,qe,Fe],radial:["",qe,Fe],conic:[Es,qe,Fe]},Bw,zw]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from:B()}],"gradient-via-pos":[{via:B()}],"gradient-to-pos":[{to:B()}],"gradient-from":[{from:F()}],"gradient-via":[{via:F()}],"gradient-to":[{to:F()}],rounded:[{rounded:G()}],"rounded-s":[{"rounded-s":G()}],"rounded-e":[{"rounded-e":G()}],"rounded-t":[{"rounded-t":G()}],"rounded-r":[{"rounded-r":G()}],"rounded-b":[{"rounded-b":G()}],"rounded-l":[{"rounded-l":G()}],"rounded-ss":[{"rounded-ss":G()}],"rounded-se":[{"rounded-se":G()}],"rounded-ee":[{"rounded-ee":G()}],"rounded-es":[{"rounded-es":G()}],"rounded-tl":[{"rounded-tl":G()}],"rounded-tr":[{"rounded-tr":G()}],"rounded-br":[{"rounded-br":G()}],"rounded-bl":[{"rounded-bl":G()}],"border-w":[{border:Q()}],"border-w-x":[{"border-x":Q()}],"border-w-y":[{"border-y":Q()}],"border-w-s":[{"border-s":Q()}],"border-w-e":[{"border-e":Q()}],"border-w-bs":[{"border-bs":Q()}],"border-w-be":[{"border-be":Q()}],"border-w-t":[{"border-t":Q()}],"border-w-r":[{"border-r":Q()}],"border-w-b":[{"border-b":Q()}],"border-w-l":[{"border-l":Q()}],"divide-x":[{"divide-x":Q()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Q()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...he(),"hidden","none"]}],"divide-style":[{divide:[...he(),"hidden","none"]}],"border-color":[{border:F()}],"border-color-x":[{"border-x":F()}],"border-color-y":[{"border-y":F()}],"border-color-s":[{"border-s":F()}],"border-color-e":[{"border-e":F()}],"border-color-bs":[{"border-bs":F()}],"border-color-be":[{"border-be":F()}],"border-color-t":[{"border-t":F()}],"border-color-r":[{"border-r":F()}],"border-color-b":[{"border-b":F()}],"border-color-l":[{"border-l":F()}],"divide-color":[{divide:F()}],"outline-style":[{outline:[...he(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ft,qe,Fe]}],"outline-w":[{outline:["",ft,wl,po]}],"outline-color":[{outline:F()}],shadow:[{shadow:["","none",y,Nc,Ec]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":["none",x,Nc,Ec]}],"inset-shadow-color":[{"inset-shadow":F()}],"ring-w":[{ring:Q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:F()}],"ring-offset-w":[{"ring-offset":[ft,po]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":Q()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":["none",S,Nc,Ec]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[ft,qe,Fe]}],"mix-blend":[{"mix-blend":[...le(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":le()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ft]}],"mask-image-linear-from-pos":[{"mask-linear-from":de()}],"mask-image-linear-to-pos":[{"mask-linear-to":de()}],"mask-image-linear-from-color":[{"mask-linear-from":F()}],"mask-image-linear-to-color":[{"mask-linear-to":F()}],"mask-image-t-from-pos":[{"mask-t-from":de()}],"mask-image-t-to-pos":[{"mask-t-to":de()}],"mask-image-t-from-color":[{"mask-t-from":F()}],"mask-image-t-to-color":[{"mask-t-to":F()}],"mask-image-r-from-pos":[{"mask-r-from":de()}],"mask-image-r-to-pos":[{"mask-r-to":de()}],"mask-image-r-from-color":[{"mask-r-from":F()}],"mask-image-r-to-color":[{"mask-r-to":F()}],"mask-image-b-from-pos":[{"mask-b-from":de()}],"mask-image-b-to-pos":[{"mask-b-to":de()}],"mask-image-b-from-color":[{"mask-b-from":F()}],"mask-image-b-to-color":[{"mask-b-to":F()}],"mask-image-l-from-pos":[{"mask-l-from":de()}],"mask-image-l-to-pos":[{"mask-l-to":de()}],"mask-image-l-from-color":[{"mask-l-from":F()}],"mask-image-l-to-color":[{"mask-l-to":F()}],"mask-image-x-from-pos":[{"mask-x-from":de()}],"mask-image-x-to-pos":[{"mask-x-to":de()}],"mask-image-x-from-color":[{"mask-x-from":F()}],"mask-image-x-to-color":[{"mask-x-to":F()}],"mask-image-y-from-pos":[{"mask-y-from":de()}],"mask-image-y-to-pos":[{"mask-y-to":de()}],"mask-image-y-from-color":[{"mask-y-from":F()}],"mask-image-y-to-color":[{"mask-y-to":F()}],"mask-image-radial":[{"mask-radial":[qe,Fe]}],"mask-image-radial-from-pos":[{"mask-radial-from":de()}],"mask-image-radial-to-pos":[{"mask-radial-to":de()}],"mask-image-radial-from-color":[{"mask-radial-from":F()}],"mask-image-radial-to-color":[{"mask-radial-to":F()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[ft]}],"mask-image-conic-from-pos":[{"mask-conic-from":de()}],"mask-image-conic-to-pos":[{"mask-conic-to":de()}],"mask-image-conic-from-color":[{"mask-conic-from":F()}],"mask-image-conic-to-color":[{"mask-conic-to":F()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:A()}],"mask-repeat":[{mask:H()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",qe,Fe]}],filter:[{filter:["","none",qe,Fe]}],blur:[{blur:Ue()}],brightness:[{brightness:[ft,qe,Fe]}],contrast:[{contrast:[ft,qe,Fe]}],"drop-shadow":[{"drop-shadow":["","none",j,Nc,Ec]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:["",ft,qe,Fe]}],"hue-rotate":[{"hue-rotate":[ft,qe,Fe]}],invert:[{invert:["",ft,qe,Fe]}],saturate:[{saturate:[ft,qe,Fe]}],sepia:[{sepia:["",ft,qe,Fe]}],"backdrop-filter":[{"backdrop-filter":["","none",qe,Fe]}],"backdrop-blur":[{"backdrop-blur":Ue()}],"backdrop-brightness":[{"backdrop-brightness":[ft,qe,Fe]}],"backdrop-contrast":[{"backdrop-contrast":[ft,qe,Fe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ft,qe,Fe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ft,qe,Fe]}],"backdrop-invert":[{"backdrop-invert":["",ft,qe,Fe]}],"backdrop-opacity":[{"backdrop-opacity":[ft,qe,Fe]}],"backdrop-saturate":[{"backdrop-saturate":[ft,qe,Fe]}],"backdrop-sepia":[{"backdrop-sepia":["",ft,qe,Fe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",qe,Fe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ft,"initial",qe,Fe]}],ease:[{ease:["linear","initial",N,qe,Fe]}],delay:[{delay:[ft,qe,Fe]}],animate:[{animate:["none",T,qe,Fe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,qe,Fe]}],"perspective-origin":[{"perspective-origin":V()}],rotate:[{rotate:Le()}],"rotate-x":[{"rotate-x":Le()}],"rotate-y":[{"rotate-y":Le()}],"rotate-z":[{"rotate-z":Le()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:Be()}],"skew-x":[{"skew-x":Be()}],"skew-y":[{"skew-y":Be()}],transform:[{transform:[qe,Fe,"","none","gpu","cpu"]}],"transform-origin":[{origin:V()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ge()}],"translate-x":[{"translate-x":ge()}],"translate-y":[{"translate-y":ge()}],"translate-z":[{"translate-z":ge()}],"translate-none":["translate-none"],zoom:[{zoom:[Es,qe,Fe]}],accent:[{accent:F()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:F()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",qe,Fe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":F()}],"scrollbar-track-color":[{"scrollbar-track":F()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",qe,Fe]}],fill:[{fill:["none",...F()]}],"stroke-w":[{stroke:[ft,wl,po,xy]}],stroke:[{stroke:["none",...F()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Yw=yw(Pw);function Ee(...t){return Yw(m0(t))}const Dl="flex shrink-0 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",zl={bar:"h-8 w-6",sm:"size-7",md:"size-8"},Vw="disabled:pointer-events-none disabled:opacity-50",Xn="rounded-md border border-border bg-background px-3 py-1.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",ni="rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",_t="animate-pulse rounded bg-muted",Fw="rounded-xl border border-border bg-card p-4",vy=t=>{let r;const o=new Set,a=(p,y)=>{const x=typeof p=="function"?p(r):p;if(!Object.is(x,r)){const S=r;r=y??(typeof x!="object"||x===null)?x:Object.assign({},r,x),o.forEach(j=>j(r,S))}},c=()=>r,g={setState:a,getState:c,getInitialState:()=>b,subscribe:p=>(o.add(p),()=>o.delete(p))},b=r=t(a,c,g);return g},Gw=(t=>t?vy(t):vy),qw=t=>t;function $w(t,r=qw){const o=ze.useSyncExternalStore(t.subscribe,ze.useCallback(()=>r(t.getState()),[t,r]),ze.useCallback(()=>r(t.getInitialState()),[t,r]));return ze.useDebugValue(o),o}const Sy=t=>{const r=Gw(t),o=a=>$w(r,a);return Object.assign(o,r),o},lp=(t=>t?Sy(t):Sy),Xw="/api/v1",ut="CLIENT_NETWORK_ERROR";class Ae extends Error{code;constructor(r,o){super(o),this.name="ApiError",this.code=r}}function Kw(t){const r=new URLSearchParams;for(const[a,c]of Object.entries(t))c!=null&&r.set(a,String(c));const o=r.toString();return o?`?${o}`:""}function R0(t,r){const o=t.startsWith("/")?t:`/${t}`;return`${Xw}${o}${Kw(r??{})}`}function Qw(t){return typeof t=="object"&&t!==null&&t.success===!0}function O0(t){if(typeof t!="object"||t===null)return!1;const r=t.error;return t.success===!1&&typeof r=="object"&&r!==null&&typeof r.code=="string"&&typeof r.message=="string"}async function it(t,r={}){const{method:o="GET",body:a,query:c,headers:d,signal:m}=r;let g;try{g=await fetch(R0(t,c),{method:o,headers:a===void 0||a instanceof FormData?d:{"Content-Type":"application/json",...d},body:a===void 0?void 0:a instanceof FormData?a:JSON.stringify(a),signal:m})}catch(p){throw new Ae(ut,p instanceof Error?p.message:"网络请求失败")}const b=await g.json().catch(()=>null);if(Qw(b))return b.data;throw O0(b)?new Ae(b.error.code,b.error.message):new Ae(ut,`非预期响应(HTTP ${g.status})`)}function Zw(){return it("/project/config")}function Jw(t){return it("/project/config",{method:"PUT",body:t})}function Ww(){return it("/outline")}function e2(t){return it("/outline",{method:"POST",body:t})}function k0(t,r){return it(`/outline/${t}`,{method:"PUT",body:r})}function Ey(t,r){return it(`/outline/${t}/move`,{method:"PUT",body:r})}function t2(t){return it(`/outline/${t}`,{method:"DELETE"})}function n2(){return it("/trash")}function s2(t,r){return it(`/trash/entity/${t}/${r}/restore`,{method:"POST"})}function r2(t,r){return it(`/trash/entity/${t}/${r}`,{method:"DELETE"})}function Ny(t){return it(`/trash/outline/${t}/restore`,{method:"POST"})}function o2(t){return it(`/trash/outline/${t}`,{method:"DELETE"})}function jn(t,r={}){return it(`/entity/${t}`,{query:r})}function bo(t,r){return it(`/entity/${t}/${r}`)}function $c(t,r){return it(`/entity/${t}`,{method:"POST",body:r})}function No(t,r,o){return it(`/entity/${t}/${r}`,{method:"PUT",body:o})}function iu(t,r){return it(`/entity/${t}/${r}`,{method:"DELETE"})}function a2(t,r){return it(`/entity/event/${t}/move`,{method:"PUT",body:r})}function l2(t,r){return it(`/entity/timepoint/${t}/move`,{method:"PUT",body:r})}function _0(t,r){return it(`/entity/event/${t}/move_to`,{method:"POST",body:r})}function Fr(t){return it("/relation",{query:{source_type:t.source_type,source_id:t.source_id,target_type:t.target_type,target_id:t.target_id,relation_type:t.relation_type,depth:t.depth}})}function cr(t){return it("/relation",{method:"POST",body:t})}function Ca(t){return it(`/relation/${t}`,{method:"DELETE"})}function i2(t,r){return it(`/relation/${t}`,{method:"PUT",body:{metadata:r}})}function c2(t){return it(`/delta/node/${t}`)}function u2(t){return it("/delta/compute",{method:"POST",body:t})}function ip(t){return it("/delta",{method:"POST",body:t})}function d2(){return it("/project/list")}function f2(t,r){return it("/project/create",{method:"POST",body:{path:t,...r!==void 0?{config:r}:{}}})}function m2(t){return it("/project/open",{method:"POST",body:{path:t}})}function p2(){return it("/project/close",{method:"POST"})}function h2(t){if(t!==null){const r=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(t);if(r)try{return decodeURIComponent(r[1])}catch{}const o=/filename\s*=\s*"?([^";]+)"?/i.exec(t);if(o)return o[1]}return"project.zip"}async function g2(){let t;try{t=await fetch(R0("/project/export"))}catch(o){throw new Ae(ut,o instanceof Error?o.message:"网络请求失败")}const r=t.headers.get("content-type")??"";if(t.ok&&(r.includes("zip")||r.includes("octet-stream")))return{blob:await t.blob(),filename:h2(t.headers.get("content-disposition"))};if(r.includes("application/json")){const o=await t.json().catch(()=>null);if(O0(o))throw new Ae(o.error.code,o.error.message)}throw new Ae(ut,`非预期响应(HTTP ${t.status})`)}async function x2(t,r){const o=new FormData;return o.append("file",t,"backup.zip"),o.append("name",r),it("/project/import",{method:"POST",body:o})}function b2(){return it("/project/backups")}function y2(t){return it("/project/backup",{method:"POST",...t!==void 0?{body:{name:t}}:{}})}function v2(t){return it("/project/backup/restore",{method:"POST",body:{fileName:t}})}function S2(t,r){const o=r?.trim()??"";return it("/project/backup/rename",{method:"POST",body:{fileName:t,name:o}})}function E2(t){return it("/project/rename",{method:"POST",body:{name:t}})}function N2(){return it("/settings/llm")}function Gf(t){return it("/settings/llm",{method:"PUT",body:t})}function j2(){return it("/chat/sessions").then(t=>t.sessions)}function T2(t){return it(`/chat/sessions/${t}/messages`)}function w2(t){return it(`/proposal/${t}/confirm`,{method:"POST"})}function C2(t){return it(`/proposal/${t}/reject`,{method:"POST"})}const Nm=3e3;let R2=0;const Re=lp((t,r)=>({error:null,showError:(o,a)=>t({error:{code:o,message:a}}),clearError:()=>t({error:null}),toast:null,showToast:(o,a="success")=>{const c=++R2;t({toast:{id:c,kind:a,text:o}}),setTimeout(()=>{t(d=>d.toast?.id===c?{toast:null}:{})},Nm)},clearToast:()=>t({toast:null}),confirmState:null,confirm:o=>new Promise(a=>{t({confirmState:{...o,resolve:a}})}),resolveConfirm:o=>{const a=r().confirmState;a&&(a.resolve(o),t({confirmState:null}))},focusOutlineNodeId:null,setFocusOutlineNode:o=>t({focusOutlineNodeId:o}),clearFocusOutlineNode:()=>t({focusOutlineNodeId:null}),dataVersion:0,notifyDataChanged:()=>t(o=>({dataVersion:o.dataVersion+1}))})),He=lp((t,r)=>({config:null,configLoading:!1,loadError:null,outline:null,outlineLoading:!1,bookshelf:null,bookshelfLoading:!1,bookshelfError:null,loadConfig:async()=>{if(!r().configLoading){t({configLoading:!0});try{const o=await Zw();t({config:o,loadError:null})}catch(o){const a=o instanceof Ae?o.code:"CLIENT_NETWORK_ERROR";t({config:null,loadError:a})}finally{t({configLoading:!1})}}},updateConfig:async o=>{await Jw(o),await r().loadConfig()},loadOutline:async()=>{if(!r().outlineLoading){t({outlineLoading:!0});try{const o=await Ww();t({outline:o})}catch{t({outline:null})}finally{t({outlineLoading:!1})}}},loadBookshelf:async()=>{if(!r().bookshelfLoading){t({bookshelfLoading:!0});try{const o=await d2();t({bookshelf:o,bookshelfError:null})}catch(o){const a=o instanceof Ae?o.code:"CLIENT_NETWORK_ERROR";t({bookshelf:null,bookshelfError:a})}finally{t({bookshelfLoading:!1})}}},openProjectAt:async o=>{const a=await m2(o);t({config:a.config,loadError:null}),Re.getState().clearFocusOutlineNode(),a.rebuilt?Re.getState().showToast(`项目已按新版本重建${a.fromVersion!==void 0?`(v${a.fromVersion})`:""},备份已保留`):a.migrated&&Re.getState().showToast(`项目数据已自动升级${a.fromVersion!==void 0?`(v${a.fromVersion} → 当前版本)`:""},快照已保留`),await r().loadOutline()},createProjectAt:async(o,a)=>{await f2(o,a),await r().openProjectAt(o)},closeProject:async()=>{await p2(),t({config:null,loadError:null,outline:null}),Re.getState().clearFocusOutlineNode()}}));function M0(t,r){if(t.id===r)return t;if("children"in t&&t.children)for(const o of t.children){const a=M0(o,r);if(a)return a}return null}function A0(t,r){if(!t||!r)return null;for(const o of t.children){const a=M0(o,r);if(a)return a.title}return null}function D0(t,r){return`${t.replace(/\/+$/,"")}/books/${r.trim()}`}const O2="[DONE]",k2=6e4;function _2(t){const r=[];let o=t,a;for(;(a=o.indexOf(`
10
+
11
+ `))!==-1;)r.push(o.slice(0,a)),o=o.slice(a+2);return{frames:r,rest:o}}function jy(t){let r="message";const o=[];for(const a of t.split(`
12
+ `))if(!(a===""||a.startsWith(":"))){if(a.startsWith("event:"))r=a.slice(6).trim();else if(a.startsWith("data:")){let c=a.slice(5);c.startsWith(" ")&&(c=c.slice(1)),o.push(c)}}return o.length===0?null:{event:r,data:o.join(`
13
+ `)}}function Ty(t){if(typeof t!="object"||t===null)return!1;const r=t.error;return typeof r=="object"&&r!==null&&typeof r.code=="string"&&typeof r.message=="string"}function M2(t,r){const{onEvent:o,timeoutMs:a=k2,onTimeout:c,onEnd:d,signal:m,body:g}=r,b=new AbortController,p=()=>b.abort();m&&(m.aborted?b.abort():m.addEventListener("abort",p));let y="",x=!1,S=!1,j=!1,E=!1,k=null;const O=()=>{k!==null&&(clearTimeout(k),k=null)},N=()=>{O(),k=setTimeout(()=>{x||(S=!0,x=!0,c?.(),b.abort())},a)},T=_=>{if(_.data===O2)return!1;let w=_.data;try{w=JSON.parse(_.data)}catch{}return o(_.event,w),_.event!=="error"};return N(),(async()=>{try{const _=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:g===void 0?void 0:JSON.stringify(g),signal:b.signal});if(!_.ok||!_.body){const M=await _.json().catch(()=>null),L=Ty(M)?M.error.code:ut,C=Ty(M)?M.error.message:`SSE 请求失败(HTTP ${_.status})`;x=!0,E=!0,o("error",{code:L,message:C});return}const w=_.body.getReader(),V=new TextDecoder;for(;!x;){const{done:M,value:L}=await w.read();if(M)break;y=(y+V.decode(L,{stream:!0})).replace(/\r\n/g,`
14
+ `);const{frames:C,rest:Z}=_2(y);y=Z;for(const re of C){const ie=jy(re);if(ie){if(!T(ie)){x=!0;break}N()}}}if(!x&&y.trim()!==""){const M=jy(y.trim());M&&!T(M)&&(x=!0)}}catch{!S&&!j&&(x=!0,E=!0,o("error",{code:ut,message:"网络请求失败"}))}finally{O(),m&&m.removeEventListener("abort",p),x=!0,!S&&!j&&!E&&d?.()}})(),()=>{x||(j=!0,x=!0,O(),b.abort())}}function A2(t,r){return r.includes("HTTP 404")?"聊天服务暂不可用":t==="CLIENT_NETWORK_ERROR"&&!r.includes("HTTP ")?"连接失败,请确认服务已启动":r}function D2(t,r){switch(t){case"INTERNAL_ERROR":return"提案执行失败,请让 AI 重新生成提案";case"CLIENT_NETWORK_ERROR":return"网络请求失败,请重试";default:return r}}let ba=0,ya=0,wy=0,ho=null,Ns=null,va=null;const St=lp((t,r)=>{const o=async(a,c,d)=>{const m=r().proposals.find(g=>g.proposalId===a);if(!(!m||m.status!=="pending"||m.processing===!0)){t(g=>({proposals:g.proposals.map(b=>b.proposalId===a?{...b,processing:!0}:b)}));try{await c(a),t(g=>({proposals:g.proposals.map(b=>b.proposalId===a?{...b,status:d,processing:!1}:b)})),d==="confirmed"&&Re.getState().notifyDataChanged()}catch(g){const b=g instanceof Ae?g.code:"CLIENT_NETWORK_ERROR",p=g instanceof Error?g.message:"网络请求失败";switch(b){case"PROPOSAL_STALE":t(y=>({proposals:y.proposals.map(x=>x.proposalId===a?{...x,status:"stale",processing:!1}:x)}));return;case"PROPOSAL_NOT_FOUND":case"PROPOSAL_PROJECT_MISMATCH":t(y=>({proposals:y.proposals.filter(x=>x.proposalId!==a)}));return;default:Re.getState().showToast(D2(b,p),"error"),t(y=>({proposals:y.proposals.map(x=>x.proposalId===a?{...x,processing:!1}:x)}));return}}}};return{sessions:null,sessionsLoading:!1,sessionsError:null,currentSessionId:null,messages:[],messagesLoading:!1,loadSessions:async()=>{if(r().sessionsLoading)return;const a=++ba;t({sessionsLoading:!0});try{const c=await j2();if(a!==ba)return;t({sessions:c,sessionsError:null}),r().currentSessionId===null&&c.length>0&&r().setCurrentSession(c[0].id)}catch(c){if(a!==ba)return;const d=c instanceof Ae?c.code:"CLIENT_NETWORK_ERROR";t({sessions:null,sessionsError:d})}finally{a===ba&&t({sessionsLoading:!1})}},setCurrentSession:a=>{a!==r().currentSessionId&&(ya++,ho?.(),ho=null,Ns=null,va=null,t({currentSessionId:a,messages:[],messagesLoading:!1,streaming:!1,streamError:null,disconnected:!1,focusContext:null,proposals:[],streamTools:[]}),a!==null&&r().loadMessages(a))},newSession:()=>{ba++,r().setCurrentSession(null)},clearSessions:()=>{ba++,ya++,ho?.(),ho=null,Ns=null,va=null,t({sessions:null,sessionsLoading:!1,sessionsError:null,currentSessionId:null,messages:[],messagesLoading:!1,streaming:!1,streamError:null,disconnected:!1,focusContext:null,proposals:[],streamTools:[]})},loadMessages:async a=>{const c=++ya;t({messagesLoading:!0});try{const d=await T2(a);if(c!==ya)return;const m=d.messages.map(g=>({...g,sessionId:d.sessionId}));t({messages:m})}catch{if(c!==ya)return;t({messages:[]})}finally{c===ya&&t({messagesLoading:!1})}},streaming:!1,streamError:null,setStreamError:a=>t({streamError:a}),focusContext:null,setFocusContext:a=>t({focusContext:a}),clearFocusContext:()=>t({focusContext:null}),disconnected:!1,setDisconnected:a=>t({disconnected:a}),proposals:[],streamTools:[],sendMessage:a=>{const{streaming:c,messagesLoading:d,currentSessionId:m,focusContext:g}=r(),b=a.trim();if(!b||c||d)return;ho?.(),ho=null;const p=new Date().toISOString(),y=m??"",x=`local-${++wy}`;Ns=x,va=b,t(j=>({messages:[...j.messages,{id:`local-${++wy}`,sessionId:y,role:"user",content:b,createdAt:p},{id:x,sessionId:y,role:"assistant",content:"",createdAt:p}],streaming:!0,streamError:null,disconnected:!1,proposals:[],streamTools:[]}));const S={message:b};m&&(S.session_id=m),g&&(S.context=g),ho=M2("/api/v1/chat",{body:S,onEvent:(j,E)=>{switch(j){case"ping":break;case"text":{const k=E?.delta??"";Ns&&t(O=>({messages:O.messages.map(N=>N.id===Ns?{...N,content:(N.content??"")+k}:N)}));break}case"tool_call":{const{tool:k,args:O,id:N}=E;if(!N||!k)break;t(T=>({streamTools:[...T.streamTools,{id:N,tool:k,args:O,status:"running"}]}));break}case"tool_result":{const{id:k}=E;if(!k)break;t(O=>({streamTools:O.streamTools.map(N=>N.id===k?{...N,result:E.result,status:"ok"}:N)}));break}case"proposal":{const{proposal_id:k,type:O,preview:N}=E;if(!k||!O)break;t(T=>({proposals:[...T.proposals,{proposalId:k,type:O,preview:N,status:"pending"}]}));break}case"done":{if(Ns===null)break;const k=E?.session_id;t({streaming:!1,currentSessionId:k??r().currentSessionId}),k&&r().loadSessions();break}case"error":{const{code:k,message:O}=E;t({streaming:!1,streamError:A2(k??"",O??"")});break}}},onTimeout:()=>{Ns===x&&(Ns=null,t({streaming:!1,disconnected:!0,proposals:[],streamTools:[]}))},onEnd:()=>{Ns===x&&(Ns=null,t(j=>j.streaming?{streaming:!1}:{}))}})},resendLast:()=>{const{messages:a,streaming:c}=r();if(c||!va)return;let d=a;d[d.length-1]?.role==="assistant"&&(d=d.slice(0,-1));const g=d[d.length-1];g?.role==="user"&&g.content===va&&(d=d.slice(0,-1)),t({messages:d}),r().sendMessage(va)},confirmProposal:a=>o(a,w2,"confirmed"),rejectProposal:a=>o(a,C2,"rejected")}});let Cy=He.getState().config?.id??null;He.subscribe(t=>{const r=t.config?.id??null;r!==Cy&&(Cy=r,St.getState().clearSessions(),r!==null&&St.getState().loadSessions())});function cu(){return typeof window<"u"}function Sn(t){return cp(t)?(t.nodeName||"").toLowerCase():"#document"}function Zt(t){var r;return(t==null||(r=t.ownerDocument)==null?void 0:r.defaultView)||window}function mr(t){var r;return(r=(cp(t)?t.ownerDocument:t.document)||window.document)==null?void 0:r.documentElement}function cp(t){return cu()?t instanceof Node||t instanceof Zt(t).Node:!1}function vt(t){return cu()?t instanceof Element||t instanceof Zt(t).Element:!1}function Vt(t){return cu()?t instanceof HTMLElement||t instanceof Zt(t).HTMLElement:!1}function _a(t){return!cu()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Zt(t).ShadowRoot}function Oo(t){const{overflow:r,overflowX:o,overflowY:a,display:c}=Kn(t);return/auto|scroll|overlay|hidden|clip/.test(r+a+o)&&c!=="inline"&&c!=="contents"}function z2(t){return/^(table|td|th)$/.test(Sn(t))}function uu(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const L2=/transform|translate|scale|rotate|perspective|filter/,I2=/paint|layout|strict|content/,go=t=>!!t&&t!=="none";let qf;function up(t){const r=vt(t)?Kn(t):t;return go(r.transform)||go(r.translate)||go(r.scale)||go(r.rotate)||go(r.perspective)||!dp()&&(go(r.backdropFilter)||go(r.filter))||L2.test(r.willChange||"")||I2.test(r.contain||"")}function B2(t){let r=ur(t);for(;Vt(r)&&!rr(r);){if(up(r))return r;if(uu(r))return null;r=ur(r)}return null}function dp(){return qf==null&&(qf=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),qf}function rr(t){return/^(html|body|#document)$/.test(Sn(t))}function Kn(t){return Zt(t).getComputedStyle(t)}function du(t){return vt(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function ur(t){if(Sn(t)==="html")return t;const r=t.assignedSlot||t.parentNode||_a(t)&&t.host||mr(t);return _a(r)?r.host:r}function z0(t){const r=ur(t);return rr(r)?(t.ownerDocument||t).body:Vt(r)&&Oo(r)?r:z0(r)}function $l(t,r,o){var a;r===void 0&&(r=[]),o===void 0&&(o=!0);const c=z0(t),d=c===((a=t.ownerDocument)==null?void 0:a.body),m=Zt(c);if(d){const g=jm(m);return r.concat(m,m.visualViewport||[],Oo(c)?c:[],g&&o?$l(g):[])}else return r.concat(c,$l(c,[],o))}function jm(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}const fp={...pj},Ry={};function In(t,r){const o=h.useRef(Ry);return o.current===Ry&&(o.current=t(r)),o}const $f=fp.useInsertionEffect,H2=$f&&$f!==fp.useLayoutEffect?$f:t=>t();function st(t){const r=In(U2).current;return r.next=t,H2(r.effect),r.trampoline}function U2(){const t={next:void 0,callback:P2,trampoline:(...r)=>t.callback?.(...r),effect:()=>{t.callback=t.next}};return t}function P2(){}const Y2=()=>{},Qe=typeof document<"u"?h.useLayoutEffect:Y2;function Tm(t,r){if(t&&!r)return t;if(!t&&r)return r;if(t||r)return{...t,...r}}const mp={};function or(t,r,o,a,c){if(!o&&!a&&!c&&!t)return Xc(r);let d=Xc(t);return r&&(d=Ll(d,r)),o&&(d=Ll(d,o)),a&&(d=Ll(d,a)),c&&(d=Ll(d,c)),d}function V2(t){if(t.length===0)return mp;if(t.length===1)return Xc(t[0]);let r=Xc(t[0]);for(let o=1;o<t.length;o+=1)r=Ll(r,t[o]);return r}function Xc(t){return pp(t)?{...I0(t,mp)}:F2(t)}function Ll(t,r){return pp(r)?I0(r,t):G2(t,r)}function F2(t){const r={...t};for(const o in r){const a=r[o];L0(o,a)&&(r[o]=B0(a))}return r}function G2(t,r){if(!r)return t;for(const o in r){const a=r[o];switch(o){case"style":{t[o]=Tm(t.style,a);break}case"className":{t[o]=H0(t.className,a);break}default:L0(o,a)?t[o]=q2(t[o],a):t[o]=a}}return t}function L0(t,r){const o=t.charCodeAt(0),a=t.charCodeAt(1),c=t.charCodeAt(2);return o===111&&a===110&&c>=65&&c<=90&&(typeof r=="function"||typeof r>"u")}function pp(t){return typeof t=="function"}function I0(t,r){return pp(t)?t(r):t??mp}function q2(t,r){return r?t?(...o)=>{const a=o[0];if(U0(a)){const d=a;Kc(d);const m=r(...o);return d.baseUIHandlerPrevented||t?.(...o),m}const c=r(...o);return t?.(...o),c}:B0(r):t}function B0(t){return t&&((...r)=>{const o=r[0];return U0(o)&&Kc(o),t(...r)})}function Kc(t){return t.preventBaseUIHandler=()=>{t.baseUIHandlerPrevented=!0},t}function H0(t,r){return r?t?r+" "+t:r:t}function U0(t){return t!=null&&typeof t=="object"&&"nativeEvent"in t}function $2(t,r){return function(a,...c){const d=new URL(t);return d.searchParams.set("code",a.toString()),c.forEach(m=>d.searchParams.append("args[]",m)),`${r} error #${a}; visit ${d} for the full message.`}}const Tn=$2("https://base-ui.com/production-error","Base UI"),X2=h.createContext(void 0);function hp(t=!1){const r=h.useContext(X2);if(r===void 0&&!t)throw new Error(Tn(16));return r}function K2(t){const{focusableWhenDisabled:r,disabled:o,composite:a=!1,tabIndex:c=0,isNativeButton:d}=t,m=a&&r!==!1,g=a&&r===!1;return{props:h.useMemo(()=>{const p={onKeyDown(y){o&&r&&y.key!=="Tab"&&y.preventDefault()}};return a||(p.tabIndex=c,!d&&o&&(p.tabIndex=r?c:-1)),(d&&(r||m)||!d&&o)&&(p["aria-disabled"]=o),d&&(!r||g)&&(p.disabled=o),p},[a,o,r,m,g,d,c])}}function si(t={}){const{disabled:r=!1,focusableWhenDisabled:o,tabIndex:a=0,native:c=!0,composite:d}=t,m=h.useRef(null),g=hp(!0),b=d??g!==void 0,{props:p}=K2({focusableWhenDisabled:o,disabled:r,composite:b,tabIndex:a,isNativeButton:c}),y=h.useCallback(()=>{const j=m.current;Xf(j)&&b&&r&&p.disabled===void 0&&j.disabled&&(j.disabled=!1)},[r,p.disabled,b]);Qe(y,[y]);const x=h.useCallback((j={})=>{const{onClick:E,onMouseDown:k,onKeyUp:O,onKeyDown:N,onPointerDown:T,..._}=j;return or({onClick(w){if(r){w.preventDefault();return}E?.(w)},onMouseDown(w){r||k?.(w)},onKeyDown(w){if(r||(Kc(w),N?.(w),w.baseUIHandlerPrevented))return;const V=w.target===w.currentTarget,M=w.currentTarget,L=Xf(M),C=!c&&Q2(M),Z=V&&(c?L:!C),re=w.key==="Enter",ie=w.key===" ",te=M.getAttribute("role"),K=te?.startsWith("menuitem")||te==="option"||te==="gridcell";if(V&&b&&ie){if(w.defaultPrevented&&K)return;w.preventDefault(),C||c&&L?(M.click(),w.preventBaseUIHandler()):Z&&(E?.(w),w.preventBaseUIHandler());return}Z&&(!c&&(ie||re)&&w.preventDefault(),!c&&re&&E?.(w))},onKeyUp(w){if(!r){if(Kc(w),O?.(w),w.target===w.currentTarget&&c&&b&&Xf(w.currentTarget)&&w.key===" "){w.preventDefault();return}w.baseUIHandlerPrevented||w.target===w.currentTarget&&!c&&!b&&w.key===" "&&E?.(w)}},onPointerDown(w){if(r){w.preventDefault();return}T?.(w)}},c?{type:"button"}:{role:"button"},p,_)},[r,p,b,c]),S=st(j=>{m.current=j,y()});return{getButtonProps:x,buttonRef:S}}function Xf(t){return Vt(t)&&t.tagName==="BUTTON"}function Q2(t){return!!(t?.tagName==="A"&&t?.href)}function Ma(t,r,o,a){const c=In(P0).current;return J2(c,t,r,o,a)&&Y0(c,[t,r,o,a]),c.callback}function Z2(t){const r=In(P0).current;return W2(r,t)&&Y0(r,t),r.callback}function P0(){return{callback:null,cleanup:null,refs:[]}}function J2(t,r,o,a,c){return t.refs[0]!==r||t.refs[1]!==o||t.refs[2]!==a||t.refs[3]!==c}function W2(t,r){return t.refs.length!==r.length||t.refs.some((o,a)=>o!==r[a])}function Y0(t,r){if(t.refs=r,r.every(o=>o==null)){t.callback=null;return}t.callback=o=>{if(t.cleanup&&(t.cleanup(),t.cleanup=null),o!=null){const a=Array(r.length).fill(null);for(let c=0;c<r.length;c+=1){const d=r[c];if(d!=null)switch(typeof d){case"function":{const m=d(o);typeof m=="function"&&(a[c]=m);break}case"object":{d.current=o;break}}}t.cleanup=()=>{for(let c=0;c<r.length;c+=1){const d=r[c];if(d!=null)switch(typeof d){case"function":{const m=a[c];typeof m=="function"?m():d(null);break}case"object":{d.current=null;break}}}}}}}const eC=parseInt(h.version,10);function gp(t){return eC>=t}function Oy(t){if(!h.isValidElement(t))return null;const r=t,o=r.props;return(gp(19)?o?.ref:r.ref)??null}function mn(){}const Qc=Object.freeze([]),Ft=Object.freeze({});function tC(t,r){const o={};for(const a in t){const c=t[a];if(r?.hasOwnProperty(a)){const d=r[a](c);d!=null&&Object.assign(o,d);continue}c===!0?o[`data-${a.toLowerCase()}`]="":c&&(o[`data-${a.toLowerCase()}`]=c.toString())}return o}function nC(t,r){return typeof t=="function"?t(r):t}function sC(t,r){return typeof t=="function"?t(r):t}function hn(t,r,o={}){const a=r.render,c=rC(r,o);if(o.enabled===!1)return null;const d=o.state??Ft;return lC(t,a,c,d)}function rC(t,r={}){const{className:o,style:a,render:c}=t,{state:d=Ft,ref:m,props:g,stateAttributesMapping:b,enabled:p=!0}=r,y=p?nC(o,d):void 0,x=p?sC(a,d):void 0,S=p?tC(d,b):Ft,j=p&&g?oC(g):void 0,E=p?Tm(S,j)??{}:Ft;return typeof document<"u"&&(p?Array.isArray(m)?E.ref=Z2([E.ref,Oy(c),...m]):E.ref=Ma(E.ref,Oy(c),m):Ma(null,null)),p?(y!==void 0&&(E.className=H0(E.className,y)),x!==void 0&&(E.style=Tm(E.style,x)),E):Ft}function oC(t){return Array.isArray(t)?V2(t):or(void 0,t)}const aC=Symbol.for("react.lazy");function lC(t,r,o,a){if(r){if(typeof r=="function")return r(o,a);const c=or(o,r.props);c.ref=o.ref;let d=r;return d?.$$typeof===aC&&(d=h.Children.toArray(r)[0]),h.cloneElement(d,c)}if(t&&typeof t=="string")return iC(t,o);throw new Error(Tn(8))}function iC(t,r){return t==="button"?h.createElement("button",{type:"button",...r,key:r.key}):t==="img"?h.createElement("img",{alt:"",...r,key:r.key}):h.createElement(t,r)}const cC=h.forwardRef(function(r,o){const{render:a,className:c,disabled:d=!1,focusableWhenDisabled:m=!1,nativeButton:g=!0,style:b,...p}=r,{getButtonProps:y,buttonRef:x}=si({disabled:d,focusableWhenDisabled:m,native:g});return hn("button",r,{state:{disabled:d},ref:[o,x],props:[p,y]})}),ky=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,_y=m0,uC=(t,r)=>o=>{var a;if(r?.variants==null)return _y(t,o?.class,o?.className);const{variants:c,defaultVariants:d}=r,m=Object.keys(c).map(p=>{const y=o?.[p],x=d?.[p];if(y===null)return null;const S=ky(y)||ky(x);return c[p][S]}),g=o&&Object.entries(o).reduce((p,y)=>{let[x,S]=y;return S===void 0||(p[x]=S),p},{}),b=r==null||(a=r.compoundVariants)===null||a===void 0?void 0:a.reduce((p,y)=>{let{class:x,className:S,...j}=y;return Object.entries(j).every(E=>{let[k,O]=E;return Array.isArray(O)?O.includes({...d,...g}[k]):{...d,...g}[k]===O})?[...p,x,S]:p},[]);return _y(t,m,b,o?.class,o?.className)},wm=uC("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function me({className:t,variant:r="default",size:o="default",...a}){return i.jsx(cC,{"data-slot":"button",className:Ee(wm({variant:r,size:o,className:t})),...a})}const V0=h.createContext(void 0);function F0(t){const r=h.useContext(V0);if(r===void 0&&!t)throw new Error(Tn(33));return r}const G0=h.createContext(void 0);function ko(t){const r=h.useContext(G0);if(r===void 0&&!t)throw new Error(Tn(36));return r}let Xl=(function(t){return t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t})({});const dC={[Xl.startingStyle]:""},fC={[Xl.endingStyle]:""},fu={transitionStatus(t){return t==="starting"?dC:t==="ending"?fC:null}};let yo=(function(t){return t.open="data-open",t.closed="data-closed",t[t.startingStyle=Xl.startingStyle]="startingStyle",t[t.endingStyle=Xl.endingStyle]="endingStyle",t.anchorHidden="data-anchor-hidden",t.side="data-side",t.align="data-align",t})({}),Cm=(function(t){return t.popupOpen="data-popup-open",t.pressed="data-pressed",t})({});const mC={[Cm.popupOpen]:""},pC={[Cm.popupOpen]:"",[Cm.pressed]:""},hC={[yo.open]:""},gC={[yo.closed]:""},xC={[yo.anchorHidden]:""},bC={open(t){return t?mC:null}},Rm={open(t){return t?pC:null}},ri={open(t){return t?hC:gC},anchorHidden(t){return t?xC:null}},yC=h.createContext(void 0);function mu(t=!0){const r=h.useContext(yC);if(r===void 0&&!t)throw new Error(Tn(25));return r}const q0="none",jo="trigger-press",pn="trigger-hover",Hl="trigger-focus",xp="outside-press",$0="item-press",X0="close-press",To="focus-out",pu="escape-key",Om="list-navigation",vC="cancel-open",Il="sibling-open",bp="imperative-action";function SC({controlled:t,default:r,name:o,state:a="value"}){const{current:c}=h.useRef(t!==void 0),[d,m]=h.useState(r),g=c?t:d,b=h.useCallback(p=>{c||m(p)},[]);return[g,b]}function EC(){return typeof navigator>"u"?{userAgent:"",platform:"",maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??0}}const{userAgent:NC,platform:jC,maxTouchPoints:TC}=EC(),hu=NC.toLowerCase(),Kl=jC.toLowerCase(),gu=/^i(os$|p)/.test(Kl)||Kl==="macintel"&&TC>1,My="android",km=Kl===My||hu.includes(My),yp=!gu&&Kl.startsWith("mac");Kl.startsWith("win");const wC=yp||gu,_o=typeof CSS<"u"&&!!CSS.supports?.("-webkit-backdrop-filter:none");!_o&&hu.includes("firefox");!_o&&hu.includes("chrom");const CC=wC,vp=/jsdom|happydom/.test(hu);function RC(t){const{closeOnClick:r,highlighted:o,id:a,nodeId:c,store:d,typingRef:m,itemRef:g,itemMetadata:b}=t,{events:p}=d.useState("floatingTreeRoot"),y=d.useState("open"),x=mu(!0),S=x!==void 0;return h.useMemo(()=>({id:a,role:"menuitem",tabIndex:y&&o?0:-1,onKeyDown(j){j.key===" "&&m?.current&&j.preventDefault()},onMouseMove(j){c&&p.emit("itemhover",{nodeId:c,target:j.currentTarget})},onClick(j){r&&p.emit("close",{domEvent:j,reason:$0})},onMouseUp(j){if(x){const E=x.initialCursorPointRef.current;if(x.initialCursorPointRef.current=null,S&&E&&Math.abs(j.clientX-E.x)<=1&&Math.abs(j.clientY-E.y)<=1||S&&!yp&&j.button===2)return}g.current&&d.context.allowMouseUpTriggerRef.current&&(!S||j.button===2)&&(!b||b.type==="regular-item")&&g.current.click()}}),[r,o,a,p,c,y,d,m,g,x,S,b])}const OC={type:"regular-item"};function kC(t){const{closeOnClick:r,disabled:o=!1,highlighted:a,id:c,store:d,typingRef:m=d.context.typingRef,nativeButton:g,itemMetadata:b,nodeId:p}=t,y=d.useState("disabled"),x=o||y,S=h.useRef(null),{getButtonProps:j,buttonRef:E}=si({disabled:x,focusableWhenDisabled:!0,native:g,composite:!0}),k=RC({closeOnClick:r,highlighted:a,id:c,nodeId:p,store:d,typingRef:m,itemRef:S,itemMetadata:b}),O=h.useCallback(T=>or(k,{onMouseEnter(){b.type==="submenu-trigger"&&b.setActive()}},T,j),[k,j,b]),N=Ma(S,E);return h.useMemo(()=>({getItemProps:O,itemRef:N}),[O,N])}const K0=h.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function _C(){return h.useContext(K0)}let MC=(function(t){return t[t.None=0]="None",t[t.GuessFromOrder=1]="GuessFromOrder",t})({});function Q0(t={}){const{label:r,metadata:o,textRef:a,indexGuessBehavior:c,index:d}=t,{register:m,unregister:g,subscribeMapChange:b,elementsRef:p,labelsRef:y,nextIndexRef:x}=_C(),S=h.useRef(-1),[j,E]=h.useState(d??(c===MC.GuessFromOrder?()=>{if(S.current===-1){const N=x.current;x.current+=1,S.current=N}return S.current}:-1)),k=h.useRef(null),O=h.useCallback(N=>{if(k.current=N,j!==-1&&N!==null&&(p.current[j]=N,y)){const T=r!==void 0;y.current[j]=T?r:a?.current?.textContent??N.textContent}},[j,p,y,r,a]);return Qe(()=>{if(d!=null)return;const N=k.current;if(N)return m(N,o),()=>{g(N)}},[d,m,g,o]),Qe(()=>{if(d==null)return b(N=>{const T=k.current?N.get(k.current)?.index:null;T!=null&&E(T)})},[d,b,E]),{ref:O,index:j}}let Ay=0;function AC(t,r="mui"){const[o,a]=h.useState(t),c=t||o;return h.useEffect(()=>{o==null&&(Ay+=1,a(`${r}-${Ay}`))},[o,r]),c}const Dy=fp.useId;function wo(t,r){if(Dy!==void 0){const o=Dy();return t??(r?`${r}-${o}`:o)}return AC(t,r)}function Mo(t){return wo(t,"base-ui")}function jt(t,r,o,a){let c=!1,d=!1;const m=Ft;return{reason:t,event:r??new Event("base-ui"),cancel(){c=!0},allowPropagation(){d=!0},get isCanceled(){return c},get isPropagationAllowed(){return d},trigger:o,...m}}const DC=[];function Sp(t){h.useEffect(t,DC)}const jc=null;class zC{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=r=>{this.isScheduled=!1;const o=this.callbacks,a=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,a>0)for(let c=0;c<o.length;c+=1)o[c]?.(r)};request(r){const o=this.nextId;return this.nextId+=1,this.callbacks.push(r),this.callbacksCount+=1,!this.isScheduled&&(requestAnimationFrame(this.tick),this.isScheduled=!0),o}cancel(r){const o=r-this.startId;o<0||o>=this.callbacks.length||(this.callbacks[o]=null,this.callbacksCount-=1)}}const Tc=new zC;class ws{static create(){return new ws}static request(r){return Tc.request(r)}static cancel(r){return Tc.cancel(r)}currentId=jc;request(r){this.cancel(),this.currentId=Tc.request(()=>{this.currentId=jc,r()})}cancel=()=>{this.currentId!==jc&&(Tc.cancel(this.currentId),this.currentId=jc)};disposeEffect=()=>this.cancel}function Ql(){const t=In(ws.create).current;return Sp(t.disposeEffect),t}function LC(t,r=!1,o=!1){const[a,c]=h.useState(t&&r?"idle":void 0),[d,m]=h.useState(t);return t&&!d&&(m(!0),c("starting")),!t&&d&&a!=="ending"&&!o&&c("ending"),!t&&!d&&a==="ending"&&c(void 0),Qe(()=>{if(!t&&d&&a!=="ending"&&o){const g=ws.request(()=>{c("ending")});return()=>{ws.cancel(g)}}},[t,d,a,o]),Qe(()=>{if(!t||r)return;const g=ws.request(()=>{c(void 0)});return()=>{ws.cancel(g)}},[r,t]),Qe(()=>{if(!t||!r)return;t&&d&&a!=="idle"&&c("starting");const g=ws.request(()=>{c("idle")});return()=>{ws.cancel(g)}},[r,t,d,a]),{mounted:d,setMounted:m,transitionStatus:a}}var dr=o0();const IC=r0(dr);function nr(t){return t==null?t:"current"in t?t.current:t}function Ep(t,r=!1,o=!0){const a=Ql();return st((c,d=null)=>{a.cancel();const m=nr(t);if(m==null)return;const g=m,b=()=>{dr.flushSync(c)};if(typeof g.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){c();return}function p(){Promise.all(g.getAnimations().map(y=>y.finished)).then(()=>{d?.aborted||b()}).catch(()=>{if(o){d?.aborted||b();return}const y=g.getAnimations();!d?.aborted&&y.length>0&&y.some(x=>x.pending||x.playState!=="finished")&&p()})}if(r){const y=Xl.startingStyle;if(!g.hasAttribute(y)){a.request(p);return}const x=new MutationObserver(()=>{g.hasAttribute(y)||(x.disconnect(),p())});x.observe(g,{attributes:!0,attributeFilter:[y]}),d?.addEventListener("abort",()=>x.disconnect(),{once:!0});return}a.request(p)})}function xu(t){const{enabled:r=!0,open:o,ref:a,onComplete:c}=t,d=st(c),m=Ep(a,o,!1);h.useEffect(()=>{if(!r)return;const g=new AbortController;return m(d,g.signal),()=>{g.abort()}},[r,o,d,m])}const Z0=h.createContext(void 0);function BC(){const t=h.useContext(Z0);if(t===void 0)throw new Error(Tn(31));return t}const HC=h.forwardRef(function(r,o){const{render:a,className:c,style:d,...m}=r,[g,b]=h.useState(void 0),p=hn("div",r,{ref:o,props:{role:"group","aria-labelledby":g,...m}});return i.jsx(Z0.Provider,{value:b,children:p})}),UC=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:m,...g}=r,b=Mo(m),p=BC();return Qe(()=>(p(b),()=>{p(void 0)}),[p,b]),hn("div",r,{ref:o,props:{id:b,role:"presentation",...g}})}),PC=h.forwardRef(function(r,o){const{render:a,className:c,id:d,label:m,nativeButton:g=!1,disabled:b=!1,closeOnClick:p=!0,style:y,...x}=r,S=Q0({label:m}),j=F0(!0),E=Mo(d),{store:k}=ko(),O=k.useState("isActive",S.index),N=k.useState("itemProps"),{getItemProps:T,itemRef:_}=kC({closeOnClick:p,disabled:b,highlighted:O,id:E,store:k,nativeButton:g,nodeId:j?.context.nodeId,itemMetadata:OC});return hn("div",r,{state:{disabled:b,highlighted:O},props:[N,x,T],ref:[_,o,S.ref]})}),Cl=0;class gs{static create(){return new gs}currentId=Cl;start(r,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=Cl,o()},r)}isStarted(){return this.currentId!==Cl}clear=()=>{this.currentId!==Cl&&(clearTimeout(this.currentId),this.currentId=Cl)};disposeEffect=()=>this.clear}function Qn(){const t=In(gs.create).current;return Sp(t.disposeEffect),t}function Ts(t){t.preventDefault(),t.stopPropagation()}function YC(t){return"nativeEvent"in t}function J0(t){return t.pointerType===""&&t.isTrusted?!0:km&&t.pointerType?t.type==="click"&&t.buttons===1:t.detail===0&&!t.pointerType}function W0(t){return vp?!1:!km&&t.width===0&&t.height===0||km&&t.width===1&&t.height===1&&t.pressure===0&&t.detail===0&&t.pointerType==="mouse"||t.width<1&&t.height<1&&t.pressure===0&&t.detail===0&&t.pointerType==="touch"}function Zl(t,r){const o=["mouse","pen"];return r||o.push("",void 0),o.includes(t)}function VC(t){const r=t.type;return r==="click"||r==="mousedown"||r==="keydown"||r==="keyup"}const _m="data-base-ui-focusable",e1="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",bu="ArrowLeft",yu="ArrowRight",t1="ArrowUp",Np="ArrowDown";function Cn(t){let r=t.activeElement;for(;r?.shadowRoot?.activeElement!=null;)r=r.shadowRoot.activeElement;return r}function tt(t,r){if(!t||!r)return!1;const o=r.getRootNode?.();if(t.contains(r))return!0;if(o&&_a(o)){let a=r;for(;a;){if(t===a)return!0;a=a.parentNode||a.host}}return!1}function Ln(t){return"composedPath"in t?t.composedPath()[0]:t.target}function Zc(t,r){if(!vt(t))return!1;const o=t;if(r.hasElement(o))return!o.hasAttribute("data-trigger-disabled");for(const[,a]of r.entries())if(tt(a,o))return!a.hasAttribute("data-trigger-disabled");return!1}function Kf(t,r){if(r==null)return!1;if("composedPath"in t)return t.composedPath().includes(r);const o=t;return o.target!=null&&r.contains(o.target)}function FC(t){return t.matches("html,body")}function vu(t){return Vt(t)&&t.matches(e1)}function GC(t){return t?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${e1}`)!=null}function Mm(t){return t?t.getAttribute("role")==="combobox"&&vu(t):!1}function qC(t){if(!t||vp)return!0;try{return t.matches(":focus-visible")}catch{return!0}}function Am(t){return t?t.hasAttribute(_m)?t:t.querySelector(`[${_m}]`)||t:null}function $C(t,r){return r!=null&&!Zl(r)?0:typeof t=="function"?t():t}function Dm(t,r,o){const a=$C(t,o);return typeof a=="number"?a:a?.[r]}function zy(t){return typeof t=="function"?t():t}function n1(t,r){return r||t==="click"||t==="mousedown"}function XC(t){return t?.includes("mouse")&&t!=="mousedown"}function xt(t,r,o,a){return t.addEventListener(r,o,a),()=>{t.removeEventListener(r,o,a)}}function Ds(...t){return()=>{for(let r=0;r<t.length;r+=1){const o=t[r];o&&o()}}}function un(t){const r=In(KC,t).current;return r.next=t,Qe(r.effect),r}function KC(t){const r={current:t,next:t,effect:()=>{r.current=r.next}};return r}function Nt(t){return t?.ownerDocument||document}const QC={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},ZC={...QC,position:"fixed",top:0,left:0},Gr=h.forwardRef(function(r,o){const[a,c]=h.useState();Qe(()=>{CC&&_o&&c("button")},[]);const d={tabIndex:0,role:a};return i.jsx("span",{...r,ref:o,style:ZC,"aria-hidden":a?void 0:!0,...d,"data-base-ui-focus-guard":""})}),JC=["top","right","bottom","left"],Aa=Math.min,ar=Math.max,Jc=Math.round,wc=Math.floor,lr=t=>({x:t,y:t}),WC={left:"right",right:"left",bottom:"top",top:"bottom"};function s1(t,r,o){return ar(t,Aa(r,o))}function fr(t,r){return typeof t=="function"?t(r):t}function $n(t){return t.split("-")[0]}function Xr(t){return t.split("-")[1]}function jp(t){return t==="x"?"y":"x"}function Tp(t){return t==="y"?"height":"width"}function us(t){const r=t[0];return r==="t"||r==="b"?"y":"x"}function wp(t){return jp(us(t))}function eR(t,r,o){o===void 0&&(o=!1);const a=Xr(t),c=wp(t),d=Tp(c);let m=c==="x"?a===(o?"end":"start")?"right":"left":a==="start"?"bottom":"top";return r.reference[d]>r.floating[d]&&(m=Wc(m)),[m,Wc(m)]}function tR(t){const r=Wc(t);return[zm(t),r,zm(r)]}function zm(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const Ly=["left","right"],Iy=["right","left"],nR=["top","bottom"],sR=["bottom","top"];function rR(t,r,o){switch(t){case"top":case"bottom":return o?r?Iy:Ly:r?Ly:Iy;case"left":case"right":return r?nR:sR;default:return[]}}function oR(t,r,o,a){const c=Xr(t);let d=rR($n(t),o==="start",a);return c&&(d=d.map(m=>m+"-"+c),r&&(d=d.concat(d.map(zm)))),d}function Wc(t){const r=$n(t);return WC[r]+t.slice(r.length)}function aR(t){var r,o,a,c;return{top:(r=t.top)!=null?r:0,right:(o=t.right)!=null?o:0,bottom:(a=t.bottom)!=null?a:0,left:(c=t.left)!=null?c:0}}function r1(t){return typeof t!="number"?aR(t):{top:t,right:t,bottom:t,left:t}}function eu(t){const{x:r,y:o,width:a,height:c}=t;return{width:a,height:c,top:o,left:r,right:r+a,bottom:o+c,x:r,y:o}}function By(t,r){return r<0||r>=t.length}function Qf(t,r){return wa(t.current,{disabledIndices:r})}function Hy(t,r){return wa(t.current,{decrement:!0,startingIndex:t.current.length,disabledIndices:r})}function wa(t,{startingIndex:r=-1,decrement:o=!1,disabledIndices:a,amount:c=1}={}){let d=r;do d+=o?-c:c;while(d>=0&&d<=t.length-1&&o1(t,d,a));return d}function o1(t,r,o){if(typeof o=="function"?o(r):o?.includes(r)??!1)return!0;const c=t[r];return c?Su(c)?!o&&(c.hasAttribute("disabled")||c.getAttribute("aria-disabled")==="true"):!0:!1}function lR(t){return t.visibility==="hidden"||t.visibility==="collapse"}function Su(t,r=t?Kn(t):null){return!t||!t.isConnected||!r||lR(r)?!1:typeof t.checkVisibility=="function"?t.checkVisibility():r.display!=="none"&&r.display!=="contents"}const iR='a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]';function cR(t){const r=t.assignedSlot;if(r)return r;if(t.parentElement)return t.parentElement;const o=t.getRootNode();return _a(o)?o.host:null}function Lm(t){for(const r of Array.from(t.children))if(Sn(r)==="summary")return r;return null}function uR(t,r){const o=Lm(r);return!!o&&(t===o||tt(o,t))}function a1(t){const r=t?Sn(t):"";return t!=null&&t.matches(iR)&&(r!=="summary"||t.parentElement!=null&&Sn(t.parentElement)==="details"&&Lm(t.parentElement)===t)&&(r!=="details"||Lm(t)==null)&&(r!=="input"||t.type!=="hidden")}function l1(t){if(!a1(t)||!t.isConnected||t.matches(":disabled"))return!1;for(let r=t;r;r=cR(r)){const o=r!==t,a=Sn(r)==="slot";if(r.hasAttribute("inert")||o&&Sn(r)==="details"&&!r.open&&!uR(t,r)||r.hasAttribute("hidden")||!a&&!dR(r,o))return!1}return!0}function dR(t,r){const o=Kn(t);return r?o.display!=="none":Su(t,o)}function i1(t){const r=t.tabIndex;if(r<0){const o=Sn(t);if(o==="details"||o==="audio"||o==="video"||Vt(t)&&t.isContentEditable)return 0}return r}function Zf(t){if(Sn(t)!=="input")return null;const r=t;return r.type==="radio"&&r.name!==""?r:null}function fR(t,r){const o=Zf(t);if(!o)return!0;const a=r.find(c=>{const d=Zf(c);return d?.name===o.name&&d.form===o.form&&d.checked});return a?a===o:r.find(c=>{const d=Zf(c);return d?.name===o.name&&d.form===o.form})===o}function c1(t){if(Vt(t)&&Sn(t)==="slot"){const r=t.assignedElements({flatten:!0});if(r.length>0)return r}return Vt(t)&&t.shadowRoot?Array.from(t.shadowRoot.children):Array.from(t.children)}function u1(t,r){c1(t).forEach(o=>{a1(o)&&r.push(o),u1(o,r)})}function d1(t,r,o){c1(t).forEach(a=>{Vt(a)&&a.matches(r)&&o.push(a),d1(a,r,o)})}function Cp(t){return l1(t)&&i1(t)>=0}function f1(t){const r=[];return u1(t,r),r.filter(l1)}function oi(t){const r=f1(t);return r.filter(o=>i1(o)>=0&&fR(o,r))}function m1(t,r){const o=oi(t),a=o.length;if(a===0)return;const c=Cn(Nt(t)),d=o.indexOf(c),m=d===-1?r===1?0:a-1:d+r;return o[m]}function Rp(t){return m1(Nt(t).body,1)||t}function p1(t){return m1(Nt(t).body,-1)||t}function h1(t,r){if(!t)return null;const o=oi(Nt(t).body),a=o.length;if(a===0)return null;const c=o.indexOf(t);if(c===-1)return null;const d=(c+r+a)%a;return o[d]}function mR(t){return h1(t,1)}function pR(t){return h1(t,-1)}function Ra(t,r){const o=r||t.currentTarget,a=t.relatedTarget;return!a||!tt(o,a)}function hR(t){oi(t).forEach(o=>{o.dataset.tabindex=o.getAttribute("tabindex")||"",o.setAttribute("tabindex","-1")})}function Uy(t){const r=[];d1(t,"[data-tabindex]",r),r.forEach(o=>{const a=o.dataset.tabindex;delete o.dataset.tabindex,a?o.setAttribute("tabindex",a):o.removeAttribute("tabindex")})}function qr(t,r,o=!0){return t.filter(c=>c.parentId===r).flatMap(c=>[...!o||c.context?.open?[c]:[],...qr(t,c.id,o)])}function Py(t,r){let o=[],a=t.find(c=>c.id===r)?.parentId;for(;a;){const c=t.find(d=>d.id===a);a=c?.parentId,c&&(o=o.concat(c))}return o}function Jl(t){return`data-base-ui-${t}`}let Cc=0;function Uc(t,r={}){const{preventScroll:o=!1,sync:a=!1,shouldFocus:c}=r;cancelAnimationFrame(Cc);function d(){c&&!c()||t?.focus({preventScroll:o})}if(a)return d(),mn;const m=requestAnimationFrame(d);return Cc=m,()=>{Cc===m&&(cancelAnimationFrame(m),Cc=0)}}const Jf={inert:new WeakMap,"aria-hidden":new WeakMap},Yy="data-base-ui-inert",Im={inert:new WeakSet,"aria-hidden":new WeakSet};let Rl=new WeakMap,Wf=0;function gR(t){return Im[t]}function g1(t){return t?_a(t)?t.host:g1(t.parentNode):null}const Vy=(t,r)=>r.map(o=>{if(t.contains(o))return o;const a=g1(o);return t.contains(a)?a:null}).filter(o=>o!=null),Fy=t=>{const r=new Set;return t.forEach(o=>{let a=o;for(;a&&!r.has(a);)r.add(a),a=a.parentNode}),r},Gy=(t,r,o)=>{const a=[],c=d=>{!d||o.has(d)||Array.from(d.children).forEach(m=>{Sn(m)!=="script"&&(r.has(m)?c(m):a.push(m))})};return c(t),a};function xR(t,r,o,a,{mark:c=!0}){let d=null;a?d="inert":o&&(d="aria-hidden");let m=null,g=null;const b=Vy(r,t),p=c?Gy(r,Fy(b),new Set(b)):[],y=[],x=[];if(d){const S=Jf[d],j=gR(d);g=j,m=S;const E=Vy(r,Array.from(r.querySelectorAll("[aria-live]"))),k=b.concat(E);Gy(r,Fy(k),new Set(k)).forEach(N=>{const T=N.getAttribute(d),_=T!==null&&T!=="false",w=(S.get(N)||0)+1;S.set(N,w),y.push(N),w===1&&_&&j.add(N),_||N.setAttribute(d,d==="inert"?"":"true")})}return c&&p.forEach(S=>{const j=(Rl.get(S)||0)+1;Rl.set(S,j),x.push(S),j===1&&S.setAttribute(Yy,"")}),Wf+=1,()=>{m&&y.forEach(S=>{const E=(m.get(S)||0)-1;m.set(S,E),E||(!g?.has(S)&&d&&S.removeAttribute(d),g?.delete(S))}),c&&x.forEach(S=>{const j=(Rl.get(S)||0)-1;Rl.set(S,j),j||S.removeAttribute(Yy)}),Wf-=1,Wf||(Jf.inert=new WeakMap,Jf["aria-hidden"]=new WeakMap,Im.inert=new WeakSet,Im["aria-hidden"]=new WeakSet,Rl=new WeakMap)}}function qy(t,r={}){const{ariaHidden:o=!1,inert:a=!1,mark:c=!0}=r,d=Nt(t[0]).body;return xR(t,d,o,a,{mark:c})}const bR=500,x1=500,yR={style:{transition:"none"}},b1="data-base-ui-click-trigger",vR={fallbackAxisSide:"none"},y1={fallbackAxisSide:"end"},SR={clipPath:"inset(50%)",position:"fixed",top:0,left:0},v1=h.createContext(null),S1=()=>h.useContext(v1),ER=Jl("portal");function NR(t={}){const{ref:r,container:o,componentProps:a=Ft,elementProps:c}=t,d=wo(),g=S1()?.portalNode,[b,p]=h.useState(null),[y,x]=h.useState(null),S=st(O=>{O!==null&&x(O)}),j=h.useRef(null);Qe(()=>{if(o===null){j.current&&(j.current=null,x(null),p(null));return}if(d==null)return;const O=(o&&(cp(o)?o:o.current))??g??document.body;if(O==null){j.current&&(j.current=null,x(null),p(null));return}j.current!==O&&(j.current=O,x(null),p(O))},[o,g,d]);const E=hn("div",a,{ref:[r,S],props:[{id:d,[ER]:""},c]});return{portalNode:y,portalSubtree:b&&E?dr.createPortal(E,b):null}}const Op=h.forwardRef(function(r,o){const{render:a,className:c,style:d,children:m,container:g,renderGuards:b,...p}=r,{portalNode:y,portalSubtree:x}=NR({container:g,ref:o,componentProps:r,elementProps:p}),S=h.useRef(null),j=h.useRef(null),E=h.useRef(null),k=h.useRef(null),[O,N]=h.useState(null),T=h.useRef(!1),_=O?.modal,w=O?.open,V=typeof b=="boolean"?b:!!O&&!O.modal&&O.open&&!!y;h.useEffect(()=>{if(!y||_)return;function L(C){y&&C.relatedTarget&&Ra(C)&&(C.type==="focusin"?T.current&&(Uy(y),T.current=!1):(hR(y),T.current=!0))}return Ds(xt(y,"focusin",L,!0),xt(y,"focusout",L,!0))},[y,_]),Qe(()=>{!y||w!==!0||!T.current||(Uy(y),T.current=!1)},[w,y]);const M=h.useMemo(()=>({beforeOutsideRef:S,afterOutsideRef:j,beforeInsideRef:E,afterInsideRef:k,portalNode:y,setFocusManagerState:N}),[y]);return i.jsxs(h.Fragment,{children:[x,i.jsxs(v1.Provider,{value:M,children:[V&&y&&i.jsx(Gr,{"data-type":"outside",ref:S,onFocus:L=>{if(Ra(L,y))E.current?.focus();else{const C=O?O.domReference:null;p1(C)?.focus()}}}),V&&y&&i.jsx("span",{"aria-owns":y.id,style:SR}),y&&dr.createPortal(m,y),V&&y&&i.jsx(Gr,{"data-type":"outside",ref:j,onFocus:L=>{if(Ra(L,y))k.current?.focus();else{const C=O?O.domReference:null;Rp(C)?.focus(),O?.closeOnFocusOut&&O?.onOpenChange(!1,jt(To,L.nativeEvent))}}})]})]})});function E1(){const t=new Map;return{emit(r,o){t.get(r)?.forEach(a=>a(o))},on(r,o){t.has(r)||t.set(r,new Set),t.get(r).add(o)},off(r,o){t.get(r)?.delete(o)}}}class kp{nodesRef={current:[]};events=E1();addNode(r){this.nodesRef.current.push(r)}removeNode(r){const o=this.nodesRef.current.findIndex(a=>a===r);o!==-1&&this.nodesRef.current.splice(o,1)}}const N1=h.createContext(null),j1=h.createContext(null),pr=()=>h.useContext(N1)?.id||null,Kr=t=>{const r=h.useContext(j1);return t??r};function _p(t){const r=wo(),o=Kr(t),a=pr();return Qe(()=>{if(!r)return;const c={id:r,parentId:a};return o?.addNode(c),()=>{o?.removeNode(c)}},[o,r,a]),r}function T1(t){const{children:r,id:o}=t,a=pr();return i.jsx(N1.Provider,{value:h.useMemo(()=>({id:o,parentId:a}),[o,a]),children:r})}function w1(t){const{children:r,externalTree:o}=t,a=In(()=>o??new kp).current;return i.jsx(j1.Provider,{value:a,children:r})}function jR(t,r){const o=Zt(Ln(t));return t instanceof o.KeyboardEvent?"keyboard":t instanceof o.FocusEvent?r||"keyboard":"pointerType"in t?t.pointerType||"keyboard":"touches"in t?"touch":t instanceof o.MouseEvent?r||(t.detail===0?"keyboard":"mouse"):""}const $y=20;let Pr=[];function Mp(){Pr=Pr.filter(t=>t.deref()?.isConnected)}function Xy(t){Mp(),t&&Sn(t)!=="body"&&(Pr.push(new WeakRef(t)),Pr.length>$y&&(Pr=Pr.slice(-$y)))}function Ky(){return Mp(),Pr[Pr.length-1]?.deref()}function TR(t){return t?Cp(t)?t:oi(t)[0]||t:null}function Qy(t){if(t.hasAttribute("tabindex")&&!t.hasAttribute("data-tabindex")||!t.getAttribute("role")?.includes("dialog"))return;const o=f1(t).filter(c=>{const d=c.getAttribute("data-tabindex")||"";return Cp(c)||c.hasAttribute("data-tabindex")&&!d.startsWith("-")}),a=t.getAttribute("tabindex");o.length===0?a!=="0"&&(t.setAttribute("tabindex","0"),t.setAttribute("data-tabindex","0")):(a!=="-1"||t.hasAttribute("data-tabindex")&&t.getAttribute("data-tabindex")!=="-1")&&(t.setAttribute("tabindex","-1"),t.setAttribute("data-tabindex","-1"))}function Ap(t){const{context:r,children:o,disabled:a=!1,initialFocus:c=!0,returnFocus:d=!0,restoreFocus:m=!1,modal:g=!0,closeOnFocusOut:b=!0,openInteractionType:p="",nextFocusableElement:y,previousFocusableElement:x,beforeContentFocusGuardRef:S,externalTree:j,getInsideElements:E}=t,k="rootStore"in r?r.rootStore:r,O=k.useState("open"),N=k.useState("domReferenceElement"),T=k.useState("floatingElement"),{events:_,dataRef:w}=k.context,V=st(()=>w.current.floatingContext?.nodeId),M=c===!1,L=Mm(N)&&M,C=un(c),Z=un(d),re=un(p),ie=un(O),te=Kr(j),K=S1(),ne=h.useRef(!1),W=h.useRef(!1),D=h.useRef(!1),z=h.useRef(null),P=h.useRef(""),U=h.useRef(""),F=h.useRef(null),A=h.useRef(null),H=Ma(F,S,K?.beforeInsideRef),I=Ma(A,K?.afterInsideRef),B=Qn(),G=Qn(),Q=Ql(),he=K!=null,le=Am(T),de=st((we=le)=>we?oi(we):[]),Ue=st(()=>E?.().filter(we=>we!=null)??[]);h.useEffect(()=>{if(a||!g)return;function we(ge){ge.key==="Tab"&&tt(le,Cn(Nt(le)))&&de().length===0&&!L&&Ts(ge)}const Be=Nt(le);return xt(Be,"keydown",we)},[a,le,g,L,de]),h.useEffect(()=>{if(a||!O)return;const we=Nt(le);function Be(){D.current=!1}function ge(Me){const Oe=Ln(Me),_e=Ue(),be=tt(T,Oe)||tt(N,Oe)||tt(K?.portalNode,Oe)||_e.some(Ie=>Ie===Oe||tt(Ie,Oe));D.current=!be,U.current=Me.pointerType||"keyboard",Oe?.closest(`[${b1}]`)&&(W.current=!0,G.start(0,()=>{W.current=!1}))}function q(){U.current="keyboard"}return Ds(xt(we,"pointerdown",ge,!0),xt(we,"pointerup",Be,!0),xt(we,"pointercancel",Be,!0),xt(we,"keydown",q,!0),Be)},[a,T,N,le,O,K,G,Ue]),h.useEffect(()=>{if(a||!b)return;const we=Nt(le);function Be(){W.current=!0,G.start(0,()=>{W.current=!1})}function ge(_e){const be=Ln(_e);Cp(be)&&(z.current=be)}function q(_e){const be=_e.relatedTarget,Ie=_e.currentTarget,Ve=Ln(_e);g&&be==null&&Ve!=null&&tt(T,Ve)&&Xy(Ve),queueMicrotask(()=>{const Pe=V(),ee=k.context.triggerElements,Y=Ue(),$=be?.hasAttribute(Jl("focus-guard"))&&[F.current,A.current,K?.beforeInsideRef.current,K?.afterInsideRef.current,K?.beforeOutsideRef.current,K?.afterOutsideRef.current,nr(x),nr(y)].includes(be),Te=!(tt(N,be)||tt(T,be)||tt(be,T)||tt(K?.portalNode,be)||Y.some(xe=>xe===be||tt(xe,be))||be!=null&&ee.hasElement(be)||ee.hasMatchingElement(xe=>tt(xe,be))||$||te&&(qr(te.nodesRef.current,Pe).find(xe=>tt(xe.context?.elements.floating,be)||tt(xe.context?.elements.domReference,be))||Py(te.nodesRef.current,Pe).find(xe=>[xe.context?.elements.floating,Am(xe.context?.elements.floating)].includes(be)||xe.context?.elements.domReference===be)));if(Ie===N&&le&&Qy(le),m&&Ie!==N&&!Su(Ve)&&Cn(we)===we.body){if(Vt(le)&&(le.focus(),m==="popup")){Q.request(()=>{le.focus()});return}const xe=de(),ae=z.current,ke=(ae&&xe.includes(ae)?ae:null)||xe[xe.length-1]||le;Vt(ke)&&ke.focus()}if(w.current.insideReactTree){w.current.insideReactTree=!1;return}(L||!g)&&be&&Te&&!W.current&&(L||be!==Ky())&&(ne.current=!0,k.setOpen(!1,jt(To,_e)))})}function Me(){D.current||(w.current.insideReactTree=!0,B.start(0,()=>{w.current.insideReactTree=!1}))}const Oe=Vt(N)?N:null;if(!(!T&&!Oe))return Ds(Oe&&xt(Oe,"focusout",q),Oe&&xt(Oe,"pointerdown",Be),T&&xt(T,"focusin",ge),T&&xt(T,"focusout",q),T&&K&&xt(T,"focusout",Me,!0))},[a,N,T,le,g,te,K,k,b,m,de,L,V,w,B,G,Q,y,x,Ue]),h.useEffect(()=>{if(a||!T||!O)return;const we=Array.from(K?.portalNode?.querySelectorAll(`[${Jl("portal")}]`)||[]),ge=(te?Py(te.nodesRef.current,V()):[]).find(Ie=>Mm(Ie.context?.elements.domReference||null))?.context?.elements.domReference,Me=[...[T,...we,F.current,A.current,K?.beforeOutsideRef.current,K?.afterOutsideRef.current,...Ue()],ge,nr(x),nr(y),L?N:null].filter(Ie=>Ie!=null),Oe=qy(Me,{ariaHidden:g||L,mark:!1}),_e=[T,...we].filter(Ie=>Ie!=null),be=qy(_e);return()=>{be(),Oe()}},[O,a,N,T,g,K,L,te,V,y,x,Ue]),Qe(()=>{if(!O||a||!Vt(le))return;const we=Nt(le),Be=Cn(we);queueMicrotask(()=>{const ge=C.current,q=typeof ge=="function"?ge(re.current||""):ge;if(q===void 0||q===!1||tt(le,Be))return;let Oe=null;const _e=()=>(Oe==null&&(Oe=de(le)),Oe[0]||le);let be;q===!0||q===null?be=_e():be=nr(q),be=be||_e();const Ie=tt(le,Cn(we));Uc(be,{preventScroll:be===le,shouldFocus(){if(!ie.current)return!1;if(Ie)return!0;const Ve=Cn(we);return!(Ve!==be&&tt(le,Ve))}})})},[a,O,le,de,C,re,ie]),Qe(()=>{if(a||!le)return;const we=Nt(le),Be=Cn(we),ge=re.current==null;Xy(Be);function q(Oe){if(Oe.open||(P.current=jR(Oe.nativeEvent,U.current)),Oe.reason===pn&&Oe.nativeEvent.type==="mouseleave"&&(ne.current=!0),Oe.reason===xp)if(Oe.nested)ne.current=!1;else if(J0(Oe.nativeEvent)||W0(Oe.nativeEvent))ne.current=!1;else{let _e=!1;Nt(le).createElement("div").focus({get preventScroll(){return _e=!0,!1}}),_e?ne.current=!1:ne.current=!0}}_.on("openchange",q);function Me(){const Oe=Z.current;let _e=typeof Oe=="function"?Oe(P.current):Oe;if(_e===void 0||_e===!1)return null;_e===null&&(_e=!0);const be=N?.isConnected?N:null,Ie=Be?.isConnected&&Sn(Be)!=="body"?Be:null;let Ve=ge?Ie||be:be||Ie;return Ve||(Ve=Ky()||null),typeof _e=="boolean"?Ve:nr(_e)||Ve||null}return()=>{_.off("openchange",q);const Oe=Cn(we),_e=Ue(),be=tt(T,Oe)||_e.some(Pe=>Pe===Oe||tt(Pe,Oe))||te&&qr(te.nodesRef.current,V(),!1).some(Pe=>tt(Pe.context?.elements.floating,Oe)),Ie=Z.current,Ve=Me();queueMicrotask(()=>{const Pe=TR(Ve),ee=typeof Ie!="boolean";Ie&&!ne.current&&Vt(Pe)&&(!(!ee&&Pe!==Oe&&Oe!==we.body)||be)&&Pe.focus({preventScroll:!0}),ne.current=!1})}},[a,T,le,Z,re,_,te,N,V,Ue]),Qe(()=>{if(!_o||O||!T)return;const we=Cn(Nt(T));!Vt(we)||!vu(we)||tt(T,we)&&we.blur()},[O,T]),Qe(()=>{if(!(a||!K))return K.setFocusManagerState({modal:g,closeOnFocusOut:b,open:O,onOpenChange:k.setOpen,domReference:N}),()=>{K.setFocusManagerState(null)}},[a,K,g,O,k,b,N]),Qe(()=>{if(!(a||!le))return Qy(le),()=>{queueMicrotask(Mp)}},[a,le]);const Le=!a&&(g?!L:!0)&&(he||g);return i.jsxs(h.Fragment,{children:[Le&&i.jsx(Gr,{"data-type":"inside",ref:H,onFocus:we=>{if(g){const Be=de();Uc(Be[Be.length-1])}else K?.portalNode&&(ne.current=!1,Ra(we,K.portalNode)?Rp(N)?.focus():nr(x??K.beforeOutsideRef)?.focus())}}),o,Le&&i.jsx(Gr,{"data-type":"inside",ref:I,onFocus:we=>{g?Uc(de()[0]):K?.portalNode&&(b&&(ne.current=!0),Ra(we,K.portalNode)?p1(N)?.focus():nr(y??K.afterOutsideRef)?.focus())}})]})}function C1(t,r={}){const{enabled:o=!0,event:a="click",toggle:c=!0,ignoreMouse:d=!1,stickIfOpen:m=!0,touchOpenDelay:g=0,reason:b=jo}=r,p="rootStore"in t?t.rootStore:t,y=p.context.dataRef,x=h.useRef(void 0),S=Ql(),j=Qn(),E=h.useMemo(()=>{function k(N,T,_,w){const V=jt(b,T,_);N&&w==="touch"&&g>0?j.start(g,()=>{p.setOpen(!0,V)}):p.setOpen(N,V)}function O(N,T,_){const w=y.current.openEvent,V=p.select("domReferenceElement")!==T;return N&&V||!N||!c?!0:w&&m?!_(w.type):!1}return{onPointerDown(N){x.current=N.pointerType},onMouseDown(N){const T=x.current,_=N.nativeEvent,w=p.select("open");if(N.button!==0||a==="click"||Zl(T,!0)&&d)return;const V=O(w,N.currentTarget,C=>C==="click"||C==="mousedown"),M=Ln(_);if(vu(M)){k(V,_,M,T);return}const L=N.currentTarget;S.request(()=>{k(V,_,L,T)})},onClick(N){if(a==="mousedown-only")return;const T=x.current;if(a==="mousedown"&&T){x.current=void 0;return}if(Zl(T,!0)&&d)return;const _=p.select("open"),w=O(_,N.currentTarget,V=>V==="click"||V==="mousedown"||V==="keydown"||V==="keyup");k(w,N.nativeEvent,N.currentTarget,T)},onKeyDown(){x.current=void 0}}},[y,a,d,b,p,m,c,S,j,g]);return h.useMemo(()=>o?{reference:E}:Ft,[o,E])}function wR(){return!1}function CR(t){return{escapeKey:typeof t=="boolean"?t:t?.escapeKey??!1,outsidePress:typeof t=="boolean"?t:t?.outsidePress??!0}}function Dp(t,r={}){const{enabled:o=!0,escapeKey:a=!0,outsidePress:c=!0,outsidePressEvent:d="sloppy",referencePress:m=wR,bubbles:g,externalTree:b}=r,p="rootStore"in t?t.rootStore:t,y=p.useState("open"),x=p.useState("floatingElement"),{dataRef:S}=p.context,j=Kr(b),E=st(typeof c=="function"?c:()=>!1),k=typeof c=="function"?E:c,O=k!==!1,N=st(()=>d),{escapeKey:T,outsidePress:_}=CR(g),w=h.useRef(!1),V=h.useRef(!1),M=h.useRef(!1),L=h.useRef(!1),C=h.useRef(""),Z=h.useRef(null),re=Qn(),ie=Qn(),te=st(()=>{ie.clear(),S.current.insideReactTree=!1}),K=st(H=>{const I=S.current.floatingContext?.nodeId;return(j?qr(j.nodesRef.current,I):[]).some(G=>G.context?.open&&!G.context.dataRef.current[H])}),ne=st(H=>Kf(H,p.select("floatingElement"))||Kf(H,p.select("domReferenceElement"))),W=st(H=>{m()&&p.setOpen(!1,jt(jo,H.nativeEvent))}),D=st(H=>{if(!y||!o||!a||H.key!=="Escape"||L.current||!T&&K("__escapeKeyBubbles"))return;const I=YC(H)?H.nativeEvent:H,B=jt(pu,I);p.setOpen(!1,B),B.isCanceled||H.preventDefault(),!T&&!B.isPropagationAllowed&&H.stopPropagation()}),z=st(()=>{S.current.insideReactTree=!0,ie.start(0,te)}),P=st(H=>{if(!y||!o||H.button!==0)return;const I=Ln(H.nativeEvent);tt(p.select("floatingElement"),I)&&(w.current||(w.current=!0,V.current=!1))}),U=st(H=>{!y||!o||(H.defaultPrevented||H.nativeEvent.defaultPrevented)&&w.current&&(V.current=!0)});h.useEffect(()=>{if(!y||!o)return;S.current.__escapeKeyBubbles=T,S.current.__outsidePressBubbles=_;const H=new gs,I=new gs;function B(){H.clear(),L.current=!0}function G(){H.start(_o?5:0,()=>{L.current=!1})}function Q(){M.current=!0,I.start(0,()=>{M.current=!1})}function he(){w.current=!1,V.current=!1}function le(){const Y=C.current,$=Y==="pen"||!Y?"mouse":Y,Te=N(),xe=typeof Te=="function"?Te():Te;return typeof xe=="string"?xe:xe[$]}function de(Y){const $=le();return $==="intentional"&&Y.type!=="click"||$==="sloppy"&&Y.type==="click"}function Ue(Y){const $=S.current.floatingContext?.nodeId,Te=j&&qr(j.nodesRef.current,$).some(xe=>Kf(Y,xe.context?.elements.floating));return ne(Y)||Te}function Le(Y){if(de(Y)){Y.type!=="click"&&!ne(Y)&&(I.clear(),M.current=!1),te();return}if(S.current.insideReactTree){te();return}const $=Ln(Y),Te=`[${Jl("inert")}]`,xe=vt($)?$.getRootNode():null,ae=Array.from((_a(xe)?xe:Nt(p.select("floatingElement"))).querySelectorAll(Te)),ke=p.context.triggerElements;if($&&(ke.hasElement($)||ke.hasMatchingElement(We=>tt(We,$))))return;let Ye=vt($)?$:null;for(;Ye&&!rr(Ye);){const We=ur(Ye);if(rr(We)||!vt(We))break;Ye=We}if(!(ae.length&&vt($)&&!FC($)&&!tt($,p.select("floatingElement"))&&ae.every(We=>!tt(Ye,We)))){if(Vt($)&&!("touches"in Y)){const We=rr($),pt=Kn($),At=/auto|scroll/,mt=We||At.test(pt.overflowX),Tt=We||At.test(pt.overflowY),Rt=mt&&$.clientWidth>0&&$.scrollWidth>$.clientWidth,Lt=Tt&&$.clientHeight>0&&$.scrollHeight>$.clientHeight,Ce=pt.direction==="rtl",Se=Lt&&(Ce?Y.offsetX<=$.offsetWidth-$.clientWidth:Y.offsetX>$.clientWidth),Ge=Rt&&Y.offsetY>$.clientHeight;if(Se||Ge)return}if(!Ue(Y)){if(le()==="intentional"&&M.current){I.clear(),M.current=!1;return}typeof k=="function"&&!k(Y)||K("__outsidePressBubbles")||(p.setOpen(!1,jt(xp,Y)),te())}}}function we(Y){le()!=="sloppy"||Y.pointerType==="touch"||!p.select("open")||!o||ne(Y)||Le(Y)}function Be(Y){if(le()!=="sloppy"||!p.select("open")||!o||ne(Y))return;const $=Y.touches[0];$&&(Z.current={startTime:Date.now(),startX:$.clientX,startY:$.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},re.start(1e3,()=>{Z.current&&(Z.current.dismissOnTouchEnd=!1,Z.current.dismissOnMouseDown=!1)}))}function ge(Y,$){const Te=Ln(Y);if(!Te)return;const xe=xt(Te,Y.type,()=>{$(Y),xe()})}function q(Y){C.current="touch",ge(Y,Be)}function Me(Y){re.clear(),Y.type==="pointerdown"&&(C.current=Y.pointerType),!(Y.type==="mousedown"&&Z.current&&!Z.current.dismissOnMouseDown)&&ge(Y,$=>{$.type==="pointerdown"?we($):Le($)})}function Oe(Y){if(!w.current)return;const $=V.current;if(he(),le()==="intentional"){if(Y.type==="pointercancel"){$&&Q();return}if(!Ue(Y)){if($){Q();return}typeof k=="function"&&!k(Y)||(I.clear(),M.current=!0,te())}}}function _e(Y){if(le()!=="sloppy"||!Z.current||ne(Y))return;const $=Y.touches[0];if(!$)return;const Te=Math.abs($.clientX-Z.current.startX),xe=Math.abs($.clientY-Z.current.startY),ae=Math.sqrt(Te*Te+xe*xe);ae>5&&(Z.current.dismissOnTouchEnd=!0),ae>10&&(Le(Y),re.clear(),Z.current=null)}function be(Y){ge(Y,_e)}function Ie(Y){le()!=="sloppy"||!Z.current||ne(Y)||(Z.current.dismissOnTouchEnd&&Le(Y),re.clear(),Z.current=null)}function Ve(Y){ge(Y,Ie)}const Pe=Nt(x),ee=Ds(a&&Ds(xt(Pe,"keydown",D),xt(Pe,"compositionstart",B),xt(Pe,"compositionend",G)),O&&Ds(xt(Pe,"click",Me,!0),xt(Pe,"pointerdown",Me,!0),xt(Pe,"pointerup",Oe,!0),xt(Pe,"pointercancel",Oe,!0),xt(Pe,"mousedown",Me,!0),xt(Pe,"mouseup",Oe,!0),xt(Pe,"touchstart",q,!0),xt(Pe,"touchmove",be,!0),xt(Pe,"touchend",Ve,!0)));return()=>{ee(),H.clear(),I.clear(),he(),M.current=!1}},[S,x,a,O,k,y,o,T,_,D,te,N,K,ne,j,p,re]),h.useEffect(te,[k,te]);const F=h.useMemo(()=>({onKeyDown:D,onPointerDown:W,onClick:W}),[D,W]),A=h.useMemo(()=>({onKeyDown:D,onPointerDown:U,onMouseDown:U,onClickCapture:z,onMouseDownCapture(H){z(),P(H)},onPointerDownCapture(H){z(),P(H)},onMouseUpCapture:z,onTouchEndCapture:z,onTouchMoveCapture:z}),[D,z,P,U]);return h.useMemo(()=>o?{reference:F,floating:A,trigger:F}:{},[o,F,A])}function Zy(t,r,o){let{reference:a,floating:c}=t;const d=us(r),m=wp(r),g=Tp(m),b=$n(r),p=d==="y",y=a.x+a.width/2-c.width/2,x=a.y+a.height/2-c.height/2,S=a[g]/2-c[g]/2;let j;switch(b){case"top":j={x:y,y:a.y-c.height};break;case"bottom":j={x:y,y:a.y+a.height};break;case"right":j={x:a.x+a.width,y:x};break;case"left":j={x:a.x-c.width,y:x};break;default:j={x:a.x,y:a.y}}const E=Xr(r);return E&&(j[m]+=S*(E==="end"?1:-1)*(o&&p?-1:1)),j}async function RR(t,r){var o;r===void 0&&(r={});const{x:a,y:c,platform:d,rects:m,elements:g,strategy:b}=t,{boundary:p="clippingAncestors",rootBoundary:y="viewport",elementContext:x="floating",altBoundary:S=!1,padding:j=0}=fr(r,t),E=r1(j),O=g[S?x==="floating"?"reference":"floating":x],N=eu(await d.getClippingRect({element:(o=await(d.isElement==null?void 0:d.isElement(O)))==null||o?O:O.contextElement||await(d.getDocumentElement==null?void 0:d.getDocumentElement(g.floating)),boundary:p,rootBoundary:y,strategy:b})),T=x==="floating"?{x:a,y:c,width:m.floating.width,height:m.floating.height}:m.reference,_=await(d.getOffsetParent==null?void 0:d.getOffsetParent(g.floating)),w=await(d.isElement==null?void 0:d.isElement(_))&&await(d.getScale==null?void 0:d.getScale(_))||{x:1,y:1},V=eu(d.convertOffsetParentRelativeRectToViewportRelativeRect?await d.convertOffsetParentRelativeRectToViewportRelativeRect({elements:g,rect:T,offsetParent:_,strategy:b}):T);return{top:(N.top-V.top+E.top)/w.y,bottom:(V.bottom-N.bottom+E.bottom)/w.y,left:(N.left-V.left+E.left)/w.x,right:(V.right-N.right+E.right)/w.x}}const OR=50,kR=async(t,r,o)=>{const{placement:a="bottom",strategy:c="absolute",middleware:d=[],platform:m}=o,g=m.detectOverflow?m:{...m,detectOverflow:RR},b=await(m.isRTL==null?void 0:m.isRTL(r));let p=await m.getElementRects({reference:t,floating:r,strategy:c}),{x:y,y:x}=Zy(p,a,b),S=a,j=0;const E={};for(let k=0;k<d.length;k++){const O=d[k];if(!O)continue;const{name:N,fn:T}=O,{x:_,y:w,data:V,reset:M}=await T({x:y,y:x,initialPlacement:a,placement:S,strategy:c,middlewareData:E,rects:p,platform:g,elements:{reference:t,floating:r}});y=_??y,x=w??x,E[N]={...E[N],...V},M&&j<OR&&(j++,typeof M=="object"&&(M.placement&&(S=M.placement),M.rects&&(p=M.rects===!0?await m.getElementRects({reference:t,floating:r,strategy:c}):M.rects),{x:y,y:x}=Zy(p,S,b)),k=-1)}return{x:y,y:x,placement:S,strategy:c,middlewareData:E}},_R=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(r){var o,a;const{placement:c,middlewareData:d,rects:m,initialPlacement:g,platform:b,elements:p}=r,{mainAxis:y=!0,crossAxis:x=!0,fallbackPlacements:S,fallbackStrategy:j="bestFit",fallbackAxisSideDirection:E="none",flipAlignment:k=!0,...O}=fr(t,r);if((o=d.arrow)!=null&&o.alignmentOffset)return{};const N=$n(c),T=us(g),_=$n(g)===g,w=await(b.isRTL==null?void 0:b.isRTL(p.floating)),V=S||(_||!k?[Wc(g)]:tR(g)),M=E!=="none";!S&&M&&V.push(...oR(g,k,E,w));const L=[g,...V],C=await b.detectOverflow(r,O),Z=[];let re=((a=d.flip)==null?void 0:a.overflows)||[];if(y&&Z.push(C[N]),x){const ne=eR(c,m,w);Z.push(C[ne[0]],C[ne[1]])}if(re=[...re,{placement:c,overflows:Z}],!Z.every(ne=>ne<=0)){var ie,te;const ne=(((ie=d.flip)==null?void 0:ie.index)||0)+1,W=L[ne];if(W&&(!(x==="alignment"?T!==us(W):!1)||re.every(P=>us(P.placement)===T?P.overflows[0]>0:!0)))return{data:{index:ne,overflows:re},reset:{placement:W}};let D=(te=re.filter(z=>z.overflows[0]<=0).sort((z,P)=>z.overflows[1]-P.overflows[1])[0])==null?void 0:te.placement;if(!D)switch(j){case"bestFit":{var K;const z=(K=re.filter(P=>{if(M){const U=us(P.placement);return U===T||U==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(U=>U>0).reduce((U,F)=>U+F,0)]).sort((P,U)=>P[1]-U[1])[0])==null?void 0:K[0];z&&(D=z);break}case"initialPlacement":D=g;break}if(c!==D)return{reset:{placement:D}}}return{}}}};function Jy(t,r){return{top:t.top-r.height,right:t.right-r.width,bottom:t.bottom-r.height,left:t.left-r.width}}function Wy(t){return JC.some(r=>t[r]>=0)}const MR=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(r){const{rects:o,platform:a}=r,{strategy:c="referenceHidden",...d}=fr(t,r);switch(c){case"referenceHidden":{const m=await a.detectOverflow(r,{...d,elementContext:"reference"}),g=Jy(m,o.reference);return{data:{referenceHiddenOffsets:g,referenceHidden:Wy(g)}}}case"escaped":{const m=await a.detectOverflow(r,{...d,altBoundary:!0}),g=Jy(m,o.floating);return{data:{escapedOffsets:g,escaped:Wy(g)}}}default:return{}}}}},R1=new Set(["left","top"]);async function AR(t,r){const{placement:o,platform:a,elements:c}=t,d=await(a.isRTL==null?void 0:a.isRTL(c.floating)),m=$n(o),g=Xr(o),b=us(o)==="y",p=R1.has(m)?-1:1,y=d&&b?-1:1,x=fr(r,t);let{mainAxis:S,crossAxis:j,alignmentAxis:E}=typeof x=="number"?{mainAxis:x,crossAxis:0,alignmentAxis:null}:{mainAxis:x.mainAxis||0,crossAxis:x.crossAxis||0,alignmentAxis:x.alignmentAxis};return g&&typeof E=="number"&&(j=g==="end"?E*-1:E),b?{x:j*y,y:S*p}:{x:S*p,y:j*y}}const DR=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(r){var o,a;const{x:c,y:d,placement:m,middlewareData:g}=r,b=await AR(r,t);return m===((o=g.offset)==null?void 0:o.placement)&&(a=g.arrow)!=null&&a.alignmentOffset?{}:{x:c+b.x,y:d+b.y,data:{...b,placement:m}}}}},zR=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(r){const{x:o,y:a,placement:c,platform:d}=r,{mainAxis:m=!0,crossAxis:g=!1,limiter:b={fn:T=>{let{x:_,y:w}=T;return{x:_,y:w}}},...p}=fr(t,r),y={x:o,y:a},x=await d.detectOverflow(r,p),S=us(c),j=jp(S);let E=y[j],k=y[S];const O=(T,_)=>s1(_+x[T==="y"?"top":"left"],_,_-x[T==="y"?"bottom":"right"]);m&&(E=O(j,E)),g&&(k=O(S,k));const N=b.fn({...r,[j]:E,[S]:k});return{...N,data:{x:N.x-o,y:N.y-a,enabled:{[j]:m,[S]:g}}}}}},LR=function(t){return t===void 0&&(t={}),{options:t,fn(r){var o,a;const{x:c,y:d,placement:m,rects:g,middlewareData:b}=r,{offset:p=0,mainAxis:y=!0,crossAxis:x=!0}=fr(t,r),S={x:c,y:d},j=us(m),E=jp(j);let k=S[E],O=S[j];const N=fr(p,r),T=typeof N=="number"?{mainAxis:N,crossAxis:0}:{mainAxis:(o=N.mainAxis)!=null?o:0,crossAxis:(a=N.crossAxis)!=null?a:0};if(y){const V=E==="y"?"height":"width",M=g.reference[E]-g.floating[V]+T.mainAxis,L=g.reference[E]+g.reference[V]-T.mainAxis;k<M?k=M:k>L&&(k=L)}if(x){var _,w;const V=E==="y"?"width":"height",M=R1.has($n(m)),L=g.reference[j]-g.floating[V]+(M&&((_=b.offset)==null?void 0:_[j])||0)+(M?0:T.crossAxis),C=g.reference[j]+g.reference[V]+(M?0:((w=b.offset)==null?void 0:w[j])||0)-(M?T.crossAxis:0);O<L?O=L:O>C&&(O=C)}return{[E]:k,[j]:O}}}},IR=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(r){const{placement:o,rects:a,platform:c,elements:d}=r,{apply:m=()=>{},...g}=fr(t,r),b=await c.detectOverflow(r,g),p=$n(o),y=Xr(o),x=us(o)==="y",{width:S,height:j}=a.floating;let E,k;p==="top"||p==="bottom"?(E=p,k=y===(await(c.isRTL==null?void 0:c.isRTL(d.floating))?"start":"end")?"left":"right"):(k=p,E=y==="end"?"top":"bottom");const O=j-b.top-b.bottom,N=S-b.left-b.right,T=Aa(j-b[E],O),_=Aa(S-b[k],N),w=r.middlewareData.shift,V=!w;let M=T,L=_;w!=null&&w.enabled.x&&(L=N),w!=null&&w.enabled.y&&(M=O),V&&!y&&(x?L=S-2*ar(b.left,b.right):M=j-2*ar(b.top,b.bottom)),await m({...r,availableWidth:L,availableHeight:M});const C=await c.getDimensions(d.floating);return S!==C.width||j!==C.height?{reset:{rects:!0}}:{}}}};function O1(t){const r=Kn(t);let o=parseFloat(r.width)||0,a=parseFloat(r.height)||0;const c=Vt(t),d=c?t.offsetWidth:o,m=c?t.offsetHeight:a,g=Jc(o)!==d||Jc(a)!==m;return g&&(o=d,a=m),{width:o,height:a,$:g}}function zp(t){return vt(t)?t:t.contextElement}function Oa(t){const r=zp(t);if(!Vt(r))return lr(1);const o=r.getBoundingClientRect(),{width:a,height:c,$:d}=O1(r);let m=(d?Jc(o.width):o.width)/a,g=(d?Jc(o.height):o.height)/c;return(!m||!Number.isFinite(m))&&(m=1),(!g||!Number.isFinite(g))&&(g=1),{x:m,y:g}}const BR=lr(0);function k1(t){const r=Zt(t);return!dp()||!r.visualViewport?BR:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function HR(t,r,o){return r===void 0&&(r=!1),!!o&&r&&o===Zt(t)}function Co(t,r,o,a){r===void 0&&(r=!1),o===void 0&&(o=!1);const c=t.getBoundingClientRect(),d=zp(t);let m=lr(1);r&&(a?vt(a)&&(m=Oa(a)):m=Oa(t));const g=HR(d,o,a)?k1(d):lr(0);let b=(c.left+g.x)/m.x,p=(c.top+g.y)/m.y,y=c.width/m.x,x=c.height/m.y;if(d&&a){const S=Zt(d),j=vt(a)?Zt(a):a;let E=S,k=jm(E);for(;k&&j!==E;){const O=Oa(k),N=k.getBoundingClientRect(),T=Kn(k),_=N.left+(k.clientLeft+parseFloat(T.paddingLeft))*O.x,w=N.top+(k.clientTop+parseFloat(T.paddingTop))*O.y;b*=O.x,p*=O.y,y*=O.x,x*=O.y,b+=_,p+=w,E=Zt(k),k=jm(E)}}return eu({width:y,height:x,x:b,y:p})}function Eu(t,r){const o=du(t).scrollLeft;return r?r.left+o:Co(mr(t)).left+o}function _1(t,r){const o=t.getBoundingClientRect(),a=o.left+r.scrollLeft-Eu(t,o),c=o.top+r.scrollTop;return{x:a,y:c}}function UR(t){let{elements:r,rect:o,offsetParent:a,strategy:c}=t;const d=c==="fixed",m=mr(a),g=r?uu(r.floating):!1;if(a===m||g&&d)return o;let b={scrollLeft:0,scrollTop:0},p=lr(1);const y=lr(0),x=Vt(a);if((x||!d)&&((Sn(a)!=="body"||Oo(m))&&(b=du(a)),x)){const j=Co(a);p=Oa(a),y.x=j.x+a.clientLeft,y.y=j.y+a.clientTop}const S=m&&!x&&!d?_1(m,b):lr(0);return{width:o.width*p.x,height:o.height*p.y,x:o.x*p.x-b.scrollLeft*p.x+y.x+S.x,y:o.y*p.y-b.scrollTop*p.y+y.y+S.y}}function PR(t){return t.getClientRects?Array.from(t.getClientRects()):[]}function YR(t){const r=du(t),o=t.ownerDocument.body,a=ar(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),c=ar(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let d=-r.scrollLeft+Eu(t);const m=-r.scrollTop;return Kn(o).direction==="rtl"&&(d+=ar(t.clientWidth,o.clientWidth)-a),{width:a,height:c,x:d,y:m}}const VR=25;function FR(t,r,o){o===void 0&&(o="viewport");const a=o==="layoutViewport",c=Zt(t),d=mr(t),m=c.visualViewport;let g=d.clientWidth,b=d.clientHeight,p=0,y=0;if(m){const S=!dp()||r==="fixed";a?S||(p=-m.offsetLeft,y=-m.offsetTop):(g=m.width,b=m.height,S&&(p=m.offsetLeft,y=m.offsetTop))}if(Eu(d)<=0){const S=d.ownerDocument,j=S.body,E=getComputedStyle(j),k=S.compatMode==="CSS1Compat"&&parseFloat(E.marginLeft)+parseFloat(E.marginRight)||0,O=Math.abs(d.clientWidth-j.clientWidth-k),N=getComputedStyle(d).scrollbarGutter==="stable both-edges"?O/2:O;N<=VR&&(g-=N)}return{width:g,height:b,x:p,y}}function GR(t,r){const o=Co(t,!0,r==="fixed"),a=o.top+t.clientTop,c=o.left+t.clientLeft,d=Oa(t),m=t.clientWidth*d.x,g=t.clientHeight*d.y,b=c*d.x,p=a*d.y;return{width:m,height:g,x:b,y:p}}function ev(t,r,o){let a;if(r==="viewport"||r==="layoutViewport")a=FR(t,o,r);else if(r==="document")a=YR(mr(t));else if(vt(r))a=GR(r,o);else{const c=k1(t);a={x:r.x-c.x,y:r.y-c.y,width:r.width,height:r.height}}return eu(a)}function qR(t,r){const o=r.get(t);if(o)return o;let a=$l(t,[],!1).filter(g=>vt(g)&&Sn(g)!=="body"),c=null;const d=Kn(t).position==="fixed";let m=d?ur(t):t;for(;vt(m)&&!rr(m);){const g=Kn(m),b=up(m),p=c?c.position:d?"fixed":"";!b&&(p==="fixed"||p==="absolute"&&g.position==="static")?a=a.filter(x=>x!==m):c=g,m=ur(m)}return r.set(t,a),a}function $R(t){let{element:r,boundary:o,rootBoundary:a,strategy:c}=t;const m=[...o==="clippingAncestors"?uu(r)?[]:qR(r,this._c):[].concat(o),a],g=ev(r,m[0],c);let b=g.top,p=g.right,y=g.bottom,x=g.left;for(let S=1;S<m.length;S++){const j=ev(r,m[S],c);b=ar(j.top,b),p=Aa(j.right,p),y=Aa(j.bottom,y),x=ar(j.left,x)}return{width:p-x,height:y-b,x,y:b}}function XR(t){const{width:r,height:o}=O1(t);return{width:r,height:o}}function KR(t,r,o){const a=Vt(r),c=mr(r),d=o==="fixed",m=Co(t,!0,d,r);let g={scrollLeft:0,scrollTop:0};const b=lr(0);if((a||!d)&&((Sn(r)!=="body"||Oo(c))&&(g=du(r)),a)){const S=Co(r,!0,d,r);b.x=S.x+r.clientLeft,b.y=S.y+r.clientTop}!a&&c&&(b.x=Eu(c));const p=c&&!a&&!d?_1(c,g):lr(0),y=m.left+g.scrollLeft-b.x-p.x,x=m.top+g.scrollTop-b.y-p.y;return{x:y,y:x,width:m.width,height:m.height}}function em(t){return Kn(t).position==="static"}function tv(t,r){if(!Vt(t)||Kn(t).position==="fixed")return null;if(r)return r(t);let o=t.offsetParent;return mr(t)===o&&(o=o.ownerDocument.body),o}function M1(t,r){const o=Zt(t);if(uu(t))return o;if(!Vt(t)){let c=ur(t);for(;c&&!rr(c);){if(vt(c)&&!em(c))return c;c=ur(c)}return o}let a=tv(t,r);for(;a&&z2(a)&&em(a);)a=tv(a,r);return a&&rr(a)&&em(a)&&!up(a)?o:a||B2(t)||o}const QR=async function(t){const r=this.getOffsetParent||M1,o=this.getDimensions,a=await o(t.floating);return{reference:KR(t.reference,await r(t.floating),t.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function ZR(t){return Kn(t).direction==="rtl"}const JR={convertOffsetParentRelativeRectToViewportRelativeRect:UR,getDocumentElement:mr,getClippingRect:$R,getOffsetParent:M1,getElementRects:QR,getClientRects:PR,getDimensions:XR,getScale:Oa,isElement:vt,isRTL:ZR};function A1(t,r){return t.x===r.x&&t.y===r.y&&t.width===r.width&&t.height===r.height}function WR(t,r,o){let a=null,c;const d=mr(t);function m(){var y;clearTimeout(c),(y=a)==null||y.disconnect(),a=null}function g(y,x){y===void 0&&(y=!1),x===void 0&&(x=1),m();const S=t.getBoundingClientRect(),{left:j,top:E,width:k,height:O}=S;if(y||r(),!k||!O)return;const N=wc(E),T=wc(d.clientWidth-(j+k)),_=wc(d.clientHeight-(E+O)),w=wc(j),M={rootMargin:-N+"px "+-T+"px "+-_+"px "+-w+"px",threshold:ar(0,Aa(1,x))||1};let L=!0;function C(Z){const re=Z[0].intersectionRatio;if(!A1(S,t.getBoundingClientRect()))return g();if(re!==x){if(!L)return g();re?g(!1,re):c=setTimeout(()=>{g(!1,1e-7)},1e3)}L=!1}try{a=new IntersectionObserver(C,{...M,root:d.ownerDocument})}catch{a=new IntersectionObserver(C,M)}a.observe(t)}const b=Zt(t),p=()=>g(o);return b.addEventListener("resize",p),g(!0),()=>{b.removeEventListener("resize",p),m()}}function nv(t,r,o,a){a===void 0&&(a={});const{ancestorScroll:c=!0,ancestorResize:d=!0,elementResize:m=typeof ResizeObserver=="function",layoutShift:g=typeof IntersectionObserver=="function",animationFrame:b=!1}=a,p=zp(t),y=c||d?[...p?$l(p):[],...r?$l(r):[]]:[];y.forEach(N=>{c&&N.addEventListener("scroll",o),d&&N.addEventListener("resize",o)});const x=p&&g?WR(p,o,d):null;let S=-1,j=null;m&&(j=new ResizeObserver(N=>{let[T]=N;T&&T.target===p&&j&&r&&(j.unobserve(r),cancelAnimationFrame(S),S=requestAnimationFrame(()=>{var _;(_=j)==null||_.observe(r)})),o()}),p&&!b&&j.observe(p),r&&j.observe(r));let E,k=b?Co(t):null;b&&O();function O(){const N=Co(t);k&&!A1(k,N)&&o(),k=N,E=requestAnimationFrame(O)}return o(),()=>{var N;y.forEach(T=>{c&&T.removeEventListener("scroll",o),d&&T.removeEventListener("resize",o)}),x?.(),(N=j)==null||N.disconnect(),j=null,b&&cancelAnimationFrame(E)}}const eO=DR,tO=zR,nO=_R,sO=IR,rO=MR,oO=LR,aO=(t,r,o)=>{const a=new Map,c=o??{},d={...JR,...c.platform,_c:a};return kR(t,r,{...c,platform:d})};var lO=typeof document<"u",iO=function(){},Pc=lO?h.useLayoutEffect:iO;function tu(t,r){if(t===r)return!0;if(typeof t!=typeof r)return!1;if(typeof t=="function"&&t.toString()===r.toString())return!0;let o,a,c;if(t&&r&&typeof t=="object"){if(Array.isArray(t)){if(o=t.length,o!==r.length)return!1;for(a=o;a--!==0;)if(!tu(t[a],r[a]))return!1;return!0}if(c=Object.keys(t),o=c.length,o!==Object.keys(r).length)return!1;for(a=o;a--!==0;)if(!{}.hasOwnProperty.call(r,c[a]))return!1;for(a=o;a--!==0;){const d=c[a];if(!(d==="_owner"&&t.$$typeof)&&!tu(t[d],r[d]))return!1}return!0}return t!==t&&r!==r}function D1(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function sv(t,r){const o=D1(t);return Math.round(r*o)/o}function tm(t){const r=h.useRef(t);return Pc(()=>{r.current=t}),r}function cO(t){t===void 0&&(t={});const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:c,elements:{reference:d,floating:m}={},transform:g=!0,whileElementsMounted:b,open:p}=t,[y,x]=h.useState({x:0,y:0,strategy:o,placement:r,middlewareData:{},isPositioned:!1}),[S,j]=h.useState(a);tu(S,a)||j(a);const[E,k]=h.useState(null),[O,N]=h.useState(null),T=h.useCallback(P=>{P!==M.current&&(M.current=P,k(P))},[]),_=h.useCallback(P=>{P!==L.current&&(L.current=P,N(P))},[]),w=d||E,V=m||O,M=h.useRef(null),L=h.useRef(null),C=h.useRef(y),Z=b!=null,re=tm(b),ie=tm(c),te=tm(p),K=h.useCallback(()=>{if(!M.current||!L.current)return;const P={placement:r,strategy:o,middleware:S};ie.current&&(P.platform=ie.current),aO(M.current,L.current,P).then(U=>{const F={...U,isPositioned:te.current!==!1};ne.current&&!tu(C.current,F)&&(C.current=F,dr.flushSync(()=>{x(F)}))})},[S,r,o,ie,te]);Pc(()=>{p===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,x(P=>({...P,isPositioned:!1})))},[p]);const ne=h.useRef(!1);Pc(()=>(ne.current=!0,()=>{ne.current=!1}),[]),Pc(()=>{if(w&&(M.current=w),V&&(L.current=V),w&&V){if(re.current)return re.current(w,V,K);K()}},[w,V,K,re,Z]);const W=h.useMemo(()=>({reference:M,floating:L,setReference:T,setFloating:_}),[T,_]),D=h.useMemo(()=>({reference:w,floating:V}),[w,V]),z=h.useMemo(()=>{const P={position:o,left:0,top:0};if(!D.floating)return P;const U=sv(D.floating,y.x),F=sv(D.floating,y.y);return g?{...P,transform:"translate("+U+"px, "+F+"px)",...D1(D.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:U,top:F}},[o,g,D.floating,y.x,y.y]);return h.useMemo(()=>({...y,update:K,refs:W,elements:D,floatingStyles:z}),[y,K,W,D,z])}const uO=(t,r)=>{const o=eO(t);return{name:o.name,fn:o.fn,options:[t,r]}},dO=(t,r)=>{const o=tO(t);return{name:o.name,fn:o.fn,options:[t,r]}},fO=(t,r)=>({fn:oO(t).fn,options:[t,r]}),mO=(t,r)=>{const o=nO(t);return{name:o.name,fn:o.fn,options:[t,r]}},pO=(t,r)=>{const o=sO(t);return{name:o.name,fn:o.fn,options:[t,r]}},hO=(t,r)=>{const o=rO(t);return{name:o.name,fn:o.fn,options:[t,r]}};function z1(t){const r=h.useRef(!0);r.current&&(r.current=!1,t())}const $e=(t,r,o,a,c,d,...m)=>{if(m.length>0)throw new Error(Tn(1));let g;if(t)g=t;else throw new Error("Missing arguments");return g};var nm={exports:{}},sm={};var rv;function gO(){if(rv)return sm;rv=1;var t=Wl();function r(x,S){return x===S&&(x!==0||1/x===1/S)||x!==x&&S!==S}var o=typeof Object.is=="function"?Object.is:r,a=t.useState,c=t.useEffect,d=t.useLayoutEffect,m=t.useDebugValue;function g(x,S){var j=S(),E=a({inst:{value:j,getSnapshot:S}}),k=E[0].inst,O=E[1];return d(function(){k.value=j,k.getSnapshot=S,b(k)&&O({inst:k})},[x,j,S]),c(function(){return b(k)&&O({inst:k}),x(function(){b(k)&&O({inst:k})})},[x]),m(j),j}function b(x){var S=x.getSnapshot;x=x.value;try{var j=S();return!o(x,j)}catch{return!0}}function p(x,S){return S()}var y=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?p:g;return sm.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:y,sm}var ov;function L1(){return ov||(ov=1,nm.exports=gO()),nm.exports}var I1=L1(),rm={exports:{}},om={};var av;function xO(){if(av)return om;av=1;var t=Wl(),r=L1();function o(p,y){return p===y&&(p!==0||1/p===1/y)||p!==p&&y!==y}var a=typeof Object.is=="function"?Object.is:o,c=r.useSyncExternalStore,d=t.useRef,m=t.useEffect,g=t.useMemo,b=t.useDebugValue;return om.useSyncExternalStoreWithSelector=function(p,y,x,S,j){var E=d(null);if(E.current===null){var k={hasValue:!1,value:null};E.current=k}else k=E.current;E=g(function(){function N(M){if(!T){if(T=!0,_=M,M=S(M),j!==void 0&&k.hasValue){var L=k.value;if(j(L,M))return w=L}return w=M}if(L=w,a(_,M))return L;var C=S(M);return j!==void 0&&j(L,C)?(_=M,L):(_=M,w=C)}var T=!1,_,w,V=x===void 0?null:x;return[function(){return N(y())},V===null?void 0:function(){return N(V())}]},[y,x,S,j]);var O=c(p,E[0],E[1]);return m(function(){k.hasValue=!0,k.value=O},[O]),b(O),O},om}var lv;function bO(){return lv||(lv=1,rm.exports=xO()),rm.exports}var yO=bO();const Bm=[];let Hm;function vO(){return Hm}function SO(t){Bm.push(t)}function B1(t){const r=(o,a)=>{const c=In(NO).current;let d;try{Hm=c;for(const m of Bm)m.before(c);d=t(o,a);for(const m of Bm)m.after(c);c.didInitialize=!0}finally{Hm=void 0}return d};return r.displayName=t.displayName||t.name,r}function EO(t){return h.forwardRef(B1(t))}function NO(){return{didInitialize:!1}}const jO=gp(19),TO=jO?CO:RO;function H1(t,r,o,a,c){return TO(t,r,o,a,c)}function wO(t,r,o,a,c){const d=h.useCallback(()=>r(t.getSnapshot(),o,a,c),[t,r,o,a,c]);return I1.useSyncExternalStore(t.subscribe,d,d)}SO({before(t){t.syncIndex=0,t.didInitialize||(t.syncTick=1,t.syncHooks=[],t.didChangeStore=!0,t.getSnapshot=()=>{let r=!1;for(let o=0;o<t.syncHooks.length;o+=1){const a=t.syncHooks[o],c=a.selector(a.store.state,a.a1,a.a2,a.a3);Object.is(a.value,c)||(r=!0,a.value=c)}return r&&(t.syncTick+=1),t.syncTick})},after(t){t.syncHooks.length>0&&(t.didChangeStore&&(t.didChangeStore=!1,t.subscribe=r=>{const o=new Set;for(const c of t.syncHooks)o.add(c.store);const a=[];for(const c of o)a.push(c.subscribe(r));return()=>{for(const c of a)c()}}),I1.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot))}});function CO(t,r,o,a,c){const d=vO();if(!d)return wO(t,r,o,a,c);const m=d.syncIndex;d.syncIndex+=1;let g;return d.didInitialize?(g=d.syncHooks[m],(g.store!==t||g.selector!==r||!Object.is(g.a1,o)||!Object.is(g.a2,a)||!Object.is(g.a3,c))&&(g.store!==t&&(d.didChangeStore=!0),g.store=t,g.selector=r,g.a1=o,g.a2=a,g.a3=c,g.value=r(t.getSnapshot(),o,a,c))):(g={store:t,selector:r,a1:o,a2:a,a3:c,value:r(t.getSnapshot(),o,a,c)},d.syncHooks.push(g)),g.value}function RO(t,r,o,a,c){return yO.useSyncExternalStoreWithSelector(t.subscribe,t.getSnapshot,t.getSnapshot,d=>r(d,o,a,c))}class OO{constructor(r){this.state=r,this.listeners=new Set,this.updateTick=0}subscribe=r=>(this.listeners.add(r),()=>{this.listeners.delete(r)});getSnapshot=()=>this.state;setState(r){if(this.state===r)return;this.state=r,this.updateTick+=1;const o=this.updateTick;for(const a of this.listeners){if(o!==this.updateTick)return;a(r)}}update(r){for(const o in r)if(!Object.is(this.state[o],r[o])){this.setState({...this.state,...r});return}}set(r,o){Object.is(this.state[r],o)||this.setState({...this.state,[r]:o})}notifyAll(){const r={...this.state};this.setState(r)}use(r,o,a,c){return H1(this,r,o,a,c)}}class Nu extends OO{constructor(r,o={},a){super(r),this.context=o,this.selectors=a}useSyncedValue(r,o){h.useDebugValue(r);const a=this;Qe(()=>{a.state[r]!==o&&a.set(r,o)},[a,r,o])}useSyncedValueWithCleanup(r,o){const a=this;Qe(()=>(a.state[r]!==o&&a.set(r,o),()=>{a.set(r,void 0)}),[a,r,o])}useSyncedValues(r){const o=this,a=Object.values(r);Qe(()=>{o.update(r)},[o,...a])}useControlledProp(r,o){h.useDebugValue(r);const a=this,c=o!==void 0;Qe(()=>{c&&!Object.is(a.state[r],o)&&a.setState({...a.state,[r]:o})},[a,r,o,c])}select(r,o,a,c){const d=this.selectors[r];return d(this.state,o,a,c)}useState(r,o,a,c){return h.useDebugValue(r),H1(this,this.selectors[r],o,a,c)}useContextCallback(r,o){h.useDebugValue(r);const a=st(o??mn);this.context[r]=a}useStateSetter(r){const o=h.useRef(void 0);return o.current===void 0&&(o.current=a=>{this.set(r,a)}),o.current}observe(r,o){let a;typeof r=="function"?a=r:a=this.selectors[r];let c=a(this.state);return o(c,c,this),this.subscribe(d=>{const m=a(d);if(!Object.is(c,m)){const g=c;c=m,o(m,g,this)}})}}const kO={open:$e(t=>t.open),transitionStatus:$e(t=>t.transitionStatus),domReferenceElement:$e(t=>t.domReferenceElement),referenceElement:$e(t=>t.positionReference??t.referenceElement),floatingElement:$e(t=>t.floatingElement),floatingId:$e(t=>t.floatingId)};class ju extends Nu{constructor(r){const{syncOnly:o,nested:a,onOpenChange:c,triggerElements:d,...m}=r;super({...m,positionReference:m.referenceElement,domReferenceElement:m.referenceElement},{onOpenChange:c,dataRef:{current:{}},events:E1(),nested:a,triggerElements:d},kO),this.syncOnly=o}syncOpenEvent=(r,o)=>{(!r||!this.state.open||o!=null&&VC(o))&&(this.context.dataRef.current.openEvent=r?o:void 0)};dispatchOpenChange=(r,o)=>{this.syncOpenEvent(r,o.event);const a={open:r,reason:o.reason,nativeEvent:o.event,nested:this.context.nested,triggerElement:o.trigger};this.context.events.emit("openchange",a)};setOpen=(r,o)=>{if(this.syncOnly){this.context.onOpenChange?.(r,o);return}this.dispatchOpenChange(r,o),this.context.onOpenChange?.(r,o)}}function U1(t){const{popupStore:r,treatPopupAsFloatingElement:o=!1,floatingRootContext:a,floatingId:c,nested:d,onOpenChange:m}=t,g=r.useState("open"),b=r.useState("activeTriggerElement"),p=r.useState(o?"popupElement":"positionerElement"),y=r.context.triggerElements,x=m,S=h.useRef(null);a===void 0&&S.current===null&&(S.current=new ju({open:g,transitionStatus:void 0,referenceElement:b,floatingElement:p,triggerElements:y,onOpenChange:x,floatingId:c,syncOnly:!0,nested:d}));const j=a??S.current;return r.useSyncedValue("floatingId",c),Qe(()=>{const E={open:g,floatingId:c,referenceElement:b,floatingElement:p};vt(b)&&(E.domReferenceElement=b),j.state.positionReference===j.state.referenceElement&&(E.positionReference=b),j.update(E)},[g,c,b,p,j]),j.context.onOpenChange=x,j.context.nested=d,j}const Tu={tabIndex:-1,[_m]:""};function P1(t){return r=>r==="touch"?t.current:!0}function Y1(t,r,o=!1){const a=wo(),c=pr()!=null,d=h.useRef(null);t===void 0&&d.current===null&&(d.current=r(a,c));const m=t??d.current;return U1({popupStore:m,treatPopupAsFloatingElement:o,floatingRootContext:m.state.floatingRootContext,floatingId:a,nested:c,onOpenChange:m.setOpen}),{store:m,internalStore:d.current}}function _O(t,r){const o=h.useRef(null),a=h.useRef(null);return h.useCallback(c=>{if(t===void 0)return;let d=!1;if(o.current!==null){const m=o.current,g=a.current,b=r.context.triggerElements.getById(m);g&&b===g&&(r.context.triggerElements.delete(m),d=!0),o.current=null,a.current=null}if(c!==null&&(o.current=t,a.current=c,r.context.triggerElements.add(t,c),d=!0),d){const m=r.context.triggerElements.size;r.select("open")&&r.state.triggerCount!==m&&r.set("triggerCount",m)}},[r,t])}function Lp(t,r,o,a=!1){r?t.preventUnmountingOnClose=!1:a&&(t.preventUnmountingOnClose=!0);const c=o?.id??null;(c||r)&&(t.activeTriggerId=c,t.activeTriggerElement=o??null)}function V1(t){let r=!1;return t.preventUnmountOnClose=()=>{r=!0},()=>r}function F1(t,r,o,a){z1(()=>{r===void 0&&t.state.open===!1&&o&&(t.state={...t.state,open:!0,activeTriggerId:a,preventUnmountingOnClose:!1})})}function G1(t,r,o,a){const c=o.useState("isMountedByTrigger",t),d=_O(t,o),m=st(g=>{if(d(g),!g)return;const b=o.select("open"),p=o.select("activeTriggerId");if(p===t){o.update({activeTriggerElement:g,...b?a:null});return}p==null&&b&&o.update({activeTriggerId:t,activeTriggerElement:g,...a})});return Qe(()=>{c&&o.update({activeTriggerElement:r.current,...a})},[c,o,r,...Object.values(a)]),{registerTrigger:m,isMountedByThisTrigger:c}}function Ip(t,r={}){const{closeOnActiveTriggerUnmount:o=!1}=r,a=t.useState("open"),c=t.useState("triggerCount");Qe(()=>{if(!a){t.state.triggerCount!==0&&t.set("triggerCount",0);return}const d=t.context.triggerElements.size,m={};t.state.triggerCount!==d&&(m.triggerCount=d);const g=t.select("activeTriggerId");let b=null;if(g){const p=t.context.triggerElements.getById(g);p?p!==t.state.activeTriggerElement&&(m.activeTriggerElement=p):b=g}if(!b&&!g&&d===1){const p=t.context.triggerElements.entries().next();if(!p.done){const[y,x]=p.value;m.activeTriggerId=y,m.activeTriggerElement=x}}(m.triggerCount!==void 0||m.activeTriggerId!==void 0||m.activeTriggerElement!==void 0)&&t.update(m),b&&o&&queueMicrotask(()=>{if(t.select("open")&&t.select("activeTriggerId")===b&&!t.context.triggerElements.getById(b)){const p=jt(q0);t.setOpen(!1,p),p.isCanceled||t.update({activeTriggerId:null,activeTriggerElement:null})}})},[a,t,c,o])}function Bp(t,r,o){const{mounted:a,setMounted:c,transitionStatus:d}=LC(t),m=r.useState("preventUnmountingOnClose"),g=t?!1:m;r.useSyncedValues({mounted:a,transitionStatus:d,preventUnmountingOnClose:g});const b=st(()=>{c(!1),r.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),o?.(),r.context.onOpenChangeComplete?.(!1)});return xu({enabled:a&&!t&&!g,open:t,ref:r.context.popupRef,onComplete(){t||b()}}),{forceUnmount:b,transitionStatus:d}}function Hp(t,r){t.useSyncedValues(r),Qe(()=>()=>{t.update({activeTriggerProps:Ft,inactiveTriggerProps:Ft,popupProps:Ft})},[t])}function q1(t,r){Qe(()=>{!r&&t.state.openMethod!==null&&t.set("openMethod",null)},[r,t]),Qe(()=>()=>{t.state.openMethod!==null&&t.set("openMethod",null)},[t])}class ai{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(r,o){const a=this.idMap.get(r);a!==o&&(a!==void 0&&this.elementsSet.delete(a),this.elementsSet.add(o),this.idMap.set(r,o))}delete(r){const o=this.idMap.get(r);o&&(this.elementsSet.delete(o),this.idMap.delete(r))}hasElement(r){return this.elementsSet.has(r)}hasMatchingElement(r){for(const o of this.elementsSet)if(r(o))return!0;return!1}getById(r){return this.idMap.get(r)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}}function MO(){return new ju({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new ai,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function Up(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:MO(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:Ft,inactiveTriggerProps:Ft,popupProps:Ft}}function $1(t,r,o=!1){return new ju({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:t,floatingId:r,syncOnly:!0,nested:o,onOpenChange:void 0})}const Ul=$e(t=>t.triggerIdProp??t.activeTriggerId),Pp=$e(t=>t.openProp??t.open),iv=$e(t=>(t.popupElement?.id??t.floatingId)||void 0);function X1(t,r){return r!==void 0&&Pp(t)&&Ul(t)===r}function AO(t,r){return X1(t,r)?!0:r!==void 0&&Pp(t)&&Ul(t)==null&&t.triggerCount===1}const Yp={open:Pp,mounted:$e(t=>t.mounted),transitionStatus:$e(t=>t.transitionStatus),floatingRootContext:$e(t=>t.floatingRootContext),triggerCount:$e(t=>t.triggerCount),preventUnmountingOnClose:$e(t=>t.preventUnmountingOnClose),payload:$e(t=>t.payload),activeTriggerId:Ul,activeTriggerElement:$e(t=>t.mounted?t.activeTriggerElement:null),popupId:iv,isTriggerActive:$e((t,r)=>r!==void 0&&Ul(t)===r),isOpenedByTrigger:$e((t,r)=>X1(t,r)),isMountedByTrigger:$e((t,r)=>r!==void 0&&Ul(t)===r&&t.mounted),triggerProps:$e((t,r)=>r?t.activeTriggerProps:t.inactiveTriggerProps),triggerPopupId:$e((t,r)=>AO(t,r)?iv(t):void 0),popupProps:$e(t=>t.popupProps),popupElement:$e(t=>t.popupElement),positionerElement:$e(t=>t.positionerElement)};function DO(t){const{open:r=!1,onOpenChange:o,elements:a={}}=t,c=wo(),d=pr()!=null,m=In(()=>new ju({open:r,transitionStatus:void 0,onOpenChange:o,referenceElement:a.reference??null,floatingElement:a.floating??null,triggerElements:new ai,floatingId:c,syncOnly:!1,nested:d})).current;return Qe(()=>{const g={open:r,floatingId:c};a.reference!==void 0&&(g.referenceElement=a.reference,g.domReferenceElement=vt(a.reference)?a.reference:null),a.floating!==void 0&&(g.floatingElement=a.floating),m.update(g)},[r,c,a.reference,a.floating,m]),m.context.onOpenChange=o,m.context.nested=d,m}function zO(t={}){const{nodeId:r,externalTree:o}=t,a=DO(t),c=t.rootContext||a,d=c.useState("referenceElement"),m=c.useState("floatingElement"),g=c.useState("domReferenceElement"),b=c.useState("open"),p=c.useState("floatingId"),[y,x]=h.useState(null),[S,j]=h.useState(void 0),[E,k]=h.useState(void 0),O=h.useRef(null),N=Kr(o),T=h.useMemo(()=>({reference:d,floating:m,domReference:g}),[d,m,g]),_=cO({...t,elements:{...T,...y&&{reference:y}}}),w=vt(S)?S:null,V=E===void 0?c.state.floatingElement:E;c.useSyncedValue("referenceElement",S??null),c.useSyncedValue("domReferenceElement",S===void 0?g:w),c.useSyncedValue("floatingElement",V);const M=h.useCallback(te=>{const K=vt(te)?{getBoundingClientRect:()=>te.getBoundingClientRect(),getClientRects:()=>te.getClientRects(),contextElement:te}:te;x(K),_.refs.setReference(K)},[_.refs]),L=h.useCallback(te=>{(vt(te)||te===null)&&(O.current=te,j(te)),(vt(_.refs.reference.current)||_.refs.reference.current===null||te!==null&&!vt(te))&&_.refs.setReference(te)},[_.refs,j]),C=h.useCallback(te=>{k(te),_.refs.setFloating(te)},[_.refs]),Z=h.useMemo(()=>({..._.refs,setReference:L,setFloating:C,setPositionReference:M,domReference:O}),[_.refs,L,C,M]),re=h.useMemo(()=>({..._.elements,domReference:g}),[_.elements,g]),ie=h.useMemo(()=>({..._,dataRef:c.context.dataRef,open:b,onOpenChange:c.setOpen,events:c.context.events,floatingId:p,refs:Z,elements:re,nodeId:r,rootStore:c}),[_,Z,re,r,c,b,p]);return Qe(()=>{g&&(O.current=g)},[g]),Qe(()=>{c.context.dataRef.current.floatingContext=ie;const te=N?.nodesRef.current.find(K=>K.id===r);te&&(te.context=ie)}),h.useMemo(()=>({..._,context:ie,refs:Z,elements:re,rootStore:c}),[_,Z,re,ie,c])}const am=yp&&_o;function LO(t,r={}){const{enabled:o=!0,delay:a}=r,c="rootStore"in t?t.rootStore:t,{events:d,dataRef:m}=c.context,g=h.useRef(!1),b=h.useRef(null),p=h.useRef(!0),y=Qn();h.useEffect(()=>{const S=c.select("domReferenceElement");if(!o)return;const j=Zt(S);function E(){const N=c.select("domReferenceElement");!c.select("open")&&Vt(N)&&N===Cn(Nt(N))&&(g.current=!0)}function k(){p.current=!0}function O(){p.current=!1}return Ds(xt(j,"blur",E),am&&xt(j,"keydown",k,!0),am&&xt(j,"pointerdown",O,!0))},[c,o]),h.useEffect(()=>{if(!o)return;function S(j){if(j.reason===jo||j.reason===pu){const E=c.select("domReferenceElement");vt(E)&&(b.current=E,g.current=!0)}}return d.on("openchange",S),()=>{d.off("openchange",S)}},[d,o,c]);const x=h.useMemo(()=>{function S(){g.current=!1,b.current=null}return{onMouseLeave(){S()},onFocus(j){const E=j.currentTarget;if(g.current){if(b.current===E)return;S()}const k=Ln(j.nativeEvent);if(vt(k)){if(am&&!j.relatedTarget){if(!p.current&&!vu(k))return}else if(!qC(k))return}const O=Zc(j.relatedTarget,c.context.triggerElements),{nativeEvent:N,currentTarget:T}=j,_=typeof a=="function"?a():a;if(c.select("open")&&O||_===0||_===void 0){c.setOpen(!0,jt(Hl,N,T));return}y.start(_,()=>{g.current||c.setOpen(!0,jt(Hl,N,T))})},onBlur(j){S();const E=j.relatedTarget,k=j.nativeEvent,O=vt(E)&&E.hasAttribute(Jl("focus-guard"))&&E.getAttribute("data-type")==="outside";y.start(0,()=>{const N=c.select("domReferenceElement"),T=Cn(Nt(N));!E&&T===N||tt(m.current.floatingContext?.refs.floating.current,T)||tt(N,T)||O||Zc(E??T,c.context.triggerElements)||c.setOpen(!1,jt(Hl,k))})}}},[m,a,c,y]);return h.useMemo(()=>o?{reference:x,trigger:x}:{},[o,x])}class Vp{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new gs,this.restTimeout=new gs,this.handleCloseOptions=void 0}static create(){return new Vp}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose}const nu=new WeakMap;function su(t){if(!t.performedPointerEventsMutation)return;const r=t.pointerEventsScopeElement;r&&nu.get(r)===t&&(t.pointerEventsScopeElement?.style.removeProperty("pointer-events"),t.pointerEventsReferenceElement?.style.removeProperty("pointer-events"),t.pointerEventsFloatingElement?.style.removeProperty("pointer-events"),nu.delete(r)),t.performedPointerEventsMutation=!1,t.pointerEventsScopeElement=null,t.pointerEventsReferenceElement=null,t.pointerEventsFloatingElement=null}function K1(t,r){const{scopeElement:o,referenceElement:a,floatingElement:c}=r,d=nu.get(o);d&&d!==t&&su(d),su(t),t.performedPointerEventsMutation=!0,t.pointerEventsScopeElement=o,t.pointerEventsReferenceElement=a,t.pointerEventsFloatingElement=c,nu.set(o,t),o.style.pointerEvents="none",a.style.pointerEvents="auto",c.style.pointerEvents="auto"}function Q1(t){const r=t.context.dataRef.current,o=In(()=>r.hoverInteractionState??Vp.create()).current;return r.hoverInteractionState||(r.hoverInteractionState=o),Sp(r.hoverInteractionState.disposeEffect),r.hoverInteractionState}function Z1(t,r={}){const{enabled:o=!0,closeDelay:a=0,nodeId:c}=r,d="rootStore"in t?t.rootStore:t,m=d.useState("open"),g=d.useState("floatingElement"),b=d.useState("domReferenceElement"),{dataRef:p}=d.context,y=Kr(),x=pr(),S=Q1(d),j=Qn(),E=st(()=>n1(p.current.openEvent?.type,S.interactedInside)),k=st(()=>XC(p.current.openEvent?.type)),O=st(()=>{su(S)});Qe(()=>{m||(S.pointerType=void 0,S.restTimeoutPending=!1,S.interactedInside=!1,O())},[m,S,O]),h.useEffect(()=>O,[O]),Qe(()=>{if(o&&m&&S.handleCloseOptions?.blockPointerEvents&&k()&&vt(b)&&g){const N=b,T=g,_=Nt(g),w=y?.nodesRef.current.find(C=>C.id===x)?.context?.elements.floating;w&&(w.style.pointerEvents="");const V=S.pointerEventsScopeElement!==T?S.pointerEventsScopeElement:null,M=w!==T?w:null,L=S.handleCloseOptions?.getScope?.()??V??M??N.closest("[data-rootownerid]")??_.body;return K1(S,{scopeElement:L,referenceElement:N,floatingElement:T}),()=>{O()}}},[o,m,b,g,S,k,y,x,O]),h.useEffect(()=>{if(!o)return;function N(){return!!(y&&x&&qr(y.nodesRef.current,x).length>0)}function T(C){const Z=Dm(a,"close",S.pointerType),re=()=>{d.setOpen(!1,jt(pn,C)),y?.events.emit("floating.closed",C)};Z?S.openChangeTimeout.start(Z,re):(S.openChangeTimeout.clear(),re())}function _(C){const Z=Ln(C);if(!GC(Z)){S.interactedInside=!1;return}S.interactedInside=Z?.closest("[aria-haspopup]")!=null}function w(){S.openChangeTimeout.clear(),j.clear(),y?.events.off("floating.closed",M),O()}function V(C){if(N()&&y){y.events.on("floating.closed",M);return}if(Zc(C.relatedTarget,d.context.triggerElements))return;const Z=p.current.floatingContext?.nodeId??c,re=C.relatedTarget;if(!(y&&Z&&vt(re)&&qr(y.nodesRef.current,Z,!1).some(te=>tt(te.context?.elements.floating,re)))){if(S.handler){S.handler(C);return}O(),k()&&!E()&&T(C)}}function M(C){!y||!x||N()||j.start(0,()=>{y.events.off("floating.closed",M),d.setOpen(!1,jt(pn,C)),y.events.emit("floating.closed",C)})}const L=g;return Ds(L&&xt(L,"mouseenter",w),L&&xt(L,"mouseleave",V),L&&xt(L,"pointerdown",_,!0),()=>{y?.events.off("floating.closed",M)})},[o,g,d,p,a,c,k,E,O,S,y,x,j])}const IO={current:null};function J1(t,r={}){const{enabled:o=!0,delay:a=0,handleClose:c=null,mouseOnly:d=!1,restMs:m=0,move:g=!0,triggerElementRef:b=IO,externalTree:p,isActiveTrigger:y=!0,getHandleCloseContext:x,isClosing:S,shouldOpen:j}=r,E="rootStore"in t?t.rootStore:t,{dataRef:k,events:O}=E.context,N=Kr(p),T=Q1(E),_=h.useRef(!1),w=un(c),V=un(a),M=un(m),L=un(o),C=un(j),Z=un(S),re=st(()=>n1(k.current.openEvent?.type,T.interactedInside)),ie=st(()=>C.current?.()!==!1),te=st((W,D,z)=>{const P=E.context.triggerElements;if(P.hasElement(D))return!W||!tt(W,D);if(!vt(z))return!1;const U=z;return P.hasMatchingElement(F=>tt(F,U))&&(!W||!tt(W,U))}),K=st(()=>{if(!T.handler)return;Nt(E.select("domReferenceElement")).removeEventListener("mousemove",T.handler),T.handler=void 0}),ne=st(()=>{su(T)});return y&&(T.handleCloseOptions=w.current?.__options),h.useEffect(()=>K,[K]),h.useEffect(()=>{if(!o)return;function W(D){D.open?_.current=!1:(_.current=D.reason===pn,K(),T.openChangeTimeout.clear(),T.restTimeout.clear(),T.blockMouseMove=!0,T.restTimeoutPending=!1)}return O.on("openchange",W),()=>{O.off("openchange",W)}},[o,O,T,K]),h.useEffect(()=>{if(!o)return;function W(U,F=!0){const A=Dm(V.current,"close",T.pointerType);A?T.openChangeTimeout.start(A,()=>{E.setOpen(!1,jt(pn,U)),N?.events.emit("floating.closed",U)}):F&&(T.openChangeTimeout.clear(),E.setOpen(!1,jt(pn,U)),N?.events.emit("floating.closed",U))}const D=b.current??(y?E.select("domReferenceElement"):null);if(!vt(D))return;function z(U){if(T.openChangeTimeout.clear(),T.blockMouseMove=!1,d&&!Zl(T.pointerType))return;const F=zy(M.current),A=Dm(V.current,"open",T.pointerType),H=Ln(U),I=U.currentTarget??null,B=E.select("domReferenceElement");let G=I;if(vt(H)&&!E.context.triggerElements.hasElement(H)){for(const ge of E.context.triggerElements.elements())if(tt(ge,H)){G=ge;break}}vt(I)&&vt(B)&&!E.context.triggerElements.hasElement(I)&&tt(I,B)&&(G=B);const Q=G==null?!1:te(B,G,H),he=E.select("open"),le=Z.current?.()??E.select("transitionStatus")==="ending",de=!he&&le&&_.current,Ue=!Q&&vt(G)&&vt(B)&&tt(B,G)&&de,Le=F>0&&!A,we=Q&&(he||de)||Ue,Be=!he||Q;if(we){ie()&&E.setOpen(!0,jt(pn,U,G));return}Le||(A?T.openChangeTimeout.start(A,()=>{Be&&ie()&&E.setOpen(!0,jt(pn,U,G))}):Be&&ie()&&E.setOpen(!0,jt(pn,U,G)))}function P(U){if(re()){ne();return}K();const F=E.select("domReferenceElement"),A=Nt(F);T.restTimeout.clear(),T.restTimeoutPending=!1;const H=k.current.floatingContext??x?.();if(Zc(U.relatedTarget,E.context.triggerElements))return;if(w.current&&H){E.select("open")||T.openChangeTimeout.clear();const B=b.current;T.handler=w.current({...H,tree:N,x:U.clientX,y:U.clientY,onClose(){ne(),K(),L.current&&!re()&&B===E.select("domReferenceElement")&&W(U,!0)}}),A.addEventListener("mousemove",T.handler),T.handler(U);return}(T.pointerType!=="touch"||!tt(E.select("floatingElement"),U.relatedTarget))&&W(U)}return g?Ds(xt(D,"mousemove",z,{once:!0}),xt(D,"mouseenter",z),xt(D,"mouseleave",P)):Ds(xt(D,"mouseenter",z),xt(D,"mouseleave",P))},[K,ne,k,V,E,o,w,T,y,te,re,d,g,M,b,N,L,x,Z,ie]),h.useMemo(()=>{if(!o)return;function W(D){T.pointerType=D.pointerType}return{onPointerDown:W,onPointerEnter:W,onMouseMove(D){const{nativeEvent:z}=D,P=D.currentTarget,U=E.select("domReferenceElement"),F=E.select("open"),A=te(U,P,D.target);if(d&&!Zl(T.pointerType))return;if(F&&A&&T.handleCloseOptions?.blockPointerEvents){const B=E.select("floatingElement");if(B){const G=T.handleCloseOptions?.getScope?.()??P.ownerDocument.body;K1(T,{scopeElement:G,referenceElement:P,floatingElement:B})}}const H=zy(M.current);if(F&&!A||H===0||!A&&T.restTimeoutPending&&D.movementX**2+D.movementY**2<2)return;T.restTimeout.clear();function I(){if(T.restTimeoutPending=!1,re())return;const B=E.select("open");!T.blockMouseMove&&(!B||A)&&ie()&&E.setOpen(!0,jt(pn,z,P))}T.pointerType==="touch"?dr.flushSync(()=>{I()}):A&&F?I():(T.restTimeoutPending=!0,T.restTimeout.start(H,I))}}},[o,T,re,te,d,E,M,ie])}const BO="Escape";function wu(t,r,o){switch(t){case"vertical":return r;case"horizontal":return o;default:return r||o}}function Rc(t,r){return wu(r,t===t1||t===Np,t===bu||t===yu)}function lm(t,r,o){return wu(r,t===Np,o?t===bu:t===yu)||t==="Enter"||t===" "||t===""}function HO(t,r,o){return wu(r,o?t===bu:t===yu,t===Np)}function UO(t,r,o,a){const c=o?t===yu:t===bu,d=t===t1;return r==="both"||r==="horizontal"&&a?t===BO:wu(r,c,d)}function PO(t,r){const{listRef:o,activeIndex:a,onNavigate:c=()=>{},enabled:d=!0,selectedIndex:m=null,allowEscape:g=!1,loopFocus:b=!1,nested:p=!1,rtl:y=!1,virtual:x=!1,focusItemOnOpen:S="auto",focusItemOnHover:j=!0,openOnArrowKeyDown:E=!0,disabledIndices:k=void 0,orientation:O="vertical",parentOrientation:N,id:T,resetOnPointerLeave:_=!0,externalTree:w,grid:V}=r,M=V!=null,L="rootStore"in t?t.rootStore:t,C=L.useState("open"),Z=L.useState("floatingElement"),re=L.useState("domReferenceElement"),ie=L.context.dataRef,te=Am(Z),K=Mm(re),ne=un(te),W=pr(),D=Kr(w),z=h.useRef(S),P=h.useRef(m??-1),U=h.useRef(null),F=h.useRef(!0),A=st(Y=>{c(P.current===-1?null:P.current,Y)}),H=h.useRef(!!Z),I=h.useRef(C),B=h.useRef(!1),G=h.useRef(!1),Q=h.useRef(null),he=un(k),le=un(C),de=un(m),Ue=un(_),Le=Ql(),we=Ql(),Be=st(()=>{function Y(ae){x?D?.events.emit("virtualfocus",ae):Q.current=Uc(ae,{sync:B.current,preventScroll:!0})}const $=o.current[P.current],Te=G.current;$&&Y($),(B.current?ae=>ae():ae=>Le.request(ae))(()=>{const ae=o.current[P.current]||$;if(!ae)return;$||Y(ae),be&&(Te||!F.current)&&ae.scrollIntoView?.({block:"nearest",inline:"nearest"})})});Qe(()=>{ie.current.orientation=O},[ie,O]),Qe(()=>{d&&(C&&Z?(P.current=m??-1,z.current&&m!=null&&(G.current=!0,A())):H.current&&(P.current=-1,A()))},[d,C,Z,m,A]),Qe(()=>{if(d){if(!C){B.current=!1;return}if(Z)if(a==null){if(B.current=!1,de.current!=null)return;if(H.current&&(P.current=-1,Be()),(!I.current||!H.current)&&z.current&&(U.current!=null||z.current===!0&&U.current==null)){let Y=0;const $=()=>{o.current[0]==null?(Y<2&&(Y?xe=>we.request(xe):queueMicrotask)($),Y+=1):(P.current=U.current==null||lm(U.current,O,y)||p?Qf(o):Hy(o),U.current=null,A())};$()}}else By(o.current,a)||(P.current=a,Be(),G.current=!1)}},[d,C,Z,a,de,p,o,O,y,A,Be,we]),Qe(()=>{if(!d||Z||!D||x||!H.current)return;const Y=D.nodesRef.current,$=Y.find(ae=>ae.id===W)?.context?.elements.floating,Te=Cn(Nt(re??$??null)),xe=Y.some(ae=>ae.context&&tt(ae.context.elements.floating,Te));$&&!xe&&F.current&&$.focus({preventScroll:!0})},[d,Z,re,D,W,x]),Qe(()=>{I.current=C,H.current=!!Z}),Qe(()=>{C||(U.current=null,z.current=S)},[C,S]);const ge=a!=null,q=st(Y=>{if(!le.current)return;const $=o.current.indexOf(Y.currentTarget);$!==-1&&(P.current!==$||a!==$)&&(P.current=$,A(Y))}),Me=st(()=>N??D?.nodesRef.current.find(Y=>Y.id===W)?.context?.dataRef?.current.orientation),Oe=st(()=>Qf(o,he.current)),_e=st(Y=>{if(F.current=!1,B.current=!0,Y.which===229||!le.current&&Y.currentTarget===ne.current)return;if(p&&UO(Y.key,O,y,M)){Rc(Y.key,Me())||Ts(Y),L.setOpen(!1,jt(Om,Y.nativeEvent)),Vt(re)&&(x?D?.events.emit("virtualfocus",re):re.focus());return}const $=P.current,Te=Qf(o,k),xe=Hy(o,k);if(K||(Y.key==="Home"&&(Ts(Y),P.current=Te,A(Y)),Y.key==="End"&&(Ts(Y),P.current=xe,A(Y))),V!=null){const ae=V(Y,P.current,o,O,b,y,k,Te,xe);if(ae!=null&&(P.current=ae,A(Y)),O==="both")return}if(Rc(Y.key,O)){if(Ts(Y),C&&!x&&Cn(Y.currentTarget.ownerDocument)===Y.currentTarget){P.current=lm(Y.key,O,y)?Te:xe,A(Y);return}lm(Y.key,O,y)?b?$>=xe?g&&$!==o.current.length?P.current=-1:(B.current=!1,P.current=Te):P.current=wa(o.current,{startingIndex:$,disabledIndices:k}):P.current=Math.min(xe,wa(o.current,{startingIndex:$,disabledIndices:k})):b?$<=Te?g&&$!==-1?P.current=o.current.length:(B.current=!1,P.current=xe):P.current=wa(o.current,{startingIndex:$,decrement:!0,disabledIndices:k}):P.current=Math.max(Te,wa(o.current,{startingIndex:$,decrement:!0,disabledIndices:k})),By(o.current,P.current)&&(P.current=-1),A(Y)}}),be=h.useMemo(()=>({onFocus($){B.current=!0,q($)},onClick:({currentTarget:$})=>$.focus({preventScroll:!0}),onMouseMove($){B.current=!0,G.current=!1,j&&q($)},onPointerLeave($){if(!le.current||!F.current||$.pointerType==="touch")return;B.current=!0;const Te=$.relatedTarget;if(!(!j||o.current.includes(Te))&&Ue.current&&(Q.current?.(),Q.current=null,P.current=-1,A($),!x)){const xe=ne.current,ae=Cn(Nt(xe));xe&&tt(xe,ae)&&xe.focus({preventScroll:!0})}}}),[q,le,ne,j,o,A,Ue,x]),Ie=h.useMemo(()=>x&&C&&ge&&{"aria-activedescendant":`${T}-${a}`},[x,C,ge,T,a]),Ve=h.useMemo(()=>({"aria-orientation":O==="both"?void 0:O,...K?{}:Ie,onKeyDown(Y){if(Y.key==="Tab"&&Y.shiftKey&&C&&!x){const $=Ln(Y.nativeEvent);if($&&!tt(ne.current,$))return;Ts(Y),L.setOpen(!1,jt(To,Y.nativeEvent)),Vt(re)&&re.focus();return}_e(Y)},onPointerMove(){F.current=!0}}),[Ie,_e,ne,O,K,L,C,x,re]),Pe=h.useMemo(()=>{function Y(xe){L.setOpen(!0,jt(Om,xe.nativeEvent,xe.currentTarget))}function $(xe){S==="auto"&&J0(xe.nativeEvent)&&(z.current=!x)}function Te(xe){z.current=S,S==="auto"&&W0(xe.nativeEvent)&&(z.current=!0)}return{onKeyDown(xe){const ae=L.select("open");F.current=!1;const ke=xe.key.startsWith("Arrow"),Ye=HO(xe.key,Me(),y),We=Rc(xe.key,O),pt=(p?Ye:We)||xe.key==="Enter"||xe.key.trim()==="";if(x&&ae)return _e(xe);if(!(!ae&&!E&&ke)){if(pt){const At=Rc(xe.key,Me());U.current=p&&At?null:xe.key}if(p){Ye&&(Ts(xe),ae?(P.current=Oe(),A(xe)):Y(xe));return}We&&(de.current!=null&&(P.current=de.current),Ts(xe),!ae&&E?Y(xe):_e(xe),ae&&A(xe))}},onFocus(xe){L.select("open")&&!x&&(P.current=-1,A(xe))},onPointerDown:Te,onPointerEnter:Te,onMouseDown:$,onClick:$}},[_e,S,Oe,p,A,L,E,O,Me,y,de,x]),ee=h.useMemo(()=>({...Ie,...Pe}),[Ie,Pe]);return h.useMemo(()=>d?{reference:ee,floating:Ve,item:be,trigger:Pe}:{},[d,ee,Ve,Pe,be])}function YO(t,r){const{listRef:o,elementsRef:a,activeIndex:c,onMatch:d,disabledIndices:m,onTyping:g,enabled:b=!0,resetMs:p=750,selectedIndex:y=null}=r,x="rootStore"in t?t.rootStore:t,S=x.useState("open"),j=Qn(),E=h.useRef(""),k=h.useRef(y??c??-1),O=h.useRef(null),N=st(w=>{function V(ne){const W=a?.current[ne];return!W||Su(W)}function M(ne){return V(ne)?m==null||!o1(Qc,ne,m):!1}function L(ne,W,D=0){if(ne.length===0)return-1;const z=(D%ne.length+ne.length)%ne.length,P=W.toLowerCase();for(let U=0;U<ne.length;U+=1){const F=(z+U)%ne.length;if(!(!ne[F]?.toLowerCase().startsWith(P)||!M(F)))return F}return-1}const C=o.current;if(E.current.length>0&&w.key===" "&&(Ts(w),g?.(!0)),E.current.length>0&&E.current[0]!==" "&&L(C,E.current)===-1&&w.key!==" "&&g?.(!1),C==null||w.key.length!==1||w.ctrlKey||w.metaKey||w.altKey)return;S&&w.key!==" "&&(Ts(w),g?.(!0));const Z=E.current==="";Z&&(k.current=y??c??-1),C.every((ne,W)=>ne&&M(W)?ne[0]?.toLowerCase()!==ne[1]?.toLowerCase():!0)&&E.current===w.key&&(E.current="",k.current=O.current),E.current+=w.key,j.start(p,()=>{E.current="",k.current=O.current,g?.(!1)});const te=((Z?y??c??-1:k.current)??0)+1,K=L(C,E.current,te);K!==-1?(d?.(K),O.current=K):w.key!==" "&&(E.current="",g?.(!1))}),T=st(w=>{const V=w.relatedTarget,M=x.select("domReferenceElement"),L=x.select("floatingElement");tt(M,V)||tt(L,V)||(j.clear(),E.current="",k.current=O.current,g?.(!1))});Qe(()=>{!S&&y!==null||(j.clear(),O.current=null,E.current!==""&&(E.current=""))},[S,y,j]),Qe(()=>{S&&E.current===""&&(k.current=y??c??-1)},[S,y,c]);const _=h.useMemo(()=>({onKeyDown:N,onBlur:T}),[N,T]);return h.useMemo(()=>b?{reference:_,floating:_}:{},[b,_])}const cv=.1,VO=cv*cv,Ut=.5;function Oc(t,r,o,a,c,d){return a>=r!=d>=r&&t<=(c-o)*(r-a)/(d-a)+o}function kc(t,r,o,a,c,d,m,g,b,p){let y=!1;return Oc(t,r,o,a,c,d)&&(y=!y),Oc(t,r,c,d,m,g)&&(y=!y),Oc(t,r,m,g,b,p)&&(y=!y),Oc(t,r,b,p,o,a)&&(y=!y),y}function FO(t,r,o){return t>=o.x&&t<=o.x+o.width&&r>=o.y&&r<=o.y+o.height}function _c(t,r,o,a,c,d){const m=Math.min(o,c),g=Math.max(o,c),b=Math.min(a,d),p=Math.max(a,d);return t>=m&&t<=g&&r>=b&&r<=p}function W1(t={}){const{blockPointerEvents:r=!1}=t,o=new gs,a=({x:c,y:d,placement:m,elements:g,onClose:b,nodeId:p,tree:y})=>{const x=m?.split("-")[0];let S=!1,j=null,E=null,k=typeof performance<"u"?performance.now():0;function O(T,_){const w=performance.now(),V=w-k;if(j===null||E===null||V===0)return j=T,E=_,k=w,!1;const M=T-j,L=_-E,C=M*M+L*L,Z=V*V*VO;return j=T,E=_,k=w,C<Z}function N(){o.clear(),b()}return function(_){o.clear();const w=g.domReference,V=g.floating;if(!w||!V||x==null||c==null||d==null)return;const{clientX:M,clientY:L}=_,C=Ln(_),Z=_.type==="mouseleave",re=tt(V,C),ie=tt(w,C);if(re&&(S=!0,!Z))return;if(ie&&(S=!1,!Z)){S=!0;return}if(Z&&vt(_.relatedTarget)&&tt(V,_.relatedTarget))return;function te(){return!!(y&&qr(y.nodesRef.current,p).length>0)}function K(){te()||N()}if(te())return;const ne=w.getBoundingClientRect(),W=V.getBoundingClientRect(),D=c>W.right-W.width/2,z=d>W.bottom-W.height/2,P=W.width>ne.width,U=W.height>ne.height,F=(P?ne:W).left,A=(P?ne:W).right,H=(U?ne:W).top,I=(U?ne:W).bottom;if(x==="top"&&d>=ne.bottom-1||x==="bottom"&&d<=ne.top+1||x==="left"&&c>=ne.right-1||x==="right"&&c<=ne.left+1){K();return}let B=!1;switch(x){case"top":B=_c(M,L,F,ne.top+1,A,W.bottom-1);break;case"bottom":B=_c(M,L,F,W.top+1,A,ne.bottom-1);break;case"left":B=_c(M,L,W.right-1,I,ne.left+1,H);break;case"right":B=_c(M,L,ne.right-1,I,W.left+1,H);break}if(B)return;if(S&&!FO(M,L,ne)){K();return}if(!Z&&O(M,L)){K();return}let G=!1;switch(x){case"top":{const Q=P?Ut/2:Ut*4,he=P||D?c+Q:c-Q,le=P?c-Q:D?c+Q:c-Q,de=d+Ut+1,Ue=D||P?W.bottom-Ut:W.top,Le=D?P?W.bottom-Ut:W.top:W.bottom-Ut;G=kc(M,L,he,de,le,de,W.left,Ue,W.right,Le);break}case"bottom":{const Q=P?Ut/2:Ut*4,he=P||D?c+Q:c-Q,le=P?c-Q:D?c+Q:c-Q,de=d-Ut,Ue=D||P?W.top+Ut:W.bottom,Le=D?P?W.top+Ut:W.bottom:W.top+Ut;G=kc(M,L,he,de,le,de,W.left,Ue,W.right,Le);break}case"left":{const Q=U?Ut/2:Ut*4,he=U||z?d+Q:d-Q,le=U?d-Q:z?d+Q:d-Q,de=c+Ut+1,Ue=z||U?W.right-Ut:W.left,Le=z?U?W.right-Ut:W.left:W.right-Ut;G=kc(M,L,Ue,W.top,Le,W.bottom,de,he,de,le);break}case"right":{const Q=U?Ut/2:Ut*4,he=U||z?d+Q:d-Q,le=U?d-Q:z?d+Q:d-Q,de=c-Ut,Ue=z||U?W.left+Ut:W.right,Le=z?U?W.left+Ut:W.right:W.left+Ut;G=kc(M,L,de,he,de,le,Ue,W.top,Le,W.bottom);break}}G?S||o.start(40,K):K()}};return a.__options={...t,blockPointerEvents:r},a}const GO=h.createContext(void 0);function eS(t){return h.useContext(GO)}const qO="ArrowUp",$O="ArrowDown",XO="ArrowLeft",KO="ArrowRight",QO="Home",ZO="End",JO=new Set([XO,KO]),WO=new Set([qO,$O]),ek=new Set([...JO,...WO]),Fp=new Set([...ek,QO,ZO]);function Gp(t){return t==="starting"?yR:Ft}const tk={...ri,...fu},nk=h.forwardRef(function(r,o){const{render:a,className:c,style:d,finalFocus:m,...g}=r,{store:b}=ko(),{side:p,align:y}=F0(),x=eS()!=null,S=b.useState("open"),j=b.useState("transitionStatus"),E=b.useState("popupProps"),k=b.useState("mounted"),O=b.useState("instantType"),N=b.useState("activeTriggerElement"),T=b.useState("parent"),_=b.useState("lastOpenChangeReason"),w=b.useState("rootId"),V=b.useState("floatingRootContext"),M=b.useState("floatingTreeRoot"),L=b.useState("closeDelay"),C=b.useState("activeTriggerElement"),Z=b.useState("hoverEnabled"),re=b.useState("disabled"),ie=b.useState("openMethod"),te=T.type==="context-menu";xu({open:S,ref:b.context.popupRef,onComplete(){S&&b.context.onOpenChangeComplete?.(!0)}}),h.useEffect(()=>{function z(P){b.setOpen(!1,jt(P.reason,P.domEvent))}return M.events.on("close",z),()=>{M.events.off("close",z)}},[M.events,b]),Z1(V,{enabled:Z&&!re&&!te&&T.type!=="menubar",closeDelay:L});const K=h.useCallback(z=>{b.set("popupElement",z)},[b]),ne={transitionStatus:j,side:p,align:y,open:S,nested:T.type==="menu",instant:O},W=hn("div",r,{state:ne,ref:[o,b.context.popupRef,K],stateAttributesMapping:tk,props:[E,{onKeyDown(z){x&&Fp.has(z.key)&&z.stopPropagation()}},Gp(j),g,{"data-rootownerid":w}]});let D=T.type===void 0||te;return(N||T.type==="menubar"&&_!==xp)&&(D=!0),i.jsx(Ap,{context:V,openInteractionType:ie,modal:te,disabled:!k,returnFocus:m===void 0?D:m,initialFocus:T.type!=="menu",restoreFocus:!0,externalTree:T.type!=="menubar"?M:void 0,previousFocusableElement:C,nextFocusableElement:T.type===void 0?b.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:T.type===void 0?b.context.beforeContentFocusGuardRef:void 0,children:W})}),tS=h.createContext(void 0);function sk(){const t=h.useContext(tS);if(t===void 0)throw new Error(Tn(32));return t}const rk=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=ko();return d.useState("mounted")||a?i.jsx(tS.Provider,{value:a,children:i.jsx(Op,{ref:o,...c})}):null});function qp(t){return gp(19)?t:t?"true":void 0}const ok=h.createContext(void 0);function nS(){return h.useContext(ok)?.direction??"ltr"}const ak=t=>({name:"arrow",options:t,async fn(r){const{x:o,y:a,placement:c,rects:d,platform:m,elements:g,middlewareData:b}=r,{element:p,padding:y=0,offsetParent:x="real"}=fr(t,r)||{};if(p==null)return{};const S=r1(y),j={x:o,y:a},E=wp(c),k=Tp(E),O=await m.getDimensions(p),N=E==="y",T=N?"top":"left",_=N?"bottom":"right",w=N?"clientHeight":"clientWidth",V=d.reference[k]+d.reference[E]-j[E]-d.floating[k],M=j[E]-d.reference[E],L=x==="real"?await m.getOffsetParent?.(p):g.floating;let C=g.floating[w]||d.floating[k];(!C||!await m.isElement?.(L))&&(C=g.floating[w]||d.floating[k]);const Z=V/2-M/2,re=C/2-O[k]/2-1,ie=Math.min(S[T],re),te=Math.min(S[_],re),K=ie,ne=C-O[k]-te,W=C/2-O[k]/2+Z,D=s1(K,W,ne),z=!b.arrow&&Xr(c)!=null&&W!==D&&d.reference[k]/2-(W<K?ie:te)-O[k]/2<0,P=z?W<K?W-K:W-ne:0;return{[E]:j[E]+P,data:{[E]:D,centerOffset:W-D-P,...z&&{alignmentOffset:P}},reset:z}}}),lk=(t,r)=>({...ak(t),options:[t,r]}),ik=hO().fn,ck={name:"hide",async fn(t){const{width:r,height:o,x:a,y:c}=t.rects.reference,d=r===0&&o===0&&a===0&&c===0;return{data:{referenceHidden:(await ik(t)).data?.referenceHidden||d}}}},Yc={sideX:"left",sideY:"top"},sS={name:"adaptiveOrigin",async fn(t){const{x:r,y:o,rects:{floating:a},elements:{floating:c},platform:d,strategy:m,placement:g}=t,b=Zt(c),p=b.getComputedStyle(c);if(!(p.transitionDuration!=="0s"&&p.transitionDuration!==""))return{x:r,y:o,data:Yc};const x=await d.getOffsetParent?.(c);let S={width:0,height:0};if(m==="fixed"&&b?.visualViewport)S={width:b.visualViewport.width,height:b.visualViewport.height};else if(x===b){const T=Nt(c);S={width:T.documentElement.clientWidth,height:T.documentElement.clientHeight}}else await d.isElement?.(x)&&(S=await d.getDimensions(x));const j=$n(g);let E=r,k=o;j==="left"&&(E=S.width-(r+a.width)),j==="top"&&(k=S.height-(o+a.height));const O=j==="left"?"right":Yc.sideX,N=j==="top"?"bottom":Yc.sideY;return{x:E,y:k,data:{sideX:O,sideY:N}}}};function rS(t,r,o){const a=t==="inline-start"||t==="inline-end";return{top:"top",right:a?o?"inline-start":"inline-end":"right",bottom:"bottom",left:a?o?"inline-end":"inline-start":"left"}[r]}function uv(t,r,o){const{rects:a,placement:c}=t;return{side:rS(r,$n(c),o),align:Xr(c)||"center",anchor:{width:a.reference.width,height:a.reference.height},positioner:{width:a.floating.width,height:a.floating.height}}}function oS(t){const{anchor:r,positionMethod:o="absolute",side:a="bottom",sideOffset:c=0,align:d="center",alignOffset:m=0,collisionBoundary:g,collisionPadding:b=5,sticky:p=!1,arrowPadding:y=5,disableAnchorTracking:x=!1,inline:S,keepMounted:j=!1,floatingRootContext:E,mounted:k,collisionAvoidance:O,shiftCrossAxis:N=!1,nodeId:T,adaptiveOrigin:_,lazyFlip:w=!1,externalTree:V}=t,[M,L]=h.useState(null);!k&&M!==null&&L(null);const C=O.side||"flip",Z=O.align||"flip",re=O.fallbackAxisSide||"end",ie=typeof r=="function"?r:void 0,te=st(ie),K=ie?te:r,ne=un(r),W=un(k),z=nS()==="rtl",P=M||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":z?"left":"right","inline-start":z?"right":"left"}[a],U=d==="center"?P:`${P}-${d}`;let F=b;const A=1,H=a==="bottom"?A:0,I=a==="top"?A:0,B=a==="right"?A:0,G=a==="left"?A:0;typeof F=="number"?F={top:F+H,right:F+G,bottom:F+I,left:F+B}:F&&(F={top:(F.top||0)+H,right:(F.right||0)+G,bottom:(F.bottom||0)+I,left:(F.left||0)+B});const Q={boundary:g==="clipping-ancestors"?"clippingAncestors":g,padding:F},he=h.useRef(null),le=un(c),de=un(m),Ue=typeof c!="function"?c:0,Le=typeof m!="function"?m:0,we=[];S&&we.push(S),we.push(uO(Se=>{const Ge=uv(Se,a,z),Ot=typeof le.current=="function"?le.current(Ge):le.current,Yt=typeof de.current=="function"?de.current(Ge):de.current;return{mainAxis:Ot,crossAxis:Yt,alignmentAxis:Yt}},[Ue,Le,z,a]));const Be=Z==="none"&&C!=="shift",ge=!Be&&(p||N||C==="shift"),q=C==="none"?null:mO({...Q,padding:{top:F.top+A,right:F.right+A,bottom:F.bottom+A,left:F.left+A},mainAxis:!N&&C==="flip",crossAxis:Z==="flip"?"alignment":!1,fallbackAxisSideDirection:re}),Me=Be?null:dO(Se=>{const Ge=Nt(Se.elements.floating).documentElement;return{...Q,rootBoundary:N?{x:0,y:0,width:Ge.clientWidth,height:Ge.clientHeight}:void 0,mainAxis:Z!=="none",crossAxis:ge,limiter:p||N?void 0:fO(Ot=>{if(!he.current)return{};const{width:Yt,height:se}=he.current.getBoundingClientRect(),ye=us($n(Ot.placement)),De=ye==="y"?Yt:se,Ze=ye==="y"?F.left+F.right:F.top+F.bottom;return{offset:De/2+Ze/2}})}},[Q,p,N,F,Z]);C==="shift"||Z==="shift"||d==="center"?we.push(Me,q):we.push(q,Me),we.push(pO({...Q,apply({elements:{floating:Se},availableWidth:Ge,availableHeight:Ot,rects:Yt}){if(!W.current)return;const se=Se.style;se.setProperty("--available-width",`${Ge}px`),se.setProperty("--available-height",`${Ot}px`);const ye=Zt(Se).devicePixelRatio||1,{x:De,y:Ze,width:nt,height:at}=Yt.reference,rt=(Math.round((De+nt)*ye)-Math.round(De*ye))/ye,$t=(Math.round((Ze+at)*ye)-Math.round(Ze*ye))/ye;se.setProperty("--anchor-width",`${rt}px`),se.setProperty("--anchor-height",`${$t}px`)}}),lk(Se=>({element:he.current||Nt(Se.elements.floating).createElement("div"),padding:y,offsetParent:"floating"}),[y]),{name:"transformOrigin",fn(Se){const{elements:Ge,middlewareData:Ot,placement:Yt,rects:se,y:ye}=Se,De=$n(Yt),Ze=us(De),nt=he.current,at=Ot.arrow?.x||0,rt=Ot.arrow?.y||0,$t=nt?.clientWidth||0,Zn=nt?.clientHeight||0,Jt=at+$t/2,gn=rt+Zn/2,hr=Math.abs(Ot.shift?.y||0),Hn=se.reference.height/2,Ls=typeof c=="function"?c(uv(Se,a,z)):c,ii=hr>Ls,xs={top:`${Jt}px calc(100% + ${Ls}px)`,bottom:`${Jt}px ${-Ls}px`,left:`calc(100% + ${Ls}px) ${gn}px`,right:`${-Ls}px ${gn}px`}[De],an=`${Jt}px ${se.reference.y+Hn-ye}px`;return Ge.floating.style.setProperty("--transform-origin",ge&&Ze==="y"&&ii?an:xs),{}}},ck,_),Qe(()=>{!k&&E&&E.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[k,E]);const Oe=h.useMemo(()=>({elementResize:!x&&typeof ResizeObserver<"u",layoutShift:!x&&typeof IntersectionObserver<"u"}),[x]),{refs:_e,elements:be,x:Ie,y:Ve,middlewareData:Pe,update:ee,placement:Y,context:$,isPositioned:Te,floatingStyles:xe}=zO({rootContext:E,open:j?k:void 0,placement:U,middleware:we,strategy:o,whileElementsMounted:j?void 0:(...Se)=>nv(...Se,Oe),nodeId:T,externalTree:V}),{sideX:ae,sideY:ke}=Pe.adaptiveOrigin||Yc,Ye=Te?o:"fixed",We=h.useMemo(()=>{const Se=_?{position:Ye,[ae]:Ie,[ke]:Ve}:{position:Ye,...xe};return Te||(Se.opacity=0),Se},[_,Ye,ae,Ie,ke,Ve,xe,Te]),pt=h.useRef(null);Qe(()=>{if(!k)return;const Se=ne.current,Ge=typeof Se=="function"?Se():Se,Yt=(dv(Ge)?Ge.current:Ge)||null||null;Yt!==pt.current&&(_e.setPositionReference(Yt),pt.current=Yt)},[k,_e,K,ne]),h.useEffect(()=>{if(!k)return;const Se=ne.current;typeof Se!="function"&&dv(Se)&&Se.current!==pt.current&&(_e.setPositionReference(Se.current),pt.current=Se.current)},[k,_e,K,ne]),h.useEffect(()=>{if(j&&k&&be.reference&&be.floating)return nv(be.reference,be.floating,ee,Oe)},[j,k,be,ee,Oe]);const At=$n(Y),mt=rS(a,At,z),Tt=Xr(Y)||"center",Rt=!!Pe.hide?.referenceHidden;Qe(()=>{w&&k&&Te&&L(At)},[w,k,Te,At]);const Lt=h.useMemo(()=>({position:"absolute",top:Pe.arrow?.y,left:Pe.arrow?.x}),[Pe.arrow]),Ce=Pe.arrow?.centerOffset!==0;return h.useMemo(()=>({positionerStyles:We,arrowStyles:Lt,arrowRef:he,arrowUncentered:Ce,side:mt,align:Tt,physicalSide:At,anchorHidden:Rt,refs:_e,context:$,isPositioned:Te,update:ee}),[We,Lt,he,Ce,mt,Tt,At,Rt,_e,$,Te,ee])}function dv(t){return t!=null&&"current"in t}function uk(t){const{children:r,elementsRef:o,labelsRef:a,onMapChange:c}=t,d=st(c),m=h.useRef(0),g=In(fk).current,b=In(dk).current,[p,y]=h.useState(0),x=h.useRef(p),S=st((N,T)=>{b.set(N,T??null),x.current+=1,y(x.current)}),j=st(N=>{b.delete(N),x.current+=1,y(x.current)}),E=h.useMemo(()=>{const N=new Map;return Array.from(b.keys()).filter(_=>_.isConnected).sort(mk).forEach((_,w)=>{const V=b.get(_)??{};N.set(_,{...V,index:w})}),N},[b,p]);Qe(()=>{if(typeof MutationObserver!="function"||E.size===0)return;const N=new MutationObserver(T=>{const _=new Set,w=V=>_.has(V)?_.delete(V):_.add(V);T.forEach(V=>{V.removedNodes.forEach(w),V.addedNodes.forEach(w)}),_.size===0&&(x.current+=1,y(x.current))});return E.forEach((T,_)=>{_.parentElement&&N.observe(_.parentElement,{childList:!0})}),()=>{N.disconnect()}},[E]),Qe(()=>{x.current===p&&(o.current.length!==E.size&&(o.current.length=E.size),a&&a.current.length!==E.size&&(a.current.length=E.size),m.current=E.size),d(E)},[d,E,o,a,p]),Qe(()=>()=>{o.current=[]},[o]),Qe(()=>()=>{a&&(a.current=[])},[a]);const k=st(N=>(g.add(N),()=>{g.delete(N)}));Qe(()=>{g.forEach(N=>N(E))},[g,E]);const O=h.useMemo(()=>({register:S,unregister:j,subscribeMapChange:k,elementsRef:o,labelsRef:a,nextIndexRef:m}),[S,j,k,o,a,m]);return i.jsx(K0.Provider,{value:O,children:r})}function dk(){return new Map}function fk(){return new Set}function mk(t,r){const o=t.compareDocumentPosition(r);return o&Node.DOCUMENT_POSITION_FOLLOWING||o&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:o&Node.DOCUMENT_POSITION_PRECEDING||o&Node.DOCUMENT_POSITION_CONTAINS?1:0}const $p=h.forwardRef(function(r,o){const{cutout:a,...c}=r;let d;if(a){const m=a.getBoundingClientRect();d=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${m.left}px ${m.top}px,${m.left}px ${m.bottom}px,${m.right}px ${m.bottom}px,${m.right}px ${m.top}px,${m.left}px ${m.top}px)`}return i.jsx("div",{ref:o,role:"presentation","data-base-ui-inert":"",...c,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:d}})});function aS(t,r,{styles:o,transitionStatus:a,props:c,refs:d,hidden:m,inert:g=!1}){const b={...o};return g&&(b.pointerEvents="none"),hn("div",t,{state:r,ref:d,props:[{role:"presentation",hidden:m,style:b},Gp(a),c],stateAttributesMapping:ri})}let fv={},mv={},pv="";function pk(t){if(typeof document>"u")return!1;const r=Nt(t);return Zt(r).innerWidth-r.documentElement.clientWidth>0}function hk(t){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const o=Nt(t),a=o.documentElement,c=o.body,d=Oo(a)?a:c,m=d.style.overflowY,g=a.style.scrollbarGutter;a.style.scrollbarGutter="stable",d.style.overflowY="scroll";const b=d.offsetWidth;d.style.overflowY="hidden";const p=d.offsetWidth;return d.style.overflowY=m,a.style.scrollbarGutter=g,b===p}function gk(t){const r=Nt(t),o=r.documentElement,a=r.body,c=Oo(o)?o:a,d={overflowY:c.style.overflowY,overflowX:c.style.overflowX};return Object.assign(c.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(c.style,d)}}function xk(t){const r=Nt(t),o=r.documentElement,a=r.body,c=Zt(o);let d=0,m=0,g=!1;const b=ws.create();if(_o&&(c.visualViewport?.scale??1)!==1)return()=>{};function p(){const j=c.getComputedStyle(o),E=c.getComputedStyle(a),N=(j.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";d=o.scrollTop,m=o.scrollLeft,fv={scrollbarGutter:o.style.scrollbarGutter,overflowY:o.style.overflowY,overflowX:o.style.overflowX},pv=o.style.scrollBehavior,mv={position:a.style.position,height:a.style.height,width:a.style.width,boxSizing:a.style.boxSizing,overflowY:a.style.overflowY,overflowX:a.style.overflowX,scrollBehavior:a.style.scrollBehavior};const T=o.scrollHeight>o.clientHeight,_=o.scrollWidth>o.clientWidth,w=j.overflowY==="scroll"||E.overflowY==="scroll",V=j.overflowX==="scroll"||E.overflowX==="scroll",M=Math.max(0,c.innerWidth-a.clientWidth),L=Math.max(0,c.innerHeight-a.clientHeight),C=parseFloat(E.marginTop)+parseFloat(E.marginBottom),Z=parseFloat(E.marginLeft)+parseFloat(E.marginRight),re=Oo(o)?o:a;if(g=hk(t),g){o.style.scrollbarGutter=N,re.style.overflowY="hidden",re.style.overflowX="hidden";return}Object.assign(o.style,{scrollbarGutter:N,overflowY:"hidden",overflowX:"hidden"}),(T||w)&&(o.style.overflowY="scroll"),(_||V)&&(o.style.overflowX="scroll"),Object.assign(a.style,{position:"relative",height:C||L?`calc(100dvh - ${C+L}px)`:"100dvh",width:Z||M?`calc(100vw - ${Z+M}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),a.scrollTop=d,a.scrollLeft=m,o.setAttribute("data-base-ui-scroll-locked",""),o.style.scrollBehavior="unset"}function y(){Object.assign(o.style,fv),Object.assign(a.style,mv),g||(o.scrollTop=d,o.scrollLeft=m,o.removeAttribute("data-base-ui-scroll-locked"),o.style.scrollBehavior=pv)}function x(){y(),b.request(p)}p();const S=xt(c,"resize",x);return()=>{b.cancel(),y(),typeof c.removeEventListener=="function"&&S()}}class bk{lockCount=0;restore=null;timeoutLock=gs.create();timeoutUnlock=gs.create();acquire(r){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(r)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(r){if(this.lockCount===0||this.restore!==null)return;const a=Nt(r).documentElement,c=Zt(a).getComputedStyle(a).overflowY;if(c==="hidden"||c==="clip"){this.restore=mn;return}const d=gu||!pk(r);this.restore=d?gk(r):xk(r)}}const yk=new bk;function lS(t=!0,r=null){Qe(()=>{if(t)return yk.acquire(r)},[t,r])}const vk=20;function iS(t,r,o,a){const[c,d]=h.useState(!1);Qe(()=>{if(!t||!r||o==null){d(!1);return}const m=Nt(o).documentElement.clientWidth,g=o.offsetWidth;d(m>0&&g>0&&g>=m-vk)},[t,r,o]),lS(t&&(!r||c),a)}const Sk=h.forwardRef(function(r,o){const{anchor:a,positionMethod:c="absolute",className:d,render:m,side:g,align:b,sideOffset:p=0,alignOffset:y=0,collisionBoundary:x="clipping-ancestors",collisionPadding:S=5,arrowPadding:j=5,sticky:E=!1,disableAnchorTracking:k=!1,collisionAvoidance:O=vR,style:N,...T}=r,{store:_}=ko(),w=sk(),V=mu(!0),M=_.useState("parent"),L=_.useState("floatingRootContext"),C=_.useState("floatingTreeRoot"),Z=_.useState("mounted"),re=_.useState("open"),ie=_.useState("modal"),te=_.useState("openMethod"),K=_.useState("activeTriggerElement"),ne=_.useState("transitionStatus"),W=_.useState("positionerElement"),D=_.useState("instantType"),z=_.useState("hasViewport"),P=_.useState("lastOpenChangeReason"),U=_.useState("floatingNodeId"),F=_.useState("floatingParentNodeId"),A=L.useState("domReferenceElement"),H=h.useRef(null),I=Ep(W,!1,!1);let B=a,G=p,Q=y,he=b,le=O;M.type==="context-menu"&&(B=a??M.context?.anchor,he=he??"start",!g&&he!=="center"&&(Q=r.alignOffset??2,G=r.sideOffset??-5));let de=g,Ue=he;M.type==="menu"?(de=de??"inline-end",Ue=Ue??"start",le=r.collisionAvoidance??y1):M.type==="menubar"&&(de=de??(M.context.orientation==="vertical"?"inline-end":"bottom"),Ue=Ue??"start");const Le=M.type==="context-menu",we=oS({anchor:B,floatingRootContext:L,positionMethod:V?"fixed":c,mounted:Z,side:de,sideOffset:G,align:Ue,alignOffset:Q,arrowPadding:Le?0:j,collisionBoundary:x,collisionPadding:S,sticky:E,nodeId:U,keepMounted:w,disableAnchorTracking:k,collisionAvoidance:le,shiftCrossAxis:Le&&!("side"in le&&le.side==="flip"),externalTree:C,adaptiveOrigin:z?sS:void 0});h.useEffect(()=>{function Ie(Ve){Ve.open&&(Ve.parentNodeId===U&&_.set("hoverEnabled",!1),Ve.nodeId!==U&&Ve.parentNodeId===_.select("floatingParentNodeId")&&_.setOpen(!1,jt(Il)))}return C.events.on("menuopenchange",Ie),()=>{C.events.off("menuopenchange",Ie)}},[_,C.events,U]),h.useEffect(()=>{if(_.select("floatingParentNodeId")==null)return;function Ie(Ve){if(Ve.open||Ve.nodeId!==_.select("floatingParentNodeId"))return;const Pe=Ve.reason??Il;_.setOpen(!1,jt(Pe))}return C.events.on("menuopenchange",Ie),()=>{C.events.off("menuopenchange",Ie)}},[C.events,_]);const Be=Qn();h.useEffect(()=>{re||Be.clear()},[re,Be]),h.useEffect(()=>{function Ie(Ve){if(!(!re||Ve.nodeId!==_.select("floatingParentNodeId")))if(Ve.target&&K&&K!==Ve.target){const Pe=_.select("closeDelay");Pe>0?Be.isStarted()||Be.start(Pe,()=>{_.setOpen(!1,jt(Il))}):_.setOpen(!1,jt(Il))}else Be.clear()}return C.events.on("itemhover",Ie),()=>{C.events.off("itemhover",Ie)}},[C.events,re,K,_,Be]),h.useEffect(()=>{const Ie={open:re,nodeId:U,parentNodeId:F,reason:_.select("lastOpenChangeReason")};C.events.emit("menuopenchange",Ie)},[C.events,re,_,U,F]),Qe(()=>{const Ie=A,Ve=H.current;if(Ie&&(H.current=Ie),Ve&&Ie&&Ie!==Ve){_.set("instantType",void 0);const Pe=new AbortController;return I(()=>{_.set("instantType","trigger-change")},Pe.signal),()=>{Pe.abort()}}},[A,I,_]);const ge={open:re,side:we.side,align:we.align,anchorHidden:we.anchorHidden,nested:M.type==="menu",instant:D},q=M.type==="menubar"&&M.context.modal;iS(re&&(q||ie&&P!==pn),te==="touch",W,K);const Oe=aS(r,ge,{styles:we.positionerStyles,transitionStatus:ne,props:T,refs:[o,_.useStateSetter("positionerElement")],hidden:!Z,inert:!re}),_e=Z&&M.type!=="menu"&&(M.type!=="menubar"&&ie&&P!==pn||M.type==="menubar"&&M.context.modal);let be=null;return M.type==="menubar"?be=M.context.contentElement:M.type===void 0&&(be=K),i.jsxs(V0.Provider,{value:we,children:[_e&&i.jsx($p,{ref:M.type==="context-menu"||M.type==="nested-context-menu"?M.context.internalBackdropRef:null,inert:qp(!re),cutout:be}),i.jsx(T1,{id:U,children:i.jsx(uk,{elementsRef:_.context.itemDomElements,labelsRef:_.context.itemLabels,children:Oe})})]})}),Ek=h.createContext(null);function cS(t){return h.useContext(Ek)}function Nk(t){const r=h.useRef(""),o=h.useCallback(c=>{c.defaultPrevented||(r.current=c.pointerType,t(c,c.pointerType))},[t]);return{onClick:h.useCallback(c=>{if(c.detail===0){t(c,"keyboard");return}"pointerType"in c?t(c,c.pointerType):t(c,r.current),r.current=""},[t]),onPointerDown:o}}function jk(t,r){const o=h.useRef(t),a=st(r);Qe(()=>{o.current!==t&&a(o.current)},[t,a]),Qe(()=>{o.current=t},[t])}function uS(t,r){const o=st((d,m)=>{(typeof t=="function"?t():t)||r(m||(gu?"touch":""))}),{onClick:a,onPointerDown:c}=Nk(o);return h.useMemo(()=>({onClick:a,onPointerDown:c}),[a,c])}function Tk(t){const[r,o]=h.useState(null),a=uS(t,o);return jk(t,c=>{c&&!t&&o(null)}),h.useMemo(()=>({openMethod:r,triggerProps:a}),[r,a])}const wk={...Yp,disabled:$e(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:$e(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:$e(t=>t.openMethod),allowMouseEnter:$e(t=>t.allowMouseEnter),highlightItemOnHover:$e(t=>t.highlightItemOnHover),stickIfOpen:$e(t=>t.stickIfOpen),parent:$e(t=>t.parent),rootId:$e(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:$e(t=>t.activeIndex),isActive:$e((t,r)=>t.activeIndex===r),hoverEnabled:$e(t=>t.hoverEnabled),instantType:$e(t=>t.instantType),lastOpenChangeReason:$e(t=>t.openChangeReason),floatingTreeRoot:$e(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:$e(t=>t.floatingNodeId),floatingParentNodeId:$e(t=>t.floatingParentNodeId),itemProps:$e(t=>t.itemProps),closeDelay:$e(t=>t.closeDelay),hasViewport:$e(t=>t.hasViewport),keyboardEventRelay:$e(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})};class Xp extends Nu{constructor(r){super({...Ck(),...r},{positionerRef:h.createRef(),popupRef:h.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:h.createRef(),beforeContentFocusGuardRef:h.createRef(),onOpenChangeComplete:void 0,triggerElements:new ai},wk),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let a=o.store.select("rootId"),c=o.store.select("floatingTreeRoot"),d=o.store.select("keyboardEventRelay");this.unsubscribeParentListener=o.store.subscribe(()=>{const m=o.store.select("rootId"),g=o.store.select("floatingTreeRoot"),b=o.store.select("keyboardEventRelay");a===m&&c===g&&d===b||(a=m,c=g,d=b,this.notifyAll())}),this.context.allowMouseUpTriggerRef=o.store.context.allowMouseUpTriggerRef;return}o.type!==void 0&&(this.context.allowMouseUpTriggerRef=o.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(r,o){this.state.floatingRootContext.context.events.emit("setOpen",{open:r,eventDetails:o})}static useStore(r,o){const a=In(()=>new Xp(o)).current;return r??a}unsubscribeParentListener=null}function Ck(){return{...Up(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new kp,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:Ft,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}const Rk=h.createContext(void 0);function Ok(){return h.useContext(Rk)}const kk=B1(function(r){const{children:o,open:a,onOpenChange:c,onOpenChangeComplete:d,defaultOpen:m=!1,disabled:g=!1,modal:b,loopFocus:p=!0,orientation:y="vertical",actionsRef:x,closeParentOnEsc:S=!1,handle:j,triggerId:E,defaultTriggerId:k=null,highlightItemOnHover:O=!0}=r,N=mu(!0),T=ko(!0),_=cS(!0),w=Ok(),V=h.useMemo(()=>w&&T?{type:"menu",store:T.store}:_?{type:"menubar",context:_}:N&&!T?{type:"context-menu",context:N}:{type:void 0},[N,T,_,w]),M=Xp.useStore(j?.store,{open:m,openProp:a,activeTriggerId:k,triggerIdProp:E,parent:V});F1(M,a,m,k),M.useControlledProp("openProp",a),M.useControlledProp("triggerIdProp",E),M.useContextCallback("onOpenChangeComplete",d);const L=wo(),C=wo(),Z=M.useState("floatingTreeRoot"),re=_p(Z),ie=pr(),te=M.useState("open"),K=M.useState("activeTriggerElement"),ne=M.useState("positionerElement"),W=M.useState("hoverEnabled"),D=M.useState("disabled"),z=M.useState("lastOpenChangeReason"),P=M.useState("parent"),U=M.useState("activeIndex"),F=M.useState("payload"),A=M.useState("floatingParentNodeId"),H=h.useRef(null),I=h.useRef(P.type!=="context-menu"),B=Qn(),G=h.useRef(!0),Q=Qn(),he=A!=null,{openMethod:le,triggerProps:de}=Tk(te);M.useSyncedValues({disabled:g,highlightItemOnHover:O,modal:P.type===void 0?b:void 0,openMethod:le,rootId:L}),Ip(M);const{forceUnmount:Ue}=Bp(te,M,()=>{M.update({allowMouseEnter:!1,stickIfOpen:!0})});Qe(()=>{N&&!T?M.update({parent:{type:"context-menu",context:N},floatingNodeId:re,floatingParentNodeId:ie}):T&&M.update({floatingNodeId:re,floatingParentNodeId:ie})},[N,T,re,ie,M]),h.useEffect(()=>{if(te||(H.current=null),P.type==="context-menu"){if(!te){B.clear(),I.current=!1;return}B.start(500,()=>{I.current=!0})}},[B,te,P.type]),Qe(()=>{!te&&!W&&M.set("hoverEnabled",!0)},[te,W,M]);const Le=st((ae,ke)=>{const Ye=ke.reason;if(te===ae&&ke.trigger===K&&z===Ye)return;const We=V1(ke);if(!ae&&ke.trigger==null&&(ke.trigger=K??void 0),c?.(ae,ke),ke.isCanceled)return;M.state.floatingRootContext.dispatchOpenChange(ae,ke);const pt=ke.event;if(ae===!1&&pt?.type==="click"&&pt.pointerType==="touch"&&!G.current)return;ae&&Ye===Hl?(G.current=!1,Q.start(300,()=>{G.current=!0})):(G.current=!0,Q.clear());const At=(Ye===jo||Ye===$0)&&pt.detail===0&&pt?.isTrusted,mt=!ae&&(Ye===pu||Ye==null),Tt={open:ae,openChangeReason:Ye};H.current=ke.event??null,Lp(Tt,ae,ke.trigger,We()),M.update(Tt),P.type==="menubar"&&(Ye===Hl||Ye===To||Ye===pn||Ye===Om||Ye===Il)?M.set("instantType","group"):At||mt?M.set("instantType",At?"click":"dismiss"):M.set("instantType",void 0)}),we=U1({popupStore:M,floatingId:C,nested:ie!=null,onOpenChange:Le}),Be=we.context.events;h.useEffect(()=>{const ae=({open:ke,eventDetails:Ye})=>Le(ke,Ye);return Be.on("setOpen",ae),()=>{Be?.off("setOpen",ae)}},[Be,Le]);const ge=h.useCallback(()=>{M.setOpen(!1,jt(bp))},[M]);h.useImperativeHandle(x,()=>({unmount:Ue,close:ge}),[Ue,ge]);let q;P.type==="context-menu"&&(q=P.context),h.useImperativeHandle(q?.positionerRef,()=>ne,[ne]),h.useImperativeHandle(q?.actionsRef,()=>({setOpen:Le}),[Le]);const Me=Dp(we,{enabled:!D,bubbles:{escapeKey:S&&P.type==="menu"},outsidePress(){return P.type!=="context-menu"||H.current?.type==="contextmenu"?!0:I.current},externalTree:he?Z:void 0}),Oe=nS(),_e=h.useCallback(ae=>{M.select("activeIndex")!==ae&&M.set("activeIndex",ae)},[M]),be=PO(we,{enabled:!D,listRef:M.context.itemDomElements,activeIndex:U,nested:P.type!==void 0,loopFocus:p,orientation:y,parentOrientation:P.type==="menubar"?P.context.orientation:void 0,rtl:Oe==="rtl",disabledIndices:Qc,onNavigate:_e,openOnArrowKeyDown:P.type!=="context-menu",externalTree:he?Z:void 0,focusItemOnHover:O}),Ie=h.useCallback(ae=>{M.context.typingRef.current=ae},[M]),Ve=YO(we,{enabled:!D,listRef:M.context.itemLabels,elementsRef:M.context.itemDomElements,activeIndex:U,resetMs:bR,onMatch:ae=>{te&&ae!==U&&M.set("activeIndex",ae)},onTyping:Ie}),Pe=h.useMemo(()=>{const ae=or(Ve.reference,be.reference,Me.reference,{onMouseMove(){M.set("allowMouseEnter",!0)}},de);return ae["aria-haspopup"]="menu",ae["aria-expanded"]=te,ae},[M,Ve.reference,be.reference,Me.reference,de,te]),ee=h.useMemo(()=>{const ae=or(be.trigger,Me.trigger,de);return ae["aria-haspopup"]="menu",ae["aria-expanded"]=!1,ae},[be.trigger,Me.trigger,de]),Y=h.useMemo(()=>or(Tu,{id:C,role:"menu","aria-labelledby":K?.id,onMouseMove(){M.set("allowMouseEnter",!0),P.type==="menu"&&M.set("hoverEnabled",!1)},onClick(){M.select("hoverEnabled")&&M.set("hoverEnabled",!1)},onKeyDown(ae){const ke=M.select("keyboardEventRelay");ke&&!ae.isPropagationStopped()&&ke(ae)}},Ve.floating,be.floating,Me.floating),[K,C,P.type,M,Ve.floating,be.floating,Me.floating]),$=be.item??Ft;Hp(M,{floatingRootContext:we,activeTriggerProps:Pe,inactiveTriggerProps:ee,popupProps:Y,itemProps:$});const Te=h.useMemo(()=>({store:M,parent:V}),[M,V]),xe=i.jsx(G0.Provider,{value:Te,children:typeof o=="function"?o({payload:F}):o});return P.type===void 0||P.type==="context-menu"?i.jsx(w1,{externalTree:Z,children:xe}):xe});function _k(t){const r=t.getBoundingClientRect(),o=Zt(t);if(vp)return r;const a=o.getComputedStyle(t,"::before"),c=o.getComputedStyle(t,"::after");if(!(a.content!=="none"||c.content!=="none"))return r;const m=parseFloat(a.width)||0,g=parseFloat(a.height)||0,b=parseFloat(c.width)||0,p=parseFloat(c.height)||0,y=Math.max(r.width,m,b),x=Math.max(r.height,g,p),S=y-r.width,j=x-r.height;return{left:r.left-S/2,right:r.right+S/2,top:r.top-j/2,bottom:r.bottom+j/2}}function Mk(t={}){const{highlightItemOnHover:r,highlightedIndex:o,onHighlightedIndexChange:a}=hp(),{ref:c,index:d}=Q0(t),m=o===d,g=h.useRef(null),b=Ma(c,g);return{compositeProps:{tabIndex:m?0:-1,onFocus(){a(d)},onMouseMove(){const y=g.current;if(!r||!y)return;const x=y.hasAttribute("disabled")||y.ariaDisabled==="true";!m&&!x&&y.focus()}},compositeRef:b,index:d}}function Ak(t){const{render:r,className:o,style:a,state:c=Ft,props:d=Qc,refs:m=Qc,metadata:g,stateAttributesMapping:b,tag:p="div",...y}=t,{compositeProps:x,compositeRef:S}=Mk({metadata:g});return hn(p,t,{state:c,ref:[...m,S],props:[x,...d,y],stateAttributesMapping:b})}function dS(t){if(Vt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!rr(t))return dS(ur(t))}function fS(t,r){const o=h.useRef(null);function a(d){dr.flushSync(()=>{t.setOpen(!1,jt(To,d.nativeEvent,d.currentTarget))}),pR(o.current)?.focus()}function c(d){const m=t.select("positionerElement");if(m&&Ra(d,m))t.context.beforeContentFocusGuardRef.current?.focus();else{dr.flushSync(()=>{t.setOpen(!1,jt(To,d.nativeEvent,d.currentTarget))});let g=mR(t.context.triggerFocusTargetRef.current||r.current);for(;g!==null&&tt(m,g);){const b=g;if(g=Rp(g),g===b)break}g?.focus()}}return{preFocusGuardRef:o,handlePreFocusGuardFocus:a,handleFocusTargetFocus:c}}function Dk(t){const{enabled:r=!0,mouseDownAction:o,open:a}=t,c=h.useRef(!1);return h.useMemo(()=>r?{onMouseDown:d=>{(o==="open"&&!a||o==="close"&&a)&&(c.current=!0,Nt(d.currentTarget).addEventListener("click",()=>{c.current=!1},{once:!0}))},onClick:d=>{c.current&&(c.current=!1,d.preventBaseUIHandler())}}:Ft,[r,o,a])}const Mc=2,zk=EO(function(r,o){const{render:a,className:c,style:d,disabled:m=!1,nativeButton:g=!0,id:b,openOnHover:p,delay:y=100,closeDelay:x=0,handle:S,payload:j,...E}=r,k=ko(!0),O=S?.store??k?.store;if(!O)throw new Error(Tn(85));const N=Mo(b),T=O.useState("isTriggerActive",N),_=O.useState("floatingRootContext"),w=O.useState("isOpenedByTrigger",N),V=O.useState("triggerPopupId",N),M=h.useRef(null),L=Ik(),C=hp(!0),Z=Kr(),re=h.useMemo(()=>Z??new kp,[Z]),ie=_p(re),te=pr(),{registerTrigger:K,isMountedByThisTrigger:ne}=G1(N,M,O,{payload:j,closeDelay:x,parent:L,floatingTreeRoot:re,floatingNodeId:ie,floatingParentNodeId:te,keyboardEventRelay:C?.relayKeyboardEvent}),W=L.type==="menubar",D=O.useState("disabled"),z=m||D||W&&L.context.disabled,{getButtonProps:P,buttonRef:U}=si({disabled:z,native:g});h.useEffect(()=>{!w&&L.type===void 0&&(O.context.allowMouseUpTriggerRef.current=!1)},[O,w,L.type]);const F=h.useRef(null),A=Qn(),H=st(be=>{if(!F.current)return;A.clear(),O.context.allowMouseUpTriggerRef.current=!1;const Ie=be.target;if(tt(F.current,Ie)||tt(O.select("positionerElement"),Ie)||Ie===F.current||Ie!=null&&dS(Ie)===O.select("rootId"))return;const Ve=_k(F.current);be.clientX>=Ve.left-Mc&&be.clientX<=Ve.right+Mc&&be.clientY>=Ve.top-Mc&&be.clientY<=Ve.bottom+Mc||re.events.emit("close",{domEvent:be,reason:vC})});h.useEffect(()=>{w&&O.select("lastOpenChangeReason")===pn&&Nt(F.current).addEventListener("mouseup",H,{once:!0})},[w,H,O]);const I=W&&L.context.hasSubmenuOpen,G=J1(_,{enabled:(p??I)&&!z&&L.type!=="context-menu"&&(!W||I&&!ne),handleClose:W1({blockPointerEvents:!W}),mouseOnly:!0,move:!1,restMs:L.type===void 0?y:void 0,delay:{close:x},triggerElementRef:M,externalTree:re,isActiveTrigger:T,isClosing:()=>O.select("transitionStatus")==="ending"}),Q=Lk(w,O.select("lastOpenChangeReason")),he=C1(_,{enabled:!z&&L.type!=="context-menu",event:w&&W?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:L.type===void 0?Q:!1}),le=LO(_,{enabled:!z&&I}),de=Dk({open:w,enabled:W,mouseDownAction:"open"}),Ue=h.useMemo(()=>or(le.reference,he.reference),[le.reference,he.reference]),Le=O.useState("triggerProps",ne),{preFocusGuardRef:we,handlePreFocusGuardFocus:Be,handleFocusTargetFocus:ge}=fS(O,M),q={disabled:z,open:w},Me=[F,o,U,K,M],Oe=[Ue,G??Ft,Le,{"aria-haspopup":"menu","aria-controls":V,id:N,onMouseDown:be=>{if(O.select("open"))return;A.start(200,()=>{O.context.allowMouseUpTriggerRef.current=!0}),Nt(be.currentTarget).addEventListener("mouseup",H,{once:!0})}},W?{role:"menuitem"}:{},de,E,P],_e=hn("button",r,{enabled:!W,stateAttributesMapping:Rm,state:q,ref:Me,props:Oe});return W?i.jsx(Ak,{tag:"button",render:a,className:c,style:d,state:q,refs:Me,props:Oe,stateAttributesMapping:Rm}):w?i.jsxs(h.Fragment,{children:[i.jsx(Gr,{ref:we,onFocus:Be},`${N}-pre-focus-guard`),i.jsx(h.Fragment,{children:_e},N),i.jsx(Gr,{ref:O.context.triggerFocusTargetRef,onFocus:ge},`${N}-post-focus-guard`)]}):i.jsx(h.Fragment,{children:_e},N)});function Lk(t,r){const o=Qn(),[a,c]=h.useState(!1);return Qe(()=>{t&&r==="trigger-hover"?(c(!0),o.start(x1,()=>{c(!1)})):t||(o.clear(),c(!1))},[t,r,o]),a}function Ik(){const t=mu(!0),r=ko(!0),o=cS();return h.useMemo(()=>o?{type:"menubar",context:o}:t&&!r?{type:"context-menu",context:t}:{type:void 0},[t,r,o])}const Bk=h.forwardRef(function(r,o){const{className:a,render:c,orientation:d="horizontal",style:m,...g}=r;return hn("div",r,{state:{orientation:d},ref:o,props:[{role:"separator","aria-orientation":d},g]})});function Hk({...t}){return i.jsx(kk,{"data-slot":"dropdown-menu",...t})}function Uk({...t}){return i.jsx(zk,{"data-slot":"dropdown-menu-trigger",...t})}function Pk({align:t="start",alignOffset:r=0,side:o="bottom",sideOffset:a=4,className:c,...d}){return i.jsx(rk,{children:i.jsx(Sk,{className:"isolate z-50 outline-none",align:t,alignOffset:r,side:o,sideOffset:a,children:i.jsx(nk,{"data-slot":"dropdown-menu-content",className:Ee("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95",c),...d})})})}function Yk({...t}){return i.jsx(HC,{"data-slot":"dropdown-menu-group",...t})}function Vk({className:t,inset:r,...o}){return i.jsx(UC,{"data-slot":"dropdown-menu-label","data-inset":r,className:Ee("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7",t),...o})}function Fk({className:t,inset:r,variant:o="default",...a}){return i.jsx(PC,{"data-slot":"dropdown-menu-item","data-inset":r,"data-variant":o,className:Ee("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",t),...a})}function Gk({className:t,...r}){return i.jsx(Bk,{"data-slot":"dropdown-menu-separator",className:Ee("-mx-1 my-1 h-px bg-border",t),...r})}const qk={propose_create_entity:"新建实体",propose_update_entity:"更新实体",propose_add_relation:"新增关系",propose_outline_node:"新建大纲节点",propose_reorder_timepoints:"重排时间轴时间点"},$k={character:"角色",setting:"设定",location:"地点",hook:"伏笔"};function Xk(t){const r=t.focus_entity_id??t.focus_node_id??"",o=t.focus_entity_type?$k[t.focus_entity_type]??t.focus_entity_type:t.focus_node_id?"大纲节点":"";return o?`${o} ${r}`:r||"当前内容"}const Kk=t=>typeof t=="object"&&t!==null?t:{};function Qk({disabled:t,onClose:r,onToggleCollapse:o}){const a=St(p=>p.sessions),c=St(p=>p.currentSessionId),d=St(p=>p.setCurrentSession),m=St(p=>p.newSession),g=a?.find(p=>p.id===c)??null,b=g?g.lastMessage||"(空会话)":"新会话";return i.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-1 border-b border-border px-2.5",children:[i.jsx(Vl,{className:"size-4 shrink-0 text-muted-foreground"}),i.jsxs(Hk,{children:[i.jsx(Uk,{render:i.jsxs(me,{variant:"outline",size:"sm",disabled:t,className:"max-w-44 justify-start gap-1 px-1.5",children:[i.jsx("span",{className:"truncate text-sm font-medium",title:b,children:b}),i.jsx(Bj,{className:"size-3.5 shrink-0 text-muted-foreground"})]})}),i.jsxs(Pk,{align:"start",className:"w-64",children:[i.jsx(Yk,{children:i.jsx(Vk,{children:"会话(本项目)"})}),i.jsx(Gk,{}),a&&a.length===0&&i.jsx("div",{className:"px-2 py-2 text-xs text-muted-foreground",children:"暂无历史会话"}),a?.map(p=>i.jsx(Fk,{onClick:()=>d(p.id),className:Ee(p.id===c&&"bg-accent text-accent-foreground"),children:i.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[i.jsx("span",{className:"truncate text-sm",children:p.lastMessage||"(空会话)"}),i.jsxs("span",{className:"text-xs text-muted-foreground",children:[p.messageCount," 条 · ",Eo(p.updatedAt)]})]})},p.id))]})]}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"shrink-0 text-muted-foreground",disabled:t,onClick:m,"aria-label":"新会话",title:"新会话",children:i.jsx(lu,{className:"size-4"})}),o&&i.jsx(me,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:o,"aria-label":"收起聊天面板",title:"收起聊天面板",children:i.jsx(bT,{className:"size-4"})}),r&&i.jsx(me,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:r,"aria-label":"关闭聊天面板",children:i.jsx(hs,{className:"size-4"})})]})}function Zk(){const t=St(a=>a.disconnected),r=St(a=>a.setDisconnected),o=St(a=>a.resendLast);return t?i.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-xs text-destructive",children:[i.jsx(tp,{className:"size-3.5 shrink-0"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:"上次会话已取消"}),i.jsx(me,{size:"xs",variant:"outline",className:"shrink-0",onClick:o,children:"重新发送"}),i.jsx("button",{className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",onClick:()=>r(!1),"aria-label":"关闭断连提示",children:i.jsx(hs,{className:"size-3.5"})})]}):null}function Jk(){const t=St(o=>o.streamError),r=St(o=>o.setStreamError);return t?i.jsxs("div",{className:"flex shrink-0 items-center gap-2 border-b border-destructive/30 bg-destructive/10 px-3 py-1.5 text-xs text-destructive",children:[i.jsx(Jm,{className:"size-3.5 shrink-0"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),i.jsx("button",{className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",onClick:()=>r(null),"aria-label":"关闭错误提示",children:i.jsx(hs,{className:"size-3.5"})})]}):null}function mS({toolName:t,args:r,result:o,status:a}){const[c,d]=h.useState(!1),m=a==="ok"||o!==void 0;return i.jsxs("div",{className:"rounded-md border border-border/70 bg-muted/40 px-2 py-1",children:[i.jsxs("button",{className:"flex w-full items-center gap-1.5 rounded-md border border-border px-2 py-1 text-left text-xs text-muted-foreground",onClick:()=>d(g=>!g),"aria-expanded":c,children:[i.jsx(Zm,{className:Ee("size-3 shrink-0 transition-transform",c&&"rotate-90")}),i.jsx(GT,{className:"size-3 shrink-0"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["调用了 ",t]}),a==="error"&&i.jsx("span",{className:"shrink-0 text-destructive",children:"✗"}),m&&i.jsx("span",{className:"shrink-0 text-primary",children:"✓"})]}),c&&i.jsx("pre",{className:"mt-1 max-h-40 overflow-auto text-xs whitespace-pre-wrap text-muted-foreground",children:typeof r=="string"?r:JSON.stringify(r??{},null,2)})]})}function Wk({message:t,toolResults:r}){if(t.role==="user")return i.jsx("div",{className:"flex justify-end",children:i.jsx("div",{className:"max-w-[85%] rounded-lg bg-secondary px-3 py-2 text-sm text-secondary-foreground",children:t.content})});if(t.role==="tool")return null;const o=Array.isArray(t.toolCalls)?t.toolCalls:[];return i.jsxs("div",{className:"space-y-1.5",children:[o.map((a,c)=>{const d=Kk(a),m=d.id??`hist-${c}`,g=m?r.get(m):void 0;return i.jsx(mS,{toolName:d.tool??d.name??"工具",args:d.args,result:g?.content,status:g?"ok":void 0},m)}),t.content?i.jsx("p",{className:"font-serif text-[17px] leading-[1.72] whitespace-pre-wrap text-foreground",children:t.content}):null]})}function e_({proposal:t}){const r=St(d=>d.confirmProposal),o=St(d=>d.rejectProposal),a=qk[t.type]??t.type,c=t.status!=="pending"||t.processing===!0;return i.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-2.5",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-foreground",children:[i.jsx(u0,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate",children:["提案:",a]}),t.status==="confirmed"&&i.jsx("span",{className:"shrink-0 text-xs text-primary",children:"✓ 已确认"}),t.status==="rejected"&&i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:"已拒绝"}),t.status==="stale"&&i.jsx("span",{className:"shrink-0 text-xs text-destructive",children:"⚠ 数据已变化,此提案已失效"})]}),t.preview!==void 0&&i.jsx("pre",{className:"mt-1 max-h-32 overflow-auto text-xs whitespace-pre-wrap text-muted-foreground",children:typeof t.preview=="string"?t.preview:JSON.stringify(t.preview,null,2)}),i.jsxs("div",{className:"mt-2 flex gap-1.5",children:[i.jsx(me,{size:"xs",disabled:c,onClick:()=>{r(t.proposalId)},children:"确认"}),i.jsx(me,{size:"xs",variant:"outline",disabled:c,onClick:()=>{o(t.proposalId)},children:"拒绝"})]})]})}function t_(){const t=St(o=>o.focusContext),r=St(o=>o.clearFocusContext);return t?i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5 border-t border-border bg-accent/40 px-3 py-1.5 text-xs",children:[i.jsx(u0,{className:"size-3.5 shrink-0 text-primary"}),i.jsxs("span",{className:"min-w-0 flex-1 truncate text-muted-foreground",children:["正在讨论:",Xk(t)]}),i.jsx("button",{className:"shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted",onClick:r,"aria-label":"清除讨论上下文",children:i.jsx(hs,{className:"size-3.5"})})]}):null}function n_({disabled:t}){const[r,o]=h.useState(""),a=St(g=>g.streaming),c=St(g=>g.sendMessage),d=!t&&!a&&r.trim().length>0,m=()=>{d&&(c(r),o(""))};return i.jsx("div",{className:"shrink-0 border-t border-border p-3",children:i.jsxs("div",{className:"flex items-end gap-2",children:[i.jsx("textarea",{value:r,onChange:g=>o(g.target.value),onKeyDown:g=>{g.key==="Enter"&&!g.shiftKey&&!g.nativeEvent.isComposing&&(g.preventDefault(),m())},placeholder:a?"AI 思考中…":"输入消息…",rows:1,disabled:t||a,className:"max-h-32 min-h-9 flex-1 resize-none rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs(me,{onClick:m,disabled:!d,className:"shrink-0",children:[a?i.jsx(Yl,{className:"size-4 animate-spin"}):i.jsx(MT,{className:"size-4"}),a?"思考中":"发送"]})]})})}function s_({disabled:t}){const r=St(p=>p.messages),o=St(p=>p.messagesLoading),a=St(p=>p.streamTools),c=St(p=>p.proposals),d=h.useRef(null),m=h.useMemo(()=>{const p=new Map;for(const y of r)y.role==="tool"&&y.toolCallId&&p.set(y.toolCallId,y);return p},[r]),g=r.length;if(h.useEffect(()=>{const p=d.current;p&&(p.scrollTop=p.scrollHeight)},[g,o,a.length,c.length]),t)return i.jsxs("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center gap-2 p-4",children:[i.jsx(Vl,{className:"size-8 text-muted-foreground/40"}),i.jsx("p",{className:"text-sm text-muted-foreground/70",children:"打开项目后可用"})]});if(o)return i.jsx("div",{className:"flex min-h-0 flex-1 flex-col gap-3 p-4",children:[0,1].map(p=>i.jsx("div",{className:Ee(_t,"rounded-lg bg-muted/60"),style:{height:40,width:p%2?"70%":"90%"}},p))});const b=r.length===0&&a.length===0&&c.length===0;return i.jsx("div",{ref:d,className:"min-h-0 flex-1 overflow-y-auto px-3 py-3",children:b?i.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-1.5 p-4 text-center",children:[i.jsx(Vl,{className:"size-7 text-muted-foreground/40"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"试试问:这个设定有没有漏洞?"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"第 4 章剧情往哪走合理?"})]}):i.jsxs("div",{className:"flex flex-col gap-3",children:[r.map(p=>i.jsx(Wk,{message:p,toolResults:m},p.id)),a.map(p=>i.jsx(mS,{toolName:p.tool,args:p.args,result:p.result,status:p.status},p.id)),c.map(p=>i.jsx(e_,{proposal:p},p.proposalId))]})})}function hv({onClose:t,onToggleCollapse:r}){const a=!He(c=>c.config);return i.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[i.jsx(Qk,{disabled:a,onClose:t,onToggleCollapse:r}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(Zk,{}),i.jsx(Jk,{})]}),i.jsx(s_,{disabled:a}),!a&&i.jsxs(i.Fragment,{children:[i.jsx(t_,{}),i.jsx(n_,{disabled:a})]})]})}function r_({open:t,onClose:r,width:o,onToggleCollapse:a}){return np("(min-width: 1024px)")?i.jsx("aside",{className:"flex min-w-0 flex-[4_1_40%] flex-col border-l border-border bg-background",style:o!==void 0?{flex:`0 1 ${o}px`,minWidth:Gl}:void 0,children:i.jsx(hv,{onToggleCollapse:a})}):t?i.jsxs("div",{className:"fixed inset-0 z-50",children:[i.jsx("div",{className:"absolute inset-0 animate-in bg-foreground/40 fade-in",onClick:r}),i.jsx("div",{className:"absolute inset-y-0 right-0 w-[85vw] max-w-md animate-in border-l border-border bg-background shadow-xl duration-300 slide-in-from-right",children:i.jsx(hv,{onClose:r})})]}):null}function o_(t){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}const a_=t=>{switch(t){case"success":return c_;case"info":return d_;case"warning":return u_;case"error":return f_;default:return null}},l_=Array(12).fill(0),i_=({visible:t,className:r})=>ze.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":t},ze.createElement("div",{className:"sonner-spinner"},l_.map((o,a)=>ze.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),c_=ze.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ze.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),u_=ze.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},ze.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),d_=ze.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ze.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),f_=ze.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ze.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),m_=ze.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},ze.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),ze.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),p_=()=>{const[t,r]=ze.useState(document.hidden);return ze.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),t};let Um=1;class h_{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{const o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;const{message:a,...c}=r,d=typeof r?.id=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:Um++,m=this.toasts.find(b=>b.id===d),g=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(d)&&this.dismissedToasts.delete(d),m?this.toasts=this.toasts.map(b=>b.id===d?(this.publish({...b,...r,id:d,title:a}),{...b,...r,id:d,dismissible:g,title:a}):b):this.addToast({title:a,...c,dismissible:g,id:d}),d},this.dismiss=r=>(r?(this.dismissedToasts.add(r),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:r,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(a=>a({id:o.id,dismiss:!0}))}),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let a;o.loading!==void 0&&(a=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const c=Promise.resolve(r instanceof Function?r():r);let d=a!==void 0,m;const g=c.then(async p=>{if(m=["resolve",p],ze.isValidElement(p))d=!1,this.create({id:a,type:"default",message:p});else if(x_(p)&&!p.ok){d=!1;const x=typeof o.error=="function"?await o.error(`HTTP error! status: ${p.status}`):o.error,S=typeof o.description=="function"?await o.description(`HTTP error! status: ${p.status}`):o.description,E=typeof x=="object"&&!ze.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...E})}else if(p instanceof Error){d=!1;const x=typeof o.error=="function"?await o.error(p):o.error,S=typeof o.description=="function"?await o.description(p):o.description,E=typeof x=="object"&&!ze.isValidElement(x)?x:{message:x};this.create({id:a,type:"error",description:S,...E})}else if(o.success!==void 0){d=!1;const x=typeof o.success=="function"?await o.success(p):o.success,S=typeof o.description=="function"?await o.description(p):o.description,E=typeof x=="object"&&!ze.isValidElement(x)?x:{message:x};this.create({id:a,type:"success",description:S,...E})}}).catch(async p=>{if(m=["reject",p],o.error!==void 0){d=!1;const y=typeof o.error=="function"?await o.error(p):o.error,x=typeof o.description=="function"?await o.description(p):o.description,j=typeof y=="object"&&!ze.isValidElement(y)?y:{message:y};this.create({id:a,type:"error",description:x,...j})}}).finally(()=>{d&&(this.dismiss(a),a=void 0),o.finally==null||o.finally.call(o)}),b=()=>new Promise((p,y)=>g.then(()=>m[0]==="reject"?y(m[1]):p(m[1])).catch(y));return typeof a!="string"&&typeof a!="number"?{unwrap:b}:Object.assign(a,{unwrap:b})},this.custom=(r,o)=>{const a=o?.id||Um++;return this.create({jsx:r(a),id:a,...o}),a},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const zn=new h_,g_=(t,r)=>{const o=r?.id||Um++;return zn.addToast({title:t,...r,id:o}),o},x_=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",b_=g_,y_=()=>zn.toasts,v_=()=>zn.getActiveToasts(),gv=Object.assign(b_,{success:zn.success,info:zn.info,warning:zn.warning,error:zn.error,custom:zn.custom,message:zn.message,promise:zn.promise,dismiss:zn.dismiss,loading:zn.loading},{getHistory:y_,getToasts:v_});o_("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ac(t){return t.label!==void 0}const S_=3,E_="24px",N_="16px",xv=4e3,j_=356,T_=14,w_=45,C_=200;function js(...t){return t.filter(Boolean).join(" ")}function R_(t){const[r,o]=t.split("-"),a=[];return r&&a.push(r),o&&a.push(o),a}const O_=t=>{var r,o,a,c,d,m,g,b,p;const{invert:y,toast:x,unstyled:S,interacting:j,setHeights:E,visibleToasts:k,heights:O,index:N,toasts:T,expanded:_,removeToast:w,defaultRichColors:V,closeButton:M,style:L,cancelButtonStyle:C,actionButtonStyle:Z,className:re="",descriptionClassName:ie="",duration:te,position:K,gap:ne,expandByDefault:W,classNames:D,icons:z,closeButtonAriaLabel:P="Close toast"}=t,[U,F]=ze.useState(null),[A,H]=ze.useState(null),[I,B]=ze.useState(!1),[G,Q]=ze.useState(!1),[he,le]=ze.useState(!1),[de,Ue]=ze.useState(!1),[Le,we]=ze.useState(!1),[Be,ge]=ze.useState(0),[q,Me]=ze.useState(0),Oe=ze.useRef(x.duration||te||xv),_e=ze.useRef(null),be=ze.useRef(null),Ie=N===0,Ve=N+1<=k,Pe=x.type,ee=x.dismissible!==!1,Y=x.className||"",$=x.descriptionClassName||"",Te=ze.useMemo(()=>O.findIndex(ye=>ye.toastId===x.id)||0,[O,x.id]),xe=ze.useMemo(()=>{var ye;return(ye=x.closeButton)!=null?ye:M},[x.closeButton,M]),ae=ze.useMemo(()=>x.duration||te||xv,[x.duration,te]),ke=ze.useRef(0),Ye=ze.useRef(0),We=ze.useRef(0),pt=ze.useRef(null),[At,mt]=K.split("-"),Tt=ze.useMemo(()=>O.reduce((ye,De,Ze)=>Ze>=Te?ye:ye+De.height,0),[O,Te]),Rt=p_(),Lt=x.invert||y,Ce=Pe==="loading";Ye.current=ze.useMemo(()=>Te*ne+Tt,[Te,Tt]),ze.useEffect(()=>{Oe.current=ae},[ae]),ze.useEffect(()=>{B(!0)},[]),ze.useEffect(()=>{const ye=be.current;if(ye){const De=ye.getBoundingClientRect().height;return Me(De),E(Ze=>[{toastId:x.id,height:De,position:x.position},...Ze]),()=>E(Ze=>Ze.filter(nt=>nt.toastId!==x.id))}},[E,x.id]),ze.useLayoutEffect(()=>{if(!I)return;const ye=be.current,De=ye.style.height;ye.style.height="auto";const Ze=ye.getBoundingClientRect().height;ye.style.height=De,Me(Ze),E(nt=>nt.find(rt=>rt.toastId===x.id)?nt.map(rt=>rt.toastId===x.id?{...rt,height:Ze}:rt):[{toastId:x.id,height:Ze,position:x.position},...nt])},[I,x.title,x.description,E,x.id,x.jsx,x.action,x.cancel]);const Se=ze.useCallback(()=>{Q(!0),ge(Ye.current),E(ye=>ye.filter(De=>De.toastId!==x.id)),setTimeout(()=>{w(x)},C_)},[x,w,E,Ye]);ze.useEffect(()=>{if(x.promise&&Pe==="loading"||x.duration===1/0||x.type==="loading")return;let ye;return _||j||Rt?(()=>{if(We.current<ke.current){const nt=new Date().getTime()-ke.current;Oe.current=Oe.current-nt}We.current=new Date().getTime()})():Oe.current!==1/0&&(ke.current=new Date().getTime(),ye=setTimeout(()=>{x.onAutoClose==null||x.onAutoClose.call(x,x),Se()},Oe.current)),()=>clearTimeout(ye)},[_,j,x,Pe,Rt,Se]),ze.useEffect(()=>{x.delete&&(Se(),x.onDismiss==null||x.onDismiss.call(x,x))},[Se,x.delete]);function Ge(){var ye;if(z?.loading){var De;return ze.createElement("div",{className:js(D?.loader,x==null||(De=x.classNames)==null?void 0:De.loader,"sonner-loader"),"data-visible":Pe==="loading"},z.loading)}return ze.createElement(i_,{className:js(D?.loader,x==null||(ye=x.classNames)==null?void 0:ye.loader),visible:Pe==="loading"})}const Ot=x.icon||z?.[Pe]||a_(Pe);var Yt,se;return ze.createElement("li",{tabIndex:0,ref:be,className:js(re,Y,D?.toast,x==null||(r=x.classNames)==null?void 0:r.toast,D?.default,D?.[Pe],x==null||(o=x.classNames)==null?void 0:o[Pe]),"data-sonner-toast":"","data-rich-colors":(Yt=x.richColors)!=null?Yt:V,"data-styled":!(x.jsx||x.unstyled||S),"data-mounted":I,"data-promise":!!x.promise,"data-swiped":Le,"data-removed":G,"data-visible":Ve,"data-y-position":At,"data-x-position":mt,"data-index":N,"data-front":Ie,"data-swiping":he,"data-dismissible":ee,"data-type":Pe,"data-invert":Lt,"data-swipe-out":de,"data-swipe-direction":A,"data-expanded":!!(_||W&&I),"data-testid":x.testId,style:{"--index":N,"--toasts-before":N,"--z-index":T.length-N,"--offset":`${G?Be:Ye.current}px`,"--initial-height":W?"auto":`${q}px`,...L,...x.style},onDragEnd:()=>{le(!1),F(null),pt.current=null},onPointerDown:ye=>{ye.button!==2&&(Ce||!ee||(_e.current=new Date,ge(Ye.current),ye.target.setPointerCapture(ye.pointerId),ye.target.tagName!=="BUTTON"&&(le(!0),pt.current={x:ye.clientX,y:ye.clientY})))},onPointerUp:()=>{var ye,De,Ze;if(de||!ee)return;pt.current=null;const nt=Number(((ye=be.current)==null?void 0:ye.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),at=Number(((De=be.current)==null?void 0:De.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),rt=new Date().getTime()-((Ze=_e.current)==null?void 0:Ze.getTime()),$t=U==="x"?nt:at,Zn=Math.abs($t)/rt;if(Math.abs($t)>=w_||Zn>.11){ge(Ye.current),x.onDismiss==null||x.onDismiss.call(x,x),H(U==="x"?nt>0?"right":"left":at>0?"down":"up"),Se(),Ue(!0);return}else{var Jt,gn;(Jt=be.current)==null||Jt.style.setProperty("--swipe-amount-x","0px"),(gn=be.current)==null||gn.style.setProperty("--swipe-amount-y","0px")}we(!1),le(!1),F(null)},onPointerMove:ye=>{var De,Ze,nt;if(!pt.current||!ee||((De=window.getSelection())==null?void 0:De.toString().length)>0)return;const rt=ye.clientY-pt.current.y,$t=ye.clientX-pt.current.x;var Zn;const Jt=(Zn=t.swipeDirections)!=null?Zn:R_(K);!U&&(Math.abs($t)>1||Math.abs(rt)>1)&&F(Math.abs($t)>Math.abs(rt)?"x":"y");let gn={x:0,y:0};const hr=Hn=>1/(1.5+Math.abs(Hn)/20);if(U==="y"){if(Jt.includes("top")||Jt.includes("bottom"))if(Jt.includes("top")&&rt<0||Jt.includes("bottom")&&rt>0)gn.y=rt;else{const Hn=rt*hr(rt);gn.y=Math.abs(Hn)<Math.abs(rt)?Hn:rt}}else if(U==="x"&&(Jt.includes("left")||Jt.includes("right")))if(Jt.includes("left")&&$t<0||Jt.includes("right")&&$t>0)gn.x=$t;else{const Hn=$t*hr($t);gn.x=Math.abs(Hn)<Math.abs($t)?Hn:$t}(Math.abs(gn.x)>0||Math.abs(gn.y)>0)&&we(!0),(Ze=be.current)==null||Ze.style.setProperty("--swipe-amount-x",`${gn.x}px`),(nt=be.current)==null||nt.style.setProperty("--swipe-amount-y",`${gn.y}px`)}},xe&&!x.jsx&&Pe!=="loading"?ze.createElement("button",{"aria-label":P,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!ee?()=>{}:()=>{Se(),x.onDismiss==null||x.onDismiss.call(x,x)},className:js(D?.closeButton,x==null||(a=x.classNames)==null?void 0:a.closeButton)},(se=z?.close)!=null?se:m_):null,(Pe||x.icon||x.promise)&&x.icon!==null&&(z?.[Pe]!==null||x.icon)?ze.createElement("div",{"data-icon":"",className:js(D?.icon,x==null||(c=x.classNames)==null?void 0:c.icon)},x.promise||x.type==="loading"&&!x.icon?x.icon||Ge():null,x.type!=="loading"?Ot:null):null,ze.createElement("div",{"data-content":"",className:js(D?.content,x==null||(d=x.classNames)==null?void 0:d.content)},ze.createElement("div",{"data-title":"",className:js(D?.title,x==null||(m=x.classNames)==null?void 0:m.title)},x.jsx?x.jsx:typeof x.title=="function"?x.title():x.title),x.description?ze.createElement("div",{"data-description":"",className:js(ie,$,D?.description,x==null||(g=x.classNames)==null?void 0:g.description)},typeof x.description=="function"?x.description():x.description):null),ze.isValidElement(x.cancel)?x.cancel:x.cancel&&Ac(x.cancel)?ze.createElement("button",{"data-button":!0,"data-cancel":!0,style:x.cancelButtonStyle||C,onClick:ye=>{Ac(x.cancel)&&ee&&(x.cancel.onClick==null||x.cancel.onClick.call(x.cancel,ye),Se())},className:js(D?.cancelButton,x==null||(b=x.classNames)==null?void 0:b.cancelButton)},x.cancel.label):null,ze.isValidElement(x.action)?x.action:x.action&&Ac(x.action)?ze.createElement("button",{"data-button":!0,"data-action":!0,style:x.actionButtonStyle||Z,onClick:ye=>{Ac(x.action)&&(x.action.onClick==null||x.action.onClick.call(x.action,ye),!ye.defaultPrevented&&Se())},className:js(D?.actionButton,x==null||(p=x.classNames)==null?void 0:p.actionButton)},x.action.label):null)};function bv(){if(typeof window>"u"||typeof document>"u")return"ltr";const t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}function k_(t,r){const o={};return[t,r].forEach((a,c)=>{const d=c===1,m=d?"--mobile-offset":"--offset",g=d?N_:E_;function b(p){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof p=="number"?`${p}px`:p})}typeof a=="number"||typeof a=="string"?b(a):typeof a=="object"?["top","right","bottom","left"].forEach(p=>{a[p]===void 0?o[`${m}-${p}`]=g:o[`${m}-${p}`]=typeof a[p]=="number"?`${a[p]}px`:a[p]}):b(g)}),o}const __=ze.forwardRef(function(r,o){const{id:a,invert:c,position:d="bottom-right",hotkey:m=["altKey","KeyT"],expand:g,closeButton:b,className:p,offset:y,mobileOffset:x,theme:S="light",richColors:j,duration:E,style:k,visibleToasts:O=S_,toastOptions:N,dir:T=bv(),gap:_=T_,icons:w,containerAriaLabel:V="Notifications"}=r,[M,L]=ze.useState([]),C=ze.useMemo(()=>a?M.filter(I=>I.toasterId===a):M.filter(I=>!I.toasterId),[M,a]),Z=ze.useMemo(()=>Array.from(new Set([d].concat(C.filter(I=>I.position).map(I=>I.position)))),[C,d]),[re,ie]=ze.useState([]),[te,K]=ze.useState(!1),[ne,W]=ze.useState(!1),[D,z]=ze.useState(S!=="system"?S:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),P=ze.useRef(null),U=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),F=ze.useRef(null),A=ze.useRef(!1),H=ze.useCallback(I=>{L(B=>{var G;return(G=B.find(Q=>Q.id===I.id))!=null&&G.delete||zn.dismiss(I.id),B.filter(({id:Q})=>Q!==I.id)})},[]);return ze.useEffect(()=>zn.subscribe(I=>{if(I.dismiss){requestAnimationFrame(()=>{L(B=>B.map(G=>G.id===I.id?{...G,delete:!0}:G))});return}setTimeout(()=>{IC.flushSync(()=>{L(B=>{const G=B.findIndex(Q=>Q.id===I.id);return G!==-1?[...B.slice(0,G),{...B[G],...I},...B.slice(G+1)]:[I,...B]})})})}),[M]),ze.useEffect(()=>{if(S!=="system"){z(S);return}if(S==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?z("dark"):z("light")),typeof window>"u")return;const I=window.matchMedia("(prefers-color-scheme: dark)");try{I.addEventListener("change",({matches:B})=>{z(B?"dark":"light")})}catch{I.addListener(({matches:G})=>{try{z(G?"dark":"light")}catch(Q){console.error(Q)}})}},[S]),ze.useEffect(()=>{M.length<=1&&K(!1)},[M]),ze.useEffect(()=>{const I=B=>{var G;if(m.every(le=>B[le]||B.code===le)){var he;K(!0),(he=P.current)==null||he.focus()}B.code==="Escape"&&(document.activeElement===P.current||(G=P.current)!=null&&G.contains(document.activeElement))&&K(!1)};return document.addEventListener("keydown",I),()=>document.removeEventListener("keydown",I)},[m]),ze.useEffect(()=>{if(P.current)return()=>{F.current&&(F.current.focus({preventScroll:!0}),F.current=null,A.current=!1)}},[P.current]),ze.createElement("section",{ref:o,"aria-label":`${V} ${U}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},Z.map((I,B)=>{var G;const[Q,he]=I.split("-");return C.length?ze.createElement("ol",{key:I,dir:T==="auto"?bv():T,tabIndex:-1,ref:P,className:p,"data-sonner-toaster":!0,"data-sonner-theme":D,"data-y-position":Q,"data-x-position":he,style:{"--front-toast-height":`${((G=re[0])==null?void 0:G.height)||0}px`,"--width":`${j_}px`,"--gap":`${_}px`,...k,...k_(y,x)},onBlur:le=>{A.current&&!le.currentTarget.contains(le.relatedTarget)&&(A.current=!1,F.current&&(F.current.focus({preventScroll:!0}),F.current=null))},onFocus:le=>{le.target instanceof HTMLElement&&le.target.dataset.dismissible==="false"||A.current||(A.current=!0,F.current=le.relatedTarget)},onMouseEnter:()=>K(!0),onMouseMove:()=>K(!0),onMouseLeave:()=>{ne||K(!1)},onDragEnd:()=>K(!1),onPointerDown:le=>{le.target instanceof HTMLElement&&le.target.dataset.dismissible==="false"||W(!0)},onPointerUp:()=>W(!1)},C.filter(le=>!le.position&&B===0||le.position===I).map((le,de)=>{var Ue,Le;return ze.createElement(O_,{key:le.id,icons:w,index:de,toast:le,defaultRichColors:j,duration:(Ue=N?.duration)!=null?Ue:E,className:N?.className,descriptionClassName:N?.descriptionClassName,invert:c,visibleToasts:O,closeButton:(Le=N?.closeButton)!=null?Le:b,interacting:ne,position:I,style:N?.style,unstyled:N?.unstyled,classNames:N?.classNames,cancelButtonStyle:N?.cancelButtonStyle,actionButtonStyle:N?.actionButtonStyle,closeButtonAriaLabel:N?.closeButtonAriaLabel,removeToast:H,toasts:C.filter(we=>we.position==le.position),heights:re.filter(we=>we.position==le.position),setHeights:ie,expandByDefault:g,gap:_,expanded:te,swipeDirections:r.swipeDirections})})):null}))}),pS=h.createContext(!1),hS=h.createContext(void 0);function Ao(t){const r=h.useContext(hS);if(t===!1&&r===void 0)throw new Error(Tn(27));return r}const M_={...ri,...fu},A_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,forceRender:m=!1,...g}=r,{store:b}=Ao(),p=b.useState("open"),y=b.useState("nested"),x=b.useState("mounted"),S=b.useState("transitionStatus");return hn("div",r,{state:{open:p,transitionStatus:S},ref:[b.context.backdropRef,o],stateAttributesMapping:M_,props:[{role:"presentation",hidden:!x,style:{userSelect:"none",WebkitUserSelect:"none"}},g],enabled:m||!y})}),gS=h.forwardRef(function(r,o){const{render:a,className:c,style:d,disabled:m=!1,nativeButton:g=!0,...b}=r,{store:p}=Ao(),y=p.useState("open"),{getButtonProps:x,buttonRef:S}=si({disabled:m,native:g}),j={disabled:m};function E(k){y&&p.setOpen(!1,jt(X0,k.nativeEvent))}return hn("button",r,{state:j,ref:[o,S],props:[{onClick:E},b,x]})}),D_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:m,...g}=r,{store:b}=Ao(),p=Mo(m);return b.useSyncedValueWithCleanup("descriptionElementId",p),hn("p",r,{ref:o,props:[{id:p},g]})});let z_=(function(t){return t.nestedDialogs="--nested-dialogs",t})({}),L_=(function(t){return t[t.open=yo.open]="open",t[t.closed=yo.closed]="closed",t[t.startingStyle=yo.startingStyle]="startingStyle",t[t.endingStyle=yo.endingStyle]="endingStyle",t.nested="data-nested",t.nestedDialogOpen="data-nested-dialog-open",t})({});const xS=h.createContext(void 0);function I_(){const t=h.useContext(xS);if(t===void 0)throw new Error(Tn(26));return t}const B_={...ri,...fu,nestedDialogOpen(t){return t?{[L_.nestedDialogOpen]:""}:null}},H_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,finalFocus:m,initialFocus:g,...b}=r,{store:p}=Ao(),y=p.useState("descriptionElementId"),x=p.useState("disablePointerDismissal"),S=p.useState("floatingRootContext"),j=p.useState("popupProps"),E=p.useState("modal"),k=p.useState("mounted"),O=p.useState("nested"),N=p.useState("nestedOpenDialogCount"),T=p.useState("open"),_=p.useState("openMethod"),w=p.useState("titleElementId"),V=p.useState("transitionStatus"),M=p.useState("role"),L=S.useState("floatingId"),C=b.id??L;I_(),xu({open:T,ref:p.context.popupRef,onComplete(){T&&p.context.onOpenChangeComplete?.(!0)}});const Z=g===void 0?P1(p.context.popupRef):g,re=N>0,ie=p.useStateSetter("popupElement"),K=hn("div",r,{state:{open:T,nested:O,transitionStatus:V,nestedDialogOpen:re},props:[j,{id:C,"aria-labelledby":w??void 0,"aria-describedby":y??void 0,role:M,...Tu,hidden:!k,onKeyDown(ne){Fp.has(ne.key)&&ne.stopPropagation()},style:{[z_.nestedDialogs]:N}},b],ref:[o,p.context.popupRef,ie],stateAttributesMapping:B_});return i.jsx(Ap,{context:S,openInteractionType:_,disabled:!k,closeOnFocusOut:!x,initialFocus:Z,returnFocus:m,modal:E!==!1,restoreFocus:"popup",children:K})}),U_=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=Ao(),m=d.useState("mounted"),g=d.useState("modal"),b=d.useState("open");return m||a?i.jsx(xS.Provider,{value:a,children:i.jsxs(Op,{ref:o,...c,children:[m&&g===!0&&i.jsx($p,{ref:d.context.internalBackdropRef,inert:qp(!b)}),r.children]})}):null});function P_(t){const{store:r,actionsRef:o}=t,a=r.useState("open");q1(r,a),Ip(r);const{forceUnmount:c}=Bp(a,r),d=h.useCallback(()=>{r.setOpen(!1,jt(bp))},[r]);h.useImperativeHandle(o,()=>({unmount:c,close:d}),[c,d])}function Y_({store:t,parentContext:r,isDrawer:o}){const a=t.useState("open"),c=t.useState("disablePointerDismissal"),d=t.useState("modal"),m=t.useState("popupElement"),g=t.useState("floatingRootContext"),[b,p]=h.useState(0),[y,x]=h.useState(0),S=b===0,j=Dp(g,{outsidePressEvent(){return t.context.internalBackdropRef.current||t.context.backdropRef.current?"intentional":{mouse:d==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(N){if(!t.context.outsidePressEnabledRef.current||"button"in N&&N.button!==0||"touches"in N&&N.touches.length!==1)return!1;const T=Ln(N);return S&&!c?d&&(t.context.internalBackdropRef.current||t.context.backdropRef.current)?t.context.internalBackdropRef.current===T||t.context.backdropRef.current===T||tt(T,m)&&!T?.hasAttribute("data-base-ui-portal"):!0:!1},escapeKey:S});lS(a&&d===!0,m),t.useContextCallback("onNestedDialogOpen",(N,T)=>{p(N),x(T)}),t.useContextCallback("onNestedDialogClose",()=>{p(0),x(0)}),h.useEffect(()=>(r?.onNestedDialogOpen&&a&&r.onNestedDialogOpen(b+1,y+(o?1:0)),r?.onNestedDialogClose&&!a&&r.onNestedDialogClose(),()=>{r?.onNestedDialogClose&&a&&r.onNestedDialogClose()}),[o,a,b,y,r]);const E=j.reference??Ft,k=j.trigger??Ft,O=j.floating??Ft;return Hp(t,{activeTriggerProps:E,inactiveTriggerProps:k,popupProps:O,nestedOpenDialogCount:b,nestedOpenDrawerCount:y}),null}const V_={...Yp,modal:$e(t=>t.modal),nested:$e(t=>t.nested),nestedOpenDialogCount:$e(t=>t.nestedOpenDialogCount),nestedOpenDrawerCount:$e(t=>t.nestedOpenDrawerCount),disablePointerDismissal:$e(t=>t.disablePointerDismissal),openMethod:$e(t=>t.openMethod),descriptionElementId:$e(t=>t.descriptionElementId),titleElementId:$e(t=>t.titleElementId),viewportElement:$e(t=>t.viewportElement),role:$e(t=>t.role)};class Kp extends Nu{constructor(r,o,a=!1){const c=new ai,d=F_(r);d.floatingRootContext=$1(c,o,a),super(d,{popupRef:h.createRef(),backdropRef:h.createRef(),internalBackdropRef:h.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:c,onOpenChange:void 0,onOpenChangeComplete:void 0},V_)}setOpen=(r,o)=>{if(o.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!r&&o.trigger==null&&this.state.activeTriggerId!=null&&(o.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(r,o),o.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(r,o);const a={open:r};Lp(a,r,o.trigger),this.update(a)};static useStore(r,o){return Y1(r,(c,d)=>new Kp(o,c,d),!0).store}}function F_(t={}){return{...Up(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...t}}function G_(t,r="dialog"){const{children:o,open:a,defaultOpen:c=!1,onOpenChange:d,onOpenChangeComplete:m,disablePointerDismissal:g=!1,modal:b=!0,actionsRef:p,handle:y,triggerId:x,defaultTriggerId:S=null}=t,j=r==="drawer",E=r==="alert-dialog",k=E?!0:b,O=E||g,N=E?"alertdialog":"dialog",T=Ao(!0),w={modal:k,disablePointerDismissal:O,nested:!!T,role:N},V=Kp.useStore(y?.store,{open:c,openProp:a,activeTriggerId:S,triggerIdProp:x,...w});z1(()=>{const ie=a===void 0&&V.state.open===!1&&c===!0?{open:!0,activeTriggerId:S}:null;E?V.update(ie?{...w,...ie}:w):ie&&V.update(ie)}),V.useControlledProp("openProp",a),V.useControlledProp("triggerIdProp",x),V.useSyncedValues(w),V.useContextCallback("onOpenChange",d),V.useContextCallback("onOpenChangeComplete",m);const M=V.useState("open"),L=V.useState("mounted"),C=V.useState("payload");P_({store:V,actionsRef:p});const Z=M||L,re=h.useMemo(()=>({store:V}),[V]);return i.jsx(pS.Provider,{value:!1,children:i.jsxs(hS.Provider,{value:re,children:[Z&&i.jsx(Y_,{store:V,parentContext:T?.store.context,isDrawer:j}),typeof o=="function"?o({payload:C}):o]})})}function q_(t){const r=h.useContext(pS)?"drawer":"dialog";return G_(t,r)}const $_=h.forwardRef(function(r,o){const{render:a,className:c,style:d,id:m,...g}=r,{store:b}=Ao(),p=Mo(m);return b.useSyncedValueWithCleanup("titleElementId",p),hn("h2",r,{ref:o,props:[{id:p},g]})});function Rs({...t}){return i.jsx(q_,{"data-slot":"dialog",...t})}function X_({...t}){return i.jsx(U_,{"data-slot":"dialog-portal",...t})}function K_({className:t,...r}){return i.jsx(A_,{"data-slot":"dialog-overlay",className:Ee("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",t),...r})}function Os({className:t,children:r,showCloseButton:o=!0,...a}){return i.jsxs(X_,{children:[i.jsx(K_,{}),i.jsxs(H_,{"data-slot":"dialog-content",className:Ee("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",t),...a,children:[r,o&&i.jsxs(gS,{"data-slot":"dialog-close",render:i.jsx(me,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[i.jsx(hs,{}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function ks({className:t,...r}){return i.jsx("div",{"data-slot":"dialog-header",className:Ee("flex flex-col gap-2",t),...r})}function _s({className:t,showCloseButton:r=!1,children:o,...a}){return i.jsxs("div",{"data-slot":"dialog-footer",className:Ee("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",t),...a,children:[o,r&&i.jsx(gS,{render:i.jsx(me,{variant:"outline"}),children:"Close"})]})}function Ms({className:t,...r}){return i.jsx($_,{"data-slot":"dialog-title",className:Ee("font-heading text-base leading-none font-medium",t),...r})}function Q_({className:t,...r}){return i.jsx(D_,{"data-slot":"dialog-description",className:Ee("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",t),...r})}const is={volume:"卷",chapter:"章",scene:"场"},Z_={volume:"chapter",chapter:"scene",scene:null};function Da({title:t,description:r,confirmLabel:o,danger:a=!1,onConfirm:c,onClose:d}){const[m,g]=h.useState(null),[b,p]=h.useState(!1);async function y(){p(!0),g(null);try{await c(),d()}catch(x){g(x instanceof Ae?x.message:"操作失败,请稍后重试")}finally{p(!1)}}return i.jsx(Rs,{open:!0,onOpenChange:x=>!x&&d(),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:t})}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r}),m&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:m}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:d,disabled:b,children:"取消"}),i.jsx(me,{variant:a?"destructive":"default",type:"button",onClick:()=>{y()},disabled:b,children:o})]})]})})}const yv="ai-editor:theme";function bS(){const[t,r]=h.useState("light");h.useEffect(()=>{const c=localStorage.getItem(yv)==="dark"?"dark":"light";r(c),document.documentElement.classList.toggle("dark",c==="dark")},[]);function o(){const a=t==="dark"?"light":"dark";localStorage.setItem(yv,a),document.documentElement.classList.toggle("dark",a==="dark"),r(a)}return{theme:t,toggleTheme:o}}const J_=({...t})=>{const{theme:r="light"}=bS();return i.jsx(__,{theme:r,position:"top-right",className:"toaster group",icons:{success:i.jsx(Wm,{className:"size-4"}),info:i.jsx(c0,{className:"size-4"}),warning:i.jsx(tp,{className:"size-4"}),error:i.jsx(fT,{className:"size-4"}),loading:i.jsx(Yl,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},toastOptions:{classNames:{toast:"cn-toast"}},...t})};function W_(t,r){return t!==null&&t.id!==r}function e3(){const t=Re(o=>o.confirmState),r=Re(o=>o.resolveConfirm);return t===null?null:i.jsx(Da,{title:t.title,description:t.description??"",confirmLabel:"确认",danger:t.danger,onConfirm:async()=>r(!0),onClose:()=>r(!1)})}function t3(){const t=Re(c=>c.toast),r=Re(c=>c.error),o=Re(c=>c.clearError),a=h.useRef(null);return h.useEffect(()=>{!t||!W_(t,a.current)||(a.current=t.id,t.kind==="error"?gv.error(t.text,{duration:Nm}):gv.success(t.text,{duration:Nm}))},[t]),i.jsxs(i.Fragment,{children:[i.jsx(J_,{}),i.jsx(e3,{}),r&&i.jsxs("div",{role:"alert",className:"fixed top-4 left-1/2 z-50 flex w-[min(92vw,32rem)] -translate-x-1/2 items-center gap-2 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive shadow-lg",children:[i.jsx(Jm,{className:"size-4 shrink-0"}),i.jsx("p",{className:"min-w-0 flex-1",children:r.message}),i.jsx("button",{type:"button","aria-label":"关闭错误提示",onClick:o,className:"shrink-0 rounded p-0.5 hover:bg-destructive/15",children:i.jsx(hs,{className:"size-4"})})]})]})}function n3({chatOpen:t,onToggleChat:r}){const o=He(y=>y.config),a=He(y=>y.configLoading),c=He(y=>y.outline),d=Re(y=>y.setFocusOutlineNode),m=Re(y=>y.notifyDataChanged),g=np("(min-width: 1024px)"),b=o?.currentPosition!=null?A0(c,o.currentPosition)??o.currentPosition:null,p=a?"加载中…":o?.name??"书架";return i.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-3 border-b border-border px-4",children:[i.jsxs("a",{href:"#/",className:"flex min-w-0 items-center gap-1.5 font-serif text-base font-medium text-foreground hover:text-primary",children:[i.jsx("span",{className:"text-primary",children:"◈"}),i.jsx("span",{className:"truncate",children:p})]}),i.jsxs("a",{href:"#/outline",onClick:()=>{o?.currentPosition!=null&&d(o.currentPosition)},title:o?.currentPosition!=null?"跳转大纲并定位该节点":void 0,className:"flex min-w-0 items-center gap-1 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[i.jsx("span",{className:"shrink-0",children:"当前位置:"}),i.jsx("span",{className:"truncate text-foreground",children:b??"未设置"})]}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"ml-auto shrink-0 text-muted-foreground",onClick:m,"aria-label":"刷新数据",title:"刷新数据",children:i.jsx(RT,{className:"size-4"})}),i.jsxs("span",{className:"shrink-0 text-sm text-muted-foreground",children:["语言: ",o?.language??"—"]}),!g&&i.jsx(me,{variant:"ghost",size:"icon-sm",className:t?"bg-secondary text-foreground":"text-muted-foreground",onClick:r,"aria-label":t?"关闭聊天面板":"打开聊天面板",children:i.jsx(Vl,{className:"size-4"})})]})}const s3=[{label:"概览",href:"#/",segment:null,icon:Jj},{label:"大纲",href:"#/outline",segment:"outline",icon:nT},{label:"画布",href:"#/canvas",segment:"canvas",icon:LT},{label:"实体关系",href:"#/entities/character",segment:"entities",icon:uT},{label:"伏笔",href:"#/hooks",segment:"hooks",icon:wT},{label:"时间轴",href:"#/timeline",segment:"timeline",icon:zj},{label:"回收站",href:"#/trash",segment:"trash",icon:ti}];function r3({route:t}){const r=t.segments[0]??null,o=He(d=>d.loadError==="NO_PROJECT_OPEN"),a=Re(d=>d.showToast),c=(d,m)=>{!o||m.segment===null||(d.preventDefault(),window.location.hash="#/",a("请先创建或打开项目"))};return i.jsx("nav",{"aria-label":"页面导航",className:"flex items-center gap-1 rounded-lg bg-secondary/30 p-1",children:s3.map(d=>{const m=d.icon,g=r===d.segment;return i.jsxs("a",{href:d.href,"aria-current":g?"page":void 0,onClick:b=>c(b,d),className:Ee("flex min-w-0 flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:text-foreground",g&&"bg-card text-foreground shadow-sm"),children:[i.jsx(m,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:d.label})]},d.label)})})}function o3({route:t,chatOpen:r,onToggleChat:o,isDesktop:a,children:c}){const d=He(m=>m.loadConfig);return h.useEffect(()=>{d()},[d]),i.jsxs("main",{className:"flex min-w-0 flex-[5_1_50%] flex-col",style:a?{flex:"1 1 0%",minWidth:$T}:void 0,children:[i.jsx(n3,{chatOpen:r,onToggleChat:o}),i.jsx("div",{className:"shrink-0 px-3 py-2",children:i.jsx(r3,{route:t})}),i.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-6",children:c})]})}function Pl(t){switch(t){case"INVALID_PROJECT_PATH":return"路径无效:请使用绝对路径,且目标目录须已含 project.json(不是项目目录)";case"PROJECT_ALREADY_EXISTS":return"该目录已是项目,请直接打开(书架列表或「打开其他路径」)";case"PROJECT_VERSION_NEWER":return"该项目由更高版本的 ai-editor 创建,请升级程序后再打开(避免降级导致数据丢失)";case"NO_PROJECT_OPEN":return"";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function a3(t,r){switch(t){case"PROJECT_ALREADY_EXISTS":return"同名书籍已存在,请换一个书名";case"SCHEMA_VERSION_MISMATCH":return r;case"VALIDATION_ERROR":return r;case"NO_PROJECT_OPEN":return"";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"导入失败,请稍后重试"}}function l3(t,r){return t==="CLIENT_NETWORK_ERROR"?"无法连接服务,请确认 ai-editor 服务已启动":r}function Vc(t){const r=t.trim();return r===""?"请输入书名":/[\\/]|^\.+$|[\u0000-\u001f]/.test(r)?"书名不能包含 /、\\ 或为 . / ..":null}let vv=(function(t){return t.disabled="data-disabled",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t})({});const i3={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Bl={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},c3={disabled:!1,...Bl},u3={valid(t){return t===null?null:t?{[vv.valid]:""}:{[vv.invalid]:""}}},d3={invalid:void 0,name:void 0,validityData:{state:i3,errors:[],error:"",value:"",initialValue:null},setValidityData:mn,disabled:void 0,touched:Bl.touched,setTouched:mn,dirty:Bl.dirty,setDirty:mn,filled:Bl.filled,setFilled:mn,focused:Bl.focused,setFocused:mn,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:c3,markedDirtyRef:{current:!1},registerFieldControl:mn,validation:{getValidationProps:(t,r=Ft)=>r,inputRef:{current:null},registerInput:mn,commit:async()=>{},change:mn}},f3=h.createContext(d3);function yS(t=!0){const r=h.useContext(f3);if(r.setValidityData===mn&&!t)throw new Error(Tn(28));return r}const m3=h.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:mn,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function p3(){return h.useContext(m3)}const h3=h.createContext({controlId:void 0,registerControlId:mn,labelId:void 0,setLabelId:mn,messageIds:[],setMessageIds:mn,getDescriptionProps:t=>t});function vS(){return h.useContext(h3)}function g3(t={}){const{id:r,implicit:o=!1,controlRef:a}=t,{controlId:c,registerControlId:d}=vS(),m=Mo(r),g=o?c:void 0,b=In(()=>Symbol("labelable-control")),p=h.useRef(!1),y=h.useRef(r!=null),x=st(()=>{!p.current||d===mn||(p.current=!1,d(b.current,void 0))});return Qe(()=>{if(d===mn)return;let S;if(o){const j=a?.current;vt(j)&&j.closest("label")!=null?S=r??null:S=g??m}else if(r!=null)y.current=!0,S=r;else if(y.current)S=m;else{x();return}if(S===void 0){x();return}p.current=!0,d(b.current,S)},[r,a,g,d,o,m,b,x]),h.useEffect(()=>x,[x]),c??m}function x3(t,r,o,a,c=!0,d){const{registerFieldControl:m}=yS(),g=h.useRef(null);g.current||(g.current=Symbol()),Qe(()=>{const b=g.current;return!b||!c?void 0:(m(b,{controlRef:t,getValue:a,id:r,name:d,value:o}),()=>{m(b,void 0)})},[t,c,a,r,d,m,o])}const b3=h.forwardRef(function(r,o){const{render:a,className:c,id:d,name:m,value:g,disabled:b=!1,onValueChange:p,defaultValue:y,autoFocus:x=!1,style:S,...j}=r,{state:E,name:k,disabled:O,setTouched:N,setDirty:T,validityData:_,setFocused:w,setFilled:V,validationMode:M,validation:L}=yS(),{clearErrors:C}=p3(),Z=O||b,re=k??m,ie={...E,disabled:Z},{labelId:te}=vS(),K=g3({id:d});Qe(()=>{const F=g!=null;L.inputRef.current?.value||F&&g!==""?V(!0):F&&g===""&&V(!1)},[L.inputRef,V,g]);const ne=h.useRef(null);Qe(()=>{x&&ne.current===Cn(Nt(ne.current))&&w(!0)},[x,w]);const[W]=SC({controlled:g,default:y,name:"FieldControl",state:"value"}),D=g!==void 0,z=D?W:void 0,P=st(()=>L.inputRef.current?.value);return x3(L.inputRef,K,z,P,!Z,m),hn("input",r,{ref:[o,ne],state:ie,props:[{id:K,disabled:Z,name:re,ref:L.inputRef,"aria-labelledby":te,autoFocus:x,...D?{value:z}:{defaultValue:y},onChange(F){const A=F.currentTarget.value;p?.(A,jt(q0,F.nativeEvent)),T(A!==_.initialValue),V(A!==""),F.nativeEvent.defaultPrevented||(C(re),L.change(A))},onFocus(){w(!0)},onBlur(F){N(!0),w(!1),M==="onBlur"&&L.commit(F.currentTarget.value)},onKeyDown(F){F.currentTarget.tagName==="INPUT"&&F.key==="Enter"&&(N(!0),L.commit(F.currentTarget.value))}},j,F=>L.getValidationProps(Z,F)],stateAttributesMapping:u3})}),y3=h.forwardRef(function(r,o){return i.jsx(b3,{ref:o,...r})});function Mt({className:t,type:r,autoComplete:o="off",...a}){return i.jsx(y3,{type:r,autoComplete:o,"data-slot":"input",className:Ee("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",t),...a})}function v3(t){const r=new Date(t);if(Number.isNaN(r.getTime()))return t;const o=c=>String(c).padStart(2,"0");return r.getFullYear()===new Date().getFullYear()?`${o(r.getMonth()+1)}-${o(r.getDate())}`:`${String(r.getFullYear()).slice(-2)}-${o(r.getMonth()+1)}-${o(r.getDate())}`}function S3(){const t=St(m=>m.sessions),r=St(m=>m.sessionsLoading),o=St(m=>m.sessionsError),a=St(m=>m.loadSessions),c=St(m=>m.currentSessionId),d=St(m=>m.setCurrentSession);return h.useEffect(()=>{t===null&&!r&&o===null&&a()},[t,r,o,a]),t===null?o!==null?o==="NO_PROJECT_OPEN"?i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"打开项目后查看会话"}):i.jsxs("div",{className:"ml-3 border-l border-border py-1 pl-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"会话加载失败"}),i.jsx(me,{variant:"outline",size:"xs",className:"mt-0.5",onClick:()=>{a()},children:"重试"})]}):i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"会话加载中…"}):t.length===0?i.jsx("p",{className:"ml-3 border-l border-border py-1 pl-2 text-xs text-muted-foreground/60",children:"暂无会话"}):i.jsx("ul",{className:"ml-3 border-l border-border py-0.5 pl-1.5",children:t.map(m=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:m.lastMessage||"空会话",onClick:()=>d(m.id),className:Ee("flex h-7 w-full min-w-0 items-center gap-1.5 rounded-md px-2 text-left text-xs transition-colors",c===m.id?"bg-accent font-medium text-accent-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[i.jsx(Vl,{className:"size-3 shrink-0 opacity-70"}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:m.lastMessage||"(空会话)"}),i.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",children:Eo(m.updatedAt)})]})},m.id))})}function E3({width:t,onToggleCollapse:r}){const{theme:o,toggleTheme:a}=bS(),c=He(ee=>ee.config),d=He(ee=>ee.bookshelf),m=He(ee=>ee.bookshelfLoading),g=He(ee=>ee.bookshelfError),b=He(ee=>ee.loadBookshelf),p=He(ee=>ee.openProjectAt),y=He(ee=>ee.createProjectAt),[x,S]=h.useState(null),[j,E]=h.useState(!1),[k,O]=h.useState(""),[N,T]=h.useState(null),[_,w]=h.useState(!1),[V,M]=h.useState(!1),[L,C]=h.useState(null),[Z,re]=h.useState(""),[ie,te]=h.useState(null),[K,ne]=h.useState(!1),[W,D]=h.useState(!1),[z,P]=h.useState(""),[U,F]=h.useState(!1),[A,H]=h.useState(null),[I,B]=h.useState(""),[G,Q]=h.useState(null),[he,le]=h.useState(!1),de=h.useRef(null);h.useEffect(()=>{!m&&d===null&&g===null&&b()},[m,d,g,b]);async function Ue(ee){try{await p(ee),S(ee)}catch(Y){Re.getState().showToast(Pl(Y instanceof Ae?Y.code:null),"error")}}const Le=c?.id??null,we=h.useRef(Le);h.useEffect(()=>{we.current!==Le&&(we.current=Le,S(null),H(null))},[Le]);function Be(){O(""),T(null),E(!1)}async function ge(ee){ee.preventDefault();const Y=k.trim(),$=Vc(Y);if($!==null){T($);return}if(!d){T("书架未加载,请稍后重试");return}w(!0),T(null);try{await y(D0(d.rootPath,Y),{name:Y,language:"zh"}),Re.getState().showToast(`已创建并打开《${Y}》`),await b();const Te=He.getState().bookshelf?.books.find(xe=>xe.name===Y);Te&&S(Te.path),O(""),E(!1)}catch(Te){T(Pl(Te instanceof Ae?Te.code:null))}finally{w(!1)}}async function q(ee){if(!U){F(!0);try{const{blob:Y,filename:$}=await g2(),Te=URL.createObjectURL(Y),xe=document.createElement("a");xe.href=Te,xe.download=$,document.body.appendChild(xe),xe.click(),xe.remove(),setTimeout(()=>URL.revokeObjectURL(Te),0),Re.getState().showToast(`已导出《${ee}》备份`)}catch(Y){Re.getState().showToast(l3(Y instanceof Ae?Y.code:null,Y instanceof Ae?Y.message:"导出失败,请重试"),"error")}finally{F(!1)}}}function Me(ee){const Y=ee.target.files?.[0]??null;if(C(Y),te(null),Y){const $=Y.name.replace(/\.zip$/i,""),Te=Z.trim()===""?$:Z;re(Te),Oe(Te)}}function Oe(ee){const Y=ee.trim(),$=Te=>d?.books.some(xe=>xe.name===Te)??!1;if(W){if(Y===`${z} (2)`||Y===z&&$(Y))return;if($(Y)){P(Y),re(`${Y} (2)`);return}D(!1),P("");return}Y!==""&&$(Y)&&(P(Y),D(!0),re(`${Y} (2)`))}function _e(ee){const Y=ee.target.value;re(Y),Oe(Y)}async function be(ee,Y){const $=ee.trim();if(!L){te("请选择备份文件");return}const Te=Vc($);if(Te!==null){te(Te);return}ne(!0),te(null);try{const xe=await x2(L,$);Re.getState().showToast(xe.mode==="restored"?`已恢复备份《${xe.name}》`:`已导入为新书《${xe.name}》`),await b(),M(!1),C(null),re(""),D(!1),P("")}catch(xe){const ae=a3(xe instanceof Ae?xe.code:null,xe instanceof Ae?xe.message:"导入失败,请重试");te(ae),ae!==""&&Re.getState().showToast(ae,"error")}finally{ne(!1)}}function Ie(ee){H(ee.path),B(ee.name),Q(null),window.setTimeout(()=>de.current?.focus(),150)}function Ve(){H(null),B(""),Q(null)}async function Pe(){if(A===null||he)return;const ee=I.trim();if(ee===He.getState().config?.name){Ve();return}const Y=Vc(ee);if(Y!==null){Q(Y);return}le(!0),Q(null);try{await E2(ee),Re.getState().showToast(`已重命名为《${ee}》`),await Promise.all([b(),He.getState().loadConfig()]),Ve()}catch($){($ instanceof Ae?$.code:null)==="PROJECT_ALREADY_EXISTS"?Q("书架已有同名书籍,请换一个名字"):$ instanceof Ae&&$.code!==ut?Q($.message):Q("无法连接服务,请确认 ai-editor 服务已启动")}finally{le(!1)}}return i.jsxs("aside",{className:"flex min-w-0 flex-[1_1_10%] flex-col border-r border-border bg-sidebar",style:t!==void 0?{flex:`0 1 ${t}px`,minWidth:Fl}:void 0,children:[i.jsxs("div",{className:"flex h-12 shrink-0 items-center border-b border-border",children:[i.jsxs("a",{href:"#/",className:"flex h-full min-w-0 flex-1 items-center gap-1.5 px-3 font-serif text-base text-foreground italic hover:text-primary",children:[i.jsx("span",{className:"text-primary",children:"◈"}),i.jsx("span",{className:"truncate",children:"我的小说"})]}),r&&i.jsx("button",{type:"button",onClick:r,"aria-label":"收起左栏",title:"收起左栏",className:Ee(Dl,zl.sm,"mr-1.5"),children:i.jsx(pT,{className:"size-4"})})]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 py-2",children:[i.jsxs("div",{className:"mb-1 flex items-center justify-between px-1",children:[i.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"书架"}),i.jsxs("div",{className:"flex items-center gap-0.5",children:[i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:()=>M(!0),"aria-label":"导入备份",title:"导入备份(zip)",children:i.jsx(VT,{})}),j?i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:Be,"aria-label":"取消新建项目",title:"取消新建",children:i.jsx(hs,{})}):i.jsx(me,{variant:"ghost",size:"icon-xs",onClick:()=>E(!0),"aria-label":"新建项目",title:"新建项目",children:i.jsx(lu,{})})]})]}),j&&i.jsxs("form",{onSubmit:ge,className:"mb-1 flex flex-col gap-1 px-1","aria-label":"新建项目",children:[i.jsx(Mt,{value:k,onChange:ee=>O(ee.target.value),onKeyDown:ee=>{ee.key==="Escape"&&Be()},onBlur:Be,placeholder:"书名,回车创建",maxLength:60,disabled:_,autoFocus:!0,"aria-label":"书名"}),N&&i.jsx("p",{className:"text-xs text-destructive",children:N})]}),g!==null&&i.jsxs("div",{className:"flex flex-col items-start gap-1 px-1 py-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:g===ut?"无法连接服务":"书架加载失败"}),i.jsx(me,{variant:"outline",size:"xs",onClick:()=>{b()},children:"重试"})]}),m&&d===null&&i.jsx("div",{className:"space-y-1 px-1 py-2",children:[0,1,2].map(ee=>i.jsx("div",{className:Ee(_t,"h-8 rounded-lg")},ee))}),g===null&&!m&&d&&d.books.length===0&&i.jsx("p",{className:"px-1 py-2 text-xs text-muted-foreground/70",children:"还没有书,先创建一本"}),g===null&&d&&d.books.length>0&&i.jsx("ul",{className:"space-y-0.5",children:d.books.map(ee=>{const Y=x===ee.path,$=c!==null&&ee.name===c.name,Te=A===ee.path;return i.jsxs("li",{children:[i.jsxs("div",{className:"flex items-center",children:[Te?i.jsxs("div",{className:"flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-muted px-2",children:[i.jsx(vm,{className:"size-3.5 shrink-0 text-primary"}),i.jsx(Mt,{ref:de,value:I,onChange:xe=>B(xe.target.value),onKeyDown:xe=>{xe.key==="Enter"?(xe.preventDefault(),Pe()):xe.key==="Escape"&&Ve()},onBlur:()=>{Pe()},maxLength:60,disabled:he,"aria-label":"重命名书名",className:"h-6 min-w-0 flex-1 rounded-md bg-transparent px-1.5 text-sm focus-visible:ring-2"})]}):i.jsxs("button",{type:"button",title:`打开《${ee.name}》`,onClick:()=>{Ue(ee.path)},className:Ee("flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2 text-left text-sm transition-colors",$?"bg-muted font-medium text-foreground":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[i.jsx(vm,{className:Ee("size-3.5 shrink-0",$?"text-primary":"text-muted-foreground/60")}),i.jsx("span",{className:"min-w-0 flex-1 truncate",children:ee.name}),i.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground/60",title:ds(ee.updatedAt),children:v3(ee.updatedAt)})]}),$&&i.jsx("button",{type:"button",onClick:()=>{q(ee.name)},disabled:U,"aria-label":`导出《${ee.name}》备份`,title:"导出备份(zip)",className:Ee(Dl,zl.bar,Vw),children:U?i.jsx(Yl,{className:"size-3.5 animate-spin"}):i.jsx(Gj,{className:"size-3.5"})}),i.jsx("button",{type:"button",onClick:()=>S(xe=>xe===ee.path?null:ee.path),"aria-expanded":Y,"aria-label":Y?`收起《${ee.name}》会话`:`展开《${ee.name}》会话`,className:Ee(Dl,zl.bar),children:i.jsx(Zm,{className:Ee("size-4 transition-transform duration-200",Y&&"rotate-90")})}),$&&i.jsx("button",{type:"button","aria-label":`重命名《${ee.name}》`,title:"重命名",onClick:()=>Ie(ee),className:Ee(Dl,zl.bar),children:i.jsx(ei,{className:"size-3.5"})})]}),Te&&G&&i.jsx("p",{className:"px-2 pb-1 text-xs text-destructive",children:G}),Y&&i.jsx(S3,{})]},ee.path)})})]}),i.jsxs("div",{className:"flex shrink-0 flex-col gap-1 border-t border-border p-2",children:[i.jsxs("a",{href:"#/settings",className:"flex h-8 items-center gap-2 rounded-lg px-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:[i.jsx(DT,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:"设置"})]}),i.jsxs(me,{variant:"outline",size:"sm",className:"justify-start text-muted-foreground",onClick:a,"aria-label":"切换主题",children:[o==="dark"?i.jsx(HT,{className:"size-4 shrink-0"}):i.jsx(iT,{className:"size-4 shrink-0"}),i.jsx("span",{className:"truncate",children:o==="dark"?"浅色模式":"深色模式"})]})]}),i.jsx(Rs,{open:V,onOpenChange:ee=>{M(ee),ee||(te(null),C(null),re(""),D(!1),P(""))},children:i.jsxs(Os,{className:"sm:max-w-sm",children:[i.jsxs(ks,{children:[i.jsx(Ms,{children:"导入书籍"}),i.jsx(Q_,{children:"从备份 zip 导入;与书架已有书 id 匹配时覆盖恢复,否则导入为新书(同名可重命名或保持原样并存)"})]}),i.jsxs("form",{id:"import-book-form",onSubmit:ee=>{ee.preventDefault(),be(Z)},className:"flex flex-col gap-3",children:[i.jsx("input",{type:"file",accept:".zip,application/zip",onChange:Me,disabled:K,"aria-label":"选择备份文件",className:"block w-full cursor-pointer rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground file:mr-2 file:cursor-pointer file:rounded file:border-0 file:bg-muted file:px-2 file:py-1 file:text-xs file:text-muted-foreground disabled:opacity-50"}),i.jsx(Mt,{value:Z,onChange:_e,placeholder:"书名(默认取文件名)",maxLength:60,disabled:K}),W&&i.jsxs("p",{className:"text-sm text-primary",children:["书架已有同名书籍《",z,"》——可重命名导入,或保持原样(服务端自动去重)"]}),ie&&i.jsx("p",{className:"text-sm text-destructive",children:ie})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>M(!1),disabled:K,children:"取消"}),W?i.jsxs(i.Fragment,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>{be(z)},disabled:K||L===null,children:K?"导入中…":"保持原样导入"}),i.jsx(me,{type:"button",onClick:()=>{be(Z)},disabled:K||L===null,children:K?"导入中…":"重命名导入"})]}):i.jsx(me,{type:"submit",form:"import-book-form",disabled:K||L===null,children:K?"导入中…":"导入"})]})]})})]})}function Sv({side:t,active:r,onStart:o,onMove:a,onEnd:c}){return i.jsxs("div",{role:"separator","aria-orientation":"vertical","aria-label":t==="sidebar"?"调整左栏宽度":"调整右栏宽度",title:t==="sidebar"?"拖动调整左栏宽度":"拖动调整右栏宽度",onPointerDown:d=>{d.preventDefault(),d.currentTarget.setPointerCapture(d.pointerId),o(t,d.clientX)},onPointerMove:d=>a(t,d.clientX),onPointerUp:c,onPointerCancel:c,className:Ee("group relative z-10 h-full w-1.5 shrink-0 cursor-col-resize touch-none bg-transparent transition-colors hover:bg-border",r&&"bg-border"),children:[i.jsx("div",{className:"absolute inset-y-0 left-1/2 w-px -translate-x-1/2 bg-border/60 transition-colors group-hover:bg-primary/70"}),i.jsx(au,{className:"absolute inset-y-0 left-1/2 size-4 -translate-x-1/2 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100"})]})}function Ev({side:t,onExpand:r}){const o=t==="sidebar",a=o?gT:vT;return i.jsx("div",{className:Ee("flex h-full w-8 shrink-0 flex-col items-center bg-sidebar",o?"border-r border-border":"border-l border-border"),children:i.jsx("button",{type:"button",onClick:r,"aria-label":o?"展开左栏":"展开右栏",title:o?"展开左栏":"展开右栏",className:Ee(Dl,zl.md,"mt-3"),children:i.jsx(a,{className:"size-4"})})})}function N3({route:t,children:r}){const[o,a]=h.useState(!1),{layout:c,isDesktop:d,dragSide:m,toggleCollapse:g,startResize:b,moveResize:p,endResize:y}=ZT(),x=m!==null;return i.jsxs("div",{className:Ee("flex h-screen overflow-hidden",x&&"select-none"),children:[d&&c.collapsedSidebar?i.jsx(Ev,{side:"sidebar",onExpand:()=>g("sidebar")}):i.jsx(E3,{width:d?c.sidebarWidth:void 0,onToggleCollapse:d?()=>g("sidebar"):void 0}),d&&!c.collapsedSidebar&&i.jsx(Sv,{side:"sidebar",active:m==="sidebar",onStart:b,onMove:p,onEnd:y}),i.jsx(o3,{isDesktop:d,route:t,chatOpen:o,onToggleChat:()=>a(S=>!S),children:r}),d&&!c.collapsedChat&&i.jsx(Sv,{side:"chat",active:m==="chat",onStart:b,onMove:p,onEnd:y}),d&&c.collapsedChat?i.jsx(Ev,{side:"chat",onExpand:()=>g("chat")}):i.jsx(r_,{open:o,onClose:()=>a(!1),width:d?c.chatWidth:void 0,onToggleCollapse:d?()=>g("chat"):void 0}),i.jsx(t3,{})]})}class j3 extends h.Component{state={error:null};static getDerivedStateFromError(r){return{error:r}}componentDidCatch(r,o){console.error("[ErrorBoundary] 渲染异常:",r,o.componentStack)}render(){const{error:r}=this.state;return r===null?this.props.children:i.jsx("div",{className:"flex h-full min-h-64 flex-col items-center justify-center gap-3 p-8",children:i.jsxs("div",{className:"flex flex-col items-center gap-2 rounded-xl border border-destructive/30 bg-destructive/10 px-8 py-6 text-center",children:[i.jsx(Jm,{className:"size-8 text-destructive"}),i.jsx("p",{className:"font-serif text-base font-medium text-foreground",children:"界面出现异常"}),i.jsx("p",{className:"max-w-md text-sm text-muted-foreground",children:"数据不会丢失,请重新加载页面继续写作。"}),i.jsx("p",{className:"max-w-md font-mono text-xs break-all text-destructive/80",children:r.message||String(r)}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[i.jsxs(me,{type:"button",onClick:()=>window.location.reload(),children:[i.jsx(kT,{className:"size-4"}),"重新加载"]}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>{window.location.hash="#/",window.location.reload()},children:"回到首页"})]})]})})}}function sr({title:t,action:r,className:o,children:a}){return i.jsxs("div",{className:Ee(Fw,o),children:[t!==void 0&&i.jsxs("div",{className:"mb-3 flex items-center justify-between gap-2",children:[i.jsx("h2",{className:"font-serif text-base",children:t}),r]}),a]})}function zs(t){const r=Re(a=>a.dataVersion),o=h.useRef(r);h.useEffect(()=>{r!==o.current&&(o.current=r,t())},[r])}const Nv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},jv=["character","setting","location","hook"];function T3(t){const r={volumes:0,chapters:0,scenes:0,updatedAt:null},o=a=>{for(const c of a)c.type==="volume"?r.volumes+=1:c.type==="chapter"?r.chapters+=1:r.scenes+=1,(r.updatedAt===null||c.updatedAt>r.updatedAt)&&(r.updatedAt=c.updatedAt),c.type!=="scene"&&c.children&&o(c.children)};return o(t),r}function im(t){return t instanceof Ae?t.code:null}function Tv(){const t=He(q=>q.config),r=He(q=>q.configLoading),o=He(q=>q.outline),a=He(q=>q.outlineLoading),c=He(q=>q.loadOutline),d=He(q=>q.bookshelf),m=He(q=>q.bookshelfLoading),g=He(q=>q.bookshelfError),b=He(q=>q.loadBookshelf),p=He(q=>q.openProjectAt),y=He(q=>q.createProjectAt),x=St(q=>q.sessions),S=St(q=>q.sessionsLoading),j=St(q=>q.sessionsError),E=St(q=>q.loadSessions),k=St(q=>q.setCurrentSession),O=St(q=>q.currentSessionId),N=Re(q=>q.setFocusOutlineNode),[T,_]=h.useState(""),[w,V]=h.useState(null),[M,L]=h.useState(null),[C,Z]=h.useState(!1),[re,ie]=h.useState(!1),[te,K]=h.useState(""),[ne,W]=h.useState(null),[D,z]=h.useState(!1),[P,U]=h.useState(null),[F,A]=h.useState(!1),[H,I]=h.useState(null),[B,G]=h.useState(0),[Q,he]=h.useState(!1),le=t===null&&!r,de=o?T3(o.children):null,Ue=t?.currentPosition!=null?A0(o,t.currentPosition)??t.currentPosition:null;h.useEffect(()=>{le&&!m&&d===null&&g===null&&b()},[le,m,d,g,b]),h.useEffect(()=>{he(!1)},[t?.id]),zs(()=>{G(q=>q+1),c(),E()}),h.useEffect(()=>{L(null)},[t?.id]),h.useEffect(()=>{t!==null&&o===null&&!a&&!Q&&(he(!0),c())},[t,o,a,Q,c]),h.useEffect(()=>{if(t===null)return;let q=!1;return U(null),A(!0),I(null),Promise.allSettled(jv.map(async Me=>({type:Me,total:(await jn(Me,{limit:1})).total}))).then(Me=>{if(q)return;const Oe={};let _e=!1;for(const be of Me)be.status==="fulfilled"?Oe[be.value.type]=be.value.total:_e=!0;U(Oe),I(_e?"要素统计加载失败":null),A(!1)}),()=>{q=!0}},[t,B]),h.useEffect(()=>{t!==null&&x===null&&!S&&j===null&&E()},[t,x,S,j,E]);async function Le(q){q.preventDefault();const Me=T.trim(),Oe=Vc(Me);if(Oe!==null){V(Oe);return}if(!d){V("书架未加载,请稍后重试");return}z(!0),V(null);try{await y(D0(d.rootPath,Me),{name:Me,language:"zh"}),await b(),Re.getState().showToast(`已创建并打开《${Me}》`),_("")}catch(_e){V(Pl(im(_e)))}finally{z(!1)}}async function we(q){if(q.preventDefault(),!te.trim()){W("请输入项目目录路径(绝对路径)");return}z(!0),W(null);try{await p(te.trim())}catch(Me){W(Pl(im(Me)))}finally{z(!1)}}async function Be(q){L(null);try{await p(q)}catch(Me){L(Pl(im(Me)))}}function ge(){t?.currentPosition!=null&&N(t.currentPosition)}if(r)return i.jsx("section",{children:i.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"加载中…"})});if(le){let q=function(be){return i.jsxs("form",{onSubmit:Le,className:be,children:[i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Mt,{value:T,onChange:Ie=>_(Ie.target.value),placeholder:"书名",maxLength:60,disabled:D}),i.jsx(me,{type:"submit",disabled:D||d===null,children:"新建"})]}),w&&i.jsx("p",{className:"text-left text-sm text-destructive",children:w})]})};const Me=d===null&&m,Oe=g!==null,_e=d!==null&&d.books.length>0;return i.jsxs("section",{children:[g!==null&&i.jsxs("div",{className:"mx-auto mt-2 max-w-md rounded-md border border-border bg-card p-3",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:g===ut?"无法连接服务,请确认 ai-editor 服务已启动后重试。":"书架加载失败,请重试。"}),i.jsx(me,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>{b()},type:"button",children:"重试"})]}),i.jsx("div",{className:"mx-auto mt-10 max-w-md rounded-2xl border border-dashed border-border bg-card px-6 py-8 text-center",children:Me?i.jsxs("div",{className:"py-2",children:[i.jsx("div",{className:Ee(_t,"mx-auto h-6 w-2/3")}),i.jsx("div",{className:Ee(_t,"mx-auto mt-2 h-4 w-1/2")}),i.jsxs("div",{className:"mt-5 space-y-2",children:[i.jsx("div",{className:Ee(_t,"h-10 rounded-lg")}),i.jsx("div",{className:Ee(_t,"h-10 rounded-lg")})]})]}):i.jsxs(i.Fragment,{children:[_e?i.jsxs(i.Fragment,{children:[i.jsx("h1",{className:"font-serif text-lg text-foreground",children:"书架里有书,打开即可写作"}),i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"选择一本书打开,或新建一本"}),i.jsx("ul",{className:"mt-5 divide-y divide-border overflow-hidden rounded-lg border border-border text-left",children:d.books.map(be=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:`打开《${be.name}》`,onClick:()=>{Be(be.path)},className:"flex w-full items-center gap-3 px-3 py-2.5 text-left transition-colors hover:bg-muted",children:[i.jsx(vm,{className:"size-4 shrink-0 text-muted-foreground/60"}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:be.name}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(be.updatedAt)})]})},be.path))}),M!==null&&i.jsx("p",{className:"mt-3 text-left text-sm text-destructive",children:M}),i.jsxs("div",{className:"mt-4 border-t border-border pt-3",children:[i.jsx("button",{type:"button",className:"rounded-md border border-border px-2.5 py-1 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:()=>Z(be=>!be),children:C?"收起":"新建一本…"}),C&&q("mt-2 flex flex-col gap-2 text-left")]})]}):Oe?i.jsx("p",{className:"py-6 text-sm text-muted-foreground",children:"书架加载失败,重试后可查看书籍或新建"}):i.jsxs(i.Fragment,{children:[i.jsx("h1",{className:"font-serif text-lg text-foreground",children:"还没有书,先创建一本"}),i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"每本书一个独立目录(books/书名/),写作数据互不干扰"}),q("mx-auto mt-5 flex flex-col gap-2"),i.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:"创建于 创作根/books/书名/ 目录"})]}),i.jsxs("div",{className:"mt-4 border-t border-border pt-3",children:[i.jsx("button",{type:"button",className:"rounded-md border border-border px-2.5 py-1 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:()=>ie(be=>!be),children:re?"收起":"打开其他路径…"}),re&&i.jsxs("form",{onSubmit:we,className:"mt-2 flex flex-col gap-2 text-left",children:[i.jsx(Mt,{value:te,onChange:be=>K(be.target.value),placeholder:"/absolute/path/to/project(须含 project.json)",disabled:D}),i.jsx("div",{children:i.jsx(me,{type:"submit",variant:"outline",disabled:D,children:"打开"})}),ne&&i.jsx("p",{className:"text-sm text-destructive",children:ne})]})]})]})})]})}return i.jsxs("section",{children:[i.jsx("div",{className:"mb-4",children:i.jsx("h1",{className:"font-serif text-xl font-medium text-foreground",children:"项目概览"})}),i.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[i.jsxs(sr,{title:"项目信息",children:[i.jsxs("dl",{className:"mt-3 space-y-2 text-sm",children:[i.jsxs("div",{className:"flex items-baseline gap-2",children:[i.jsx("dt",{className:"w-16 shrink-0 text-muted-foreground",children:"名称"}),i.jsx("dd",{className:"min-w-0 truncate font-medium text-foreground",children:t?.name})]}),i.jsxs("div",{className:"flex items-baseline gap-2",children:[i.jsx("dt",{className:"w-16 shrink-0 text-muted-foreground",children:"语言"}),i.jsx("dd",{className:"text-foreground",children:t?.language==="zh"?"中文":"English"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("dt",{className:"w-16 shrink-0 text-muted-foreground",children:"当前位置"}),i.jsx("dd",{className:"min-w-0 flex-1 truncate",children:t?.currentPosition!=null?i.jsx("a",{href:"#/outline",onClick:ge,className:"text-primary hover:underline",children:Ue??t.currentPosition}):i.jsx("span",{className:"text-muted-foreground",children:"未设置"})}),i.jsx("a",{href:"#/outline",onClick:ge,className:wm({variant:"outline",size:"xs"}),children:"去大纲"})]})]}),i.jsxs("div",{className:"mt-3 border-t border-border pt-3",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"项目提示词"}),i.jsx("p",{className:"mt-1 line-clamp-2 text-sm text-foreground/90",children:t?.prompt||"(未设置)"})]})]}),i.jsx(sr,{title:"创作要素",children:F&&P===null?i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:[0,1,2,3].map(q=>i.jsx("div",{className:Ee(_t,"h-20 rounded-lg")},q))}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mt-3 grid grid-cols-2 gap-2",children:jv.map(q=>i.jsxs("a",{href:`#/entities/${q}`,className:"group rounded-lg border border-border bg-background p-3 transition-colors hover:border-primary/40 hover:bg-muted",title:`查看${Nv[q]}列表`,children:[i.jsx("p",{className:"font-serif text-2xl font-semibold text-foreground",children:P?.[q]??"–"}),i.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground transition-colors group-hover:text-foreground",children:Nv[q]})]},q))}),H!==null&&i.jsxs("div",{className:"mt-2 flex items-center gap-2 text-xs text-destructive",children:[H,i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>G(q=>q+1),children:"重试"})]})]})}),i.jsx(sr,{title:"大纲概览",className:"lg:col-span-2",children:o===null&&(a||!Q)?i.jsxs("div",{className:"mt-3 space-y-2",children:[i.jsx("div",{className:Ee(_t,"h-5 w-2/5")}),i.jsx("div",{className:Ee(_t,"h-4 w-1/3")})]}):o===null?i.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>he(!1),children:"重试"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("p",{className:"mt-3 text-sm text-foreground",children:["卷 ",de?.volumes??0," · 章 ",de?.chapters??0," · 场景"," ",de?.scenes??0]}),i.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["最近更新:"," ",de?.updatedAt?Eo(de.updatedAt):"—"]}),o.children.length===0&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"大纲还是空的"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>k(null),children:"和 AI 聊聊设定"})]}),i.jsx("div",{className:"mt-3",children:i.jsx("a",{href:"#/outline",onClick:ge,className:Ee(wm({variant:"outline",size:"sm"})),children:"去大纲编辑"})})]})}),i.jsx(sr,{title:"最近会话",className:"lg:col-span-2",children:x===null?j!==null?i.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:["会话加载失败",i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{E()},children:"重试"})]}):i.jsx("div",{className:"mt-3 space-y-2",children:[0,1,2].map(q=>i.jsx("div",{className:Ee(_t,"h-8 rounded-md")},q))}):x.length===0?i.jsxs("div",{className:"mt-3",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"还没有会话,和 AI 聊聊设定吧"}),i.jsx(me,{variant:"outline",size:"sm",className:"mt-3",type:"button",onClick:()=>k(null),children:"开始新对话"})]}):i.jsxs(i.Fragment,{children:[i.jsx("ul",{className:"mt-3 divide-y divide-border rounded-lg border border-border",children:x.slice(0,5).map(q=>i.jsx("li",{children:i.jsxs("button",{type:"button",title:q.lastMessage||"空会话",onClick:()=>k(q.id),className:Ee("flex w-full items-center gap-3 px-3 py-2 text-left transition-colors hover:bg-muted",O===q.id&&"bg-accent/40 hover:bg-accent/40"),children:[i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:q.lastMessage||"(空会话)"}),i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[q.messageCount," 条消息"]}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(q.updatedAt)})]})},q.id))}),i.jsx("div",{className:"mt-3",children:i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:()=>k(null),children:"开始新对话"})})]})})]})]})}const wv={plants:"埋设",advances:"推进",resolves:"回收"},w3={plants:NT,advances:Xj,resolves:Wm};function SS({mark:t}){const r=w3[t.relationType];return i.jsx("span",{className:"shrink-0 rounded px-0.5 text-muted-foreground hover:text-foreground",title:`${wv[t.relationType]}伏笔:${t.hookName}`,"aria-label":`${wv[t.relationType]}伏笔:${t.hookName}`,children:i.jsx(r,{className:"size-3"})})}const C3={sm:"py-10",md:"py-12",lg:"py-14"};function Bn({children:t,icon:r,action:o,padding:a="md",className:c}){return i.jsxs("div",{className:Ee("rounded-lg border border-dashed border-border px-6 text-center",C3[a],c),children:[r,i.jsx("p",{className:"text-sm text-muted-foreground",children:t}),o&&i.jsx("div",{className:"mt-4",children:o})]})}const Qp=["plants","advances","resolves"],Cv=["plants","advances","resolves"];function Rv(t){const r=Cv.indexOf(t);return r===-1?Cv.length:r}function ES(t){const r=new Map;for(const o of t){if(!Qp.includes(o.relationType)||o.sourceType!=="outline_node"||o.targetType!=="hook")continue;const a={relationType:o.relationType,hookId:o.targetId,hookName:o.targetName??o.targetId},c=r.get(o.sourceId);c===void 0?r.set(o.sourceId,[a]):c.push(a)}for(const o of r.values())o.sort((a,c)=>Rv(a.relationType)-Rv(c.relationType)||(a.hookName<c.hookName?-1:a.hookName>c.hookName?1:0)||(a.hookId<c.hookId?-1:a.hookId>c.hookId?1:0));return r}const Nn="root",Ov={id:Nn,label:"(根)",depth:0};function R3(t,r){if(r==="volume")return[Ov];const o=r==="chapter"?[Ov]:[],a=(c,d)=>{for(const m of c)r==="chapter"&&m.type==="volume"?o.push({id:m.id,label:m.title,depth:d}):r==="scene"&&m.type==="chapter"&&o.push({id:m.id,label:m.title,depth:d}),m.children&&a(m.children,d+1)};return a(t,1),o}function Yr(t,r){for(const o of t){if(o.id===r)return o;if(o.type!=="scene"&&o.children){const a=Yr(o.children,r);if(a)return a}}return null}function Zp(t,r,o=[]){for(const a of t){const c=[...o,a.id];if(a.id===r)return c;if(a.type!=="scene"&&a.children){const d=Zp(a.children,r,c);if(d)return d}}return null}function ir(t,r=0,o=[]){for(const a of t)o.push({id:a.id,label:a.title,depth:r}),a.type!=="scene"&&a.children&&ir(a.children,r+1,o);return o}function O3(t,r,o){const a=Yr(t,r);if(!a)return!1;const c=d=>d.id===o?!0:d.type!=="scene"&&d.children?d.children.some(m=>c(m)):!1;return c(a)}function Dc(t,r,o){return r===t.id||O3(o,t.id,r)?!1:R3(o,t.type).some(a=>a.id===r)}function NS(t,r){const o=r.trim();return o!==""&&o!==t.trim()}function jS(t,r){return r.trim()!==(t??"").trim()}function k3(t){return t==="OUTLINE_NODE_NOT_FOUND"?"abandon":"restore"}function TS(t,r){if(r===Nn)return t;const o=a=>{for(const c of a){if(c.id===r)return c.children??[];if(c.children){const d=o(c.children);if(d)return d}}return null};return o(t)}function kv(t,r,o){const a=o===void 0?t:t.filter(d=>d.id!==o);if(r.kind==="end")return a.length;const c=a.findIndex(d=>d.id===r.nodeId);return c===-1?a.length:r.kind==="before"?c:c+1}function _v(t,r){return t===null||r===null?t===r:t.kind==="root-end"||r.kind==="root-end"?t.kind===r.kind:t.kind===r.kind&&t.nodeId===r.nodeId}function Pm(t,r){const o=(a,c)=>{for(const d of a){if(d.id===r)return c;if(d.children){const m=o(d.children,d.id);if(m!==null)return m}}return null};return o(t,Nn)}function _3(t,r){const o=Pm(t,r);if(o===null)return null;const c=(TS(t,o)??[]).findIndex(d=>d.id===r);return c===-1?null:{parentId:o,index:c}}function Mv(t,r,o,a){const c=_3(t,r);return c===null||c.parentId!==o?!1:a===c.index}function zc(t){return t instanceof Ae?t.code:null}function Sa(t){switch(t){case"OUTLINE_NODE_NOT_FOUND":return"节点不存在(可能已被彻底删除),大纲已刷新";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return"操作失败,请稍后重试"}}function Fc(t,r,o,a,c){return i.jsx("input",{autoComplete:"off",autoFocus:!0,value:t,onChange:d=>r(d.target.value),onKeyDown:o,onBlur:a,maxLength:200,placeholder:c,className:"min-w-0 flex-1 rounded border border-border bg-card px-1.5 py-0.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"})}function Av({type:t,onTypeChange:r,value:o,onChange:a,onKeyDown:c,onCancel:d,className:m}){return i.jsxs("div",{className:Ee("flex items-center gap-2 rounded-md px-2 py-1",m),children:[i.jsx("div",{className:"flex shrink-0 gap-1",children:["volume","chapter"].map(g=>i.jsx("button",{type:"button",onClick:()=>r(g),className:Ee("rounded border px-2 py-0.5 text-xs transition-colors",t===g?"border-primary bg-primary text-primary-foreground":"border-border text-muted-foreground hover:bg-muted hover:text-foreground"),children:is[g]},g))}),Fc(o,a,c,d,`新${is[t]}标题,Enter 创建`)]})}function M3(){const t=He(ee=>ee.outline),r=He(ee=>ee.outlineLoading),o=He(ee=>ee.config),a=He(ee=>ee.configLoading),c=He(ee=>ee.loadOutline),d=Re(ee=>ee.focusOutlineNodeId),m=Re(ee=>ee.clearFocusOutlineNode);zs(()=>{c()});const[g,b]=h.useState(!1),[p,y]=h.useState(null),[x,S]=h.useState(new Set),[j,E]=h.useState(!1),[k,O]=h.useState(null),[N,T]=h.useState(null),[_,w]=h.useState(null),[V,M]=h.useState(""),[L,C]=h.useState(null),[Z,re]=h.useState(""),[ie,te]=h.useState(null),[K,ne]=h.useState(null),[W,D]=h.useState(null),z=o===null&&!a;h.useEffect(()=>{t===null&&!r&&!g&&(b(!0),c())},[t,r,g,c]),h.useEffect(()=>{if(t===null){D(null);return}let ee=!1;return Promise.all(Qp.map(Y=>Fr({source_type:"outline_node",relation_type:Y,depth:1}).then($=>$.relations).catch(()=>[]))).then(Y=>{ee||D(ES(Y.flat()))}),()=>{ee=!0}},[t]),h.useEffect(()=>{if(k===null)return;const ee=setTimeout(()=>O(null),3e3);return()=>clearTimeout(ee)},[k]),h.useEffect(()=>{if(d===null||t===null)return;const ee=d,Y=Zp(t.children,ee);if(Y===null){m();return}S(Te=>{if(Y.every(ae=>!Te.has(ae)))return Te;const xe=new Set(Te);for(const ae of Y)xe.delete(ae);return xe});const $=setTimeout(()=>{const Te=document.querySelector(`[data-node-id="${ee}"]`);Te&&(Te.scrollIntoView({block:"center"}),T(ee)),m()},0);return()=>clearTimeout($)},[d,t,m]),h.useEffect(()=>{if(N===null)return;const ee=setTimeout(()=>T(null),3e3);return()=>clearTimeout(ee)},[N]);async function P(ee,Y){ee&&F(ee),await c(),Y&&O(Y)}function U(ee){S(Y=>{const $=new Set(Y);return $.has(ee)?$.delete(ee):$.add(ee),$})}function F(ee){S(Y=>{if(!Y.has(ee))return Y;const $=new Set(Y);return $.delete(ee),$})}function A(ee,Y=[]){for(const $ of ee)$.type!=="scene"&&$.children&&$.children.length>0&&(Y.push($.id),A($.children,Y));return Y}function H(ee,Y){he(),w({nodeId:ee.id,field:Y}),M(Y==="title"?ee.title:ee.summary??"")}function I(){w(null),M("")}async function B(ee,Y){if(!_||_.nodeId!==ee.id||_.field!==Y||j)return;const $=V;if(!(Y==="title"?NS(ee.title,$):jS(ee.summary,$))){I();return}E(!0);try{await k0(ee.id,Y==="title"?{title:$.trim()}:{summary:$.trim()}),I(),Re.getState().showToast("已保存"),await P()}catch(xe){const ae=zc(xe);if(k3(ae)==="abandon"){I(),y(Sa(ae)),await P();return}y(Sa(ae))}finally{E(!1)}}function G(ee,Y){return $=>{$.key==="Enter"?($.preventDefault(),B(ee,Y)):$.key==="Escape"&&I()}}function Q(ee,Y){I(),C({parentId:ee,type:Y}),re(""),ee!==Nn&&F(ee)}function he(){C(null),re("")}async function le(){if(!L)return;const ee=Z.trim(),{parentId:Y,type:$}=L;if(!ee){he();return}he();try{const Te=await e2({type:$,title:ee,parent_id:Y});Re.getState().showToast(`已创建${is[$]}《${ee}》`),await P(Y,Te.id)}catch(Te){y(Sa(zc(Te)))}}function de(ee){ee.key==="Enter"?(ee.preventDefault(),le()):ee.key==="Escape"&&he()}function Ue(ee,Y){ee.dataTransfer.setData("text/plain",Y.id),ee.dataTransfer.effectAllowed="move",te(Y.id),ne(null)}function Le(){te(null),ne(null)}function we(ee){const Y=ee.currentTarget.getBoundingClientRect();return ee.clientY<Y.top+Y.height/2?"before":"after"}function Be(ee,Y){ee.stopPropagation();const $=ie?Yr(t?.children??[],ie):null;if(!$)return;const Te=Pm(t?.children??[],Y)??Nn;if(!Dc($,Te,t?.children??[]))return;ee.preventDefault(),ee.dataTransfer.dropEffect="move";const xe={kind:we(ee),nodeId:Y};ne(ae=>_v(ae,xe)?ae:xe)}function ge(ee,Y){ee.currentTarget.contains(ee.relatedTarget)||ne($=>$!==null&&$.kind!=="root-end"&&$.nodeId===Y?null:$)}async function q(ee,Y){if(ee.stopPropagation(),ee.preventDefault(),!ie)return;const $=Yr(t?.children??[],ie);if(!$)return;const Te=Pm(t?.children??[],Y)??Nn;if(!Dc($,Te,t?.children??[]))return;if(Y===$.id){te(null),ne(null);return}const xe=TS(t?.children??[],Te)??[],ae=kv(xe,{kind:we(ee),nodeId:Y},$.id);if(Mv(t?.children??[],$.id,Te,ae)){te(null),ne(null);return}E(!0);try{await Ey($.id,{parent_id:Te,order:ae}),Re.getState().showToast(`已移动《${$.title}》`),await P(Te)}catch(ke){y(Sa(zc(ke)))}finally{E(!1),te(null),ne(null)}}function Me(ee){const Y=ie?Yr(t?.children??[],ie):null;!Y||!Dc(Y,Nn,t?.children??[])||(ee.preventDefault(),ee.dataTransfer.dropEffect="move",ne($=>_v($,{kind:"root-end"})?$:{kind:"root-end"}))}function Oe(ee){ee.currentTarget.contains(ee.relatedTarget)||ne(Y=>Y?.kind==="root-end"?null:Y)}async function _e(ee){if(ee.preventDefault(),!ie)return;const Y=Yr(t?.children??[],ie);if(!Y||!Dc(Y,Nn,t?.children??[]))return;const $=kv(t?.children??[],{kind:"end"},Y.id);if(Mv(t?.children??[],Y.id,Nn,$)){te(null),ne(null);return}E(!0);try{await Ey(Y.id,{parent_id:Nn,order:$}),Re.getState().showToast(`已移动《${Y.title}》`),await P()}catch(Te){y(Sa(zc(Te)))}finally{E(!1),te(null),ne(null)}}async function be(ee){try{const Y=await t2(ee.id),{children:$,relations:Te,deltas:xe}=Y.cascaded,ae=[];$>0&&ae.push(`${$} 个子节点`),Te>0&&ae.push(`${Te} 条关联`),xe>0&&ae.push(`${xe} 条变化记录`),Re.getState().showToast(`已移入回收站${ae.length>0?`(含 ${ae.join("、")})`:""}`),await P()}catch(Y){if(Y instanceof Ae&&Y.code==="OUTLINE_NODE_NOT_FOUND"){y(Sa("OUTLINE_NODE_NOT_FOUND")),await P();return}Re.getState().showToast(Y instanceof Ae?Y.message:"删除失败,请重试","error")}}function Ie(){return L?.parentId!==Nn?null:i.jsx(Av,{className:"mb-1",type:L.type,onTypeChange:ee=>C({parentId:Nn,type:ee}),value:Z,onChange:re,onKeyDown:de,onCancel:he})}function Ve(ee,Y){return ee.map($=>{const Te=$.type!=="scene"&&($.children?.length??0)>0,xe=x.has($.id),ae=o?.currentPosition===$.id,ke=Z_[$.type],Ye=_?.nodeId===$.id&&_.field==="title",We=_?.nodeId===$.id&&_.field==="summary",pt=K?.kind==="before"&&K.nodeId===$.id,At=K?.kind==="after"&&K.nodeId===$.id,mt=ie===$.id,Tt=L?.parentId===$.id,Rt=$.id===N;return i.jsxs("div",{children:[i.jsxs("div",{"data-node-id":$.id,draggable:!Ye&&!We&&!mt&&!j,onDragStart:Lt=>Ue(Lt,$),onDragEnd:Le,onDragOver:Lt=>Be(Lt,$.id),onDragLeave:Lt=>ge(Lt,$.id),onDrop:Lt=>{q(Lt,$.id)},className:Ee("relative cursor-grab rounded-md px-2 py-1 transition-colors hover:bg-muted/60 active:cursor-grabbing",$.id===k&&"bg-accent/40",Rt&&"bg-accent ring-1 ring-ring ring-inset",mt&&"opacity-50"),style:{paddingLeft:Y*20+8},title:"拖动到目标行即可移动(上半=插前、下半=插后)",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[Te?i.jsx("button",{type:"button",className:"w-4 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>U($.id),"aria-label":xe?"展开":"折叠",children:xe?"▸":"▾"}):i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"flex h-5 w-7 shrink-0 items-center justify-center rounded bg-muted text-xs text-muted-foreground",children:is[$.type]}),Ye?Fc(V,M,G($,"title"),()=>{B($,"title")},"标题"):i.jsx("span",{className:Ee("min-w-0 cursor-text truncate text-sm hover:underline",Rt?"text-accent-foreground":"text-foreground"),title:"点击编辑标题",onClick:()=>H($,"title"),children:$.title}),W!==null&&(W.get($.id)?.length??0)>0&&i.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:(W.get($.id)??[]).map(Lt=>i.jsx(SS,{mark:Lt},`${Lt.relationType}-${Lt.hookId}`))}),ke!==null&&i.jsx("button",{type:"button",className:"shrink-0 rounded px-1 text-muted-foreground hover:bg-muted hover:text-foreground",title:`就地新建${is[ke]}`,"aria-label":`新建${is[ke]}`,onClick:()=>Q($.id,ke),children:"+"}),i.jsx("button",{type:"button",className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground",title:"详情","aria-label":"详情",onClick:()=>on(`/outline/${$.id}`),children:i.jsx(ep,{className:"size-3.5"})}),i.jsx("button",{type:"button",className:"shrink-0 rounded p-1 text-muted-foreground hover:bg-muted hover:text-destructive",title:"移入回收站","aria-label":"移入回收站",onClick:()=>{be($)},children:i.jsx(ti,{className:"size-3.5"})}),ae&&i.jsx("span",{className:"shrink-0 rounded bg-accent px-1.5 py-0.5 text-xs text-accent-foreground",children:"当前位置"}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:ds($.updatedAt)})]}),We||$.summary?i.jsxs("div",{className:"mt-0.5 flex items-center gap-2",children:[i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"w-7 shrink-0"}),We?Fc(V,M,G($,"summary"),()=>{B($,"summary")},"摘要"):i.jsx("span",{className:"min-w-0 cursor-text truncate text-xs text-muted-foreground hover:underline",title:"点击编辑摘要",onClick:()=>H($,"summary"),children:$.summary})]}):null,pt&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -top-px h-0.5 rounded bg-accent"}),At&&i.jsx("span",{className:"pointer-events-none absolute inset-x-0 -bottom-px h-0.5 rounded bg-accent"})]}),Te&&!xe&&i.jsx("div",{children:Ve($.children??[],Y+1)}),Tt&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md px-2 py-1",style:{paddingLeft:(Y+1)*20+8},children:[i.jsx("span",{className:"w-4 shrink-0"}),i.jsx("span",{className:"flex h-5 w-7 shrink-0 items-center justify-center rounded bg-muted text-xs text-muted-foreground",children:is[L.type]}),Fc(Z,re,de,he,`新${is[L.type]}标题,Enter 创建`)]})]},$.id)})}function Pe(){t&&(x.size>0?S(new Set):S(new Set(A(t.children))))}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-4 flex items-center justify-between gap-4",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"大纲"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(me,{variant:"outline",type:"button",onClick:Pe,disabled:!t||t.children.length===0,children:x.size>0?"全部展开":"全部折叠"}),i.jsx(me,{type:"button",onClick:()=>Q(Nn,"volume"),children:"+ 新建"})]})]}),p&&i.jsx("div",{className:Ee(ni,"mb-3"),children:p}),z?i.jsxs("div",{className:"rounded-md border border-dashed border-border px-6 py-10 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"未打开项目,无法编辑大纲"}),i.jsx("a",{href:"#/",className:"mt-2 inline-block text-sm text-muted-foreground underline hover:text-foreground",children:"回到首页打开或创建书籍"})]}):r&&t===null?i.jsx("div",{className:"space-y-2 rounded-md border border-border p-3",children:Array.from({length:6},(ee,Y)=>i.jsx("div",{className:Ee(_t,"h-5"),style:{width:`${92-Y%3*24}%`,marginLeft:Y%3*20}},Y))}):t===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):t.children.length===0?L?.parentId===Nn?i.jsxs("div",{className:"rounded-lg border border-dashed border-border px-6 py-12 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"输入第一卷标题,Enter 创建"}),i.jsx("div",{className:"mx-auto mt-4 max-w-sm",children:i.jsx(Av,{type:L.type,onTypeChange:ee=>C({parentId:Nn,type:ee}),value:Z,onChange:re,onKeyDown:de,onCancel:he})})]}):i.jsxs(Bn,{action:i.jsx(me,{type:"button",onClick:()=>Q(Nn,"volume"),children:"新建第一卷"}),children:["大纲还是空的,先建第一卷",i.jsx("span",{className:"mt-1 block text-xs text-muted-foreground/70",children:"大纲是三层结构:卷 → 章 → 场景"})]}):i.jsxs("div",{className:Ee("rounded-md border border-border p-2",K?.kind==="root-end"&&"ring-1 ring-accent ring-inset"),onDragOver:Me,onDragLeave:Oe,onDrop:ee=>{_e(ee)},children:[Ie(),Ve(t.children,0)]})]})}const Ol=20;function A3(t,r){return Math.max(1,Math.ceil(t/r))}const D3={character:{key1:"role",label1:"角色",key2:"status",label2:"状态"},setting:{key1:"tags",label1:"标签",key2:"parent",label2:"上级设定",key3:"description",label3:"描述"},location:{key1:"type",label1:"类型"},hook:{key1:"status",label1:"状态",key2:"payoff_timing",label2:"回收时机"},event:{key1:"description",label1:"描述"},timepoint:{key1:"",label1:""}},Jp={planted:"已埋设",progressing:"推进中",resolved:"已回收",abandoned:"已弃用"},Wp={immediate:"立即",near_term:"近期",mid_arc:"中段",slow_burn:"慢热",endgame:"终局"};function Lc(t,r,o){if(o==null||o==="")return"—";if(t==="hook"&&r==="status")return Jp[String(o)]??String(o);if(t==="hook"&&r==="payoff_timing")return Wp[String(o)]??String(o);if(r==="tags"&&Array.isArray(o)){const a=o.filter(c=>typeof c=="string"&&c!=="");return a.length>0?a.join("、"):"—"}return String(o)}function Dv(t){return t.parentName!==void 0&&t.parentName!==""?t.parentName:"—"}const zv={character:{key:"role",label:"角色定位",input:"text"},setting:{key:"tags",label:"标签",input:"tags"},location:{key:"type",label:"地点类型",input:"text"},hook:{key:"status",label:"状态",input:"select",options:["planted","progressing","resolved","abandoned"]},event:{key:"description",label:"描述",input:"text"},timepoint:{key:"",label:"",input:"text"}};function eh(t){switch(t){case"character":return[{key:"role",label:"角色定位",control:"text"},{key:"gender",label:"性别",control:"text"},{key:"age",label:"年龄",control:"number"},{key:"personality",label:"性格",control:"tags"},{key:"motivation",label:"动机",control:"textarea"},{key:"abilities",label:"能力",control:"tags"},{key:"status",label:"状态",control:"text"}];case"setting":return[{key:"description",label:"描述",control:"textarea"},{key:"tags",label:"标签",control:"tags"},{key:"rules",label:"规则",control:"tags"}];case"location":return[{key:"type",label:"地点类型",control:"text"},{key:"parent_id",label:"上级地点",control:"text"},{key:"description",label:"描述",control:"textarea"}];case"hook":return[{key:"status",label:"状态",control:"select",options:["planted","progressing","resolved","abandoned"],optionsLabels:Jp},{key:"category",label:"类别",control:"text"},{key:"expected_payoff",label:"预期回收",control:"textarea"},{key:"payoff_timing",label:"回收时机",control:"select",options:["immediate","near_term","mid_arc","slow_burn","endgame"],optionsLabels:Wp},{key:"half_life",label:"半衰期(章数)",control:"number"},{key:"is_core",label:"主线伏笔",control:"toggle"},{key:"notes",label:"备注",control:"textarea"},{key:"expected_resolve_node_id",label:"预计回收节点",control:"outline-node"}];case"event":return[{key:"description",label:"描述",control:"textarea"},{key:"tags",label:"标签",control:"tags"}];case"timepoint":return[]}}const z3={belongs_to:"所属",owns:"拥有",masters:"掌握",ally:"盟友",rival:"对手",mentor:"师徒",family:"家族",kills:"击杀",appears_in:"出现于",occurs_in:"锚定于",occurs_at:"发生于",plot_edge:"剧情连线",plants:"埋设",advances:"推进",resolves:"回收",depends_on:"依赖",involves:"涉及"};function vo(t){return z3[t]??t}function cm(t,r){const o=t.filter(d=>d.relationType==="belongs_to"&&d.sourceType==="setting"&&d.targetType==="setting"),a=[];let c=null;for(const d of o){const m={relationId:d.id,parentId:d.targetId,parentName:d.targetName,childId:d.sourceId,childName:d.sourceName};d.sourceId===r?c===null&&(c=m):d.targetId===r&&a.push(m)}return{parent:c,children:a}}function th(t,r){const o={};for(const a of new Set([...Object.keys(t),...Object.keys(r)])){const c=r[a];if(c===void 0)continue;const d=Lv(t[a]),m=Lv(c);JSON.stringify(d)!==JSON.stringify(m)&&(o[a]=c)}return Object.keys(o).length>0?o:null}function Lv(t){return t==null||t===""||Array.isArray(t)&&t.length===0?null:t}const um={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},L3=Qm.filter(t=>t!=="occurs_at"),Ea="w-full rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function nh({source:t,onCreated:r,onClose:o}){const a=He(C=>C.outline),[c,d]=h.useState("character"),[m,g]=h.useState(null),[b,p]=h.useState(""),[y,x]=h.useState("character"),[S,j]=h.useState(null),[E,k]=h.useState(""),[O,N]=h.useState(Qm[0]),[T,_]=h.useState(null),[w,V]=h.useState(!1);h.useEffect(()=>{t||(p(""),g(null),jn(c,{limit:100}).then(C=>g(C.items)).catch(()=>g([])))},[t,c]),h.useEffect(()=>{if(k(""),y==="outline_node"){j(null);return}j(null),jn(y,{limit:100}).then(C=>j(C.items)).catch(()=>j([]))},[y]);const M=ir(a?.children??[]);async function L(C){if(C.preventDefault(),!t&&!b){_("请选择源实体");return}if(!E){_("请选择关联对象");return}V(!0),_(null);try{const Z={source_type:t?t.type:c,source_id:t?t.id:b,target_type:y,target_id:E,relation_type:O};await cr(Z),Re.getState().showToast("已建立关系"),await r(),o()}catch(Z){Z instanceof Ae&&Z.code==="RELATION_EXISTS"?_("这条关系已经存在"):_(Z instanceof Ae?Z.message:"创建失败,请重试")}finally{V(!1)}}return i.jsx(Rs,{open:!0,onOpenChange:C=>!C&&o(),children:i.jsxs(Os,{className:"sm:max-w-2xl",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"新增关联"})}),i.jsxs("form",{id:"create-relation-form",onSubmit:L,className:"flex flex-col gap-3",children:[i.jsxs("div",{className:"grid grid-cols-1 items-start gap-3 sm:grid-cols-[1fr_auto_1fr]",children:[i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"源实体"}),t?i.jsxs("div",{title:t.name,className:"min-w-0 truncate rounded-md border border-border bg-muted/40 px-3 py-1.5 text-sm text-foreground",children:[t.type==="outline_node"?"本节点":"本实体",":",t.name]}):i.jsxs(i.Fragment,{children:[i.jsx("select",{value:c,onChange:C=>d(C.target.value),className:Ea,children:ka.map(C=>i.jsx("option",{value:C,children:um[C]},C))}),i.jsxs("select",{value:b,onChange:C=>p(C.target.value),className:Ea,children:[i.jsxs("option",{value:"",children:["选择",um[c],"…"]}),(m??[]).map(C=>i.jsx("option",{value:C.id,children:C.name},C.id))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:w-44",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"关系类型"}),i.jsx("select",{value:O,onChange:C=>N(C.target.value),className:Ea,children:L3.map(C=>i.jsx("option",{value:C,children:vo(C)},C))}),i.jsx("span",{"aria-hidden":"true",className:"mt-auto pb-1 text-center text-xl leading-none text-muted-foreground select-none",children:"→"})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"目标实体"}),i.jsxs("select",{value:y,onChange:C=>x(C.target.value),className:Ea,children:[i.jsx("option",{value:"character",children:"人物"}),i.jsx("option",{value:"setting",children:"设定"}),i.jsx("option",{value:"location",children:"地点"}),i.jsx("option",{value:"hook",children:"伏笔"}),i.jsx("option",{value:"outline_node",children:"大纲节点"})]}),y==="outline_node"?i.jsxs("select",{value:E,onChange:C=>k(C.target.value),className:Ea,children:[i.jsx("option",{value:"",children:"选择大纲节点…"}),M.map(C=>i.jsxs("option",{value:C.id,children:[" ".repeat(C.depth),C.label]},C.id))]}):i.jsxs("select",{value:E,onChange:C=>k(C.target.value),className:Ea,children:[i.jsxs("option",{value:"",children:["选择",um[y],"…"]}),(S??[]).map(C=>i.jsx("option",{value:C.id,children:C.name},C.id))]})]})]}),T&&i.jsx("p",{className:"text-sm text-destructive",children:T})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:o,disabled:w,children:"取消"}),i.jsx(me,{type:"submit",form:"create-relation-form",disabled:w,children:"建立"})]})]})})}const wS={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"},Iv={endpointType:"",relationType:"",nameQuery:""};function I3(t,r){const o=r.nameQuery.trim().toLowerCase();return t.filter(a=>{if(r.endpointType!==""&&a.sourceType!==r.endpointType&&a.targetType!==r.endpointType||r.relationType!==""&&a.relationType!==r.relationType)return!1;if(o){const c=(a.sourceName??a.sourceId).toLowerCase(),d=(a.targetName??a.targetId).toLowerCase();if(!c.includes(o)&&!d.includes(o))return!1}return!0})}function Bv({type:t}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:wS[t]??t})}function dm({type:t,id:r,name:o}){const a=o??r;if(!(ka.includes(t)||t==="outline_node"))return i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("span",{className:"min-w-0 truncate text-muted-foreground",title:a,children:a}),i.jsx(Bv,{type:t})]});const d=t==="outline_node"?`/outline/${r}`:`/entities/${t}/${r}`;return i.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx("button",{type:"button",onClick:()=>on(d),title:`打开《${a}》`,className:"min-w-0 truncate font-medium text-foreground underline-offset-2 hover:text-primary hover:underline",children:a}),i.jsx(Bv,{type:t})]})}function Hv(t,r){const o=r==="source"?t.sourceName:t.targetName,a=r==="source"?t.sourceId:t.targetId;return o??a}function CS({reloadKey:t,onOpenCreate:r,scope:o}){const[a,c]=h.useState(null),[d,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(0),[x,S]=h.useState(Iv),[j,E]=h.useState(null);h.useEffect(()=>{let N=!1;m(!0),b(null);const T=o!==void 0?{source_type:o.type,source_id:o.id,depth:1}:{depth:1};return Fr(T).then(_=>{N||c(_.relations)}).catch(_=>{N||(c(null),b(_ instanceof Ae?_.code:ut))}).finally(()=>{N||m(!1)}),()=>{N=!0}},[t,p,o?.type,o?.id]);async function k(){if(j)try{await Ca(j.id),Re.getState().showToast("已删除关系"),E(null),y(N=>N+1)}catch(N){throw N}}const O=a===null?[]:I3(a,x);return i.jsxs("div",{children:[o===void 0&&i.jsxs("div",{className:"mt-3 mb-2 flex flex-wrap items-center gap-3",children:[i.jsxs("select",{value:x.endpointType,onChange:N=>S(T=>({...T,endpointType:N.target.value})),"aria-label":"端点类型过滤",className:"rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[i.jsx("option",{value:"",children:"全部端点类型"}),Object.entries(wS).map(([N,T])=>i.jsx("option",{value:N,children:T},N))]}),i.jsxs("select",{value:x.relationType,onChange:N=>S(T=>({...T,relationType:N.target.value})),"aria-label":"关系类型过滤",className:"rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[i.jsx("option",{value:"",children:"全部关系类型"}),Qm.map(N=>i.jsx("option",{value:N,children:vo(N)},N))]}),i.jsx(Mt,{value:x.nameQuery,onChange:N=>S(T=>({...T,nameQuery:N.target.value})),placeholder:"搜索源/目标名称…",className:"w-52"})]}),g!==null&&i.jsxs("div",{className:"mb-3 rounded-md border border-border bg-muted px-3 py-2 text-sm text-muted-foreground",children:[g===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"关系加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>y(N=>N+1),children:"重试"})]}),d&&a===null&&g===null&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:Array.from({length:5},(N,T)=>i.jsxs("div",{className:"flex items-center gap-3 border-b border-border px-3 py-3 last:border-0",children:[i.jsx("div",{className:Ee(_t,"h-4 w-1/4")}),i.jsx("div",{className:Ee(_t,"h-4 w-1/6")}),i.jsx("div",{className:Ee(_t,"h-4 w-1/4")}),i.jsx("div",{className:Ee(_t,"ml-auto h-4 w-12")})]},T))}),!d&&a!==null&&a.length===0&&i.jsx(Bn,{action:i.jsx(me,{type:"button",onClick:r,children:"+ 建立关联"}),children:"还没有关联,建立一条"}),!d&&a!==null&&a.length>0&&O.length===0&&i.jsx(Bn,{action:i.jsx(me,{variant:"outline",type:"button",onClick:()=>S(Iv),children:"清空过滤"}),children:"没有匹配的关联"}),!d&&a!==null&&O.length>0&&i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[o===void 0&&i.jsxs("div",{className:"flex items-center gap-2 border-b border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground",children:[i.jsx("span",{className:"w-1/4 shrink-0",children:"源"}),i.jsx("span",{className:"w-1/4 shrink-0",children:"关系"}),i.jsx("span",{className:"flex-1",children:"目标"}),i.jsx("span",{className:"w-14 shrink-0"})]}),i.jsx("ul",{className:"divide-y divide-border",children:O.map(N=>i.jsxs("li",{className:"flex items-center gap-2 px-3 py-2 text-sm",children:[o!==void 0?i.jsxs(i.Fragment,{children:[i.jsxs("span",{className:"shrink-0 truncate rounded bg-muted px-1.5 py-0.5 text-center text-xs text-muted-foreground",children:[vo(N.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(dm,{type:N.targetType,id:N.targetId,name:N.targetName})})]}):i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"w-1/4 min-w-0 shrink-0",children:i.jsx(dm,{type:N.sourceType,id:N.sourceId,name:N.sourceName})}),i.jsxs("span",{className:"w-1/4 shrink-0 truncate rounded bg-muted px-1.5 py-0.5 text-center text-xs text-muted-foreground",children:[vo(N.relationType)," →"]}),i.jsx("span",{className:"min-w-0 flex-1",children:i.jsx(dm,{type:N.targetType,id:N.targetId,name:N.targetName})})]}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 w-14 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>E(N),children:"删除"})]},N.id))})]}),j&&i.jsx(Da,{title:"删除关系",description:`删除关系「${Hv(j,"source")} ${vo(j.relationType)} ${Hv(j,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:k,onClose:()=>E(null)})]})}const B3={set:"设为",update:"更新",add:"追加",remove:"移除"},H3={character:"人物",setting:"设定",location:"地点",hook:"伏笔",outline_node:"大纲节点"};function sh(t){return H3[t]??t}function cs(t){return t==null?"空":typeof t=="object"?JSON.stringify(t):String(t)}function U3(t){switch(t.op){case"set":return`${t.field} = ${cs(t.to)}`;case"update":return`${t.field} ${cs(t.from)} → ${cs(t.to)}`;case"add":return`${t.field} +${cs(t.value??t.to)}`;case"remove":return`${t.field} -${cs(t.value??t.to)}`}}function P3(t,r){const o=[];for(const a of new Set([...Object.keys(t),...Object.keys(r)])){const c=t[a]??null,d=r[a]??null;JSON.stringify(c)!==JSON.stringify(d)&&o.push({field:a,from:t[a],to:r[a]})}return o}function RS({changes:t,skipped:r}){const o=r?new Set(r):null;return i.jsx("div",{className:"flex flex-wrap items-center gap-1",children:t.map((a,c)=>{const d=o?.has(c)??!1;return i.jsxs("span",{title:d?"该变更未应用(数据与变更记录不一致,见冲突标注)":void 0,className:Ee("inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-xs",d?"text-destructive":"text-muted-foreground"),children:[i.jsx("span",{className:Ee("shrink-0 font-medium",d?"text-destructive":"text-foreground/70"),children:B3[a.op]}),U3(a)]},c)})})}function Y3({nodeId:t,reloadKey:r}){const[o,a]=h.useState(null),[c,d]=h.useState(!1),[m,g]=h.useState(null),[b,p]=h.useState(0);return h.useEffect(()=>{let y=!1;return d(!0),g(null),c2(t).then(x=>{y||a([...x.deltas].sort((S,j)=>S.order-j.order))}).catch(x=>{y||g(x instanceof Ae?x.code:ut)}).finally(()=>{y||d(!1)}),()=>{y=!0}},[t,b,r]),i.jsxs("div",{children:[c&&o===null&&m===null&&i.jsxs("div",{className:"space-y-2 py-1",children:[i.jsx("div",{className:Ee(_t,"h-4 w-2/3")}),i.jsx("div",{className:Ee(_t,"h-4 w-1/2")})]}),m!==null&&i.jsxs("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[i.jsx("span",{children:m==="OUTLINE_NODE_NOT_FOUND"?"节点不存在(可能已被删除),变更记录不可用":m===ut?"无法连接服务,请确认 ai-editor 服务已启动":"变更记录加载失败"}),m!=="OUTLINE_NODE_NOT_FOUND"&&i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>p(y=>y+1),children:"重试"})]}),!c&&m===null&&o!==null&&o.length===0&&i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"该节点没有变更记录"}),!c&&m===null&&o!==null&&o.length>0&&i.jsx("ul",{className:"divide-y divide-border/70",children:o.map(y=>i.jsxs("li",{className:"py-2 first:pt-0 last:pb-0",children:[i.jsxs("div",{className:"flex items-baseline gap-2",children:[i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:y.description,children:y.description}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:ds(y.createdAt)})]}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5",children:[i.jsxs("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[sh(y.targetType),"《",y.targetName??y.targetId,"》"]}),i.jsx(RS,{changes:y.changes})]})]},y.id))})]})}const V3=ka.filter(t=>t!=="event"&&t!=="timepoint").map(t=>({value:t,label:sh(t)})),F3={character:["role","gender","age","personality","motivation","abilities","status","custom_fields"],setting:["description","tags","rules","custom_fields"],location:["type","parent_id","description","custom_fields"],hook:["status","category","expected_payoff","payoff_timing","half_life","is_core","notes","expected_resolve_node_id"]},G3={character:Ic("character"),setting:Ic("setting"),location:Ic("location"),hook:Ic("hook")};function Ic(t){return Object.fromEntries(eh(t).map(r=>[r.key,r.label]))}const q3={character:["personality","abilities"],setting:["tags","rules"]},$3={character:["age"],hook:["half_life"]};function Ym(t,r){return(q3[t]??[]).includes(r)}function X3(t,r){return($3[t]??[]).includes(r)}function K3(t){return(F3[t]??[]).filter(o=>o!=="custom_fields").map(o=>({key:o,label:G3[t]?.[o]??o,array:Ym(t,o)}))}function OS(t){if(t!==void 0){if(t===null)return null;if(typeof t=="string"||typeof t=="number")return t}}function Uv(t){return t.array?{options:["add","remove"],default:"add"}:OS(t.currentValue)!==void 0?{options:["update","set"],default:"update"}:{options:["set"],default:"set"}}function Q3(t){const r=t.rawValue.trim();if(r==="")return{error:"请填写值"};const o=Number(r),a=t.numeric&&!Number.isNaN(o)?o:r;switch(t.op){case"add":return{change:{field:t.field,op:"add",value:a}};case"remove":return{change:{field:t.field,op:"remove",value:a}};case"set":return{change:{field:t.field,op:"set",to:a}};case"update":{const c=OS(t.currentValue);return c===void 0?{error:"无法确定旧值(当前数据无此字段或类型不可表达),请改用「设为」"}:{change:{field:t.field,op:"update",from:c,to:a}}}}}const Na="w-full rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",Z3={set:"设为",update:"更新",add:"追加",remove:"移除"};function J3({nodeId:t,onCreated:r,onClose:o}){const[a,c]=h.useState(""),[d,m]=h.useState(""),[g,b]=h.useState(""),[p,y]=h.useState("add"),[x,S]=h.useState(""),[j,E]=h.useState(""),[k,O]=h.useState(!1),[N,T]=h.useState(null),[_,w]=h.useState(null),[V,M]=h.useState(null),[L,C]=h.useState(0),[Z,re]=h.useState(null),[ie,te]=h.useState(null);h.useEffect(()=>{if(m(""),re(null),te(null),a===""){w(null),M(null);return}let U=!1;return w(null),M(null),jn(a).then(F=>{U||w(F.items)}).catch(F=>{U||(w(null),M(F instanceof Ae?F.code:ut))}),()=>{U=!0}},[a,L]),h.useEffect(()=>{if(a===""||d==="")return;let U=!1;return re(null),te(null),bo(a,d).then(F=>{U||re(F.data)}).catch(F=>{U||(re(null),te(F instanceof Ae?F.code:ut))}),()=>{U=!0}},[a,d]),h.useEffect(()=>{b(""),S(""),T(null)},[a,d]);const K=K3(a),ne=Z?.[g],W=Uv({array:Ym(a,g),currentValue:ne});function D(U){b(U),y(Uv({array:Ym(a,U),currentValue:Z?.[U]}).default)}async function z(){if(k)return;if(a===""||d===""){T("请选择变更目标");return}if(g===""){T("请选择变更字段");return}const U=j.trim();if(U===""){T("请填写描述(本节点触发了什么变化)");return}const F=Q3({field:g,op:p,rawValue:x,numeric:X3(a,g),currentValue:ne});if("error"in F){T(F.error);return}O(!0),T(null);try{await ip({node_id:t,target_type:a,target_id:d,changes:[F.change],description:U}),Re.getState().showToast("已记录变更"),r()}catch(A){if(A instanceof Ae&&A.code==="OUTLINE_NODE_NOT_FOUND"){Re.getState().showToast("节点不存在(可能已被删除),无法记录变更","error"),o();return}T(A instanceof Ae?A.message:"提交失败,请重试")}finally{O(!1)}}const P=a;return i.jsxs("div",{className:"mb-3 space-y-3 rounded-md border border-border bg-muted/40 p-3",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"目标类型"}),i.jsxs("select",{value:a,onChange:U=>c(U.target.value),className:Ee(Na,a===""&&"text-muted-foreground"),"aria-label":"目标类型",children:[i.jsx("option",{value:"",children:"请选择目标类型"}),V3.map(U=>i.jsx("option",{value:U.value,children:U.label},U.value))]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"目标"}),a===""?i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"请先选择目标类型"}):V!==null?i.jsxs("div",{className:"flex items-center gap-2 text-xs text-destructive",children:[i.jsx("span",{children:V===ut?"无法连接服务,请确认 ai-editor 服务已启动":"实体列表加载失败"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>C(U=>U+1),children:"重试"})]}):_===null?i.jsx("p",{className:"py-1 text-xs text-muted-foreground",children:"加载中…"}):_.length===0?i.jsxs("p",{className:"py-1 text-xs text-muted-foreground",children:["暂无",Pv(P)]}):i.jsxs("select",{value:d,onChange:U=>m(U.target.value),className:Ee(Na,d===""&&"text-muted-foreground"),"aria-label":"目标实体",children:[i.jsxs("option",{value:"",children:["请选择",Pv(P)]}),_.map(U=>i.jsx("option",{value:U.id,children:U.name},U.id))]})]})]}),i.jsxs("div",{className:"grid gap-3 sm:grid-cols-[1fr_auto_1fr]",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"字段"}),i.jsxs("select",{value:g,onChange:U=>D(U.target.value),className:Ee(Na,g===""&&"text-muted-foreground"),"aria-label":"变更字段",children:[i.jsx("option",{value:"",children:"请选择字段"}),K.map(U=>i.jsx("option",{value:U.key,children:U.label},U.key))]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"操作"}),i.jsx("select",{value:p,onChange:U=>y(U.target.value),className:Ee(Na,"min-w-20"),"aria-label":"操作",children:W.options.map(U=>i.jsx("option",{value:U,children:Z3[U]},U))})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:p==="set"||p==="update"?"新值":p==="add"?"追加值":"移除值"}),i.jsx("input",{autoComplete:"off",value:x,onChange:U=>S(U.target.value),placeholder:p==="remove"?"按值匹配删除":"",className:Na})]})]}),p==="update"&&i.jsx("p",{className:"text-xs text-muted-foreground",children:ie!==null?i.jsxs(i.Fragment,{children:["目标数据获取失败,无法自动取旧值(",ie==="ENTITY_NOT_FOUND"?"目标已不存在":"请稍后重试",")——可将操作改为「设为」"]}):i.jsxs(i.Fragment,{children:["旧值:",cs(ne),"(自动取自目标当前数据,无需手填)"]})}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:j,onChange:U=>E(U.target.value),rows:2,maxLength:500,placeholder:"本节点触发了什么变化,如:张三获得断剑认可",className:Ee(Na,"resize-none")})]}),N!==null&&i.jsx("p",{className:"text-sm text-destructive",children:N}),i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:o,disabled:k,children:"取消"}),i.jsx(me,{size:"sm",type:"button",onClick:()=>{z()},disabled:k,children:k?"提交中…":"创建变更"})]})]})}function Pv(t){return sh(t)}function rh({items:t,className:r}){return i.jsx("nav",{"aria-label":"面包屑",className:Ee("inline-flex items-center gap-1",r),children:t.map((o,a)=>{const c=a===t.length-1;return i.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.href?i.jsx("button",{type:"button",onClick:()=>on(o.href),className:"rounded-md border border-border px-2.5 py-1 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:o.label}):i.jsx("span",{"aria-current":"page",className:"max-w-40 truncate rounded-md bg-foreground px-2.5 py-1 text-sm font-medium text-background",children:o.label}),!c&&i.jsx("span",{className:"text-sm text-muted-foreground/40 select-none",children:"›"})]},a)})})}const W3={inner:"内心冲突",personal:"人际冲突",extra_personal:"社会冲突"};function eM(t){switch(t){case"scene":return[{key:"goal",label:"场景目标",control:"textarea",maxLength:1e3},{key:"conflict_levels",label:"冲突层次",control:"checkbox-group",options:a0,optionsLabels:W3},{key:"value_from",label:"开场价值",control:"text",maxLength:200},{key:"value_to",label:"收场价值",control:"text",maxLength:200}];case"chapter":return[{key:"reversal",label:"章末反转",control:"textarea",maxLength:1e3},{key:"climax_scene",label:"章高潮场景",control:"scene-select"}];case"volume":return[{key:"climax_scene",label:"幕高潮场景",control:"scene-select"},{key:"inciting_scene",label:"激励事件",control:"scene-select"}]}}function tM(t,r){return a0.includes(r)?t.includes(r)?t.filter(o=>o!==r):[...t,r]:t}function nM(t){const r=[],o=(a,c)=>{for(const d of a)d.type==="scene"?r.push({id:d.id,label:d.title,depth:c}):d.children&&o(d.children,c+1)};return o(t,0),r}function sM(t){return typeof t=="string"&&t!==""?t:""}const Vm="w-full rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function rM({nodeId:t}){const r=He(I=>I.outline),o=He(I=>I.outlineLoading),a=He(I=>I.config),c=He(I=>I.configLoading),d=He(I=>I.loadOutline),m=He(I=>I.updateConfig),[g,b]=h.useState(!1),[p,y]=h.useState(""),[x,S]=h.useState(""),[j,E]=h.useState(null),[k,O]=h.useState(!1),[N,T]=h.useState(null),[_,w]=h.useState(!1),[V,M]=h.useState(!1),[L,C]=h.useState(0),[Z,re]=h.useState(!1),[ie,te]=h.useState(0);h.useEffect(()=>{r===null&&!o&&!g&&(b(!0),d())},[r,o,g,d]),zs(()=>{d(),C(I=>I+1),te(I=>I+1)});const K=r===null?null:Yr(r.children,t),ne=r!==null&&K===null,W=K?eM(K.type):[],D=nM(r?.children??[]),z=a?.currentPosition===t;h.useEffect(()=>{K!==null&&(y(K.title),S(K.summary??""),E(JSON.parse(JSON.stringify(K.data??{}))))},[K]);async function P(){if(K===null||k)return;const I=p.trim();if(I===""){T("标题不能为空");return}const B={};NS(K.title,p)&&(B.title=I),jS(K.summary,x)&&(B.summary=x.trim());const G=th(K.data??{},j??{});if(G!==null&&(B.data=G),Object.keys(B).length===0){Re.getState().showToast("没有变更");return}O(!0),T(null);try{await k0(K.id,B),Re.getState().showToast("已保存"),await d()}catch(Q){if(Q instanceof Ae&&Q.code==="OUTLINE_NODE_NOT_FOUND"){await d();return}T(Q instanceof Ae?Q.message:"保存失败,请重试")}finally{O(!1)}}function U(I,B){E(G=>G&&{...G,[I]:B})}async function F(){if(!(K===null||_||z)){w(!0);try{await m({current_position:K.id}),Re.getState().showToast("已设为当前位置")}catch{Re.getState().showToast("设置失败:该节点可能已删除,无法设为当前位置","error")}finally{w(!1)}}}if(ne)return i.jsx("section",{children:i.jsx(Bn,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>on("/outline"),children:"返回大纲"})]}),children:"该节点不存在或已被删除"})});const A=a===null&&!c,H=[{label:"大纲",href:"/outline"}];if(K!==null){const I=Zp(r?.children??[],t)??[];for(const B of I.slice(0,-1)){const G=Yr(r?.children??[],B);G&&H.push({label:G.title,href:`/outline/${B}`})}H.push({label:K.title})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(rh,{items:H}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:K?.title??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",disabled:K===null||z||_,title:z?"当前节点已是创作进度位置":"标记为创作进度位置(InfoBar 展示 + 定位跳转基准)",onClick:()=>{F()},children:z?"当前位置":"设为当前位置"}),i.jsx(me,{type:"button",onClick:()=>{P()},disabled:K===null||k,children:k?"保存中…":"保存"})]})]}),K&&i.jsxs("div",{className:"mb-4 flex items-center gap-2 text-xs text-muted-foreground",children:[i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs",children:is[K.type]}),i.jsxs("span",{children:["更新于 ",ds(K.updatedAt)]}),z&&i.jsx("span",{className:"shrink-0 rounded bg-accent px-1.5 py-0.5 text-xs text-accent-foreground",children:"当前位置"})]}),A?i.jsxs("div",{className:"rounded-md border border-dashed border-border px-6 py-10 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"未打开项目,无法编辑大纲"}),i.jsx("a",{href:"#/",className:"mt-2 inline-block text-sm text-muted-foreground underline hover:text-foreground",children:"回到首页打开或创建书籍"})]}):o&&r===null?i.jsx("div",{className:"space-y-2 rounded-md border border-border p-3",children:Array.from({length:6},(I,B)=>i.jsx("div",{className:"h-5 animate-pulse rounded bg-muted",style:{width:`${92-B%3*24}%`,marginLeft:B%3*20}},B))}):r===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>b(!1),children:"重试"})]}):K===null||j===null?null:i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"flex min-w-0 flex-col gap-4",children:[i.jsx(sr,{title:"基础信息",children:i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标题"}),i.jsx(Mt,{value:p,onChange:I=>y(I.target.value),maxLength:200,placeholder:`${is[K.type]}标题`,className:"h-8 text-sm"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"摘要"}),i.jsx("textarea",{value:x,onChange:I=>S(I.target.value),maxLength:200,rows:3,placeholder:"一句话概括本节点内容(可选)",className:Vm})]})]})}),i.jsxs(sr,{title:`结构化信息(${is[K.type]})`,children:[i.jsx("div",{className:"flex flex-col gap-3",children:W.map(I=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:I.label}),i.jsx(oM,{field:I,value:j?.[I.key],sceneOptions:D,onChange:B=>U(I.key,B)})]},I.key))}),N&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:N})]}),i.jsxs(sr,{title:"变更记录",action:i.jsx(me,{variant:"outline",size:"sm",type:"button",onClick:()=>re(I=>!I),children:Z?"收起":"+ 新建变更"}),children:[Z&&i.jsx(J3,{nodeId:t,onCreated:()=>{re(!1),te(I=>I+1)},onClose:()=>re(!1)}),i.jsx(Y3,{nodeId:t,reloadKey:ie})]}),i.jsx(sr,{title:"伏笔标记",className:"border-dashed",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"伏笔标记将在伏笔面板(S9)落地"})})]}),i.jsx("div",{className:"flex min-w-0 flex-col gap-4",children:i.jsxs(sr,{title:"相关实体",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"本节点作为源的关系(1 跳)"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>M(!0),children:"+ 新增关联"})]}),i.jsx(CS,{scope:{type:"outline_node",id:t},reloadKey:L,onOpenCreate:()=>M(!0)})]})})]}),V&&K!==null&&i.jsx(nh,{source:{type:"outline_node",id:K.id,name:K.title},onCreated:()=>C(I=>I+1),onClose:()=>M(!1)})]})}function oM({field:t,value:r,sceneOptions:o,onChange:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:t.maxLength,rows:3,className:Vm});case"checkbox-group":{const c=Array.isArray(r)?r:[];return i.jsx("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:(t.options??[]).map(d=>i.jsxs("label",{className:"flex cursor-pointer items-center gap-1.5 text-sm text-foreground",children:[i.jsx("input",{type:"checkbox",checked:c.includes(d),onChange:()=>a(tM(c,d)),className:"size-4 accent-primary"}),t.optionsLabels?.[d]??d]},d))})}case"scene-select":{const c=sM(r),d=c!==""&&!o.some(m=>m.id===c);return i.jsxs("select",{value:c,onChange:m=>a(m.target.value),className:Ee(Vm,c===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"(未设置)"}),d&&i.jsxs("option",{value:c,children:[c,"(已删除)"]}),o.map(m=>i.jsxs("option",{value:m.id,children:[" ".repeat(m.depth),m.label]},m.id))]})}default:return i.jsx(Mt,{value:typeof r=="string"?r:"",onChange:c=>a(c.target.value),maxLength:t.maxLength,className:"h-8 text-sm"})}}const So={volume:248,chapter:208,scene:168},As={volume:96,chapter:88,scene:76},Ur={padX:48,padY:48,colGap:304,rowGap:28,indentChapter:28,indentScene:56},kS=.5,_S=2,aM="ai-editor:canvas:";function Fm(t){return Math.min(_S,Math.max(kS,t))}function lM(t){if(!t)return[];const r=[],o=(a,c,d)=>{for(const m of a)r.push({id:m.id,type:m.type,title:m.title,summary:m.summary,parentId:c,depth:d}),m.type!=="scene"&&m.children&&o(m.children,m.id,d+1)};return o(t.children,null,0),r}function Yv(t){const r={};let o=0;for(const a of t){if(a.depth!==0)continue;const c=Ur.padX+o*Ur.colGap;let d=Ur.padY;r[a.id]={x:c,y:d},d+=As[a.type]+Ur.rowGap;for(const m of t)if(m.parentId===a.id){r[m.id]={x:c+Ur.indentChapter,y:d},d+=As[m.type]+Ur.rowGap;for(const g of t)g.parentId===m.id&&(r[g.id]={x:c+Ur.indentScene,y:d},d+=As.scene+Ur.rowGap)}o+=1}return r}function MS(t){return`${aM}${t}`}function iM(t){if(typeof t!="object"||t===null)return null;const r=t.nodes;if(typeof r!="object"||r===null||Array.isArray(r))return null;const o={};for(const[d,m]of Object.entries(r)){if(typeof m!="object"||m===null)return null;const g=m;if(typeof g.x!="number"||typeof g.y!="number"||!Number.isFinite(g.x)||!Number.isFinite(g.y))return null;o[d]={x:g.x,y:g.y}}const a=t.zoom,c=typeof a=="number"&&Number.isFinite(a)?Fm(a):1;return{nodes:o,zoom:c}}function cM(t){try{const r=localStorage.getItem(MS(t));return r===null?null:iM(JSON.parse(r))}catch{return null}}function fm(t,r){try{localStorage.setItem(MS(t),JSON.stringify(r))}catch{}}function Vv(t,r,o){const a={};for(const c of o)a[c.id]=t?.[c.id]??r[c.id];return a}function uM(t){const r=[];for(const o of t){if(o.relationType!==Sj||o.sourceType!=="outline_node"||o.targetType!=="outline_node")continue;const a=o.metadata?.label,c=typeof a=="string"&&a.trim()!==""?a.trim():void 0;r.push({id:o.id,sourceId:o.sourceId,targetId:o.targetId,label:c})}return r.sort((o,a)=>o.id<a.id?-1:o.id>a.id?1:0),r}function dM(t){return t.filter(r=>r.type==="scene")}function fM(t,r){return t.filter(o=>r.has(o.sourceId)&&r.has(o.targetId))}function Fv(t,r){const o=Math.max(32,Math.abs(r.x-t.x)*.5),a=t.x+o,c=r.x-o;return`M ${t.x} ${t.y} C ${a} ${t.y}, ${c} ${r.y}, ${r.x} ${r.y}`}function mM(t,r){const o=Math.max(32,Math.abs(r.x-t.x)*.5),a={x:t.x+o,y:t.y},c={x:r.x-o,y:r.y};return{x:(t.x+3*a.x+3*c.x+r.x)/8,y:(t.y+3*a.y+3*c.y+r.y)/8}}function mm(t,r){return{x:t.x+So[r]/2,y:t.y+As[r]/2}}function Gv(t,r,o,a){const c=r.x-t.x,d=r.y-t.y;if(c===0&&d===0)return t;const m=c===0?Number.POSITIVE_INFINITY:o/2/Math.abs(c),g=d===0?Number.POSITIVE_INFINITY:a/2/Math.abs(d),b=Math.min(m,g);return{x:t.x+b*c,y:t.y+b*d}}const Cs={highlight:"#a855f7",scene:"#f59e0b",chapter:"#3b82f6",volume:"#06b6d4",default:"#94a3b8"};function pM(t,r={}){if(r.onPath||r.selected)return Cs.highlight;switch(t){case"scene":return Cs.scene;case"chapter":return Cs.chapter;case"volume":return Cs.volume;default:return Cs.default}}function hM(t={}){return t.onPath||t.selected?2.5:1.5}function gM(t={}){return t.offPath?.2:1}const AS="canvas-edge-arrow";function xM(){return`url(#${AS})`}const ru={w:180,h:120},Bc=4,bM=1,yM=.02;function vM(t,r,o,a){let c=Number.POSITIVE_INFINITY,d=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY,b=0;for(const w of t){const V=r[w.id];V&&(c=Math.min(c,V.x),d=Math.min(d,V.y),m=Math.max(m,V.x+So[w.type]),g=Math.max(g,V.y+As[w.type]),b+=1)}if(b===0)return{nodeRects:[],viewportRect:null};const p=m-c,y=g-d,x=ru.w-2*Bc,S=ru.h-2*Bc,j=Math.min(x/p,S/y),E=Math.min(bM,Math.max(yM,j)),k=Bc+(x-p*E)/2,O=Bc+(S-y*E)/2,N=[];for(const w of t){const V=r[w.id];V&&N.push({id:w.id,x:k+(V.x-c)*E,y:O+(V.y-d)*E,w:So[w.type]*E,h:As[w.type]*E,type:w.type})}let T=null;const _=o>0?o:1;if(a!==null&&a.width>0&&a.height>0){const w={x:a.x/_,y:a.y/_,width:a.width/_,height:a.height/_};T={x:k+(w.x-c)*E,y:O+(w.y-d)*E,w:w.width*E,h:w.height*E}}return{nodeRects:N,viewportRect:T}}function SM(t,r){const o=new Set([t]),a=new Set,c=[t];for(;c.length>0;){const d=c.pop();for(const m of r)m.sourceId!==d||a.has(m.id)||(a.add(m.id),o.has(m.targetId)||(o.add(m.targetId),c.push(m.targetId)))}return{nodeIds:o,edgeIds:a}}function qv(t){switch(t){case"RELATION_EXISTS":return"这条连线已经存在";case"VALIDATION_ERROR":return"连线参数有误";case"CLIENT_NETWORK_ERROR":return"无法连接服务,请确认 ai-editor 服务已启动";default:return null}}function EM(){const t=He(se=>se.outline),r=He(se=>se.outlineLoading),o=He(se=>se.config),a=He(se=>se.configLoading),c=He(se=>se.loadOutline),[d,m]=h.useState({}),[g,b]=h.useState(1),[p,y]=h.useState(!1),[x,S]=h.useState(!0),[j,E]=h.useState(!1),[k,O]=h.useState(null),[N,T]=h.useState(null),[_,w]=h.useState(null),[V,M]=h.useState(null),[L,C]=h.useState(null),[Z,re]=h.useState(null),[ie,te]=h.useState(null),[K,ne]=h.useState(null),[W,D]=h.useState(null),[z,P]=h.useState(null),[U,F]=h.useState(!1),A=h.useRef(null),H=h.useRef(null),I=h.useRef(null),B=h.useRef(d);B.current=d;const G=h.useRef(0),Q=o?.id??null,he=o===null&&!a,le=h.useCallback(async()=>{if(Q===null)return;const ye=++G.current;try{const De=await Fr({source_type:"outline_node",relation_type:"plot_edge",depth:1});if(ye!==G.current)return;O(uM(De.relations)),T(null)}catch(De){if(ye!==G.current)return;T(De instanceof Ae?De.code:ut)}},[Q]);zs(()=>{c(),le()});const de=h.useMemo(()=>lM(t),[t]),Ue=h.useMemo(()=>new Map(de.map(se=>[se.id,se])),[de]),[Le,we]=h.useState(null);h.useEffect(()=>{if(Q===null){we(null),m({}),b(1);return}const se=cM(Q);we(Q),b(se?.zoom??1),m(se?.nodes??{})},[Q]);const Be=Le===Q;h.useEffect(()=>{de.length===0||!Be||m(se=>Vv(se,Yv(de),de))},[de,Be]),h.useEffect(()=>{if(!(Q===null||!Be))return I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{fm(Q,{nodes:d,zoom:g})},300),()=>{I.current!==null&&(window.clearTimeout(I.current),I.current=null,B.current===d&&Q!==null&&Be&&fm(Q,{nodes:d,zoom:g}))}},[d,Q,g,Be]),h.useEffect(()=>{Q===null||!Be||fm(Q,{nodes:d,zoom:g})},[g,Q,Be]),h.useEffect(()=>{t===null&&!r&&!j&&(E(!0),c())},[t,r,j,c]),h.useEffect(()=>{if(Q===null){O(null),T(null);return}le()},[Q,le]),h.useEffect(()=>{if(t===null){w(null);return}let se=!1;return Promise.all(Qp.map(ye=>Fr({source_type:"outline_node",relation_type:ye,depth:1}).then(De=>De.relations).catch(()=>[]))).then(ye=>{se||w(ES(ye.flat()))}),()=>{se=!0}},[t]);const ge=h.useRef(null),q=h.useRef(null),Me=h.useCallback(()=>{const se=A.current,ye=H.current;if(se===null||ye===null)return;const De=se.getBoundingClientRect(),Ze=ye.getBoundingClientRect(),nt={x:Math.round(De.left-Ze.left),y:Math.round(De.top-Ze.top),width:Math.round(De.width),height:Math.round(De.height)};re(at=>at!==null&&at.x===nt.x&&at.y===nt.y&&at.width===nt.width&&at.height===nt.height?at:nt)},[]),Oe=h.useCallback(se=>{if(A.current=se,ge.current?.(),ge.current=null,q.current?.(),q.current=null,se===null)return;const ye=Ze=>{Ze.preventDefault(),b(nt=>Fm(Math.round((nt+(Ze.deltaY<0?.1:-.1))*10)/10))};se.addEventListener("wheel",ye,{passive:!1}),ge.current=()=>se.removeEventListener("wheel",ye),Me();const De=new ResizeObserver(()=>Me());De.observe(se),q.current=()=>De.disconnect()},[Me]);h.useEffect(()=>()=>{ge.current?.(),ge.current=null,q.current?.(),q.current=null},[]),h.useEffect(()=>{if(K===null)return;const se=ye=>{ye.key==="Escape"&&ne(null)};return window.addEventListener("keydown",se),()=>window.removeEventListener("keydown",se)},[K]);const _e=p?dM(de):de,be=h.useMemo(()=>new Set(_e.map(se=>se.id)),[_e]),Ie=h.useMemo(()=>fM(k??[],be),[k,be]);h.useEffect(()=>{L!==null&&!be.has(L)&&C(null)},[L,be]);const Ve=h.useMemo(()=>{const se=[];for(const ye of Ie){const De=d[ye.sourceId],Ze=d[ye.targetId],nt=Ue.get(ye.sourceId),at=Ue.get(ye.targetId);if(!De||!Ze||!nt||!at)continue;const rt=mm(De,nt.type),$t=mm(Ze,at.type),Zn=Gv(rt,$t,So[nt.type],As[nt.type]),Jt=Gv($t,rt,So[at.type],As[at.type]);se.push({edge:ye,d:Fv(Zn,Jt),mid:mM(Zn,Jt),targetType:at.type})}return se},[Ie,d,Ue]),Pe=h.useMemo(()=>L!==null&&K===null?SM(L,Ie):null,[L,K,Ie]),ee=h.useMemo(()=>Ve.map(se=>{const ye=se.edge.id===V,De=Pe?.edgeIds.has(se.edge.id)??!1;return{...se,stroke:pM(se.targetType,{onPath:De,selected:ye}),strokeWidth:hM({onPath:De,selected:ye}),opacity:gM({offPath:Pe!==null&&!De}),dash:De||ye}}),[Ve,Pe,V]),Y=h.useMemo(()=>vM(_e,d,g,Z),[_e,d,g,Z]),$=h.useMemo(()=>{let se=0,ye=0;for(const De of de){const Ze=d[De.id];Ze&&(se=Math.max(se,Ze.x+So[De.type]),ye=Math.max(ye,Ze.y+As[De.type]))}return{w:se+96,h:ye+96}},[de,d]),Te=h.useMemo(()=>Ve.find(se=>se.edge.id===V)??null,[Ve,V]),xe=h.useMemo(()=>{if(K===null||W===null)return null;const se=Ue.get(K),ye=d[K];return!se||!ye?null:Fv(mm(ye,se.type),W)},[K,W,d,Ue]);function ae(se,ye){const De=H.current?.getBoundingClientRect();return De?{x:(se-De.left)/g,y:(ye-De.top)/g}:{x:0,y:0}}function ke(se,ye){if(se.target.closest("[data-canvas-handle]")||se.button!==0)return;se.preventDefault();const De=d[ye.id];De&&(se.currentTarget.setPointerCapture(se.pointerId),te({nodeId:ye.id,startClientX:se.clientX,startClientY:se.clientY,origX:De.x,origY:De.y}))}function Ye(se,ye){if(ie===null||ie.nodeId!==ye)return;const De=(se.clientX-ie.startClientX)/g,Ze=(se.clientY-ie.startClientY)/g;m(nt=>nt[ye]?{...nt,[ye]:{x:ie.origX+De,y:ie.origY+Ze}}:nt)}function We(){te(null)}function pt(se,ye){se.stopPropagation(),se.preventDefault(),se.button===0&&(se.currentTarget.setPointerCapture(se.pointerId),M(null),ne(ye.id),D(ae(se.clientX,se.clientY)))}function At(se){K!==null&&D(ae(se.clientX,se.clientY))}async function mt(se){if(K===null)return;const ye=K,nt=document.elementFromPoint(se.clientX,se.clientY)?.closest("[data-canvas-node-id]")?.getAttribute("data-canvas-node-id")??null;if(ne(null),D(null),!(nt===null||nt===ye))try{await cr({source_type:"outline_node",source_id:ye,target_type:"outline_node",target_id:nt,relation_type:"plot_edge"}),Re.getState().showToast("已建立连线"),await le()}catch(at){const rt=at instanceof Ae?at.code:null,$t=qv(rt);if($t!==null){Re.getState().showToast($t,"error"),await le();return}Re.getState().showToast(at instanceof Ae?at.message:"创建失败,请重试","error")}}const Tt=h.useRef(!1);function Rt(se){Tt.current=!1,P({edgeId:se.id,draft:se.label??""})}async function Lt(se,ye){if(!U){F(!0),P(null);try{const De=ye.trim();await i2(se,De===""?{}:{label:De}),Re.getState().showToast("已保存标签"),await le()}catch(De){Re.getState().showToast(De instanceof Ae?De.message:"保存失败,请重试","error")}finally{F(!1)}}}function Ce(se){se.key==="Enter"?(se.preventDefault(),Tt.current=!0,z!==null&&Lt(z.edgeId,z.draft)):se.key==="Escape"&&(se.preventDefault(),Tt.current=!0,P(null))}function Se(){Tt.current||z!==null&&Lt(z.edgeId,z.draft)}async function Ge(){if(Te===null)return;const se=Te.edge;if(await Re.getState().confirm({title:"删除连线",description:`删除连线「${se.label??"未命名"}」?物理删除不可恢复,可随时重建。`,danger:!0}))try{Tt.current=!0,P(null),await Ca(se.id),Re.getState().showToast("已删除连线"),M(null),await le()}catch(De){const Ze=De instanceof Ae?De.code:null,nt=qv(Ze);Re.getState().showToast(nt??(De instanceof Ae?De.message:"删除失败,请重试"),"error"),Ze==="RELATION_NOT_FOUND"&&(M(null),await le())}}function Ot(){m(se=>Vv(se,Yv(de),de))}function Yt(se){b(ye=>Fm(Math.round((ye+se)*10)/10))}return i.jsxs("section",{className:"flex h-full min-h-0 flex-col gap-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[i.jsx("h1",{className:"mr-auto font-serif text-xl font-medium",children:"画布"}),i.jsx(me,{variant:"outline",type:"button",onClick:Ot,disabled:de.length===0,children:"重新布局"}),i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(me,{variant:"outline",size:"icon-sm",type:"button","aria-label":"缩小",disabled:g<=kS,onClick:()=>Yt(-.1),children:i.jsx(aT,{})}),i.jsxs("span",{className:"w-12 text-center text-sm text-muted-foreground tabular-nums",children:[Math.round(g*100),"%"]}),i.jsx(me,{variant:"outline",size:"icon-sm",type:"button","aria-label":"放大",disabled:g>=_S,onClick:()=>Yt(.1),children:i.jsx(lu,{})})]}),i.jsx("div",{className:"flex items-center gap-1 rounded-lg bg-secondary/30 p-1",role:"group","aria-label":"显示模式",children:[!1,!0].map(se=>i.jsx("button",{type:"button",onClick:()=>y(se),"aria-pressed":p===se,className:Ee("rounded-md border border-border px-2.5 py-1 text-xs transition-colors",p===se?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:se?"仅场景":"全部节点"},String(se)))}),i.jsxs(me,{variant:"outline",size:"sm",type:"button",onClick:()=>S(se=>!se),"aria-expanded":x,children:[i.jsx(c0,{}),"画布说明"]})]}),x&&i.jsxs("p",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:["连线与坐标仅用于推演展示,不参与状态计算",i.jsx("button",{type:"button",className:"rounded p-0.5 hover:bg-muted hover:text-foreground","aria-label":"收起说明",onClick:()=>S(!1),children:i.jsx(hs,{className:"size-3"})})]}),N!==null&&i.jsxs("div",{className:Ee(ni),children:[N===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"连线加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{le()},children:"重试"})]}),he?i.jsxs("div",{className:"rounded-md border border-dashed border-border px-6 py-10 text-center",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"未打开项目,无法查看画布"}),i.jsx("a",{href:"#/",className:"mt-2 inline-block text-sm text-muted-foreground underline hover:text-foreground",children:"回到首页打开或创建书籍"})]}):r&&t===null?i.jsx("div",{className:"flex-1 overflow-hidden rounded-md border border-border bg-muted/20 p-4",children:Array.from({length:3},(se,ye)=>i.jsxs("div",{className:"mb-4 flex gap-4",children:[i.jsx("div",{className:Ee(_t,"h-24 w-60 rounded-lg")}),i.jsx("div",{className:Ee(_t,"mt-6 h-24 w-52 rounded-lg")}),i.jsx("div",{className:Ee(_t,"mt-12 h-20 w-44 rounded-lg")})]},ye))}):t===null?i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:["大纲加载失败",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>E(!1),children:"重试"})]}):t.children.length===0?i.jsx(Bn,{action:i.jsx(me,{type:"button",onClick:()=>on("/outline"),children:"去大纲"}),children:"大纲还是空的,先去搭大纲"}):_e.length===0?i.jsx(Bn,{action:i.jsx(me,{variant:"outline",type:"button",onClick:()=>y(!1),children:"显示全部节点"}),children:"当前大纲还没有场景节点"}):i.jsxs("div",{ref:Oe,className:"relative min-h-0 flex-1 overflow-auto rounded-md border border-border bg-muted/20",onScroll:Me,onClick:se=>{se.target===se.currentTarget&&M(null)},children:[i.jsxs("div",{ref:H,className:"relative",style:{width:$.w,height:$.h,transform:`scale(${g})`,transformOrigin:"0 0"},onClick:se=>{se.target===se.currentTarget&&M(null)},children:[i.jsxs("svg",{className:"pointer-events-none absolute top-0 left-0",width:$.w,height:$.h,style:{overflow:"visible"},children:[i.jsx("defs",{children:i.jsx("marker",{id:AS,viewBox:"0 0 10 10",refX:10,refY:5,markerWidth:10,markerHeight:10,markerUnits:"userSpaceOnUse",orient:"auto",children:i.jsx("path",{d:"M 0 0 L 10 5 L 0 10 Z",fill:"context-stroke"})})}),ee.map(({edge:se,d:ye,stroke:De,strokeWidth:Ze,opacity:nt,dash:at})=>{const rt=se.id===V;return i.jsxs("g",{opacity:nt,children:[i.jsx("path",{d:ye,fill:"none",stroke:De,strokeWidth:Ze,strokeDasharray:at?"6 4":void 0,vectorEffect:"non-scaling-stroke",markerEnd:xM(),className:at?"canvas-edge-flow":void 0}),i.jsx("path",{d:ye,fill:"none",stroke:"transparent",strokeWidth:14,vectorEffect:"non-scaling-stroke",className:"pointer-events-auto cursor-pointer",onClick:()=>M(rt?null:se.id)})]},se.id)}),xe!==null&&i.jsx("path",{d:xe,fill:"none",stroke:"var(--primary)",strokeWidth:2,strokeDasharray:"6 4",vectorEffect:"non-scaling-stroke"})]}),ee.map(({edge:se,mid:ye,opacity:De})=>{const Ze=se.id===V;return Ze&&z!==null&&z.edgeId===se.id?i.jsx("div",{className:"absolute z-20 -translate-x-1/2 -translate-y-1/2",style:{left:ye.x,top:ye.y},children:i.jsx(Mt,{value:z.draft,onChange:at=>P({edgeId:se.id,draft:at.target.value}),onKeyDown:Ce,onBlur:Se,onFocus:at=>at.currentTarget.select(),maxLength:50,placeholder:"+ 标签",autoFocus:!0,"aria-label":"编辑连线标签",className:"h-7 w-44 rounded-md px-1.5 py-0.5 text-xs"})},`label-${se.id}`):i.jsx("span",{className:Ee("pointer-events-none absolute max-w-44 -translate-x-1/2 -translate-y-1/2 truncate rounded border bg-card px-1.5 py-0.5 text-[10px] whitespace-nowrap text-muted-foreground",Ze&&"pointer-events-auto cursor-text"),style:{left:ye.x,top:ye.y,opacity:De,...Ze?{borderColor:Cs.highlight,color:Cs.highlight}:{}},title:Ze?se.label===void 0?"添加标签":"编辑标签":void 0,onClick:at=>{at.stopPropagation(),Rt(se)},children:se.label??(Ze?"+ 标签":"未命名连线")},`label-${se.id}`)}),Te!==null&&i.jsxs("div",{className:"absolute z-10 flex -translate-x-1/2 items-center gap-1 rounded-lg border border-border bg-card p-1 shadow-sm",style:{left:Te.mid.x,top:Te.mid.y+26},children:[i.jsx("span",{className:"max-w-36 truncate px-1.5 text-xs text-muted-foreground",children:Te.edge.label??"未命名连线"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>{Ge()},children:"删除连线"}),i.jsx("button",{type:"button","aria-label":"取消选择",className:"rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",onClick:()=>M(null),children:i.jsx(hs,{className:"size-3.5"})})]}),_e.map(se=>{const ye=d[se.id];if(!ye)return null;const De=_?.get(se.id)??[],Ze=K===se.id,nt=ie?.nodeId===se.id,at=Pe?.nodeIds.has(se.id)??!1;return i.jsxs("div",{"data-canvas-node-id":se.id,className:Ee("group absolute cursor-grab touch-none rounded-lg border bg-card p-2.5 transition-colors select-none active:cursor-grabbing",Ze?"border-primary ring-2 ring-ring/40":"border-border",nt&&"opacity-80"),style:{left:ye.x,top:ye.y,width:So[se.type],height:As[se.type],...Pe!==null?{opacity:at?1:.2,boxShadow:at?`0 0 0 2px ${Cs.highlight}`:void 0}:{}},title:"拖动调整位置",onPointerDown:rt=>ke(rt,se),onPointerMove:rt=>Ye(rt,se.id),onPointerUp:We,onMouseEnter:()=>C(se.id),onMouseLeave:()=>C(rt=>rt===se.id?null:rt),children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:is[se.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-medium text-foreground",title:se.title,children:se.title}),De.length>0&&i.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:De.map(rt=>i.jsx(SS,{mark:rt},`${rt.relationType}-${rt.hookId}`))})]}),se.summary&&i.jsx("p",{className:"mt-1 line-clamp-2 text-xs leading-4 text-muted-foreground",children:se.summary}),i.jsx("span",{"data-canvas-handle":!0,className:Ee("absolute top-1/2 -right-2 h-4 w-4 -translate-y-1/2 cursor-crosshair rounded-full border bg-card transition-colors",Ze?"border-primary bg-primary/10":"border-border hover:border-primary hover:bg-accent"),title:"拖出连线","aria-label":"拖出连线",onPointerDown:rt=>pt(rt,se),onPointerMove:At,onPointerUp:mt})]},se.id)})]}),i.jsx("div",{className:"pointer-events-none absolute right-2 bottom-2 z-10 overflow-hidden rounded-md border border-border bg-card/90 shadow-sm",children:i.jsxs("svg",{width:ru.w,height:ru.h,children:[Y.nodeRects.map(se=>i.jsx("rect",{x:se.x,y:se.y,width:se.w,height:se.h,rx:2,fill:Cs[se.type],opacity:.85},se.id)),Y.viewportRect!==null&&i.jsx("rect",{x:Y.viewportRect.x,y:Y.viewportRect.y,width:Y.viewportRect.w,height:Y.viewportRect.h,fill:"none",stroke:Cs.highlight,strokeWidth:1})]})})]})]})}const DS=h.createContext(void 0);function li(t){const r=h.useContext(DS);if(r===void 0&&!t)throw new Error(Tn(47));return r}function NM(){return{...Up(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,nested:!1,openOnHover:!1,closeDelay:0,hasViewport:!1}}const jM={...Yp,disabled:$e(t=>t.disabled),instantType:$e(t=>t.instantType),openMethod:$e(t=>t.openMethod),openChangeReason:$e(t=>t.openChangeReason),modal:$e(t=>t.modal),focusManagerModal:$e(t=>t.focusManagerModal),stickIfOpen:$e(t=>t.stickIfOpen),titleElementId:$e(t=>t.titleElementId),descriptionElementId:$e(t=>t.descriptionElementId),openOnHover:$e(t=>t.openOnHover),closeDelay:$e(t=>t.closeDelay),hasViewport:$e(t=>t.hasViewport)};class oh extends Nu{constructor(r,o,a=!1){const c={...NM(),...r},d=new ai;c.open&&r?.mounted===void 0&&(c.mounted=!0),c.floatingRootContext=$1(d,o,a),super(c,{popupRef:h.createRef(),backdropRef:h.createRef(),internalBackdropRef:h.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:h.createRef(),beforeContentFocusGuardRef:h.createRef(),stickIfOpenTimeout:new gs,triggerElements:d},jM)}setOpen=(r,o)=>{const a=o.reason===pn,c=o.reason===jo&&o.event.detail===0,d=!r&&(o.reason===pu||o.reason==null),m=V1(o),g=this.select("activeTriggerId");if(!r&&o.reason===X0&&o.trigger==null&&g!=null&&(o.trigger=this.context.triggerElements.getById(g)??this.select("activeTriggerElement")??void 0),this.context.onOpenChange?.(r,o),o.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(r,o);const b=()=>{const p={open:r,openChangeReason:o.reason};Lp(p,r,o.trigger,m()),this.update(p)};a?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(x1,()=>{this.set("stickIfOpen",!1)}),dr.flushSync(b)):b(),c||d?this.set("instantType",c?"click":"dismiss"):o.reason===To?this.set("instantType","focus"):this.set("instantType",void 0)};static useStore(r,o){const{store:a,internalStore:c}=Y1(r,(d,m)=>new oh(o,d,m));return h.useEffect(()=>c?.disposeEffect(),[c]),a}disposeEffect=()=>this.context.stickIfOpenTimeout.disposeEffect()}function $v({props:t}){const{children:r,open:o,defaultOpen:a=!1,onOpenChange:c,onOpenChangeComplete:d,modal:m=!1,handle:g,triggerId:b,defaultTriggerId:p=null}=t,y=oh.useStore(g?.store,{modal:m,open:a,openProp:o,activeTriggerId:p,triggerIdProp:b});F1(y,o,a,p),y.useControlledProp("openProp",o),y.useControlledProp("triggerIdProp",b);const x=y.useState("open"),S=y.useState("mounted"),j=y.useState("payload"),E=pr()!=null;y.useContextCallback("onOpenChange",c),y.useContextCallback("onOpenChangeComplete",d),q1(y,x),Ip(y);const{forceUnmount:k}=Bp(x,y,()=>{y.update({stickIfOpen:!0,openChangeReason:null})});y.useSyncedValues({modal:m,nested:E}),h.useEffect(()=>{x||y.context.stickIfOpenTimeout.clear()},[y,x]);const O=h.useCallback(()=>{y.setOpen(!1,jt(bp))},[y]);h.useImperativeHandle(t.actionsRef,()=>({unmount:k,close:O}),[k,O]);const N=x||S,T=h.useMemo(()=>({store:y}),[y]);return i.jsxs(DS.Provider,{value:T,children:[N&&i.jsx(wM,{store:y,modal:m}),typeof r=="function"?r({payload:j}):r]})}function TM(t){return li(!0)?i.jsx($v,{props:t}):i.jsx(w1,{children:i.jsx($v,{props:t})})}function wM({store:t,modal:r}){const o=t.useState("floatingRootContext"),a=Dp(o,{outsidePressEvent:{mouse:r==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),c=a.reference??Ft,d=a.trigger??Ft,m=h.useMemo(()=>or(Tu,a.floating),[a.floating]);return Hp(t,{activeTriggerProps:c,inactiveTriggerProps:d,popupProps:m}),null}const CM=300,RM=h.forwardRef(function(r,o){const{render:a,className:c,style:d,disabled:m=!1,nativeButton:g=!0,handle:b,payload:p,openOnHover:y=!1,delay:x=CM,closeDelay:S=0,id:j,...E}=r,k=li(!0),O=b?.store??k?.store;if(!O)throw new Error(Tn(74));const N=Mo(j),T=O.useState("isTriggerActive",N),_=O.useState("floatingRootContext"),w=O.useState("isOpenedByTrigger",N),V=O.useState("triggerPopupId",N),M=h.useRef(null),{registerTrigger:L,isMountedByThisTrigger:C}=G1(N,M,O,{payload:p,disabled:m,openOnHover:y,closeDelay:S}),Z=O.useState("openChangeReason"),re=O.useState("stickIfOpen"),ie=O.useState("openMethod"),te=O.useState("focusManagerModal"),K=J1(_,{enabled:!m&&_!=null&&y&&(ie!=="touch"||Z!==jo),mouseOnly:!0,move:!1,handleClose:W1(),restMs:x,delay:{close:S},triggerElementRef:M,isActiveTrigger:T,isClosing:()=>O.select("transitionStatus")==="ending"}),ne=C1(_,{enabled:_!=null,stickIfOpen:re}),W=uS(()=>O.select("open"),G=>{O.set("openMethod",G)}),D=O.useState("triggerProps",C),{getButtonProps:z,buttonRef:P}=si({disabled:m,native:g}),U={open(G){return G&&Z===jo?Rm.open(G):bC.open(G)}},{preFocusGuardRef:F,handlePreFocusGuardFocus:A,handleFocusTargetFocus:H}=fS(O,M),B=hn("button",r,{state:{disabled:m,open:w},ref:[P,o,L,M],props:[ne.reference,K,D,W,{[b1]:"",id:N,"aria-haspopup":"dialog","aria-expanded":w,"aria-controls":V},E,z],stateAttributesMapping:U});return C&&!te?i.jsxs(h.Fragment,{children:[i.jsx(Gr,{ref:F,onFocus:A}),i.jsx(h.Fragment,{children:B},N),i.jsx(Gr,{ref:O.context.triggerFocusTargetRef,onFocus:H})]}):i.jsx(h.Fragment,{children:B},N)}),zS=h.createContext(void 0);function OM(){const t=h.useContext(zS);if(t===void 0)throw new Error(Tn(45));return t}const kM=h.forwardRef(function(r,o){const{keepMounted:a=!1,...c}=r,{store:d}=li();return d.useState("mounted")||a?i.jsx(zS.Provider,{value:a,children:i.jsx(Op,{ref:o,...c})}):null}),LS=h.createContext(void 0);function _M(){const t=h.useContext(LS);if(!t)throw new Error(Tn(46));return t}const MM=h.forwardRef(function(r,o){const{render:a,className:c,style:d,anchor:m,positionMethod:g="absolute",side:b="bottom",align:p="center",sideOffset:y=0,alignOffset:x=0,collisionBoundary:S="clipping-ancestors",collisionPadding:j=5,arrowPadding:E=5,sticky:k=!1,disableAnchorTracking:O=!1,collisionAvoidance:N=y1,...T}=r,{store:_}=li(),w=OM(),V=_p(),M=_.useState("floatingRootContext"),L=_.useState("mounted"),C=_.useState("open"),Z=_.useState("openChangeReason"),re=_.useState("activeTriggerElement"),ie=_.useState("modal"),te=_.useState("openMethod"),K=_.useState("positionerElement"),ne=_.useState("instantType"),W=_.useState("transitionStatus"),D=_.useState("hasViewport"),z=h.useRef(null),P=Ep(K,!1,!1),U=oS({anchor:m,floatingRootContext:M,positionMethod:g,mounted:L,side:b,sideOffset:y,align:p,alignOffset:x,arrowPadding:E,collisionBoundary:S,collisionPadding:j,sticky:k,disableAnchorTracking:O,keepMounted:w,nodeId:V,collisionAvoidance:N,adaptiveOrigin:D?sS:void 0}),F=M.useState("domReferenceElement");Qe(()=>{const B=F,G=z.current;if(B&&(z.current=B),G&&B&&B!==G){_.set("instantType",void 0);const Q=new AbortController;return P(()=>{_.set("instantType","trigger-change")},Q.signal),()=>{Q.abort()}}},[F,P,_]),iS(C&&ie===!0&&Z!==pn,te==="touch",K,re);const A=h.useCallback(B=>{_.set("positionerElement",B)},[_]),H={open:C,side:U.side,align:U.align,anchorHidden:U.anchorHidden,instant:ne},I=aS(r,H,{styles:U.positionerStyles,transitionStatus:W,props:T,refs:[o,A],hidden:!L,inert:!C});return i.jsxs(LS.Provider,{value:U,children:[L&&ie===!0&&Z!==pn&&i.jsx($p,{ref:_.context.internalBackdropRef,inert:qp(!C),cutout:re}),i.jsx(T1,{id:V,children:I})]})}),AM=h.createContext(void 0);function DM(){const[t,r]=h.useState(0),o=st(()=>(r(c=>c+1),()=>{r(c=>Math.max(0,c-1))}));return{context:h.useMemo(()=>({register:o}),[o]),hasClosePart:t>0}}function zM(t){const{value:r,children:o}=t;return i.jsx(AM.Provider,{value:r,children:o})}const LM={...ri,...fu},IM=h.forwardRef(function(r,o){const{render:a,className:c,style:d,initialFocus:m,finalFocus:g,...b}=r,{store:p}=li(),y=_M(),x=eS()!=null,{context:S,hasClosePart:j}=DM(),E=p.useState("open"),k=p.useState("openMethod"),O=p.useState("instantType"),N=p.useState("transitionStatus"),T=p.useState("popupProps"),_=p.useState("titleElementId"),w=p.useState("descriptionElementId"),V=p.useState("modal"),M=p.useState("mounted"),L=p.useState("openChangeReason"),C=p.useState("activeTriggerElement"),Z=p.useState("floatingRootContext"),re=Z.useState("floatingId"),ie=p.useState("disabled"),te=p.useState("openOnHover"),K=p.useState("closeDelay"),ne=b.id??re;xu({open:E,ref:p.context.popupRef,onComplete(){E&&p.context.onOpenChangeComplete?.(!0)}}),Z1(Z,{enabled:te&&!ie,closeDelay:K});const W=m===void 0?P1(p.context.popupRef):m,D=V!==!1&&j;p.useSyncedValue("focusManagerModal",D);const z=h.useCallback(F=>{p.set("popupElement",F)},[p]),P={open:E,side:y.side,align:y.align,instant:O,transitionStatus:N},U=hn("div",r,{state:P,ref:[o,p.context.popupRef,z],props:[T,{id:ne,role:"dialog",...Tu,"aria-labelledby":_,"aria-describedby":w,onKeyDown(F){x&&Fp.has(F.key)&&F.stopPropagation()}},Gp(N),b],stateAttributesMapping:LM});return i.jsx(Ap,{context:Z,openInteractionType:k,modal:D,disabled:!M||L===pn,initialFocus:W,returnFocus:g,restoreFocus:"popup",previousFocusableElement:Vt(C)?C:void 0,nextFocusableElement:p.context.triggerFocusTargetRef,beforeContentFocusGuardRef:p.context.beforeContentFocusGuardRef,children:i.jsx(zM,{value:S,children:U})})});function IS({...t}){return i.jsx(TM,{"data-slot":"popover",...t})}function BS({...t}){return i.jsx(RM,{"data-slot":"popover-trigger",...t})}function HS({align:t="start",alignOffset:r=0,side:o="bottom",sideOffset:a=8,className:c,...d}){return i.jsx(kM,{children:i.jsx(MM,{className:"isolate z-50 outline-none",align:t,alignOffset:r,side:o,sideOffset:a,children:i.jsx(IM,{"data-slot":"popover-content",className:Ee("z-50 min-w-64 origin-(--transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",c),...d})})})}const BM=100;function US({value:t,valueName:r,excludeIds:o,onChange:a,placeholder:c="上级设定(选填)"}){const[d,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(""),[x,S]=h.useState(!1),[j,E]=h.useState(!1);async function k(){S(!0),E(!1);try{const N=await jn("setting",{q:p.trim()||void 0,limit:BM,sort:"name"});b(o&&o.length>0?N.items.filter(T=>!o.includes(T.id)):N.items)}catch{b(null),E(!0)}finally{S(!1)}}h.useEffect(()=>{d&&k()},[d]),h.useEffect(()=>{if(!d)return;const N=setTimeout(()=>{k()},300);return()=>clearTimeout(N)},[p,d]);const O=t?r??g?.find(N=>N.id===t)?.name??t:"";return i.jsxs(IS,{open:d,onOpenChange:m,children:[i.jsx(BS,{render:i.jsxs(me,{variant:"outline",type:"button",className:Ee("h-8 px-2 text-xs font-normal",!t&&"text-muted-foreground"),title:t?`上级设定:${O}`:c,children:[t?`上级:${O}`:c,i.jsx("span",{"aria-hidden":"true",className:"ml-1 text-muted-foreground",children:"▾"})]})}),i.jsxs(HS,{className:"flex w-72 flex-col gap-2 p-2",children:[i.jsx(Mt,{value:p,onChange:N=>y(N.target.value),placeholder:"搜索设定名称…",className:"h-8 text-sm",autoFocus:!0}),i.jsx("div",{className:"flex max-h-56 flex-col gap-0.5 overflow-y-auto",children:x&&g===null?i.jsx("p",{className:"px-2 py-3 text-center text-xs text-muted-foreground",children:"加载中…"}):j?i.jsxs("div",{className:"flex items-center justify-between gap-2 px-2 py-3",children:[i.jsx("span",{className:"text-xs text-destructive",children:"列表加载失败"}),i.jsx(me,{variant:"outline",type:"button",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>{k()},children:"重试"})]}):g!==null&&g.length===0?i.jsx("p",{className:"px-2 py-3 text-center text-xs text-muted-foreground",children:p?"没有匹配的设定":"还没有其他设定"}):g?.map(N=>{const T=typeof N.summary?.category=="string"?N.summary.category:"";return i.jsxs("button",{type:"button",onClick:()=>{a(N.id),m(!1)},className:Ee("flex min-w-0 items-baseline gap-2 rounded-md px-2 py-1.5 text-left text-sm text-foreground hover:bg-muted hover:text-foreground",N.id===t&&"bg-muted/70"),children:[i.jsx("span",{className:"min-w-0 truncate",children:N.name}),T&&i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:T})]},N.id)})})]})]})}function HM(t,r){const o=new Map;for(const b of t)o.set(b.id,b);const a=new Map,c=new Map;for(const b of r){a.set(b.childId,b.parentId);const p=c.get(b.parentId)??[];p.push(b.childId),c.set(b.parentId,p)}function d(b){const p=o.get(b);if(p===void 0)return null;const y={id:p.id,name:p.name,...typeof p.category=="string"&&p.category!==""?{category:p.category}:{},children:[]},x=c.get(b)??[];for(const S of x){const j=d(S);j!==null&&y.children.push(j)}return y}const m=[];let g=!1;for(const b of t){const p=a.get(b.id);p===void 0?m.push(d(b.id)):o.has(p)||(g=!0,m.push(d(b.id)))}return{roots:m,hasOrphanEdges:g}}const Hc=200;function PS({node:t,depth:r}){const[o,a]=h.useState(!0),c=t.children.length>0;return i.jsxs("li",{children:[i.jsxs("div",{className:"flex items-center gap-1.5 py-1",style:{paddingLeft:`${r*16}px`},children:[i.jsx("button",{type:"button","aria-label":c?o?"折叠":"展开":void 0,className:Ee("shrink-0 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",!c&&"invisible"),onClick:()=>a(d=>!d),disabled:!c,children:i.jsx("svg",{viewBox:"0 0 16 16",className:Ee("size-3.5 transition-transform",!o&&"-rotate-90"),fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:i.jsx("path",{d:"m6 4 4 4-4 4",strokeLinecap:"round",strokeLinejoin:"round"})})}),i.jsx("button",{type:"button",onClick:()=>on(`/entities/setting/${t.id}`),title:`打开《${t.name}》`,className:"min-w-0 truncate rounded-md px-1 py-0.5 text-sm text-foreground hover:bg-muted hover:text-foreground",children:t.name}),t.category&&i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:t.category}),c&&i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground/70",children:[t.children.length," 个子设定"]})]}),c&&o&&i.jsx("ul",{children:t.children.map(d=>i.jsx(PS,{node:d,depth:r+1},d.id))})]})}function UM({reloadKey:t}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[d,m]=h.useState(!1),[g,b]=h.useState(!1),[p,y]=h.useState(!1),[x,S]=h.useState(0);return h.useEffect(()=>{let j=!1;return b(!0),y(!1),o(null),(async()=>{try{const[E,k]=await Promise.all([jn("setting",{limit:Hc,sort:"name"}),Fr({source_type:"setting",target_type:"setting",relation_type:"belongs_to",depth:1})]);if(j)return;const O=k.relations.map(T=>({childId:T.sourceId,parentId:T.targetId})),N=HM(E.items,O);o(N.roots),m(N.hasOrphanEdges),c(E.total>Hc)}catch{j||y(!0),o(null)}finally{j||b(!1)}})(),()=>{j=!0}},[t,x]),p?i.jsxs("div",{className:"mt-3 flex items-center justify-center gap-3 rounded-md border border-border px-3 py-6 text-sm text-muted-foreground",children:["设定树加载失败",i.jsx(me,{variant:"outline",type:"button",size:"sm",onClick:()=>S(j=>j+1),children:"重试"})]}):g&&r===null?i.jsx("div",{className:"mt-3 flex flex-col gap-1",children:Array.from({length:6},(j,E)=>i.jsx("div",{className:Ee(_t,"h-7"),style:{marginLeft:`${E%3*16}px`}},E))}):r!==null&&r.length===0?i.jsx(Bn,{className:"mt-3",action:i.jsx(me,{type:"button",onClick:()=>on("/entities/setting"),children:"去「设定」tab 新建"}),children:"还没有设定,先新建一个吧"}):i.jsxs("div",{className:"mt-3",children:[i.jsx("ul",{children:r?.map(j=>i.jsx(PS,{node:j,depth:0},j.id))}),(a||d)&&i.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:[a?`设定数量超过 ${Hc},仅展示前 ${Hc} 个(可按名称搜索定位);`:"",d?"部分设定的上级未在展示范围内,已作为独立节点展示。":""]})]})}function ou({id:t,options:r}){return r.length===0?null:i.jsx("datalist",{id:t,children:r.map(o=>i.jsx("option",{value:o},o))})}function pm(t){const r=new Set,o=[];for(const a of t)typeof a=="string"&&a!==""&&!r.has(a)&&(r.add(a),o.push(a));return o}const ja={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},Xv=[{value:"updated_at:desc",label:"更新时间(新→旧)",sort:"updated_at",order:"desc"},{value:"updated_at:asc",label:"更新时间(旧→新)",sort:"updated_at",order:"asc"},{value:"name:asc",label:"名称(A→Z)",sort:"name",order:"asc"},{value:"name:desc",label:"名称(Z→A)",sort:"name",order:"desc"},{value:"created_at:desc",label:"创建时间(新→旧)",sort:"created_at",order:"desc"},{value:"created_at:asc",label:"创建时间(旧→新)",sort:"created_at",order:"asc"}];function hm({type:t}){const r=t==="relations",o=t==="setting-tree",a=ka.includes(t)?t:"character",[c,d]=h.useState(null),[m,g]=h.useState(0),[b,p]=h.useState(!1),[y,x]=h.useState(null),[S,j]=h.useState(""),[E,k]=h.useState(""),[O,N]=h.useState(0),[T,_]=h.useState("updated_at"),[w,V]=h.useState("desc"),[M,L]=h.useState(""),[C,Z]=h.useState([]),[re,ie]=h.useState(0);zs(()=>ie(q=>q+1));const[te,K]=h.useState(!1),[ne,W]=h.useState(""),[D,z]=h.useState(""),[P,U]=h.useState(null),[F,A]=h.useState(!1),[H,I]=h.useState(null),B=D3[a],G=zv[a],Q=A3(m,Ol),he=Math.floor(O/Ol)+1,le=pm(c?.map(q=>q.name)??[]),de=G.key===""?[]:G.input==="tags"?pm((c??[]).flatMap(q=>Array.isArray(q.summary[G.key])?q.summary[G.key]:[])):pm(c?.map(q=>String(q.summary[G.key]??""))??[]);h.useEffect(()=>{j(""),k(""),N(0),_("updated_at"),V("desc"),L(""),d(null),x(null),K(!1),I(null)},[t]),h.useEffect(()=>{const q=setTimeout(()=>{k(S.trim()),N(0)},300);return()=>clearTimeout(q)},[S]),h.useEffect(()=>{if(r||o)return;let q=!1;return p(!0),x(null),jn(a,{q:E||void 0,offset:O,limit:Ol,sort:T,order:w,tag:M||void 0}).then(Me=>{q||(d(Me.items),g(Me.total))}).catch(Me=>{q||(d(null),x(Me instanceof Ae?Me.code:ut))}).finally(()=>{q||p(!1)}),()=>{q=!0}},[a,E,O,T,w,re,r,o,M]),h.useEffect(()=>{if(a!=="setting"||r||o){Z([]),L("");return}let q=!1;return jn("setting",{limit:200}).then(Me=>{if(q)return;const Oe=new Set;for(const _e of Me.items)if(Array.isArray(_e.summary.tags))for(const be of _e.summary.tags)typeof be=="string"&&be!==""&&Oe.add(be);Z(Array.from(Oe).sort())}).catch(()=>{}),()=>{q=!0}},[a,r,o,re]);function Ue(q){const Me=Xv.find(Oe=>Oe.value===q);Me&&(_(Me.sort),V(Me.order),N(0))}function Le(){W(""),z(""),I(null),U(null),K(!0)}function we(){K(!1),U(null)}async function Be(q){q.preventDefault();const Me=ne.trim();if(!Me){U("请输入名称");return}A(!0),U(null);try{const Oe=zv[a],_e={};Oe.key!==""&&D.trim()&&(Oe.input==="tags"?_e[Oe.key]=D.split(/[,,]/).map(Ie=>Ie.trim()).filter(Ie=>Ie!==""):_e[Oe.key]=D.trim());const be=await $c(a,{name:Me,data:_e});if(Re.getState().showToast(`已创建${ja[a]}《${Me}》`),a==="setting"&&H)try{await cr({source_type:"setting",source_id:be.id,target_type:"setting",target_id:H,relation_type:"belongs_to"})}catch{Re.getState().showToast("已创建,但上级设定关联失败,可进详情页重新设置","error")}K(!1),ie(Ie=>Ie+1)}catch(Oe){U(Oe instanceof Ae?Oe.message:"创建失败,请重试")}finally{A(!1)}}function ge(){j(""),k(""),N(0)}return i.jsxs("section",{children:[i.jsx("h1",{className:"mb-4 text-xl font-semibold",children:"实体"}),i.jsxs("div",{className:"flex flex-wrap items-center gap-3 border-b border-border pb-3",children:[i.jsxs("div",{className:"flex gap-1",children:[ka.map(q=>i.jsx("button",{type:"button",onClick:()=>on(`/entities/${q}`),className:Ee("rounded-md border border-border px-3 py-1.5 text-sm",!r&&!o&&a===q?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:ja[q]},q)),i.jsx("button",{type:"button",onClick:()=>on("/entities/relations"),className:Ee("rounded-md border border-border px-3 py-1.5 text-sm",r?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:"关联"}),i.jsx("button",{type:"button",onClick:()=>on("/entities/setting-tree"),className:Ee("rounded-md border border-border px-3 py-1.5 text-sm",o?"bg-foreground font-medium text-background":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:"设定树"})]}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[!r&&!o&&i.jsx(Mt,{value:S,onChange:q=>j(q.target.value),placeholder:`搜索${ja[a]}名称…`,className:"w-52"}),!o&&i.jsx(me,{type:"button",onClick:r?()=>K(!0):Le,children:r?"+ 建立关联":"+ 新建"})]})]}),r?i.jsx(CS,{reloadKey:re,onOpenCreate:()=>K(!0)}):o?i.jsx(UM,{reloadKey:re}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"mt-3 mb-2 flex items-center gap-3",children:[i.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["排序:",i.jsx("select",{value:`${T}:${w}`,onChange:q=>Ue(q.target.value),className:"rounded-md border border-border bg-background px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:Xv.map(q=>i.jsx("option",{value:q.value,children:q.label},q.value))})]}),a==="setting"&&i.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["标签:",i.jsxs("select",{value:M,onChange:q=>{L(q.target.value),N(0)},className:"rounded-md border border-border bg-background px-2 py-1 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:[i.jsx("option",{value:"",children:"全部"}),C.map(q=>i.jsx("option",{value:q,children:q},q))]})]}),i.jsxs("span",{className:"ml-auto text-sm text-muted-foreground/70",children:["共 ",m," 个"]})]}),te&&i.jsxs("form",{id:"create-entity-row",onSubmit:Be,className:"mb-3 flex flex-wrap items-center gap-2 rounded-md border border-border bg-card px-3 py-2",children:[i.jsx(Mt,{value:ne,onChange:q=>W(q.target.value),onKeyDown:q=>{q.key==="Escape"&&we()},placeholder:a==="character"?"名称(如:张三)":"名称",maxLength:100,disabled:F,autoFocus:!0,"aria-label":"名称",list:`entity-create-name-${a}`,className:"w-48"}),i.jsx(ou,{id:`entity-create-name-${a}`,options:le}),G.key!==""&&(G.input==="select"?i.jsxs("select",{value:D,onChange:q=>z(q.target.value),disabled:F,"aria-label":G.label,className:"rounded-md border border-input bg-background px-2 py-1.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50",children:[i.jsxs("option",{value:"",children:[G.label,"(选填)"]}),G.options?.map(q=>i.jsx("option",{value:q,children:Lc(a,G.key,q)},q))]}):i.jsx(Mt,{value:D,onChange:q=>z(q.target.value),placeholder:G.input==="tags"?`${G.label}(逗号分隔,如:势力,宗门)`:`${G.label}(选填)`,disabled:F,"aria-label":G.label,list:`entity-create-first-${a}`,className:G.input==="tags"?"w-56":"w-40"})),i.jsx(ou,{id:`entity-create-first-${a}`,options:de}),a==="setting"&&i.jsx(US,{value:H,onChange:I}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",size:"sm",onClick:we,disabled:F,children:"取消"}),i.jsx(me,{type:"submit",size:"sm",disabled:F,children:F?"创建中…":"创建"})]}),P&&i.jsx("p",{className:"w-full text-sm text-destructive",children:P})]}),y!==null&&i.jsxs("div",{className:"mb-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:[y===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"列表加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>ie(q=>q+1),children:"重试"})]}),b&&c===null&&y===null&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:Array.from({length:6},(q,Me)=>i.jsxs("div",{className:"flex items-center gap-3 border-b border-border/50 px-3 py-3 last:border-0",children:[i.jsx("div",{className:Ee(_t,"h-4 w-1/4")}),i.jsx("div",{className:Ee(_t,"h-4 w-1/6")}),B.key2&&i.jsx("div",{className:Ee(_t,"h-4 w-1/6")}),B.key3&&i.jsx("div",{className:Ee(_t,"h-4 w-1/6")}),i.jsx("div",{className:Ee(_t,"ml-auto h-4 w-16")})]},Me))}),!b&&c!==null&&c.length===0&&i.jsx(Bn,{className:"mt-3",action:E?i.jsx(me,{variant:"outline",type:"button",onClick:ge,children:"清空搜索"}):i.jsxs(me,{type:"button",onClick:Le,children:["+ 新建",ja[a]]}),children:E?`没有匹配「${E}」的${ja[a]}`:`还没有${ja[a]},新建一个`}),!b&&c!==null&&c.length>0&&i.jsx("div",{className:"overflow-hidden rounded-md border border-border",children:i.jsxs("table",{className:"w-full text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-border bg-muted/50 text-xs text-muted-foreground/70",children:[i.jsx("th",{className:"px-3 py-2 font-normal",children:"名称"}),i.jsx("th",{className:"px-3 py-2 font-normal",children:B.label1}),B.key2&&i.jsx("th",{className:"px-3 py-2 font-normal",children:B.label2}),B.key3&&i.jsx("th",{className:"px-3 py-2 font-normal",children:B.label3}),i.jsx("th",{className:"px-3 py-2 text-right font-normal",children:"更新时间"})]})}),i.jsx("tbody",{children:c.map(q=>i.jsxs("tr",{className:"cursor-pointer border-b border-border/50 transition-colors last:border-0 hover:bg-muted",onClick:()=>on(`/entities/${a}/${q.id}`),title:`打开《${q.name}》`,children:[i.jsx("td",{className:"max-w-64 truncate px-3 py-2 font-medium text-foreground",children:q.name}),i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",children:Lc(a,B.key1,q.summary[B.key1])}),B.key2&&(B.key2==="parent"?i.jsx("td",{className:"max-w-32 truncate px-3 py-2",children:q.parentId?i.jsx("button",{type:"button",title:`打开上级设定《${Dv(q)}》`,onClick:Me=>{Me.stopPropagation(),on(`/entities/setting/${q.parentId}`)},className:"rounded-md border border-border px-1.5 py-0.5 text-xs text-foreground hover:bg-muted hover:text-foreground",children:Dv(q)}):i.jsx("span",{className:"text-muted-foreground/70",children:"—"})}):i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",children:Lc(a,B.key2,q.summary[B.key2])})),B.key3&&i.jsx("td",{className:"max-w-40 truncate px-3 py-2 text-muted-foreground",title:typeof q.summary[B.key3]=="string"?q.summary[B.key3]:void 0,children:Lc(a,B.key3,q.summary[B.key3])}),i.jsx("td",{className:"px-3 py-2 text-right text-xs whitespace-nowrap text-muted-foreground/70",children:ds(q.updatedAt)})]},q.id))})]})}),!b&&c!==null&&c.length>0&&i.jsxs("div",{className:"mt-4 flex items-center justify-center gap-3 text-sm",children:[i.jsx("button",{type:"button",disabled:he<=1||b,className:"rounded-md border border-border px-3 py-1 text-muted-foreground hover:bg-muted hover:text-foreground disabled:opacity-40",onClick:()=>N((he-2)*Ol),children:"‹ 上一页"}),i.jsxs("span",{className:"text-muted-foreground",children:["第 ",he," / ",Q," 页"]}),i.jsx("button",{type:"button",disabled:he>=Q||b,className:"rounded-md border border-border px-3 py-1 text-muted-foreground hover:bg-muted hover:text-foreground disabled:opacity-40",onClick:()=>N(he*Ol),children:"下一页 ›"})]})]}),r&&te&&i.jsx(nh,{source:null,onCreated:()=>ie(q=>q+1),onClose:()=>K(!1)})]})}function PM({type:t,id:r,currentData:o,deltaCount:a}){const c=He(T=>T.outline),d=He(T=>T.config),m=He(T=>T.loadOutline),[g,b]=h.useState(()=>{const T=He.getState().config?.currentPosition??"",_=He.getState().outline?.children??[];return T!==""&&ir(_).some(w=>w.id===T)?T:""}),[p,y]=h.useState(!1),[x,S]=h.useState(null),[j,E]=h.useState(null);h.useEffect(()=>{b(T=>{if(T!=="")return T;const _=d?.currentPosition??"";return _!==""&&ir(c?.children??[]).some(w=>w.id===_)?_:""})},[d?.currentPosition,c]);const k=ir(c?.children??[]),O=new Map(k.map(T=>[T.id,T.label]));async function N(){if(!(!g||p)){y(!0),E(null);try{const T=await u2({target_type:t,target_id:r,at_node_id:g});S(T)}catch(T){S(null),T instanceof Ae&&T.code==="OUTLINE_NODE_NOT_FOUND"?E("该节点已不存在,请重新选择计算节点"):E(T instanceof Ae?T.message:"无法连接服务,请确认 ai-editor 服务已启动")}finally{y(!1)}}}return i.jsxs("div",{className:"mb-4 rounded-md border border-border p-4",children:[i.jsxs("h2",{className:"mb-2 text-sm font-semibold text-foreground",children:["变更记录 · 状态预览",i.jsxs("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:[a," 条"]})]}),a===0?i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无变更记录——实体当前状态即初始状态"}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-xs text-muted-foreground",children:"计算节点(到达该节点时的累积状态)"}),c===null?i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-xs text-muted-foreground",children:"大纲未加载"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{m()},children:"加载大纲"})]}):i.jsxs("select",{value:g,onChange:T=>b(T.target.value),"aria-label":"计算节点",className:Ee("min-w-56 rounded-md border border-border bg-card px-2 py-1 text-sm text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",g===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"请选择大纲节点"}),k.map(T=>i.jsxs("option",{value:T.id,children:[" ".repeat(T.depth),T.label]},T.id))]})]}),i.jsx(me,{variant:"outline",size:"sm",type:"button",disabled:!g||p,onClick:()=>{N()},children:p?"计算中…":"计算"})]}),d?.currentPosition==null&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"未设置当前位置,请手动选择计算节点"}),j!==null&&i.jsx("div",{className:"mt-3 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:j}),p&&i.jsxs("div",{className:"mt-3 space-y-2",children:[i.jsx("div",{className:"h-4 w-2/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/2 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-16 animate-pulse rounded bg-muted/60"})]}),!p&&x!==null&&i.jsx(YM,{result:x,currentData:o,nodeTitles:O})]})]})}function YM({result:t,currentData:r,nodeTitles:o}){const a=P3(r,t.state),c=o.get(t.atNodeId)??t.atNodeId;return i.jsxs("div",{className:"mt-3 space-y-3",children:[t.conflicts.length>0&&i.jsxs("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium text-destructive",children:[i.jsx(tp,{className:"size-3.5 shrink-0"}),"发现 ",t.conflicts.length," 处状态冲突"]}),i.jsx("p",{className:"mt-0.5 text-xs text-destructive/90",children:"手动编辑的数据与变更记录不一致,以下变更未应用(可直接修改当前数据,或调整变更记录):"}),i.jsx("ul",{className:"mt-1 space-y-0.5",children:t.conflicts.map((d,m)=>i.jsxs("li",{className:"text-xs text-destructive",children:[d.field,":记录应为 ",cs(d.expected),",实际为"," ",cs(d.actual)]},m))})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-1.5 text-xs font-medium text-muted-foreground",children:["状态差异(相对当前数据 · 到达《",c,"》",a.length>0?`,${a.length} 处`:"",")"]}),a.length===0?i.jsx("p",{className:"text-xs text-muted-foreground",children:"计算状态与当前数据一致"}):i.jsx("ul",{className:"space-y-1",children:a.map(d=>i.jsxs("li",{className:"flex items-baseline gap-2 text-xs",children:[i.jsx("span",{className:"shrink-0 font-medium text-foreground",children:d.field}),i.jsxs("span",{className:"text-muted-foreground",children:[d.from===void 0?"(无)":cs(d.from)," →"," ",d.to===void 0?"(已移除)":cs(d.to)]})]},d.field))})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-1.5 text-xs font-medium text-muted-foreground",children:["应用的变更记录(",t.appliedDeltas.length,")"]}),t.appliedDeltas.length===0?i.jsx("p",{className:"text-xs text-muted-foreground",children:"到达该节点前没有变更被应用"}):i.jsx("ul",{className:"divide-y divide-border/70 rounded-md border border-border",children:t.appliedDeltas.map((d,m)=>i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex flex-wrap items-baseline gap-2",children:[i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:d.description,children:d.description}),i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:["《",o.get(d.nodeId)??d.nodeId,"》"]})]}),d.skipped!==void 0&&d.skipped.length>0&&i.jsx("ul",{className:"mt-1 space-y-0.5",children:d.skipped.map(g=>i.jsxs("li",{className:"text-xs text-destructive",children:[g.field,":记录应为 ",cs(g.expected),",实际"," ",cs(g.actual),"(已跳过)"]},g.index))}),i.jsx("div",{className:"mt-1.5",children:i.jsx(RS,{changes:d.changes,skipped:d.skipped?.map(g=>g.index)})})]},m))})]})]})}function VM(t,r){return r<0||r>=t.length?null:r<t.length-1?{append:!1,focusIndex:r+1}:t[r].trim()!==""?{append:!0,focusIndex:t.length}:null}function FM(t,r,o){if(r===o)return[...t];if(r<0||r>=t.length||o<0||o>=t.length)return[...t];const a=[...t],[c]=a.splice(r,1);return a.splice(o,0,c),a}const GM={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"};function kl(t,r){const o=t[r];return o==null?"":String(o)}function qM({values:t,onChange:r,placeholder:o,suggestions:a,quickTags:c}){const d=h.useRef([]),[m,g]=h.useState(null),[b,p]=h.useState(null);return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[t.map((y,x)=>i.jsxs("div",{className:Ee("flex items-center gap-1.5 rounded-md px-0.5 py-0.5 transition-colors",m===x&&"opacity-40",b===x&&m!==null&&m!==x&&"bg-muted/60 ring-1 ring-ring"),onDragOver:S=>{m!==null&&(S.preventDefault(),S.dataTransfer.dropEffect="move",b!==x&&p(x))},onDrop:S=>{m!==null&&(S.preventDefault(),m!==x&&r(FM(t,m,x)),g(null),p(null))},children:[i.jsx("button",{type:"button",draggable:!0,title:"拖拽排序","aria-label":"拖拽排序",className:"shrink-0 cursor-grab rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground active:cursor-grabbing",onDragStart:S=>{g(x),S.dataTransfer.effectAllowed="move",S.dataTransfer.setData("text/plain",String(x))},onDragEnd:()=>{g(null),p(null)},children:i.jsx(au,{className:"size-4"})}),i.jsx(Mt,{value:y,onChange:S=>{const j=[...t];j[x]=S.target.value,r(j)},ref:S=>{d.current[x]=S},onKeyDown:S=>{if(S.key!=="Enter")return;S.preventDefault();const j=VM(t,x);j&&(j.append&&r([...t,""]),requestAnimationFrame(()=>d.current[j.focusIndex]?.focus()))},placeholder:o,list:a&&a.length>0?"entity-tags-suggestions":void 0,className:"h-8 flex-1 text-sm"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>r(t.filter((S,j)=>j!==x)),children:"删除"})]},x)),i.jsx(me,{variant:"outline",type:"button",className:"h-8 self-start px-2 text-xs",onClick:()=>r([...t,""]),children:"+ 添加"}),c&&c.length>0&&i.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[i.jsx("span",{className:"text-xs text-muted-foreground",children:"已有标签:"}),c.filter(y=>!t.includes(y)).map(y=>i.jsx("button",{type:"button",onClick:()=>r([...t,y]),className:"rounded-md border border-border px-1.5 py-0.5 text-xs text-foreground hover:bg-muted hover:text-foreground",children:y},y))]}),a&&a.length>0&&i.jsx(ou,{id:"entity-tags-suggestions",options:a})]})}function $M({value:t,onChange:r}){const[o,a]=h.useState(()=>Object.entries(t??{}).map(([d,m])=>({key:d,value:String(m??"")})));h.useEffect(()=>{a(Object.entries(t??{}).map(([d,m])=>({key:d,value:String(m??"")})))},[t]);function c(d){a(d);const m={};for(const g of d)g.key.trim()&&(m[g.key.trim()]=g.value);r(m)}return i.jsxs("div",{className:"flex flex-col gap-1.5",children:[o.map((d,m)=>i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx(Mt,{value:d.key,onChange:g=>c(o.map((b,p)=>p===m?{...b,key:g.target.value}:b)),placeholder:"键",className:"h-8 w-28 text-sm"}),i.jsx(Mt,{value:d.value,onChange:g=>c(o.map((b,p)=>p===m?{...b,value:g.target.value}:b)),placeholder:"值",className:"h-8 flex-1 text-sm"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>c(o.filter((g,b)=>b!==m)),children:"删除"})]},m)),i.jsx(me,{variant:"outline",type:"button",className:"h-8 self-start px-2 text-xs",onClick:()=>c([...o,{key:"",value:""}]),children:"+ 添加字段"})]})}function XM({type:t,id:r}){const o=t,[a,c]=h.useState(null),[d,m]=h.useState(!1),[g,b]=h.useState(!1),[p,y]=h.useState(null),[x,S]=h.useState(null),[j,E]=h.useState(!1),[k,O]=h.useState(null),[N,T]=h.useState(!1),[_,w]=h.useState(null),[V,M]=h.useState(!1),[L,C]=h.useState(!1),[Z,re]=h.useState(null),[ie,te]=h.useState([]);h.useEffect(()=>{if(o!=="setting"){te([]);return}let H=!1;return jn("setting",{limit:200}).then(I=>{if(H)return;const B=new Set;for(const G of I.items)if(Array.isArray(G.summary.tags))for(const Q of G.summary.tags)typeof Q=="string"&&Q!==""&&B.add(Q);te(Array.from(B).sort())}).catch(()=>{}),()=>{H=!0}},[o]);const K=eh(o);async function ne(){m(!0),y(null),b(!1);try{const H=await bo(o,r);c(H),S(JSON.parse(JSON.stringify(H.data)))}catch(H){c(null),S(null),H instanceof Ae&&H.code==="ENTITY_NOT_FOUND"?b(!0):y(H instanceof Ae?H.code:ut)}finally{m(!1)}}h.useEffect(()=>{ne()},[o,r]),zs(()=>{ne()});async function W(){if(!a||!x||j)return;const H=th(a.data,x);if(!H){Re.getState().showToast("没有变更");return}E(!0),O(null);try{await No(o,r,{data:H}),Re.getState().showToast("已保存"),await ne()}catch(I){if(I instanceof Ae&&I.code==="ENTITY_NOT_FOUND"){b(!0);return}O(I instanceof Ae?I.message:"保存失败,请重试")}finally{E(!1)}}function D(H,I){S(B=>B&&{...B,[H]:I})}async function z(){if(a)try{const H=await iu(o,r),I=[];H.cascaded.relations>0&&I.push(`${H.cascaded.relations} 条关联`),H.cascaded.deltas>0&&I.push(`${H.cascaded.deltas} 条变更记录`),Re.getState().showToast(`已移入回收站,可随时还原${I.length>0?`(含 ${I.join("、")})`:""}`),on(`/entities/${o}`)}catch(H){Re.getState().showToast(H instanceof Ae?H.message:"删除失败,请重试","error")}}async function P(){if(_)try{await Ca(_.id),Re.getState().showToast("已删除关系"),w(null),await ne()}catch(H){throw H}}async function U(H){if(!a||L)return;const I=cm(a.relations,r).parent;if(H!==I?.parentId){C(!0),re(null);try{await cr({source_type:"setting",source_id:r,target_type:"setting",target_id:H,relation_type:"belongs_to"}),I&&await Ca(I.relationId),Re.getState().showToast(I?"已修改上级设定":"已设置上级设定"),await ne()}catch(B){re(B instanceof Ae?B.message:"修改上级失败,请重试")}finally{C(!1)}}}async function F(){if(!a||L)return;const H=cm(a.relations,r).parent;if(H){C(!0),re(null);try{await Ca(H.relationId),Re.getState().showToast("已清除上级设定"),await ne()}catch(I){re(I instanceof Ae?I.message:"清除上级失败,请重试")}finally{C(!1)}}}function A(H,I){return(I==="source"?H.sourceId:H.targetId)===r?a?.name??"本实体":(I==="source"?H.sourceName:H.targetName)??(I==="source"?H.sourceId:H.targetId)}return g?i.jsx("section",{children:i.jsx(Bn,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>on(`/entities/${o}`),children:"返回列表"})]}),children:"该实体不存在或已被删除"})}):i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(rh,{items:[{label:"实体",href:"/entities/character"},{label:GM[o],href:`/entities/${o}`},{label:a?.name??"…"}]}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:a?.name??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>{W()},disabled:!a||j,children:j?"保存中…":"保存"}),i.jsx(me,{variant:"outline",type:"button",disabled:!a,className:"text-destructive hover:bg-destructive/10",onClick:()=>{z()},children:"移入回收站"})]})]}),a&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",ds(a.createdAt)," · 更新于 ",ds(a.updatedAt)," ·"," ",i.jsxs("button",{type:"button",onClick:()=>M(H=>!H),title:"展开状态预览:计算该实体在任意大纲节点处的累积状态",className:"rounded-md border border-border px-1.5 py-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:["变更记录 ",a.deltaCount," 条"]})]}),a&&V&&i.jsx(PM,{type:o,id:r,currentData:a.data,deltaCount:a.deltaCount}),d&&!a&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:5},(H,I)=>i.jsx("div",{className:Ee(_t,"h-9")},I))}),i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:3},(H,I)=>i.jsx("div",{className:Ee(_t,"h-9")},I))})]}),!d&&!a&&p!==null&&i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:[p===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"详情加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{ne()},children:"重试"})]}),a&&x&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsx("h2",{className:"mb-3 text-sm font-semibold text-foreground",children:"基础信息"}),i.jsxs("div",{className:"flex flex-col gap-3",children:[K.map(H=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:H.label}),i.jsx(KM,{field:H,value:x[H.key],onChange:I=>D(H.key,I),tagPool:o==="setting"?ie:void 0})]},H.key)),"custom_fields"in a.data&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"自定义字段"}),i.jsx($M,{value:x.custom_fields,onChange:H=>D("custom_fields",H)})]})]}),k&&i.jsx("p",{className:"mt-3 text-sm text-destructive",children:k})]}),i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"关联"}),i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",onClick:()=>T(!0),children:"+ 新增关联"})]}),o==="setting"&&(()=>{const H=cm(a.relations,r);return i.jsxs("div",{className:"mb-4 border-b border-border/50 pb-4",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[i.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"层级(设定父子)"}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(US,{value:H.parent?.parentId??null,valueName:H.parent?.parentName,excludeIds:[r],onChange:I=>{I&&U(I)},placeholder:"设置上级"}),H.parent&&i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs text-destructive hover:bg-destructive/10",disabled:L,onClick:()=>{F()},children:"清除"})]})]}),Z&&i.jsx("p",{className:"mb-2 text-sm text-destructive",children:Z}),i.jsxs("div",{className:"flex flex-col gap-1.5 text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["上级:",H.parent?i.jsx("button",{type:"button",title:"打开上级设定",className:"ml-1 rounded-md border border-border px-1.5 py-0.5 text-foreground hover:bg-muted hover:text-foreground",onClick:()=>on(`/entities/setting/${H.parent.parentId}`),children:H.parent.parentName??H.parent.parentId}):i.jsx("span",{className:"ml-1 text-muted-foreground/70",children:"(独立设定——暂无上级)"})]}),i.jsxs("span",{className:"text-muted-foreground",children:["子设定:",H.children.length===0?i.jsx("span",{className:"ml-1 text-muted-foreground/70",children:"(无)"}):H.children.map(I=>i.jsx("button",{type:"button",title:"打开子设定",className:"ml-1 rounded-md border border-border px-1.5 py-0.5 text-foreground hover:bg-muted hover:text-foreground",onClick:()=>on(`/entities/setting/${I.childId}`),children:I.childName??I.childId},I.relationId))]})]})]})})(),(()=>{const H=o==="setting"?a.relations.filter(I=>!(I.relationType==="belongs_to"&&I.sourceType==="setting"&&I.targetType==="setting")):a.relations;return H.length===0?i.jsx("p",{className:"py-6 text-center text-sm text-muted-foreground/70",children:o==="setting"?"暂无其他关联,新增一个":"暂无关联,新增一个"}):i.jsx("ul",{className:"divide-y divide-border/50",children:H.map(I=>{const B=I.sourceId===r,G=A(I,"source"),Q=A(I,"target");return i.jsxs("li",{className:"flex items-center gap-2 py-2 text-sm",children:[i.jsx("span",{className:"max-w-28 min-w-0 truncate text-foreground",children:G}),i.jsxs("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[vo(I.relationType)," ",B?"→":"←"]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-foreground",children:Q}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>w(I),children:"删除"})]},I.id)})})})()]})]}),N&&i.jsx(nh,{source:{type:o,id:r,name:a?.name??""},onCreated:ne,onClose:()=>T(!1)}),_&&i.jsx(Da,{title:"删除关系",description:`删除关系「${A(_,"source")} ${vo(_.relationType)} ${A(_,"target")}」?物理删除不可恢复,可重新建立。`,confirmLabel:"删除",danger:!0,onConfirm:P,onClose:()=>w(null)})]})}function KM({field:t,value:r,onChange:o,tagPool:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value),rows:3,className:Ee(Xn,"w-full")});case"number":return i.jsx(Mt,{type:"number",value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value===""?void 0:Number(c.target.value)),className:"h-8 text-sm"});case"tags":return i.jsx(qM,{values:Array.isArray(r)?r:[],onChange:o,placeholder:"输入后回车添加下一项",suggestions:t.key==="tags"?a:void 0,quickTags:t.key==="tags"?a:void 0});case"select":return i.jsx("select",{value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value),className:Ee(Xn,"w-full"),children:t.options?.map(c=>i.jsx("option",{value:c,children:t.optionsLabels?.[c]??c},c))});case"toggle":return i.jsx("input",{type:"checkbox",checked:r===!0,onChange:c=>o(c.target.checked),className:"h-4 w-4 accent-accent-foreground"});case"outline-node":return i.jsx(QM,{value:kl({[t.key]:r},t.key),onChange:o});default:return i.jsx(Mt,{value:kl({[t.key]:r},t.key),onChange:c=>o(c.target.value),className:"h-8 text-sm"})}}function QM({value:t,onChange:r}){const o=He(c=>c.outline),a=ir(o?.children??[]);return i.jsxs("select",{value:t,onChange:c=>r(c.target.value===""?null:c.target.value),className:Ee(Ee(Xn,"w-full"),t===""&&"text-muted-foreground/70"),children:[i.jsx("option",{value:"",children:"未设置"}),a.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function ZM(t){return t==="resolved"?"resolved":t==="abandoned"?"abandoned":"active"}function JM(t){const r={active:[],resolved:[],abandoned:[]};for(const o of t)r[ZM(o.summary.status)].push(o);return r}function Vr(t,r){return t.filter(o=>o.relationType===r)}function YS(t,r){return Vr(t,"depends_on").filter(o=>o.sourceId===r).map(o=>o.targetName??o.targetId)}function WM(t,r){return Vr(t,"depends_on").filter(o=>o.targetId===r).map(o=>o.sourceName??o.sourceId)}function Kv(t,r){return WM(t,r).length}function eA(t,r){return Vr(t,"involves").map(o=>o.sourceId===r?o.targetName??o.targetId:o.sourceName??o.sourceId)}const tA=3;function nA(t){const r=t.maxDepth??tA,o=[],a=new Set([t.startHookId]),c=[{hookId:t.startHookId,depth:0}];for(;c.length>0;){const{hookId:d,depth:m}=c.shift();if(o.push({hookId:d,name:t.names.get(d)??d,depth:m}),!(m>=r))for(const g of t.depsOf.get(d)??[])g.relationType!=="depends_on"||g.sourceId!==d||a.has(g.targetId)||(a.add(g.targetId),c.push({hookId:g.targetId,depth:m+1}))}return o}function VS(t,r){if(!t)return!1;const o=[...t.children];for(;o.length>0;){const a=o.pop();if(a.id===r)return a.deleted!==!0;a.type!=="scene"&&a.children&&o.push(...a.children)}return!1}function sA(t){if(!t)return null;let r=null;const o=a=>{if(a.deleted!==!0&&(r=a.id,a.type!=="scene"&&a.children))for(const c of a.children)o(c)};for(const a of t.children)o(a);return r}function rA(t,r){const o=t?.currentPosition;return o!=null&&o!==""&&VS(r,o)?o:sA(r)}const FS={advance:"progressing",resolve:"resolved",abandon:"abandoned"},oA={advance:"advances",resolve:"resolves"};function Qv(t){const r=t.status;return typeof r=="string"&&r!==""?r:"planted"}function GS(t,r){return{field:"status",op:"update",from:t,to:r}}function aA(t,r,o){return{source_type:"outline_node",source_id:o,target_type:"hook",target_id:r,relation_type:oA[t]}}function lA(t,r){return{source_type:"outline_node",source_id:r,target_type:"hook",target_id:t,relation_type:"plants"}}function qS(t){return{status:t}}async function iA(t){const r=FS[t.kind];await ip({node_id:t.nodeId,target_type:"hook",target_id:t.hookId,changes:[GS(t.fromStatus,r)],description:t.description});try{await cr(aA(t.kind,t.hookId,t.nodeId))}catch(o){if(!(o instanceof Ae&&o.code==="RELATION_EXISTS"))throw o}await No("hook",t.hookId,{data:qS(r)})}async function cA(t){await ip({node_id:t.nodeId,target_type:"hook",target_id:t.hookId,changes:[GS(t.fromStatus,"abandoned")],description:t.description}),await No("hook",t.hookId,{data:qS("abandoned")})}const gm={advance:"推进",resolve:"回收",abandon:"废弃"};function uA(t){return t==="resolved"||t==="abandoned"}function _l(t,r){const o=t[r];return o==null?"":String(o)}function dA(){const[t,r]=h.useState(null),[o,a]=h.useState(!1),[c,d]=h.useState(null),[m,g]=h.useState(0);zs(()=>g(ae=>ae+1));const[b,p]=h.useState([]),[y,x]=h.useState(!1),[S,j]=h.useState(null),[E,k]=h.useState(!1),[O,N]=h.useState(null),[T,_]=h.useState(null),[w,V]=h.useState("advance"),[M,L]=h.useState(""),[C,Z]=h.useState(""),[re,ie]=h.useState(null),[te,K]=h.useState(!1),[ne,W]=h.useState(null),[D,z]=h.useState(null),[P,U]=h.useState(null),[F,A]=h.useState(!1),[H,I]=h.useState(!1),[B,G]=h.useState(""),[Q,he]=h.useState({}),[le,de]=h.useState(""),[Ue,Le]=h.useState(null),[we,Be]=h.useState(!1),[ge,q]=h.useState({}),Me=He(ae=>ae.config),Oe=He(ae=>ae.outline),_e=ir(Oe?.children??[]),be=t===null?null:JM(t);h.useEffect(()=>{let ae=!1;return a(!0),d(null),x(!1),q({}),jn("hook",{}).then(ke=>{ae||r(ke.items)}).catch(ke=>{ae||(r(null),d(ke instanceof Ae?ke.code:ut))}),Fr({source_type:"hook",relation_type:"depends_on",depth:1}).then(ke=>{ae||p(ke.relations)}).catch(()=>{ae||x(!0)}).finally(()=>{ae||a(!1)}),()=>{ae=!0}},[m]),h.useEffect(()=>{He.getState().outline===null&&He.getState().config!==null&&He.getState().loadOutline()},[]);async function Ie(ae){j(null),k(!0),N(null);try{j(await bo("hook",ae.id))}catch(ke){N(ke instanceof Ae?ke.message:"详情加载失败,请重试")}finally{k(!1)}}async function Ve(ae,ke){_(null),ie(null),Z("");try{const Ye=await bo("hook",ke.id),We=He.getState().config?.currentPosition,pt=We!=null&&We!==""&&VS(Oe,We)?We:"";L(pt),V(ae),_(Ye)}catch{Re.getState().showToast("无法读取伏笔状态,请重试","error")}}async function Pe(){const ae=T;if(!ae||te)return;const ke=w;K(!0),ie(null);try{if(ke==="abandon"){const Ye=rA(Me,Oe);if(Ye===null){ie("大纲为空,无法记录废弃变更");return}await cA({hookId:ae.id,fromStatus:Qv(ae.data),nodeId:Ye,description:C.trim()})}else{if(M===""){ie("请选择大纲节点");return}await iA({kind:ke,hookId:ae.id,fromStatus:Qv(ae.data),nodeId:M,description:C.trim()})}Re.getState().showToast(`已${gm[ke]}`),_(null),g(Ye=>Ye+1)}catch(Ye){ie(Ye instanceof Ae?Ye.message:"操作失败,请重试")}finally{K(!1)}}async function ee(ae){W(null),U(null);try{const ke=await bo("hook",ae.id);W(ke),z(JSON.parse(JSON.stringify(ke.data)))}catch{Re.getState().showToast("无法读取伏笔数据,请重试","error")}}async function Y(){if(!ne||!D||F)return;const ae=th(ne.data,D);if(!ae){Re.getState().showToast("没有变更"),W(null);return}A(!0),U(null);try{await No("hook",ne.id,{data:ae}),Re.getState().showToast("已保存"),W(null),g(ke=>ke+1)}catch(ke){U(ke instanceof Ae?ke.message:"保存失败,请重试")}finally{A(!1)}}async function $(ae){ae.preventDefault();const ke=B.trim();if(!ke){Le("请输入名称");return}Be(!0),Le(null);try{const Ye=await $c("hook",{name:ke,data:Q});if(le!=="")try{await cr(lA(Ye.id,le))}catch(We){Re.getState().showToast(`已创建伏笔《${ke}》,但埋点关联失败:${We instanceof Ae?We.message:"未知错误"}`,"error"),I(!1),g(pt=>pt+1);return}Re.getState().showToast(`已创建伏笔《${ke}》`),I(!1),G(""),he({}),de(""),g(We=>We+1)}catch(Ye){Le(Ye instanceof Ae?Ye.message:"创建失败,请重试")}finally{Be(!1)}}async function Te(ae){try{const ke=await iu("hook",ae.id),Ye=[];ke.cascaded.relations>0&&Ye.push(`${ke.cascaded.relations} 条关联`),ke.cascaded.deltas>0&&Ye.push(`${ke.cascaded.deltas} 条变更记录`),Re.getState().showToast(`已移入回收站,可随时还原${Ye.length>0?`(含 ${Ye.join("、")})`:""}`),g(We=>We+1)}catch(ke){Re.getState().showToast(ke instanceof Ae?ke.message:"删除失败,请重试","error")}}async function xe(ae){if(ge[ae.id]){q(ke=>{const Ye={...ke};return delete Ye[ae.id],Ye});return}q(ke=>({...ke,[ae.id]:{status:"loading",nodes:[]}}));try{const ke=new Map,Ye=new Map,We=[{id:ae.id,depth:0}],pt=new Set;for(;We.length>0;){const{id:mt,depth:Tt}=We.shift();if(pt.has(mt))continue;pt.add(mt);const Rt=await bo("hook",mt);Ye.set(mt,Rt.name);const Lt=Vr(Rt.relations,"depends_on").filter(Ce=>Ce.sourceId===mt);if(ke.set(mt,Lt),!(Tt>=2))for(const Ce of Lt)Ye.has(Ce.targetId)||Ye.set(Ce.targetId,Ce.targetName??Ce.targetId),We.push({id:Ce.targetId,depth:Tt+1})}const At=nA({startHookId:ae.id,depsOf:ke,names:Ye});q(mt=>({...mt,[ae.id]:{status:"ready",nodes:At}}))}catch{q(ke=>({...ke,[ae.id]:{status:"error",nodes:[]}}))}}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"伏笔池"}),i.jsx(me,{type:"button",className:"ml-auto",onClick:()=>I(!0),children:"+ 新建伏笔"})]}),c!==null&&i.jsxs("div",{className:Ee(ni,"mb-3 flex items-center gap-2"),children:[c===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"伏笔池加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>g(ae=>ae+1),children:"重试"})]}),o&&be===null&&c===null&&i.jsx("div",{className:"space-y-4",children:Array.from({length:3},(ae,ke)=>i.jsxs("div",{className:"rounded-md border border-border",children:[i.jsx("div",{className:"h-4 w-20 animate-pulse rounded bg-muted px-3 py-1.5"}),Array.from({length:ke===0?3:1},(Ye,We)=>i.jsxs("div",{className:"flex items-center gap-3 border-t border-border/70 px-3 py-2.5",children:[i.jsx("div",{className:"h-4 w-1/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-3 w-16 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"ml-auto h-6 w-6 animate-pulse rounded bg-muted"})]},We))]},ke))}),!o&&be!==null&&t?.length===0&&i.jsx(Bn,{action:i.jsx(me,{type:"button",onClick:()=>I(!0),children:"+ 新建伏笔"}),children:"还没有伏笔。好伏笔要趁早埋下——先新建一个,或在聊天里让 AI 帮你规划。"}),be!==null&&t&&t.length>0&&i.jsxs("div",{className:"space-y-4",children:[i.jsx(xm,{title:"活跃",icon:i.jsx("span",{className:"size-2 shrink-0 rounded-full bg-primary"}),hooks:be.active,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:Ie,onLifecycle:Ve,onEdit:ee,onDelete:ae=>{Te(ae)}}),i.jsx(xm,{title:"已回收",icon:i.jsx(Wm,{className:"size-3.5 shrink-0 text-primary"}),hooks:be.resolved,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:Ie,onLifecycle:Ve,onEdit:ee,onDelete:ae=>{Te(ae)}}),i.jsx(xm,{title:"已废弃",icon:i.jsx(Vj,{className:"size-3.5 shrink-0 text-muted-foreground"}),hooks:be.abandoned,depEdges:b,depEdgesFailed:y,chains:ge,onToggleChain:xe,onDetail:Ie,onLifecycle:Ve,onEdit:ee,onDelete:ae=>{Te(ae)}})]}),i.jsx(Rs,{open:H,onOpenChange:ae=>!ae&&I(!1),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"新建伏笔"})}),i.jsxs("form",{id:"create-hook-form",onSubmit:$,className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:B,onChange:ae=>G(ae.target.value),placeholder:"如:身世之谜",maxLength:100})]}),i.jsx(Zv,{fields:mA,data:Q,onChange:he,nodeOptions:_e}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"埋点节点(选填,可空)"}),i.jsx(Gm,{value:le,onChange:de,nodeOptions:_e})]}),Ue&&i.jsx("p",{className:"text-sm text-destructive",children:Ue})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>I(!1),disabled:we,children:"取消"}),i.jsx(me,{type:"submit",form:"create-hook-form",disabled:we,children:"创建"})]})]})}),i.jsx(Rs,{open:S!==null||E,onOpenChange:ae=>!ae&&j(null),children:i.jsxs(Os,{className:"sm:max-w-lg",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"伏笔详情"})}),E&&i.jsx("p",{className:"py-4 text-sm text-muted-foreground",children:"加载中…"}),O&&i.jsx("p",{className:"py-4 text-sm text-destructive",children:O}),S&&i.jsx(fA,{detail:S}),i.jsx(_s,{children:i.jsx(me,{variant:"outline",type:"button",onClick:()=>j(null),children:"关闭"})})]})}),T&&i.jsx(Rs,{open:!0,onOpenChange:ae=>!ae&&!te&&_(null),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsxs(Ms,{children:[gm[w],"伏笔《",T.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[w!=="abandon"&&i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"大纲节点(默认当前位置)"}),i.jsx(Gm,{value:M,onChange:L,nodeOptions:_e,placeholder:"请选择节点"})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:C,onChange:ae=>Z(ae.target.value),rows:2,placeholder:w==="abandon"?"说明废弃原因":"说明伏笔如何被推进/回收",className:Ee(Xn,"w-full")})]}),i.jsxs("div",{className:"rounded-md border border-primary/25 bg-primary/5 px-3 py-2 text-sm",children:[i.jsx("p",{className:"font-medium text-foreground",children:"将写入:"}),i.jsxs("p",{className:"mt-1 text-muted-foreground",children:["status → ",FS[w],w==="advance"&&" + advances 关系",w==="resolve"&&" + resolves 关系"," + 同步 status"]}),w==="resolve"&&y&&i.jsx("p",{className:"mt-2 text-sm text-destructive",children:"依赖关系加载失败,无法确认依赖者"}),w==="resolve"&&!y&&Kv(b,T.id)>0&&i.jsxs("p",{className:"mt-2 text-sm text-destructive",children:["有 ",Kv(b,T.id)," 个伏笔依赖此伏笔"]})]}),re&&i.jsx("p",{className:"text-sm text-destructive",children:re})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>_(null),disabled:te,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Pe()},disabled:te,children:te?"提交中…":`确认${gm[w]}`})]})]})}),ne&&D&&i.jsx(Rs,{open:!0,onOpenChange:ae=>!ae&&!F&&W(null),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsxs(Ms,{children:["编辑伏笔《",ne.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsx(Zv,{fields:eh("hook"),data:D,onChange:ae=>z(ke=>ke&&{...ke,...ae}),nodeOptions:_e}),P&&i.jsx("p",{className:"text-sm text-destructive",children:P})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>W(null),disabled:F,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Y()},disabled:F,children:F?"保存中…":"保存"})]})]})})]})}function xm({title:t,icon:r,hooks:o,depEdges:a,depEdgesFailed:c,chains:d,onToggleChain:m,onDetail:g,onLifecycle:b,onEdit:p,onDelete:y}){return i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsxs("div",{className:"flex items-center gap-1.5 border-b border-border bg-muted/30 px-3 py-1.5 text-sm font-medium text-foreground",children:[r,i.jsx("span",{children:t}),i.jsxs("span",{className:"text-muted-foreground",children:["(",o.length,")"]})]}),o.length===0?i.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground/70",children:"(空)"}):i.jsx("ul",{className:"divide-y divide-border/70",children:o.map(x=>{const S=uA(x.summary.status),j=c?[]:YS(a,x.id),E=d[x.id],k=typeof x.summary.category=="string"?x.summary.category:"";return i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",title:x.name,children:x.name}),k&&i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:k}),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-0.5",children:[i.jsx(me,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",title:"详情","aria-label":`${x.name} 详情`,onClick:()=>g(x),children:i.jsx(ep,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"推进","aria-label":`${x.name} 推进`,onClick:()=>b("advance",x),children:i.jsx(Mj,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"回收","aria-label":`${x.name} 回收`,onClick:()=>b("resolve",x),children:i.jsx(i0,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",disabled:S,className:"text-muted-foreground",title:"废弃","aria-label":`${x.name} 废弃`,onClick:()=>b("abandon",x),children:i.jsx(hs,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground",title:"编辑","aria-label":`${x.name} 编辑`,onClick:()=>p(x),children:i.jsx(ei,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`${x.name} 移入回收站`,onClick:()=>y(x),children:i.jsx(ti,{className:"size-3.5"})})]})]}),j.length>0&&i.jsxs("button",{type:"button",onClick:()=>m(x),className:"mt-0.5 flex items-center gap-1 rounded-md border border-border px-1.5 py-0.5 text-xs text-muted-foreground hover:bg-muted hover:text-foreground",children:["依赖: ",j.join("、")]}),E?.status==="loading"&&i.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"依赖链展开中…"}),E?.status==="error"&&i.jsx("p",{className:"mt-0.5 text-xs text-destructive",children:"依赖链加载失败"}),E?.status==="ready"&&E.nodes.length>1&&i.jsx("ul",{className:"mt-1 space-y-0.5 border-l border-border pl-2",children:E.nodes.slice(1).map(O=>i.jsxs("li",{className:"text-xs text-muted-foreground",children:[" ".repeat(O.depth-1),O.name]},`${O.depth}-${O.hookId}`))})]},x.id)})})]})}function fA({detail:t}){const r=t.id,o=typeof t.data.status=="string"?t.data.status:"",a=typeof t.data.category=="string"?t.data.category:"",c=Vr(t.relations,"plants"),d=Vr(t.relations,"advances"),m=Vr(t.relations,"resolves"),g=YS(t.relations,r),b=Vr(t.relations,"depends_on").filter(x=>x.targetId===r).map(x=>x.sourceName??x.sourceId),p=eA(t.relations,r),y=typeof t.data.expected_resolve_node_id=="string"?t.data.expected_resolve_node_id:"";return i.jsxs("div",{className:"flex flex-col gap-3 text-sm",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-medium text-foreground",children:t.name}),a&&i.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:a}),o&&i.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:Jp[o]??o})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["创建于 ",ds(t.createdAt)," · 更新于 ",ds(t.updatedAt)]}),i.jsx(xo,{title:"埋点节点(plants)",items:c.map(x=>x.sourceName??x.sourceId)}),i.jsx(xo,{title:"推进节点(advances)",items:d.map(x=>x.sourceName??x.sourceId)}),i.jsx(xo,{title:"回收节点(resolves)",items:m.map(x=>x.sourceName??x.sourceId)}),i.jsx(xo,{title:"预计回收节点",items:y?[y]:[]}),i.jsx(xo,{title:"依赖(depends_on)",items:g}),i.jsx(xo,{title:"被依赖(其他伏笔依赖本伏笔)",items:b}),i.jsx(xo,{title:"涉及(involves)",items:p})]})}function xo({title:t,items:r}){return i.jsxs("div",{children:[i.jsx("p",{className:"mb-0.5 text-xs font-medium text-muted-foreground",children:t}),r.length===0?i.jsx("p",{className:"text-xs text-muted-foreground/70",children:"无"}):i.jsx("ul",{className:"flex flex-wrap gap-1",children:r.map((o,a)=>i.jsx("li",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-xs text-foreground",children:o},`${o}-${a}`))})]})}const mA=[{key:"category",label:"类别",control:"text"},{key:"expected_payoff",label:"预期回收",control:"textarea"},{key:"payoff_timing",label:"回收时机",control:"select",options:["immediate","near_term","mid_arc","slow_burn","endgame"],optionsLabels:Wp},{key:"half_life",label:"半衰期(章数)",control:"number"},{key:"is_core",label:"主线伏笔",control:"toggle"},{key:"notes",label:"备注",control:"textarea"},{key:"expected_resolve_node_id",label:"预计回收节点",control:"outline-node"}];function Zv({fields:t,data:r,onChange:o,nodeOptions:a}){return i.jsx(i.Fragment,{children:t.map(c=>i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:c.label}),i.jsx(pA,{field:c,value:r[c.key],nodeOptions:a,onValue:d=>o({...r,[c.key]:d})})]},c.key))})}function pA({field:t,value:r,nodeOptions:o,onValue:a}){switch(t.control){case"textarea":return i.jsx("textarea",{value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value),rows:2,className:Ee(Xn,"w-full")});case"number":return i.jsx(Mt,{type:"number",value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value===""?void 0:Number(c.target.value)),className:"h-8 text-sm"});case"select":return i.jsxs("select",{value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value),className:Ee(Xn,"w-full"),children:[i.jsx("option",{value:"",children:"未设置"}),t.options?.map(c=>i.jsx("option",{value:c,children:t.optionsLabels?.[c]??c},c))]});case"toggle":return i.jsx("input",{type:"checkbox",checked:r===!0,onChange:c=>a(c.target.checked),className:"h-4 w-4 accent-primary"});case"outline-node":return i.jsx(Gm,{value:_l({[t.key]:r},t.key),onChange:a,nodeOptions:o});default:return i.jsxs(i.Fragment,{children:[i.jsx(Mt,{value:_l({[t.key]:r},t.key),onChange:c=>a(c.target.value),placeholder:t.key==="category"?`如:${ly.join(" / ")}`:void 0,list:t.key==="category"?"hook-category-suggestions":void 0,className:"h-8 text-sm"}),t.key==="category"&&i.jsx(ou,{id:"hook-category-suggestions",options:ly})]})}}function Gm({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:Ee(Ee(Xn,"w-full"),t===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:a}),o.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function qm(t,r,o){const a=o===void 0?t:t.filter(d=>d!==o);if(r.kind==="end")return a.length;const c=a.indexOf(r.id);return c===-1?a.length:r.kind==="before"?c:c+1}function Jv(t,r,o){const a=t.map(g=>({timepoint:g,events:[]})),c=new Map(a.map(g=>[g.timepoint.id,g])),d=new Map;for(const g of o)g.relationType!=="occurs_at"||g.sourceType!=="timepoint"||d.has(g.targetId)||d.set(g.targetId,g.sourceId);const m=[];for(const g of r){const b=d.get(g.id),p=b===void 0?void 0:c.get(b);p===void 0?m.push(g):p.events.push(g)}return{groups:a,ungrouped:m}}function hA(t,r,o,a,c){const d=[...t.flatMap(b=>b.events.map(p=>p.id)),...r.map(b=>b.id)];let m;if(o===-1)m=a==="before"?r[0]:r[r.length-1];else{const b=t[o];if(b!==void 0){if(a==="before"){if(m=b.events[0],m===void 0)for(let p=o+1;p<t.length;p++){const y=t[p].events[0];if(y!==void 0){m=y;break}}}else if(m=b.events[b.events.length-1],m===void 0)for(let p=o-1;p>=0;p--){const y=t[p].events[t[p].events.length-1];if(y!==void 0){m=y;break}}}}if(m!==void 0)return qm(d,{kind:a,id:m.id},c);const g=d.find(b=>b!==c);return g===void 0?0:qm(d,{kind:"before",id:g},c)}function ah(t){const r=t.summary.tags;return Array.isArray(r)?r.filter(o=>typeof o=="string"):[]}function gA(t){const r=t.summary.description;return typeof r=="string"?r:""}function $m(t,r,o=5){const a=t.split(/[,,、\n]/),c=a[a.length-1].trim();if(c==="")return[];const d=new Set(a.slice(0,-1).map(p=>p.trim()).filter(p=>p!=="")),m=c.toLowerCase(),g=[],b=new Set;for(const p of r){if(g.length>=o)break;d.has(p)||b.has(p)||p.toLowerCase().includes(m)&&(b.add(p),g.push(p))}return g}function Xm(t,r){const o=t.split(/[,,、\n]/);return o[o.length-1]=r,o.join(",")+","}function Gc(t){const r=new Set,o=[];for(const a of t)for(const c of ah(a))c!==""&&!r.has(c)&&(r.add(c),o.push(c));return o}function xA(t,r){return r===null||r===""?t:t.filter(o=>ah(o).includes(r))}function $S(t){const r=[],o=new Set;for(const a of t.split(/[,,、\n]/)){const c=a.trim();c!==""&&!o.has(c)&&(o.add(c),r.push(c))}return r}function XS(t){return Array.isArray(t)?t.filter(r=>typeof r=="string").join(","):""}function bA(t){const r=t.data;return{name:t.name,description:typeof r.description=="string"?r.description:"",tagsInput:XS(r.tags)}}function KS(t,r){const o={};r.name.trim()!==t.name&&(o.name=r.name.trim());const a={};(r.description.trim()!==""||t.data.description!==void 0)&&(a.description=r.description.trim());const c=$S(r.tagsInput);(c.length>0||t.data.tags!==void 0)&&(a.tags=c);const d={};for(const m of["description","tags"])JSON.stringify(a[m])!==JSON.stringify(t.data[m])&&(d[m]=a[m]);return Object.keys(d).length>0&&(o.data=d),o.name===void 0&&o.data===void 0?null:o}const QS="occurs_in",ZS="occurs_at";function yA(t,r){return t.filter(o=>o.relationType===QS&&o.sourceId===r)}function vA(t,r){return{source_type:"event",source_id:t,target_type:"outline_node",target_id:r,relation_type:QS}}function bm(t,r){const o=t.find(a=>a.relationType===ZS&&a.sourceType==="timepoint"&&a.targetId===r);return o===void 0?null:o.sourceId}function SA(t,r){return{source_type:"timepoint",source_id:t,target_type:"event",target_id:r,relation_type:ZS}}function EA({ev:t,occursCount:r,hasOccursData:o,dragging:a,busy:c,showInsertBefore:d,showInsertAfter:m,eventDrag:g,onDetail:b,onEdit:p,onDelete:y}){const x=ah(t),S=gA(t),j=r(t.id),[E,k]=h.useState(!1),O=h.useRef(null),[N,T]=h.useState(!1);return h.useLayoutEffect(()=>{const _=O.current;if(_===null)return;const w=()=>{E||T(_.scrollHeight>_.clientHeight+1)};return w(),window.addEventListener("resize",w),()=>window.removeEventListener("resize",w)},[S,E]),i.jsxs("div",{draggable:!c,onDragStart:_=>g.onDragStart(_,t),onDragEnd:g.onDragEnd,onDragOver:_=>g.onDragOver(_,t),onDrop:_=>g.onDrop(_,t),className:Ee("relative flex items-start",a&&"opacity-50"),children:[d&&i.jsx("div",{className:"absolute inset-x-0 -top-px h-0.5 bg-primary"}),m&&i.jsx("div",{className:"absolute inset-x-0 -bottom-px h-0.5 bg-primary"}),i.jsx("div",{className:"w-[22px] shrink-0",children:i.jsx("span",{"aria-hidden":"true",className:"mx-auto mt-[16px] block size-2 rounded-full bg-primary/60"})}),i.jsxs("div",{className:"min-w-0 flex-1 rounded-md border border-border bg-card px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"shrink-0 cursor-grab text-muted-foreground/60 active:cursor-grabbing",title:"拖拽调整事件顺序/挂载","aria-hidden":"true",children:i.jsx(au,{className:"size-4"})}),i.jsx("span",{className:"min-w-0 truncate font-medium text-foreground",title:t.name,children:t.name}),x.map(_=>i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:_},_)),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-1",children:[o&&i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[j," 节点"]}),i.jsx(me,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"详情","aria-label":`${t.name} 详情`,onClick:()=>b(t),children:i.jsx(ep,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"编辑","aria-label":`${t.name} 编辑`,onClick:()=>p(t),children:i.jsx(ei,{className:"size-3.5"})}),i.jsx(me,{variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`${t.name} 移入回收站`,onClick:()=>y(t),children:i.jsx(ti,{className:"size-3.5"})})]})]}),S.trim()!==""&&i.jsxs("div",{className:"mt-1.5",children:[i.jsx("p",{ref:O,className:Ee("text-sm leading-relaxed text-muted-foreground",!E&&"line-clamp-2"),children:S}),(E||N)&&i.jsx("button",{type:"button",draggable:!1,onClick:()=>k(_=>!_),className:"mt-1 rounded-md border border-border px-1.5 py-0.5 text-xs text-primary hover:bg-muted","aria-expanded":E,children:E?"收起":"展开"})]})]})]})}function NA({timepoint:t,groupId:r,events:o,collapsed:a,dragSource:c,busy:d,occursCount:m,hasOccursData:g,showInsertBefore:b,showInsertAfter:p,onToggleCollapse:y,onRename:x,onDeleteTimepoint:S,onAddEventAt:j,onDragStart:E,onDragEnd:k,onDragOver:O,onDrop:N,eventDrag:T,eventInsertLines:_,onDetail:w,onEdit:V,onDelete:M}){const[L,C]=h.useState(!1),[Z,re]=h.useState(""),ie=t===null,te=ie?"未挂载":t.name,K=c!==null&&c.kind==="timepoint"&&c.id===r;function ne(){t!==null&&(re(t.name),C(!0))}async function W(){if(t===null)return;const D=Z.trim();C(!1),!(D===""||D===t.name)&&await x(t.id,D)}return i.jsxs("div",{className:"relative flex flex-col gap-2",children:[b&&i.jsx("div",{className:"absolute inset-x-0 -top-px h-0.5 bg-primary"}),p&&i.jsx("div",{className:"absolute inset-x-0 -bottom-px h-0.5 bg-primary"}),i.jsxs("div",{draggable:!ie&&!d&&!L,onDragStart:E,onDragEnd:k,onDragOver:O,onDrop:N,className:Ee("flex items-start",!ie&&K&&"opacity-50"),children:[i.jsx("div",{className:"w-[22px] shrink-0",children:i.jsx("span",{"aria-hidden":"true",className:Ee("relative z-10 mx-auto mt-[6px] block size-4 rounded-full border-2 bg-background",ie?"border-dashed border-border":"border-primary")})}),i.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 py-1",children:[!ie&&i.jsx("span",{className:"shrink-0 cursor-grab text-muted-foreground/60 active:cursor-grabbing",title:"拖拽调整时间点顺序(组内事件不动)","aria-hidden":"true",children:i.jsx(au,{className:"size-4"})}),L?i.jsx("input",{autoComplete:"off",autoFocus:!0,value:Z,onChange:D=>re(D.target.value),onKeyDown:D=>{D.key==="Enter"?W():D.key==="Escape"&&C(!1)},onBlur:()=>C(!1),maxLength:100,"aria-label":"时间点名称",className:"w-40 rounded-md border border-border bg-background px-2 py-0.5 text-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50"}):i.jsx("span",{className:Ee("min-w-0 truncate text-sm font-medium",ie?"text-muted-foreground italic":"text-foreground"),title:te,children:te}),i.jsxs("span",{className:"ml-auto flex shrink-0 items-center gap-1",children:[i.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[o.length," 个事件"]}),t!==null&&!L&&i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"重命名","aria-label":`重命名「${t.name}」`,onClick:ne,children:i.jsx(ei,{className:"size-3.5"})}),t!==null&&!L&&i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground",title:"在此时间点新建事件","aria-label":"在此时间点新建事件",onClick:()=>j(r),children:i.jsx(lu,{className:"size-3.5"})}),t!==null&&!L&&i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground hover:text-destructive",title:"移入回收站","aria-label":`移入回收站「${t.name}」`,onClick:()=>S(t),children:i.jsx(ti,{className:"size-3.5"})}),i.jsx(me,{type:"button",variant:"ghost",size:"icon-sm",draggable:!1,className:"text-muted-foreground","aria-expanded":!a,"aria-label":`${a?"展开":"折叠"}「${te}」组`,onClick:y,children:i.jsx(Zm,{className:Ee("size-4 transition-transform duration-200",!a&&"rotate-90")})})]})]})]}),!a&&i.jsx("div",{className:"flex flex-col gap-2",children:o.map(D=>{const z=_(D.id);return i.jsx(EA,{ev:D,occursCount:m,hasOccursData:g,dragging:c!==null&&c.kind==="event"&&c.id===D.id,busy:d,showInsertBefore:z.before,showInsertAfter:z.after,eventDrag:T,onDetail:w,onEdit:V,onDelete:M},D.id)})})]})}function jA({timepoints:t,events:r,allEvents:o,occursAtEdges:a,occursCount:c,hasOccursData:d,onMoveTimepoint:m,onMoveEvent:g,onMoveEventTo:b,onRenameTimepoint:p,onDeleteTimepoint:y,onAddEventAt:x,onDetail:S,onEdit:j,onDelete:E}){const k=h.useMemo(()=>Jv(t,r,a),[t,r,a]),O=h.useMemo(()=>Jv(t,o,a),[t,o,a]),N=h.useMemo(()=>[...k.groups.map(B=>({timepoint:B.timepoint,groupId:B.timepoint.id,events:B.events})),...k.ungrouped.length>0?[{timepoint:null,groupId:"",events:k.ungrouped}]:[]],[k]),T=h.useMemo(()=>{const B=new Map;for(const G of k.groups)for(const Q of G.events)B.set(Q.id,G.timepoint.id);for(const G of k.ungrouped)B.set(G.id,"");return B},[k]),_=h.useMemo(()=>t.map(B=>B.id),[t]),[w,V]=h.useState(new Set),[M,L]=h.useState(null),[C,Z]=h.useState(null),[re,ie]=h.useState(!1);function te(B){const G=B.currentTarget.getBoundingClientRect();return B.clientY<G.top+G.height/2?"before":"after"}function K(B){return B===""?-1:O.groups.findIndex(G=>G.timepoint.id===B)}function ne(B,G,Q){B.preventDefault(),B.dataTransfer.dropEffect="move";const he=te(B);Z(le=>le!==null&&le.kind==="event"&&le.at===Q.at&&le.side===he&&le.groupId===G&&le.anchorId===Q.anchorId?le:{kind:"event",at:Q.at,side:he,groupId:G,anchorId:Q.anchorId})}function W(B,G){G.timepoint!==null&&(B.dataTransfer.setData("text/plain",G.timepoint.id),B.dataTransfer.effectAllowed="move",L({kind:"timepoint",id:G.timepoint.id}),Z(null))}function D(B,G){B.dataTransfer.setData("text/plain",G.id),B.dataTransfer.effectAllowed="move",L({kind:"event",id:G.id}),Z(null)}function z(){L(null),Z(null)}function P(B,G){const Q=M;if(Q===null||Q.kind==="timepoint"&&G.timepoint===null)return;B.preventDefault(),B.dataTransfer.dropEffect="move";const he=te(B);if(Q.kind==="timepoint"){Z(de=>de!==null&&de.kind==="timepoint"&&de.side===he&&de.groupId===G.groupId?de:{kind:"timepoint",side:he,groupId:G.groupId});return}const le=G.events.length===0?null:he==="before"?G.events[0].id:G.events[G.events.length-1].id;ne(B,G.groupId,{at:"group",anchorId:le})}function U(B,G,Q){const he=M;if(he!==null&&!(he.kind==="timepoint"&&Q.timepoint===null)){if(B.preventDefault(),B.dataTransfer.dropEffect="move",he.kind==="timepoint"){const le=te(B);Z(de=>de!==null&&de.kind==="timepoint"&&de.side===le&&de.groupId===Q.groupId?de:{kind:"timepoint",side:le,groupId:Q.groupId});return}ne(B,Q.groupId,{at:"row",anchorId:G.id})}}async function F(B,G,Q){const he=M;if(he===null||he.kind!=="event"||re)return;if(B.preventDefault(),Q===he.id){z();return}const le=te(B),de=hA(O.groups,O.ungrouped,K(G.groupId),le,he.id),Ue=T.get(he.id)??"";ie(!0);try{G.groupId===Ue?await g(he.id,de):await b(he.id,G.groupId===""?null:G.groupId,de)}finally{ie(!1),z()}}function A(B,G){const Q=M;if(Q===null||re)return;if(B.preventDefault(),Q.kind==="timepoint"){if(G.timepoint===null)return;if(G.groupId===Q.id){z();return}const de=te(B),Ue=qm(_,{kind:de,id:G.groupId},Q.id);ie(!0),m(Q.id,Ue).finally(()=>{ie(!1),z()});return}const he=te(B),le=G.events.length===0?null:he==="before"?G.events[0].id:G.events[G.events.length-1].id;F(B,G,le)}function H(B,G,Q){const he=M;if(he!==null&&he.kind==="timepoint"){A(B,Q);return}F(B,Q,G.id)}function I(B){V(G=>{const Q=new Set(G);return Q.has(B)?Q.delete(B):Q.add(B),Q})}return i.jsxs("div",{className:"relative flex flex-col gap-2",children:[i.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute top-0 bottom-0 left-[11px] w-0.5 bg-border"}),N.map(B=>{const G=C!==null&&(C.kind==="timepoint"&&C.groupId===B.groupId||C.kind==="event"&&C.at==="group"&&C.groupId===B.groupId),Q=G&&C!==null&&C.side==="before",he=G&&C!==null&&C.side==="after",le=C!==null&&C.kind==="event"&&C.at==="row"&&C.side==="before",de=C!==null&&C.kind==="event"&&C.at==="row"&&C.side==="after",Ue={onDragStart:D,onDragEnd:z,onDragOver:(Le,we)=>U(Le,we,B),onDrop:(Le,we)=>H(Le,we,B)};return i.jsx(NA,{timepoint:B.timepoint,groupId:B.groupId,events:B.events,collapsed:w.has(B.groupId),dragSource:M,busy:re,occursCount:c,hasOccursData:d,showInsertBefore:Q,showInsertAfter:he,onToggleCollapse:()=>I(B.groupId),onRename:p,onDeleteTimepoint:y,onAddEventAt:x,onDragStart:Le=>W(Le,B),onDragEnd:z,onDragOver:Le=>P(Le,B),onDrop:Le=>A(Le,B),eventDrag:Ue,eventInsertLines:Le=>({before:le&&C!==null&&C.kind==="event"&&C.anchorId===Le,after:de&&C!==null&&C.kind==="event"&&C.anchorId===Le}),onDetail:S,onEdit:j,onDelete:E},B.groupId===""?"__ungrouped__":B.groupId)})]})}function Km({suggestions:t,visible:r,onPick:o}){return!r||t.length===0?null:i.jsx("div",{className:"mt-1 overflow-hidden rounded-md border border-border bg-card",children:t.map(a=>i.jsx("button",{type:"button",onMouseDown:c=>c.preventDefault(),onClick:()=>o(a),className:"block w-full cursor-pointer px-2.5 py-1 text-left text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",children:a},a))})}const Ta={name:"",description:"",tagsInput:""};function TA(){const[t,r]=h.useState(null),[o,a]=h.useState(null),[c,d]=h.useState(!1),[m,g]=h.useState(null),[b,p]=h.useState(0);zs(()=>p(Ce=>Ce+1));const[y,x]=h.useState([]),[S,j]=h.useState(!1),[E,k]=h.useState([]),[O,N]=h.useState(!1),[T,_]=h.useState(null),[w,V]=h.useState([]),[M,L]=h.useState(!1),[C,Z]=h.useState(Ta),[re,ie]=h.useState(null),[te,K]=h.useState(""),[ne,W]=h.useState(null),[D,z]=h.useState(!1),[P,U]=h.useState(!1),[F,A]=h.useState(""),[H,I]=h.useState(null),[B,G]=h.useState(!1),[Q,he]=h.useState(null),[le,de]=h.useState(null),[Ue,Le]=h.useState(null),[we,Be]=h.useState(!1),ge=He(Ce=>Ce.config),q=He(Ce=>Ce.outline),Me=ir(q?.children??[]),Oe=St(Ce=>Ce.sendMessage);h.useEffect(()=>{let Ce=!1;return d(!0),g(null),j(!1),N(!1),Promise.allSettled([jn("timepoint",{}).then(Se=>{Ce||r(Se.items)}).catch(Se=>{Ce||(r(null),g(Se instanceof Ae?Se.code:ut))}),jn("event",{}).then(Se=>{Ce||(a(Se.items),V(Gc(Se.items)),Se.items.length>=Se.limit&&jn("event",{limit:200}).then(Ge=>{Ce||V(Gc(Ge.items))}).catch(()=>{}))}).catch(Se=>{Ce||(a(null),g(Se instanceof Ae?Se.code:ut))}),Fr({source_type:"timepoint",relation_type:"occurs_at",depth:1}).then(Se=>{Ce||x(Se.relations)}).catch(()=>{Ce||j(!0)}),Fr({source_type:"event",relation_type:"occurs_in",depth:1}).then(Se=>{Ce||k(Se.relations)}).catch(()=>{Ce||N(!0)})]).finally(()=>{Ce||d(!1)}),()=>{Ce=!0}},[b]),h.useEffect(()=>{He.getState().outline===null&&He.getState().config!==null&&He.getState().loadOutline()},[]);async function _e(Ce){Ce.preventDefault();const Se=F.trim();if(!Se){I("请输入名称");return}G(!0),I(null);try{await $c("timepoint",{name:Se}),Re.getState().showToast(`已创建时间点《${Se}》`),U(!1),A(""),p(Ge=>Ge+1)}catch(Ge){I(Ge instanceof Ae?Ge.message:"创建失败,请重试")}finally{G(!1)}}async function be(Ce){Ce.preventDefault();const Se=C.name.trim();if(!Se){W("请输入名称");return}z(!0),W(null);try{const Ge={};C.description.trim()!==""&&(Ge.description=C.description.trim());const Ot=$S(C.tagsInput);Ot.length>0&&(Ge.tags=Ot);const Yt=await $c("event",{name:Se,data:Ge});if(re!==null)try{await cr(SA(re,Yt.id))}catch(se){Re.getState().showToast(`已创建事件《${Se}》,但挂载到时间点失败:${se instanceof Ae?se.message:"未知错误"}`,"error"),L(!1),Z(Ta),ie(null),K(""),p(ye=>ye+1);return}if(te!=="")try{await cr({source_type:"event",source_id:Yt.id,target_type:"outline_node",target_id:te,relation_type:"occurs_in"})}catch(se){Re.getState().showToast(`已创建事件《${Se}》,但节点关联失败:${se instanceof Ae?se.message:"未知错误"}`,"error"),L(!1),Z(Ta),ie(null),K(""),p(ye=>ye+1);return}Re.getState().showToast(`已创建事件《${Se}》`),L(!1),Z(Ta),ie(null),K(""),p(se=>se+1)}catch(Ge){W(Ge instanceof Ae?Ge.message:"创建失败,请重试")}finally{z(!1)}}function Ie(Ce){const Se=Ce.summary;he(Ce),Le(null),de({name:Ce.name,description:typeof Se.description=="string"?Se.description:"",tagsInput:XS(Se.tags)})}async function Ve(){const Ce=Q,Se=le;if(!(!Ce||!Se||we)){Be(!0),Le(null);try{const Ge=KS({name:Ce.name,data:Ce.summary},Se);if(Ge===null){Re.getState().showToast("没有变更"),he(null);return}await No("event",Ce.id,Ge),Re.getState().showToast("已保存"),he(null),p(Ot=>Ot+1)}catch(Ge){Le(Ge instanceof Ae?Ge.message:"保存失败,请重试")}finally{Be(!1)}}}async function Pe(Ce){try{const Se=await iu(Ce.kind,Ce.entity.id),Ge=[];Se.cascaded.relations>0&&Ge.push(`${Se.cascaded.relations} 条关联`),Se.cascaded.deltas>0&&Ge.push(`${Se.cascaded.deltas} 条变更记录`),Re.getState().showToast(`已移入回收站,可随时还原${Ge.length>0?`(含 ${Ge.join("、")})`:""}`),p(Ot=>Ot+1)}catch(Se){Re.getState().showToast(Se instanceof Ae?Se.message:"删除失败,请重试","error")}}async function ee(Ce,Se){try{await l2(Ce,{order:Se}),Re.getState().showToast("已调整时间点顺序")}catch(Ge){Re.getState().showToast(Ge instanceof Ae?`排序失败:${Ge.message}`:"排序失败,请重试","error")}finally{p(Ge=>Ge+1)}}async function Y(Ce,Se){try{await a2(Ce,{order:Se}),Re.getState().showToast("已调整事件顺序")}catch(Ge){Re.getState().showToast(Ge instanceof Ae?`排序失败:${Ge.message}`:"排序失败,请重试","error")}finally{p(Ge=>Ge+1)}}async function $(Ce,Se,Ge){try{await _0(Ce,{timepoint_id:Se,order:Ge}),Re.getState().showToast(Se===null?"已移至未挂载区":"已调整事件挂载与顺序")}catch(Ot){Re.getState().showToast(Ot instanceof Ae?`操作失败:${Ot.message}`:"操作失败,请重试","error")}finally{p(Ot=>Ot+1)}}async function Te(Ce,Se){try{await No("timepoint",Ce,{name:Se}),Re.getState().showToast("已重命名"),p(Ge=>Ge+1)}catch(Ge){Re.getState().showToast(Ge instanceof Ae?`重命名失败:${Ge.message}`:"重命名失败,请重试","error")}}function xe(Ce){Z(Ta),K(""),W(null),ie(Ce),L(!0)}function ae(){Z(Ta),K(""),W(null),ie(null),L(!0)}function ke(){ge!==null&&Oe("请按时间标签的语义先后顺序对时间轴时间点排序,并使用 propose_reorder_timepoints 工具生成排序提案。")}const Ye=o===null?[]:Gc(o),We=o===null?null:xA(o,T),pt=Ce=>O?0:E.filter(Se=>Se.sourceId===Ce).length,At=!O,mt=$m(C.tagsInput,w),Tt=le===null?[]:$m(le.tagsInput,w);function Rt(Ce){Z(Se=>({...Se,tagsInput:Xm(Se.tagsInput,Ce)}))}function Lt(Ce){de(Se=>Se&&{...Se,tagsInput:Xm(Se.tagsInput,Ce)})}return i.jsxs("section",{className:"flex h-full min-h-0 flex-col",children:[i.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"时间轴"}),i.jsx("span",{className:Ee("ml-auto",!ge&&"cursor-not-allowed"),title:ge?void 0:"请先打开项目",children:i.jsxs(me,{type:"button",variant:"outline",size:"sm",disabled:!ge,onClick:ke,"aria-label":"AI 排序",children:[i.jsx(eT,{className:"size-3.5"}),"AI 排序"]})}),i.jsx(me,{type:"button",variant:"outline",onClick:ae,children:"+ 新建事件"}),i.jsx(me,{type:"button",onClick:()=>U(!0),children:"+ 新建时间点"})]}),o!==null&&o.length>0&&i.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-1.5",children:[i.jsx("button",{type:"button",onClick:()=>_(null),className:Ee("rounded-full border px-2.5 py-0.5 text-xs transition-colors",T===null?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:"全部"}),Ye.map(Ce=>i.jsx("button",{type:"button",onClick:()=>_(Se=>Se===Ce?null:Ce),className:Ee("rounded-full border px-2.5 py-0.5 text-xs transition-colors",T===Ce?"border-primary bg-primary text-primary-foreground":"border-border bg-muted text-muted-foreground hover:text-foreground"),children:Ce},Ce))]}),i.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[m!==null&&i.jsxs("div",{className:Ee(ni,"mb-3 flex items-center gap-2"),children:[m===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"时间轴加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-auto h-7 px-2 text-xs",type:"button",onClick:()=>p(Ce=>Ce+1),children:"重试"})]}),c&&(t===null||o===null)&&m===null&&i.jsx("div",{className:"space-y-2",children:Array.from({length:4},(Ce,Se)=>i.jsxs("div",{className:"flex items-center gap-3 rounded-md border border-border px-3 py-2.5",children:[i.jsx("div",{className:"h-4 w-4 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-1/3 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-3 w-20 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"ml-auto h-6 w-6 animate-pulse rounded bg-muted"})]},Se))}),!c&&t!==null&&o!==null&&t.length===0&&o.length===0&&i.jsx(Bn,{action:i.jsx(me,{type:"button",onClick:()=>U(!0),children:"+ 新建时间点"}),children:"还没有时间点。先定义一个时间标签点(如「第二天黄昏」),再在其中挂载事件。"}),t!==null&&o!==null&&We!==null&&!(T!==null&&We.length===0)&&i.jsx(jA,{timepoints:t,events:We,allEvents:o,occursAtEdges:S?[]:y,occursCount:pt,hasOccursData:At,onMoveTimepoint:ee,onMoveEvent:Y,onMoveEventTo:$,onRenameTimepoint:Te,onAddEventAt:xe,onDetail:Ce=>on(`/timeline/${Ce.id}`),onEdit:Ie,onDelete:Ce=>{Pe({kind:"event",entity:Ce})},onDeleteTimepoint:Ce=>{Pe({kind:"timepoint",entity:Ce})}}),!c&&o!==null&&o.length>0&&We!==null&&We.length===0&&i.jsxs(Bn,{padding:"sm",children:["没有匹配「",T,"」的事件"]})]}),i.jsx(Rs,{open:P,onOpenChange:Ce=>!Ce&&U(!1),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:"新建时间点"})}),i.jsxs("form",{id:"create-timepoint-form",onSubmit:_e,className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填,时间标签文本)"}),i.jsx(Mt,{value:F,onChange:Ce=>A(Ce.target.value),placeholder:"如:第二天黄昏",maxLength:100,autoFocus:!0})]}),H&&i.jsx("p",{className:"text-sm text-destructive",children:H})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>U(!1),disabled:B,children:"取消"}),i.jsx(me,{type:"submit",form:"create-timepoint-form",disabled:B,children:"创建"})]})]})}),i.jsx(Rs,{open:M,onOpenChange:Ce=>!Ce&&L(!1),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsx(Ms,{children:re!==null?"在此时间点新建事件(自动挂载)":"新建事件(不挂载,入未挂载区)"})}),i.jsxs("form",{id:"create-event-form",onSubmit:be,className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:C.name,onChange:Ce=>Z(Se=>({...Se,name:Ce.target.value})),placeholder:"如:主角踏入宗门",maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:C.description,onChange:Ce=>Z(Se=>({...Se,description:Ce.target.value})),rows:2,placeholder:"事件发生了什么",className:Ee(Xn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Mt,{value:C.tagsInput,onChange:Ce=>Z(Se=>({...Se,tagsInput:Ce.target.value})),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Km,{suggestions:mt,visible:C.tagsInput.trim()!=="",onPick:Rt})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"关联大纲节点(选填,可空)"}),i.jsx(wA,{value:te,onChange:K,nodeOptions:Me})]}),ne&&i.jsx("p",{className:"text-sm text-destructive",children:ne})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>L(!1),disabled:D,children:"取消"}),i.jsx(me,{type:"submit",form:"create-event-form",disabled:D,children:"创建"})]})]})}),Q&&le&&i.jsx(Rs,{open:!0,onOpenChange:Ce=>!Ce&&!we&&he(null),children:i.jsxs(Os,{className:"sm:max-w-md",children:[i.jsx(ks,{children:i.jsxs(Ms,{children:["编辑事件《",Q.name,"》"]})}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:le.name,onChange:Ce=>de(Se=>Se&&{...Se,name:Ce.target.value}),maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:le.description,onChange:Ce=>de(Se=>Se&&{...Se,description:Ce.target.value}),rows:2,className:Ee(Xn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Mt,{value:le.tagsInput,onChange:Ce=>de(Se=>Se&&{...Se,tagsInput:Ce.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Km,{suggestions:Tt,visible:le.tagsInput.trim()!=="",onPick:Lt})]}),Ue&&i.jsx("p",{className:"text-sm text-destructive",children:Ue})]}),i.jsxs(_s,{children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>he(null),disabled:we,children:"取消"}),i.jsx(me,{type:"button",onClick:()=>{Ve()},disabled:we,children:we?"保存中…":"保存"})]})]})})]})}function wA({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:Ee(Ee(Xn,"w-full"),t===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:a}),o.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function CA({id:t}){const[r,o]=h.useState(null),[a,c]=h.useState(!1),[d,m]=h.useState(!1),[g,b]=h.useState(null),[p,y]=h.useState(null),[x,S]=h.useState(!1),[j,E]=h.useState(null),[k,O]=h.useState(!1),[N,T]=h.useState(""),[_,w]=h.useState(null),[V,M]=h.useState(!1),[L,C]=h.useState(null),[Z,re]=h.useState([]),[ie,te]=h.useState(null),[K,ne]=h.useState(null),[W,D]=h.useState(!1),[z,P]=h.useState(!1),[U,F]=h.useState(null);async function A(){try{const ge=await jn("event",{limit:200});re(Gc(ge.items))}catch{}}async function H(){D(!1);try{const[ge,q]=await Promise.all([jn("timepoint",{}),jn("event",{limit:200})]);te(ge.items),ne(q.items)}catch{te(null),ne(null),D(!0)}}h.useEffect(()=>{A(),H()},[]);const I=He(ge=>ge.outline),B=ir(I?.children??[]);async function G(){c(!0),b(null),m(!1);try{const ge=await bo("event",t);o(ge),y(bA(ge))}catch(ge){o(null),y(null),ge instanceof Ae&&ge.code==="ENTITY_NOT_FOUND"?m(!0):b(ge instanceof Ae?ge.code:ut)}finally{c(!1)}}h.useEffect(()=>{G()},[t]),zs(()=>{G(),A(),H()}),h.useEffect(()=>{He.getState().outline===null&&He.getState().config!==null&&He.getState().loadOutline()},[]);async function Q(){if(!r||!p||x)return;const ge=KS({name:r.name,data:r.data},p);if(ge===null){Re.getState().showToast("没有变更");return}S(!0),E(null);try{await No("event",t,ge),Re.getState().showToast("已保存"),await G()}catch(q){if(q instanceof Ae&&q.code==="ENTITY_NOT_FOUND"){m(!0);return}E(q instanceof Ae?q.message:"保存失败,请重试")}finally{S(!1)}}async function he(ge){if(!r||z||!ie||!K)return;const q=bm(r.relations,t);if(ge===(q??""))return;const Me=K.findIndex(_e=>_e.id===t),Oe=Me===-1?K.length:Me;P(!0),F(null);try{await _0(t,{timepoint_id:ge===""?null:ge,order:Oe}),Re.getState().showToast(ge===""?"已移出挂载":"已更新挂载时间点"),await G()}catch(_e){if(_e instanceof Ae&&_e.code==="ENTITY_NOT_FOUND"){m(!0);return}F(_e instanceof Ae?_e.message:"挂载保存失败,请重试")}finally{P(!1)}}async function le(){if(!(N===""||V)){M(!0),w(null);try{await cr(vA(t,N)),Re.getState().showToast("已关联大纲节点"),O(!1),await G()}catch(ge){if(ge instanceof Ae&&ge.code==="RELATION_EXISTS"){w("这条关系已经存在");return}w(ge instanceof Ae?ge.message:"关联失败,请重试")}finally{M(!1)}}}async function de(){if(L)try{await Ca(L.id),Re.getState().showToast("已取消关联"),C(null),await G()}catch(ge){throw ge}}async function Ue(){if(r)try{const ge=await iu("event",t),q=[];ge.cascaded.relations>0&&q.push(`${ge.cascaded.relations} 条关联`),ge.cascaded.deltas>0&&q.push(`${ge.cascaded.deltas} 条变更记录`),Re.getState().showToast(`已移入回收站,可随时还原${q.length>0?`(含 ${q.join("、")})`:""}`),on("/timeline")}catch(ge){Re.getState().showToast(ge instanceof Ae?ge.message:"删除失败,请重试","error")}}if(d)return i.jsx("section",{children:i.jsx(Bn,{padding:"lg",action:i.jsxs("div",{className:"flex justify-center gap-2",children:[i.jsx("a",{href:"#/trash",className:"rounded-md border border-border px-4 py-1.5 text-sm text-muted-foreground hover:bg-muted",children:"去回收站"}),i.jsx(me,{variant:"outline",type:"button",onClick:()=>on("/timeline"),children:"返回列表"})]}),children:"该事件不存在或已被删除"})});const Le=r===null?[]:yA(r.relations,t),we=p===null?[]:$m(p.tagsInput,Z);function Be(ge){y(q=>q&&{...q,tagsInput:Xm(q.tagsInput,ge)})}return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx(rh,{items:[{label:"时间轴",href:"/timeline"},{label:r?.name??"…"}]}),i.jsx("h1",{className:"min-w-0 truncate text-xl font-semibold",children:r?.name??"…"}),i.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[i.jsx(me,{variant:"outline",type:"button",onClick:()=>{Q()},disabled:!r||x,children:x?"保存中…":"保存"}),i.jsx(me,{variant:"outline",type:"button",disabled:!r,className:"text-destructive hover:bg-destructive/10",onClick:()=>{Ue()},children:"移入回收站"})]})]}),r&&i.jsxs("p",{className:"mb-4 text-xs text-muted-foreground",children:["创建于 ",ds(r.createdAt)," · 更新于 ",ds(r.updatedAt)]}),a&&!r&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:5},(ge,q)=>i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"},q))}),i.jsx("div",{className:"space-y-3 rounded-md border border-border p-4",children:Array.from({length:3},(ge,q)=>i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"},q))})]}),!a&&!r&&g!==null&&i.jsxs("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:[g===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"详情加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{G()},children:"重试"})]}),r&&p&&i.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsx("h2",{className:"mb-3 text-sm font-semibold text-foreground",children:"基础信息"}),i.jsxs("div",{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"名称(必填)"}),i.jsx(Mt,{value:p.name,onChange:ge=>y(q=>q&&{...q,name:ge.target.value}),maxLength:100})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"描述"}),i.jsx("textarea",{value:p.description,onChange:ge=>y(q=>q&&{...q,description:ge.target.value}),rows:3,placeholder:"事件发生了什么",className:Ee(Xn,"w-full")})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"挂载时间点"}),ie===null?W?i.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:["挂载数据加载失败",i.jsx(me,{variant:"outline",size:"sm",type:"button",className:"h-6 px-2 text-xs",onClick:()=>{H()},children:"重试"})]}):i.jsx("div",{className:"h-9 animate-pulse rounded bg-muted"}):i.jsxs("select",{value:bm(r.relations,t)??"",onChange:ge=>{he(ge.target.value)},disabled:z,className:Ee(Ee(Xn,"w-full"),bm(r.relations,t)===null&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:"未挂载"}),ie.map(ge=>i.jsx("option",{value:ge.id,children:ge.name},ge.id))]}),z&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"保存中…"}),U&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:U})]}),i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"标签"}),i.jsx(Mt,{value:p.tagsInput,onChange:ge=>y(q=>q&&{...q,tagsInput:ge.target.value}),placeholder:"如:主线,战争(逗号/回车分隔)"}),i.jsx(Km,{suggestions:we,visible:p.tagsInput.trim()!=="",onPick:Be})]}),j&&i.jsx("p",{className:"text-sm text-destructive",children:j})]})]}),i.jsxs("div",{className:"rounded-md border border-border p-4",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[i.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"关联节点(occurs_in)"}),i.jsxs(IS,{open:k,onOpenChange:ge=>{ge?(T(""),w(null),O(!0)):V||O(!1)},children:[i.jsx(BS,{render:i.jsx(me,{variant:"outline",type:"button",className:"h-8 px-2 text-xs",children:"+ 关联场景/章节"})}),i.jsxs(HS,{className:"flex flex-col gap-3",children:[i.jsxs("div",{children:[i.jsx("p",{className:"mb-1 text-sm font-medium text-foreground",children:"大纲节点"}),i.jsx(RA,{value:N,onChange:T,nodeOptions:B,placeholder:"请选择节点"})]}),_&&i.jsx("p",{className:"text-sm text-destructive",children:_}),i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(me,{variant:"outline",type:"button",size:"sm",onClick:()=>O(!1),disabled:V,children:"取消"}),i.jsx(me,{type:"button",size:"sm",onClick:()=>{le()},disabled:V||N==="",children:V?"关联中…":"关联"})]})]})]})]}),Le.length===0?i.jsx("p",{className:"py-6 text-center text-sm text-muted-foreground",children:"暂无关联节点,新增一个"}):i.jsx("ul",{className:"divide-y divide-border/70",children:Le.map(ge=>i.jsxs("li",{className:"flex items-center gap-2 py-2 text-sm",children:[i.jsx("button",{type:"button",onClick:()=>on(`/outline/${ge.targetId}`),title:"跳转大纲定位",className:"min-w-0 flex-1 truncate rounded-md border border-border px-1.5 py-0.5 text-left text-foreground hover:bg-muted hover:text-foreground",children:ge.targetName??ge.targetId}),i.jsx(me,{variant:"outline",type:"button",className:"h-7 shrink-0 px-2 text-xs text-destructive hover:bg-destructive/10",onClick:()=>C(ge),children:"取消关联"})]},ge.id))})]})]}),L&&i.jsx(Da,{title:"取消关联",description:`取消《${L.targetName??L.targetId}》与事件的关联?物理删除不可恢复,可重新建立。`,confirmLabel:"取消关联",danger:!0,onConfirm:de,onClose:()=>C(null)})]})}function RA({value:t,onChange:r,nodeOptions:o,placeholder:a="未设置"}){return i.jsxs("select",{value:t,onChange:c=>r(c.target.value),className:Ee(Ee(Xn,"w-full"),t===""&&"text-muted-foreground"),children:[i.jsx("option",{value:"",children:a}),o.map(c=>i.jsxs("option",{value:c.id,children:[" ".repeat(c.depth),c.label]},c.id))]})}function OA(t,r){const o=[];return t>0&&o.push(`${t} 条关系`),r>0&&o.push(`${r} 条变更记录`),o.length>0?`已还原,连带恢复 ${o.join("、")}`:"已还原"}function kA(t){return t>0?`已还原(含 ${t} 个子节点)`:"已还原"}function _A(t){return/软删祖先\s+([^\s,,]+)/.exec(t)?.[1]??null}const Wv={character:"人物",setting:"设定",location:"地点",hook:"伏笔",event:"事件",timepoint:"时间点"},MA={volume:"卷",chapter:"章",scene:"场"};function e0({label:t}){return i.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:t})}function AA(){const[t,r]=h.useState(null),[o,a]=h.useState(!1),[c,d]=h.useState(null),[m,g]=h.useState(0);zs(()=>g(w=>w+1));const[b,p]=h.useState(null),[y,x]=h.useState(null);h.useEffect(()=>{let w=!1;return a(!0),d(null),n2().then(V=>{w||r(V)}).catch(V=>{w||d(V instanceof Ae?V.code:ut)}).finally(()=>{w||a(!1)}),()=>{w=!0}},[m]);async function S(){g(w=>w+1)}function j(w){return w instanceof Ae&&(w.code==="ENTITY_NOT_FOUND"||w.code==="OUTLINE_NODE_NOT_FOUND")}function E(w){Re.getState().showError(w instanceof Ae?w.code:ut,w instanceof Ae?w.message:"操作失败,请重试")}async function k(w){try{const V=await s2(w.type,w.id);Re.getState().showToast(OA(V.restoredRelations,V.restoredDeltas)),await S()}catch(V){if(j(V)){Re.getState().showToast("该对象已不存在","error"),await S();return}E(V)}}async function O(w){x(null);try{const V=await Ny(w.id);Re.getState().showToast(kA(V.restoredChildren)),await S(),He.getState().loadOutline()}catch(V){if(V instanceof Ae&&V.code==="OUTLINE_ANCESTOR_DELETED"){const M=_A(V.message);if(M===null){Re.getState().showError("OUTLINE_ANCESTOR_DELETED","上级节点也在回收站,请先还原上级");return}x({node:w,ancestorId:M,ancestorName:t?.nodes.find(L=>L.id===M)?.title??M});return}if(j(V)){Re.getState().showToast("该对象已不存在","error"),await S();return}E(V)}}async function N(){const w=y;if(w)try{await Ny(w.ancestorId),He.getState().loadOutline(),await O(w.node)}catch(V){if(j(V)){Re.getState().showToast("该对象已不存在","error"),x(null),await S();return}E(V)}}async function T(){if(b)try{b.kind==="entity"?await r2(b.item.type,b.item.id):(await o2(b.item.id),He.getState().loadOutline()),Re.getState().showToast("已彻底删除"),await S()}catch(w){if(j(w)){Re.getState().showToast("该对象已不存在","error"),await S();return}throw w}}const _=t!==null&&t.entities.length===0&&t.nodes.length===0;return i.jsxs("section",{children:[i.jsxs("div",{className:"mb-1 flex items-center gap-3",children:[i.jsx("h1",{className:"text-xl font-semibold",children:"回收站"}),i.jsx(me,{variant:"outline",type:"button",className:"ml-auto",onClick:()=>{S()},disabled:o,children:"刷新"})]}),i.jsx("p",{className:"mb-4 text-xs text-muted-foreground",children:"软删对象会保留一段时间,可在此还原,或彻底删除(不可恢复)。"}),c!==null&&i.jsxs("div",{className:Ee(ni,"mb-3"),children:[c===ut?"无法连接服务,请确认 ai-editor 服务已启动。":"回收站加载失败,请重试。",i.jsx(me,{variant:"outline",className:"ml-3",type:"button",onClick:()=>{S()},children:"重试"})]}),o&&t===null&&c===null&&i.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:[0,1].map(w=>i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsx("div",{className:"h-9 animate-pulse bg-muted/60"}),Array.from({length:3},(V,M)=>i.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-3 py-2.5 last:border-0",children:[i.jsx("div",{className:"h-4 w-10 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 flex-1 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-4 w-16 animate-pulse rounded bg-muted"})]},M))]},w))}),!o&&_&&i.jsx(Bn,{children:"回收站是空的"}),t!==null&&!_&&i.jsxs("div",{className:"grid items-start gap-4 md:grid-cols-2",children:[i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsxs("div",{className:"border-b border-border bg-muted/40 px-3 py-2 text-sm font-medium text-foreground",children:["实体 (",t.entities.length,")"]}),t.entities.length===0?i.jsx("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"暂无实体"}):i.jsx("ul",{className:"divide-y divide-border/70",children:t.entities.map(w=>i.jsxs("li",{className:"flex items-center gap-2 px-3 py-2",children:[i.jsx(e0,{label:Wv[w.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:w.name,children:w.name}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(w.deletedAt)}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{k(w)},children:"还原"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>p({kind:"entity",item:w}),children:"彻底删除"})]})]},w.id))})]}),i.jsxs("div",{className:"overflow-hidden rounded-md border border-border",children:[i.jsxs("div",{className:"border-b border-border bg-muted/40 px-3 py-2 text-sm font-medium text-foreground",children:["大纲节点 (",t.nodes.length,")"]}),t.nodes.length===0?i.jsx("p",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"暂无节点"}):i.jsx("ul",{className:"divide-y divide-border/70",children:t.nodes.map(w=>i.jsxs("li",{className:"px-3 py-2",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(e0,{label:MA[w.type]}),i.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",title:w.title,children:w.title}),i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:Eo(w.deletedAt)}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[i.jsx(me,{variant:"outline",size:"xs",type:"button",onClick:()=>{O(w)},children:"还原"}),i.jsx(me,{variant:"outline",size:"xs",type:"button",className:"text-destructive hover:bg-destructive/10",onClick:()=>p({kind:"node",item:w}),children:"彻底删除"})]})]}),y?.node.id===w.id&&i.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm",children:[i.jsxs("span",{className:"text-destructive",children:["上级节点《",y.ancestorName,"》也在回收站,请先还原上级"]}),i.jsxs(me,{variant:"outline",size:"xs",type:"button",className:"border-destructive/40 text-destructive hover:bg-destructive/10",onClick:()=>{N()},children:["还原上级《",y.ancestorName,"》"]})]})]},w.id))})]})]}),b&&i.jsx(Da,{title:"彻底删除",description:b.kind==="entity"?`将彻底删除《${b.item.name}》(${Wv[b.item.type]})及其关联关系、变更记录,不可恢复。`:`将彻底删除《${b.item.title}》及整棵子树、关联关系、变更记录,不可恢复。`,confirmLabel:"确认彻底删除",danger:!0,onConfirm:T,onClose:()=>p(null)})]})}function ym(t,r=new Date){const o=new Date(t);if(Number.isNaN(o.getTime()))return t;const a=m=>String(m).padStart(2,"0"),c=`${a(o.getHours())}:${a(o.getMinutes())}:${a(o.getSeconds())}`;return o.getFullYear()===r.getFullYear()?`${a(o.getMonth()+1)}-${a(o.getDate())} ${c}`:`${String(o.getFullYear()).slice(-2)}-${a(o.getMonth()+1)}-${a(o.getDate())} ${c}`}function t0(t){return!Number.isFinite(t)||t<0?"0 B":t<1024?`${t} B`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}const n0=[{value:null,label:"关闭"},...Ej.map(t=>({value:t,label:`每 ${t} 分钟`}))],s0={auto:"自动",manual:"手动"};let Ml=0;function DA(){const t=Re(z=>z.showToast),r=Re(z=>z.showError),o=Re(z=>z.notifyDataChanged),a=He(z=>z.config),c=He(z=>z.configLoading),d=He(z=>z.updateConfig),m=He(z=>z.loadConfig),g=He(z=>z.loadOutline),[b,p]=h.useState(!1),[y,x]=h.useState(null),[S,j]=h.useState(!1),[E,k]=h.useState(null),[O,N]=h.useState(!1),[T,_]=h.useState(null),[w,V]=h.useState(""),[M,L]=h.useState(null),C=h.useRef(M);C.current=M;async function Z(){if(He.getState().config===null)return;const z=++Ml;j(!0),k(null);try{const P=await b2();if(z!==Ml)return;x(P.backups)}catch(P){if(z!==Ml)return;const U=P instanceof Ae?P.code:ut;k(U)}finally{z===Ml&&j(!1)}}const re=a?.id??null,ie=h.useRef(null);h.useEffect(()=>{if(re===null){Ml++,x(null),k(null),_(null),L(null),ie.current=null;return}ie.current!==re&&(ie.current=re,Z())},[re]);async function te(z){if(a===null)return;const P=z==="null"?null:Number(z);if(P!==a.backupFrequencyMinutes){p(!0);try{await d({backup_frequency_minutes:P}),t(P===null?"已关闭自动备份":`自动备份频率已设为每 ${P} 分钟`)}catch(U){U instanceof Ae&&U.code===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,频率未保存"):t("频率保存失败,请重试","error")}finally{p(!1)}}}async function K(){if(!(a===null||O)){N(!0);try{const z=w.trim();await y2(z.length>0?z:void 0),V(""),t(z.length>0?`已备份「${z}」`:"已备份"),await Z()}catch(z){t(z instanceof Ae&&z.code!==ut?z.message:"无法连接服务,备份失败","error")}finally{N(!1)}}}async function ne(){if(T===null)return;const z=await v2(T.fileName);t(`已恢复备份,覆盖前状态已自动快照(${z.snapshot.fileName})`),await Promise.all([m(),g()]),o(),St.getState().clearSessions(),St.getState().loadSessions(),Z()}async function W(){if(M===null||M.saving)return;const z=y?.find(U=>U.fileName===M.fileName)?.name??"",P=M.value.trim();if(P===z){L(null);return}L({...M,saving:!0,error:null});try{await S2(M.fileName,M.value),L(null),t(P.length>0?`已重命名「${P}」`:"已清除备份名称"),await Z()}catch(U){const F=U instanceof Ae&&U.code!==ut?U.message:"无法连接服务,重命名失败";if(C.current===null){t(F,"error");return}L(A=>A===null?A:{...A,saving:!1,error:F})}}const D=a===null?"":n0.some(z=>String(z.value)===String(a.backupFrequencyMinutes))?String(a.backupFrequencyMinutes):"null";return i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"自动备份"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground",children:"跟随书籍:备份与频率均为本项目独立;服务运行期间按频率自动备份,有变更才生成新备份;每项目保留最近 20 份"}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("select",{value:D,onChange:z=>{te(z.target.value)},disabled:a===null||b,"aria-label":"自动备份频率",className:"rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50",children:n0.map(z=>i.jsx("option",{value:String(z.value),children:z.label},String(z.value)))}),i.jsx("input",{autoComplete:"off",value:w,onChange:z=>V(z.target.value),maxLength:iy,placeholder:"备份名称(可选)","aria-label":"备份名称(可选)",disabled:a===null,className:"w-36 rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground/60 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs(me,{onClick:()=>{K()},disabled:a===null||O,type:"button",children:[O?i.jsx(Yl,{className:"size-4 animate-spin"}):null,"立即备份"]})]}),a===null&&!c&&i.jsx("p",{className:"mt-1 text-xs text-muted-foreground/70",children:"打开项目后可用"}),a!==null&&i.jsxs("div",{className:"mt-3",children:[i.jsx("p",{className:"mb-1 text-xs font-medium text-muted-foreground",children:"历史备份"}),i.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:S&&y===null?i.jsxs("div",{className:"space-y-1 p-2",children:[i.jsx("div",{className:Ee(_t,"h-7 rounded-md")}),i.jsx("div",{className:Ee(_t,"h-7 rounded-md")})]}):E!==null?i.jsxs("div",{className:"flex items-center justify-between px-2 py-2",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:E===ut?"无法连接服务":"备份列表加载失败"}),i.jsx(me,{variant:"outline",size:"xs",onClick:()=>{Z()},children:"重试"})]}):y!==null&&y.length===0?i.jsx("p",{className:"px-2 py-3 text-xs text-muted-foreground/70",children:"暂无备份,自动备份将在数据变更后按频率生成"}):y!==null?i.jsx("ul",{className:"divide-y divide-border",children:y.map(z=>{const P=M!==null&&M.fileName===z.fileName;return i.jsxs("li",{className:"px-2 py-1.5",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("span",{className:"min-w-0 flex-1 text-sm",title:z.fileName,children:[i.jsx("span",{className:"text-muted-foreground",children:ym(z.createdAt)}),i.jsx("span",{className:z.kind==="manual"?"ml-1.5 rounded border border-primary/40 px-1 text-[10px] leading-4 text-primary":"ml-1.5 rounded border border-border px-1 text-[10px] leading-4 text-muted-foreground",children:s0[z.kind]}),!P&&z.name!==void 0?i.jsx("span",{className:"ml-1.5 font-medium text-foreground",children:z.name}):null]}),P?null:i.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:t0(z.size)}),P?i.jsxs(i.Fragment,{children:[i.jsx("input",{autoComplete:"off",value:M.value,onChange:U=>L(F=>F===null?F:{...F,value:U.target.value,error:null}),onKeyDown:U=>{U.key==="Enter"?W():U.key==="Escape"&&L(null)},onBlur:()=>{C.current?.saving||L(null)},maxLength:iy,disabled:M.saving,autoFocus:!0,"aria-label":"备份新名称",className:"w-36 shrink-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-sm outline-none placeholder:text-muted-foreground/60 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>{W()},disabled:M.saving,onMouseDown:U=>U.preventDefault(),"aria-label":"确认重命名",title:"确认(Enter)",children:M.saving?i.jsx(Yl,{className:"size-3 animate-spin"}):i.jsx(i0,{className:"size-3"})}),i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>L(null),disabled:M.saving,onMouseDown:U=>U.preventDefault(),"aria-label":"取消重命名",title:"取消(Esc)",children:i.jsx(hs,{className:"size-3"})})]}):i.jsxs(i.Fragment,{children:[i.jsx(me,{size:"icon-xs",variant:"ghost",onClick:()=>L({fileName:z.fileName,value:z.name??"",saving:!1,error:null}),"aria-label":`重命名备份 ${ym(z.createdAt)}`,title:"重命名",children:i.jsx(ei,{className:"size-3"})}),i.jsx(me,{variant:"outline",size:"xs",onClick:()=>_(z),children:"加载"})]})]}),P&&M.error!==null?i.jsx("p",{className:"mt-1 text-xs text-destructive",children:M.error}):null]},z.fileName)})}):null})]}),T!==null&&i.jsx(Da,{title:"加载备份",description:`${ym(T.createdAt)} · ${s0[T.kind]}${T.name!==void 0?` · ${T.name}`:""} · ${t0(T.size)}。将覆盖当前项目数据;覆盖前会自动备份当前状态(可回退)`,confirmLabel:"确认加载",danger:!0,onConfirm:ne,onClose:()=>_(null)})]})}function Al(t){return t instanceof Ae?t.code:ut}function zA(){const t=Re(U=>U.showToast),r=Re(U=>U.showError),o=Re(U=>U.notifyDataChanged),a=He(U=>U.config),c=He(U=>U.configLoading),d=He(U=>U.updateConfig),[m,g]=h.useState(!0),[b,p]=h.useState(""),[y,x]=h.useState(!1),[S,j]=h.useState(void 0),[E,k]=h.useState(""),[O,N]=h.useState(!1),[T,_]=h.useState(null),[w,V]=h.useState(null),[M,L]=h.useState(""),[C,Z]=h.useState(null),[re,ie]=h.useState(!1),[te,K]=h.useState(null);async function ne(){try{const U=await N2();p(U.model),x(U.apiKeySet),j(U.apiKeyMasked)}catch(U){r(Al(U),"读取 LLM 配置失败")}finally{g(!1)}}h.useEffect(()=>{ne()},[]),h.useEffect(()=>{const U=He.getState();U.config===null&&!U.configLoading&&U.loadConfig()},[]),h.useEffect(()=>{if(a===null){Z(null);return}a.id!==C&&(L(a.prompt),Z(a.id))},[a,C]);async function W(){K(null),ie(!0);try{const U=M.trim();await d({prompt:U}),L(U),t("提示词已保存,仅影响新请求"),o()}catch(U){Al(U)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,提示词未保存"):K("保存失败,请重试")}finally{ie(!1)}}async function D(){if(!b.trim()){_("模型名不能为空");return}_(null),N(!0);try{await Gf({model:b.trim()}),t("已保存,仅影响新请求"),p(b.trim())}catch(U){Al(U)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,模型配置未保存"):_("保存失败,请重试")}finally{N(!1)}}async function z(){if(!E.trim()){V("请输入新 key");return}V(null),N(!0);try{await Gf({api_key:E.trim()}),k(""),t("Key 已保存,仅影响新请求"),await ne()}catch(U){Al(U)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未保存"):V("保存失败,请重试")}finally{N(!1)}}async function P(){V(null),N(!0);try{await Gf({api_key:""}),k(""),t("Key 已清除"),await ne()}catch(U){Al(U)===ut?r("CLIENT_NETWORK_ERROR","无法连接服务,Key 未清除"):V("清除失败,请重试")}finally{N(!1)}}return i.jsxs("section",{className:"max-w-lg",children:[i.jsx("h1",{className:"mb-4 text-xl font-semibold",children:"设置"}),m?i.jsx("p",{className:"text-sm text-muted-foreground",children:"加载中…"}):i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"AI 模型"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground",children:"默认 deepseek-v4-flash(可在服务端设置页或环境变量覆盖)"}),i.jsxs("div",{className:"flex max-w-sm gap-2",children:[i.jsx(Mt,{value:b,onChange:U=>p(U.target.value),placeholder:"deepseek-v4-flash"}),i.jsx(me,{onClick:()=>{D()},disabled:O,type:"button",children:"保存设置"})]}),T&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:T})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"API Key"}),i.jsxs("p",{className:"mb-2 text-xs text-muted-foreground",children:["状态:",y?`已配置(${S??""})`:"未配置"]}),i.jsxs("div",{className:"flex max-w-sm gap-2",children:[i.jsx(Mt,{value:E,onChange:U=>k(U.target.value),placeholder:"输入新 key(覆盖旧 key)"}),i.jsx(me,{onClick:()=>{z()},disabled:O,type:"button",children:"保存 Key"}),i.jsx(me,{variant:"outline",onClick:()=>{P()},disabled:O,type:"button",children:"清除 Key"})]}),w&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:w})]}),i.jsxs("div",{className:"rounded-md border border-border bg-muted/50 p-3 text-xs leading-relaxed text-muted-foreground",children:[i.jsx("p",{children:"· key 保存在用户目录配置文件(~/.ai-editor/config.json),不写入项目文件(决策 17)"}),i.jsx("p",{children:"· 环境变量 DEEPSEEK_API_KEY 优先于此处配置;保存的 key 仅影响新请求"})]}),i.jsxs("div",{children:[i.jsx("h2",{className:"mb-1 text-sm font-semibold text-foreground",children:"项目提示词"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground",children:"注入 AI 上下文「## 项目设定」段(每轮有效);承载项目级规则/行业要求;空 = 整段跳过"}),i.jsx("p",{className:"mb-2 text-xs text-muted-foreground/70",children:"建议用 ### 及以下层级的小标题组织内容(如「### 写作规则」);避免使用 ## 顶层标题(与系统分段标题冲突)"}),i.jsx("textarea",{value:M,onChange:U=>L(U.target.value),rows:6,disabled:a===null||a.id!==C,placeholder:"输入项目级规则/行业要求…",className:"w-full resize-y rounded-lg border border-input bg-transparent px-2.5 py-1.5 text-sm outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50"}),i.jsxs("div",{className:"mt-2 flex items-center gap-3",children:[i.jsx(me,{onClick:()=>{W()},disabled:re||a===null||a.id!==C,type:"button",children:"保存提示词"}),a===null&&!c&&i.jsx("p",{className:"text-xs text-muted-foreground/70",children:"打开项目后可用"})]}),te&&i.jsx("p",{className:"mt-1 text-sm text-destructive",children:te})]}),i.jsx(DA,{})]})]})}function LA(t){const[r,o,a]=t.segments;switch(r){case void 0:return i.jsx(Tv,{});case"outline":return o!==void 0?i.jsx(rM,{nodeId:o},o):i.jsx(M3,{});case"canvas":return i.jsx(EM,{});case"entities":{if(o==="relations")return i.jsx(hm,{type:"relations"});if(o==="setting-tree")return i.jsx(hm,{type:"setting-tree"});const c=o!==void 0&&ka.includes(o)?o:"character";return a!==void 0?i.jsx(XM,{type:c,id:a},`${c}:${a}`):i.jsx(hm,{type:c})}case"hooks":return i.jsx(dA,{});case"timeline":return o!==void 0?i.jsx(CA,{id:o},o):i.jsx(TA,{});case"trash":return i.jsx(AA,{});case"settings":return i.jsx(zA,{});default:return i.jsx(Tv,{})}}function IA(){const t=jj();return i.jsx(N3,{route:t,children:LA(t)})}const JS=document.getElementById("root");if(!JS)throw new Error("#root 元素缺失(index.html)");vj.createRoot(JS).render(i.jsx(h.StrictMode,{children:i.jsx(j3,{children:i.jsx(IA,{})})}));